IP Library Granted Patent US 8,589,833
Granted Patent B2
US 8,589,833 · App. 13/609,789 · Granted Nov 19, 2013

Method for the definition of a library of application-domain-specific logic cells

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,589,833
App. No.
13/609,789
Granted
Nov 19, 2013
Kind
B2
Abstract

The present invention provides in one aspect a method of defining a logic cell library composed of complex functions and simple functions, with some of the complex functions obtained from identifying logic function patterns. In another aspect the present invention provides a method of designing a representation of an integrated circuit that uses complex functions and simple functions, with the complex functions including a plurality of non-standard complex Boolean logic functions that are determined to collectively provide for logic pattern minimization.

Claims (273)

1. A method of selecting a collection of logic cells that each implement a Boolean Logic Function using a computer, said method including:

selecting, using said computer, at least four simple cells from the group that consists of logic cells (1)-(72) below:

(1) A&B;

(2) A&B&C;

(3) A&B&C&D;

(4) A&B+C;

(5) A&B+C&D;

(6) A&B&C+D;

(7) A&B&C+D&E;

(8) A&B&C+D&E&F

(9) A&B+C+D;

(10) A&B+C&D+E;

(11) A&B+C&D+E&F;

(12) A&B&C+D+E

(13) A&B&C+D&E+F;

(14) !(A&B+C);

(15) !(A&B&C+D);

(16) !(A&B+C&D);

(17) !(A&B&C+D);

(18) !(A&B&C+D&E);

(19) !(A&B&C+D&E&F);

(20) !(A&B+C+D);

(21) !(A&B+C&D+E);

(22) !(A&B+C&D+E&F);

(23) !(A&B&C+D+E);

(24) !(A&B&C+D&E+F);

(25) (A&B+C)&D;

(26) ((A+B)&C)+D;

(27) !((A&B+C)&D);

(28) !(((A+B)&C)+D);

(29) A&!B+C&B;

(30) !A&!B+C&B;

(31) A&!B&!C+D&B&!C+E&!B&C;

(32) A&!B&!C+D&B&!C+E&!B&C+F&B&C;

(33) !(A&!B+C&B).

(34) !(A&!B&!C+D&B&!C+E&!B&C);

(35) !(A&!B&!C+D&B&!C+E&!B&C+F&B&C);

(36) !(A&B);

(37) !(!A&B);

(38) !(A&B&C);

(39) !(!A&B&C);

(40) !(A&B&C&D);

(41) !(!A&!B&C&D);

(42) !(A+B);

(43) !(!A+B);

(44) !(A+B+C);

(45) !(!A+B+C);

(46) !(A+B+C+D);

(47) !(!A+!B+C+D);

(48) (A+B)&C;

(49) (A+B)&(C+D);

(50) (A+B+C)&D;

(51) (A+B+C)&(D+E);

(52) (A+B+C)&(D+E+F);

(53) (A+B)&C&D;

(54) (A+B)&(C+D)&E;

(55) (A+B)&(C+D)&(E+F);

(56) (A+B+C)&D&E;

(57) !(A&(B+C));

(58) !(A&(B+C+D));

(59) !((A+B)&(C+D));

(60) !((A+B+C)&D);

(61) !((A+B+C)&(D+E));

(62) !((A+B+C)&(D+E+F));

(63) !((C+D)&A&B);

(64) !((A+B)&C&(D+E));

(65) !((A+B)&(C+D)&(E+F));

(66) !((A+B+C)&D&E);

(67)A+B 68 A+B +C 69 A+B+C+D;

(69) A&B+!A&!B;

(70) !A&!B&!C+A&B&!C+A&!B&C+!A&B&C;

(71) A&!B+!A&B; and,

(72) A&!B&!C+!A&B&!C+!A&!B&C+A&B&C;

and;

selecting, using said computer, a plurality of complex cells the group that consists of logic cells (i)-(xii) below:

(i)((!D & A & B)+(!D & A & C)+(!D & B & C)+(!D & C) +(E & F));

(ii) ((!D & !E)+(!D & A & B)+(!D & B & C));

(iii) ((!C & A & F)+(!C & A & !E & !B)+(!C & F & !E & !B)+(!C & !E & !B) +(E & D & G)+(B & D & G));

(iv)((!D & A & B)+(!D & A & C)+(!D & B & C)+(!D & B)+(D & !A & !B)+(D & !B & !C));

(v) ((!D & !A)+(!D & B)+(!D & !C)+(!E & !A)+(!E & B)+(!E & !C));

