Issue(&nf): Missing delay transformation in genlib?
wjrforcyber opened this issue · 0 comments
wjrforcyber commented
It seems like the gate delay (<rise-block-delay> and <fall-block-delay>) in &nf
is not properly calculated and transformed as map
command does, for example (with verbose = 1):
ABC command line: "source -x /Users/jingrenwang/Github/ABC/abcOri/abc/testrec.script".
abc - > read_lib /Users/jingrenwang/Github/ABC/abcOri/abc/NangateOpenCellLibrary_typical.lib
Library "NangateOpenCellLibrary" from "/Users/jingrenwang/Github/ABC/abcOri/abc/NangateOpenCellLibrary_typical.lib" has 90 cells (35 skipped: 21 seq; 6 tri-state; 8 no func; 10 dont_use). Time = 0.06 sec
Warning: Detected 2 multi-output gates (for example, "FA_X1").
abc - > read_aiger /Users/jingrenwang/Github/ABC/abcOri/abc/i10.aig
abc - > &get
abc - > &nf -v
0 : _const0_ In = 0 N = 1 A = 0.000000 D = 0.000000
1 : _const1_ In = 0 N = 1 A = 0.000000 D = 0.000000
2 : BUF_X1 In = 1 N = 9 A = 0.800000 D = 1.000000
3 : INV_X1 In = 1 N = 6 A = 0.530000 D = 1.000000
4 : NAND2_X1 In = 2 N = 3 A = 0.800000 D = 1.000000
5 : NOR2_X1 In = 2 N = 3 A = 0.800000 D = 1.000000
6 : AND2_X1 In = 2 N = 3 A = 1.060000 D = 1.000000
7 : OR2_X1 In = 2 N = 3 A = 1.060000 D = 1.000000
8 : XNOR2_X1 In = 2 N = 2 A = 1.600000 D = 1.000000
9 : XOR2_X1 In = 2 N = 2 A = 1.600000 D = 1.000000
10 : AOI21_X1 In = 3 N = 3 A = 1.060000 D = 1.000000
11 : NAND3_X1 In = 3 N = 3 A = 1.060000 D = 1.000000
12 : NOR3_X1 In = 3 N = 3 A = 1.060000 D = 1.000000
13 : OAI21_X1 In = 3 N = 3 A = 1.060000 D = 1.000000
14 : AND3_X1 In = 3 N = 3 A = 1.330000 D = 1.000000
15 : OR3_X1 In = 3 N = 3 A = 1.330000 D = 1.000000
16 : MUX2_X1 In = 3 N = 2 A = 1.860000 D = 1.000000
17 : AOI211_X1 In = 4 N = 3 A = 1.330000 D = 1.000000
18 : AOI22_X1 In = 4 N = 3 A = 1.330000 D = 1.000000
19 : NAND4_X1 In = 4 N = 3 A = 1.330000 D = 1.000000
20 : NOR4_X1 In = 4 N = 3 A = 1.330000 D = 1.000000
21 : OAI211_X1 In = 4 N = 3 A = 1.330000 D = 1.000000
22 : OAI22_X1 In = 4 N = 3 A = 1.330000 D = 1.000000
23 : AND4_X1 In = 4 N = 3 A = 1.600000 D = 1.000000
24 : OR4_X1 In = 4 N = 3 A = 1.600000 D = 1.000000
25 : AOI221_X1 In = 5 N = 3 A = 1.600000 D = 1.000000
26 : OAI221_X1 In = 5 N = 3 A = 1.600000 D = 1.000000
27 : OAI33_X1 In = 6 N = 1 A = 1.860000 D = 1.000000
28 : AOI222_X1 In = 6 N = 3 A = 2.130000 D = 1.000000
29 : OAI222_X1 In = 6 N = 3 A = 2.130000 D = 1.000000
LutSize = 6 CutNum = 16 Iter = 4 Coarse = 0 Cells = 30 Funcs = 2291 Matches = 28512 And = 2675
Computing cuts...
CutPair = 319021 Merge = 123135 (46.0) Eval = 84235 (31.5) Cut = 31872 (11.9) Use = 14015 (5.2) Mat = 107231 (40.1)
Gia = 0.04 MB Man = 0.29 MB Cut = 0.75 MB TT = 0.16 MB Total = 1.23 MB Time = 0.02 sec
Delay : Delay = 22.00 Area = 1845.54 Gate = 1570 Inv = 99 Edge = 4273 Time = 0.02 sec
Area : Delay = 22.00 Area = 1581.77 Gate = 1391 Inv = 107 Edge = 3741 Time = 0.02 sec
Area : Delay = 22.00 Area = 1535.29 Gate = 1357 Inv = 134 Edge = 3626 Time = 0.02 sec
Area : Delay = 22.00 Area = 1497.07 Gate = 1332 Inv = 141 Edge = 3541 Time = 0.02 sec
Ela : Delay = 22.00 Area = 1457.33 Gate = 1293 Inv = 134 Edge = 3471 Time = 0.02 sec
Ela : Delay = 22.00 Area = 1445.11 Gate = 1283 Inv = 123 Edge = 3472 Time = 0.03 sec
abc - > &put
abc - > ps
�[1;37m/Users/jingrenwang/Github/ABC/abcOri/abc/i10:�[0m i/o = 257/ 224 lat = 0 nd = 1283 edge = 3467 area =1442.72 delay =22.00 lev = 22
abc - > print_delay
Critical path from PI "pi054" to PO "po011":
Level 0 : Primary input "pi054". Arrival time = 0.0.
Level 1 : n510/A (INV_X1) Arrival = 1.0. I/O times: (0.0 -> 1.0)
Level 2 : n566/A2 (NOR3_X1) Arrival = 2.0. I/O times: (0.0, 1.0, 0.0 -> 2.0)
Level 3 : n571/A3 (NAND4_X1) Arrival = 3.0. I/O times: (0.0, 0.0, 2.0, 2.0 -> 3.0)
Level 4 : n575/C1 (AOI211_X1) Arrival = 4.0. I/O times: (0.0, 2.0, 3.0, 3.0 -> 4.0)
Level 5 : n580/C1 (OAI211_X1) Arrival = 5.0. I/O times: (0.0, 1.0, 4.0, 4.0 -> 5.0)
Level 6 : n586/A3 (NOR4_X1) Arrival = 6.0. I/O times: (0.0, 3.0, 5.0, 3.0 -> 6.0)
Level 7 : n596/A2 (NOR4_X1) Arrival = 7.0. I/O times: (0.0, 6.0, 3.0, 3.0 -> 7.0)
Level 8 : n597/A4 (NAND4_X1) Arrival = 8.0. I/O times: (1.0, 0.0, 2.0, 7.0 -> 8.0)
Level 9 : n644/A1 (NAND2_X1) Arrival = 9.0. I/O times: (8.0, 8.0 -> 9.0)
Level 10 : n765/A2 (NAND3_X1) Arrival = 10.0. I/O times: (0.0, 9.0, 9.0 -> 10.0)
Level 11 : n766/A (OAI21_X1) Arrival = 11.0. I/O times: (10.0, 10.0, 9.0 -> 11.0)
Level 12 : n767/A (INV_X1) Arrival = 12.0. I/O times: (11.0 -> 12.0)
Level 13 : n879/A4 (NOR4_X1) Arrival = 13.0. I/O times: (11.0, 11.0, 4.0, 12.0 -> 13.0)
Level 14 : n880/A3 (NAND3_X1) Arrival = 14.0. I/O times: (0.0, 12.0, 13.0 -> 14.0)
Level 15 : n972/A1 (AND2_X1) Arrival = 15.0. I/O times: (14.0, 14.0 -> 15.0)
Level 16 : n974/C1 (AOI211_X1) Arrival = 16.0. I/O times: (1.0, 1.0, 15.0, 15.0 -> 16.0)
Level 17 : n977/A (AOI21_X1) Arrival = 17.0. I/O times: (16.0, 16.0, 2.0 -> 17.0)
Level 18 : n978/A (OAI221_X1) Arrival = 18.0. I/O times: (17.0, 16.0, 1.0, 1.0, 17.0 -> 18.0)
Level 19 : n979/A4 (AND4_X1) Arrival = 19.0. I/O times: (1.0, 13.0, 13.0, 18.0 -> 19.0)
Level 20 : n980/A3 (NAND3_X1) Arrival = 20.0. I/O times: (4.0, 13.0, 19.0 -> 20.0)
Level 21 : n1068/A2 (AND4_X1) Arrival = 21.0. I/O times: (5.0, 20.0, 4.0, 17.0 -> 21.0)
Level 22 : n1076/A1 (OR2_X1) Arrival = 22.0. I/O times: (21.0, 10.0 -> 22.0)
Level 23 : Primary output "po011". Required time = -1000000000.0. Path slack = -1000000000.0.
D keeps equals to 1.00 and all delay is calculated in 1.00, while the delay of map
is calculated in a proper way which has delay transferred.