| UP PREV NEXT |
gate count 1539 number of cells 832 number of library cells 18 number of used cells 17 max fanin 13 max input capacitance 176 max internal fanout 40 critical path 0fF 2764 critical path 6fF 3778 |
|
aoi21
| |
iv1
| |
mxi2
| |
nd2a
| |
nd2
| |
nd3
| |
nr2a
| |
nr2
| |
nr3
| |
oai21
| |
xnr2
| |
xor2
|
All the cells now exist to check whether a library limited to a very small range of cells can equal the performance achievable with a rich library. The small library is the one given in the paper on the CyHP (Compact yet High Performance) library of 20 cells, 17 of which are combinatorial logic. To this list is added the 2-XOR gate, to add to the 2-XNOR gate, since its absence causes inefficiencies for BOOG synthesis.
The library cells are:
aoi21 x1 iv1 x1 x2 x4 x8 x12 mxi2 x1 nd2a x2 nd2 x2 x4 nd3 x1 nr2a x2 nr2 x1 x2 nr3 x1 oai21 x1 xnr2 x1 xor2 x1 |
The performance results are comparable with previous experiments having a similar number of cells, being 4.3% faster than achieved with the first synthesis with multiple drive strength inverters, a library with 28 cells. The biggest improvement in performance has come by adding multiple drive strengths to commonly used cells (like the oai21). Since this does not exist in the CyHP library, it is doubtful whether really it can ever achieve a good performance level.
The critical path is
fanout -- delay--
x 1 13 176
1 nd2v0x4 1 b->z 231 55
2 iv1v0x4 1 a->z 275 44
3 nd2av0x2 1 a->z 393 118
4 nd2v0x4 1 b->z 445 52
5 nd2av0x2 4 b->z 588 143
6 xor2v0x1 2 b->z 721 133
7 nd2v0x2 1 a->z 786 65
8 nd3v0x1 4 c->z 963 177
9 nd2v0x2 1 a->z 1028 65
10 nd3v0x1 4 c->z 1199 171
11 nd2v0x2 1 a->z 1264 65
12 nd3v0x1 4 c->z 1435 171
13 nd2v0x2 1 a->z 1500 65
14 nd3v0x1 4 c->z 1677 177
15 nd2v0x2 1 a->z 1741 64
16 nd3v0x1 4 c->z 1921 180
17 nd2v0x2 1 a->z 1985 64
18 nd3v0x1 4 c->z 2168 183
19 nd2v0x2 1 a->z 2233 65
20 nd3v0x1 3 c->z 2386 153
21 iv1v0x4 2 a->z 2439 53
22 nr2av0x2 1 a->z 2554 115
23 oai21v0x1 3 a2->z 2736 182
24 xor2v0x1 2 b->z 2867 131
25 nd2v0x2 1 a->z 2931 64
26 nd3v0x1 3 c->z 3080 149
27 nd2v0x2 1 a->z 3145 65
28 nd3v0x1 2 c->z 3276 131
29 nd2v0x4 1 b->z 3341 65
30 iv1v0x8 2 a->z 3391 50
31 nd2v0x4 1 b->z 3456 65
32 iv1v0x8 2 a->z 3505 49
33 nd2v0x4 1 b->z 3558 53
34 xnr2v0x1 0 b->z 3778 220
r 15 |
The library is well used. The only cell not used is
the mxi2v0x1.
But for synthesis with Alliance,
and probably other more sophisticated synthesis software,
such a limited library is not a good solution.
| Table of synthesis results | |||||||
| critical path (ps) | gate count | cell count | porosity | library cells | used cells | ||
| synthesis 1 | 4279 | 1561 | 923 | 43% | 9 | 8 | basic inverters, NAND & NOR gates |
| synthesis 2 | 4236 | 1472 | 792 | 45% | 15 | 12 | AND & OR gates |
| synthesis 3 | 4157 | 1357 | 696 | 46% | 19 | 16 | AOI & OAI gates, 2/1 and 2/2 |
| synthesis 4 | 4157 | 1357 | 696 | 46% | 20 | 16 | mxi2 2-way inverting mux |
| synthesis 5 | 3983 | 1343 | 668 | 48% | 21 | 16 | cgi2 carry generator inverting |
| synthesis 6 | 3948 | 1352 | 668 | 48% | 28 | 18 | inverters with multiple drive strengths |
| synthesis 7 | 3061 | 1433 | 666 | 51% | 70 | 27 | x2 drive strengths for all functions |
| synthesis 8 | 3056 | 1456 | 666 | 52% | 70 | 30 | BOOG with x1 drive strengths |
| synthesis 9 | 2960 | 1476 | 666 | 53% | 70 | 32 | BOOG with x05 drive strengths |
| synthesis 10 | 2963 | 1480 | 666 | 53% | 76 | 34 | nd2a and nr2a cells |
| synthesis 11 | 2963 | 1480 | 666 | 53% | 79 | 34 | nd2ab type of 2-OR |
| CyHP library | 3778 | 1539 | 832 | 46% | 18 | 17 | Minimum size library |
In order to achieve this performance with Alliance synthesis, the following functions were coded as netlists.
| an2 | ![]() |
| an4 | ![]() |
| aon21 | ![]() |
| cgn2 | ![]() |
| or2 | ![]() |
| or3 | ![]() |
| or4 | ![]() |
| xaon21 | ![]() |
| xooi21 | ![]() |
| xoon21 | ![]() |
| UP PREV NEXT |