(vi) ((E & D)+(A & C)+(B & C));

(vii) ((A & D)+(A & !B & !C)+(D & !B & !C)+(!B & !C)+(E & F)+(E & !G & !H)+(F & !G & !H)+(!G & !H));

(viii)((!D & !E & A & B)+(!D & !E & A & C)+(!D & !E & B & C)+(!D & !E & B)+(!D & E & !A & !B)+(!D & E & !B & !C)+(D & !E & !A & !B)+(D & !E & !B & !C) +(D & E & A & B)+(D & E & A & C)+(D & E & B & C)+(D & E & B));

(ix)((!F & C)+(!F & !E & !D & A)+(!F & !E & !D & B)+(!F & !E & A)+(!F & !E & B)+(!F & !D & A)+(!F & !D & B)+(C & E & D)+( C & E & !A & !B)+(C & D & !A & !B)+(C & !A & !B));

(x)((!D & !A & B)+(!D & A & !B)+(C & !A & !B)+( C & A & B));

(xi) ((!D & A & !B)+(!D & A & !C)+(!D & A)+(!D & !B & !C)+(!E & A & !B) +(!E & A & !C)+(!E & A)+(!E & !B & !C));

(xii) ((E & !A & !B)+(E & !A & !C)+(E & !B & !C)+(E & !C)+(E & !D)+(A & C & !D)+(B & C & !D));

wherein said complex cells are not formed from combination(s) of simple cells in said collection.

2. The method of selecting the collection of logic cells, as defined in claim 1 , wherein said collection includes at least some of said complex cells in multiple drive strengths.

3. The method of selecting the collection of logic cells, as defined in claim 1 , wherein over 75% of the cells in said collection are complex cells.

4. The method of selecting the collection of logic cells, as defined in claim 1 , wherein said collection includes fewer than forty distinct logic cells.

5. A method of forming a portion of an integrated circuit from collection of logic cells that each implement a Boolean Logic Function and are stored on a computer, the method comprising:

instantiating into the portion of the integrated circuit at least four simple cells that are stored on the computer and selected from the group that consists of logic cells (1)-(72) below:

(1) A&B;

(2) A&B&C;

(3) A&B&C&D;

(4) A&B+C;

(5) A&B+C&D;

(6) A&B&C+D;

(7) A&B&C+D&E;

(8) A&B&C+D&E&F

(9) A&B+C+D;

(10) A&B+C&D+E;

(11) A&B+C&D+E&F;

(12) A&B&C+D+E

(13) A&B&C+D&E+F;

(14) !(A&B+C);

(15) !(A&B&C+D);

(16) !(A&B+C&D);

(17) !(A&B&C+D);

(18) !(A&B&C+D&E);

(19) !(A&B&C+D&E&F);

(20) !(A&B+C+D);

(21) !(A&B+C&D+E);

(22) !(A&B+C&D+E&F);

(23) !(A&B&C+D+E);

(24) !(A&B&C+D&E+F);

(25) (A&B+C)&D;

(26) ((A+B)&C)+D;

(27) !((A&B+C)&D);

(28) !(((A+B)&C)+D);

(29) A&!B+C&B;

(30) !A&!B+C&B;

(31) A&!B&!C+D&B&!C+E&!B&C;

(32) A&!B&!C +D&B&!C+E&!B&C+F&B&C;

(33) !(A&!B+C&B).

(34) !(A&!B&!C+D&B&!C+E&!B&C);

(35) !(A&!B&!C+D&B&!C+E&!B&C+F&B&C);

(36) !(A&B);

(37) !(!A&B);

(38) !(A&B&C);

(39) !(!A&B&C);

(40) !(A&B&C&D);

(41) !(!A&!B&C&D);

(42) !(A+B);

(43) !(!A+B);

(44) !(A+B+C);

(45) !(!A+B+C);

(46) !(A+B+C+D);

(47) !(!A+!B+C+D);

(48) (A+B)&C;

(49) (A+B)&(C+D);

(50) (A+B+C)&D;

(51) (A+B+C)&(D+E);

(52) (A+B+C)&(D+E+F);

(53) (A+B)&C&D;

(54) (A+B)&(C+D)&E;

(55) (A+B)&(C+D)&(E+F);

(56) (A+B+C)&D&E;

(57) !(A&(B+C));

(58) !(A&(B+C+D));

(59) !((A+B)&(C+D));

(60) !((A+B +C)&D);

(61) !((A+B+C)&(D+E));

(62) !((A+B+C)&(D+E+F));

(63) !((C+D)&A&B);

(64) !((A+B)&C&(D+E));

(65) !((A+B)&(C+D)&(E+F));

(66) !((A+B+C)&D&E);

(67) A+B 68 A+B+C 69 A+B+C+D;

(69) A&B+!A&!B;

(70) !A&!B&!C+A&B&!C+A&!B&C+!A&B&C;

(71) A&!B+!A&B; and,

(72) A&!B&!C+!A&B&!C+!A&!B&C+A&B&C;

and;

instantiating into the portion of the integrated circuit a plurality of complex cells that are stored on the computer and selected from the group that consists of logic cells (i)-(xii) below:

(i)((!D & A & B)+(!D & A & C)+(!D & B & C) +(!D & C)+(E & F));

(ii) ((!D & !E)+(!D & A & B)+(!D & B & C));

(iii) ((!C & A & F)+(!C & A & !E & !B)+(!C & F & !E & !B)+(!C & !E & !B) +(E & D & G)+(B & D & G));

(iv)((!D & A & B)+(!D & A & C)+(!D &B & C)+(!D & B)+( D & !A &!B) +(D & !B & !C));

(v) ((!D & !A)+(!D & B)+(!D & !C)+(!E & !A)+(!E & B)+(!E & !C));

(vi) ((E & D)+(A & C)+(B & C));

(vii) ((A & D)+(A & !B & !C)+(D & !B & !C)+(!B & !C)+(E & F)+(E & !G & !H)+(F & !G & !H)+(!G & !H));

(viii)((!D & !E & A & B)+(!D & !E & A & C)+(!D & !E & B & C)+(!D & !E & B)+(!D & E & !A & !B)+(!D & E & !B & !C)+(D & !E & !A & !B)+(D & !E & !B & !C)+(D & E & A & B)+(D & E & A & C)+(D & E & B & C)+(D & E & B));

(ix)((!F & C)+(!F & !E & !D & A)+(!F & !E & !D & B)+(!F & !E & A)+(!F & !E & B)+(!F & !D & A)+(!F & !D & B)+(C & E & D)+(C & E & !A & !B)+(C & D & !A & !B)+(C & !A & !B));

(x) ((!D & !A & B)+(!D & A & !B) +(C & !A & !B) +(C & A & B));

(xi) ((!D & A & !B)+(!D & A & !C)+(!D & A)+(!D & !B & !C)+(!E & A & !B) +(!E & A & !C) +(!E & A)+(!E & !B & !C));

(xii) ((E & !A & !B)+(E & !A & !C)+(E & !B & !C)+(E & !C)+(E & !D)+(A & C& !D)+(B & C & !D));

wherein the instantiated complex cells are not formed from combination(s) of simple cells.

6. The method, as defined in claim 5 , wherein instantiating a plurality of complex cells includes instantiating at least some of said complex cells in multiple drive strengths.

7. The method, as defined in claim 5 , wherein over 75% of the instantiated cells are complex cells.

8. The method, as defined in claim 5 , wherein said cells are instantiated from a library that includes fewer than forty distinct logic cells.

9. A method of using a library that includes a collection of logic cells that each implement a Boolean Logic Function by a computer-based synthesis tool, said method comprising:

selecting from the library using the computer-based synthesis tool at least four simple cells selected from the group that consists of logic cells (1)-(72) below:

(1) A&B;

(2) A&B&C;

(3) A&B&C&D;

(4) A&B+C;

(5) A&B+C&D;

(6) A&B&C+D;

(7) A&B&C+D&E;

(8) A&B&C+D&E&F

(9) A&B+C+D;

(10) A&B+C&D+E;

(11) A&B+C&D+E&F;

(12) A&B&C+D+E

(13) A&B&C +D&E +F;

(14) !(A&B+C);

(15) !(A&B&C+D);

(16) !(A&B+C&D);

(17) !(A&B&C+D);

(18) !(A&B&C+D&E);

(19) !(A&B&C+D&E&F);

(20) !(A&B+C+D);

(21) !(A&B+C&D+E);

(22) !(A&B+C&D+E&F);

(23) !(A&B&C+D+E);

(24) !(A&B&C+D&E+F);

(25) (A&B+C)&D;

(26) ((A+B)&C)+D;

(27) !((A&B +C)&D);

(28) !(((A+B)&C)+D);

(29) A&!B+C&B;

(30) !A&!B+C&B;

(31) A&!B&!C+D&B&!C+E&!B&C;

(32) A&!B&!C+D&B&!C+E&!B&C+F&B&C;

(33) !(A&!B+C&B).

(34) !(A&!B&!C+D&B&!C+E&!B&C);

(35) !(A&!B&!C+D&B&!C+E&!B&C+F&B&C);

(36) !(A&B);

(37) !(!A&B);

(38) !(A&B&C);

(39) !(!A&B&C);

(40) !(A&B&C&D);

(41) !(!A&!B&C&D);

(42) !(A+B);

(43) !(!A+B);

(44) !(A+B+C);

(45) !(!A+B+C);

(46) !(A +B +C +D);

(47) !(!A+!B+C+D);

(48) (A+B)&C;

(49) (A+B)&(C+D);

(50) (A+B+C)&D;

(51) (A+B+C)&(D+E);

(52) (A+B+C)&(D+E+F);

(53) (A +B)&C&D;

(54) (A +B)&(C+D)&E;

(55) (A+B)&(C+D)&(E+F);

(56) (A+B+C)&D&E;

(57) !(A&(B+C));

(58) !(A&(B+C+D));

(59) !((A+B)&(C+D));

(60) !((A+B+C)&D);

(61) !((A+B+C)&(D+E));

(62) !((A+B+C)&(D+E+F));

(63) !((C+D)&A&B);

(64) !((A+B)&C&(D+E));

(65) !((A+B)&(C+D)&(E+F));

(66) !((A+B+C)&D&E);

(67) A+B 68 A+B+C 69 A+B+C+D;

(69) A&B +!A&!B;

(70) !A&!B&!C +A&B&!C +A&!B&C +!A&B&C;

(71) A&!B +!A&B; and,

(72) A&!B&!C +!A&B&!C +!A&!B&C +A&B&C;

and;

selecting from the library using the computer-based synthesis tool a plurality of complex cells selected from the group that consists of logic cells (i)-(xii) below:

(i)((!D & A & B)+(!D & A & C)+(!D & B & C)+(!D & C)+(E & F));

(ii) ((!D & !E) +(!D & A & B) +(!D & B & C));

(iii) ((!C & A & F) +(!C & A & !E & !B) +(!C & F & !E & !B) +(!C & !E & !B) +(E & D & G)+(B & D & G));

(iv)((!D & A & B)+(!D & A & C)+.(!D & B & C)+(!D & B)+(D & !A &!B) +(D & !B & !C));

(v) ((!D & !A) +(!D & B) +(!D & !C) +(!E & !A) +(!E & B) +(!E & !C));

(vi) ((E & D) +(A & C) +(B & C));

(vii) ((A & +(A& !B & !C) +(D & !B & !C) +(!B & !C) +(E & +(E& !G & !H) +(F & !G& !H) +(!G & !H));

(viii)((!D & !E & A & B)+(!D & !E & A & C)+(!D & !E & B & C)+(!D & !E & B)+(!D & E & !A & !B)+(!D & E & !B & !C)+(D & !E & !A & !B)+(D & !E & !B & !C)+(D & E & A & B)+(D & E & A & C)+(D & E & B & C)+(D & E & B));

(ix)((!F & C)+(!F & !E & !D & A)+(!F & !E & !D & B)+(!F & !E & A)+(!F& !E & B)+F & !D & A)+(!F & !D & B)+(C & E & D)+(C & E & !A & !B)+(C & D & !A & !B) +(C & !A & !B));

(x)((!D & !A & B)+(!D & A & !B)+(C & !A & !B)+(C & A & B));

(xi) ((!D & A & !B) +(!D & A & !C) +(!D & A) +(!D & !B & !C) +(!E & A & !B) +(!E & A & !C) +& +(!E & !B & !C));

(xii) ((E & !A & !B) +(E & !A & !C) +(E & !B & !C) +(E & !C) +(E & !D) +(A & C& !D) +(B & C & !D));

wherein said complex cells are not formed from combination(s) of simple cells in said library.

10. The method of using the library, as defined in claim 9 , wherein said library includes at least some of said complex cells in multiple drive strengths.

11. The method of using the library, as defined in claim 9 , wherein over 75% of the cells in said library are complex cells.

12. The method of using the library, as defined in claim 9 , wherein said library includes fewer than forty distinct logic cells.

Assignments (1)
SECURITY INTEREST Recorded Apr 21, 2025
From: PDF SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 070893/0428 →