-
Notifications
You must be signed in to change notification settings - Fork 867
store original pin names during mbff clustering, add regressions, #10093
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
649366b
be6db00
bab9ce1
0c98b67
ffbdcd8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,6 +7,7 @@ or_integration_tests( | |
| clust02 | ||
| clust03 | ||
| cluster_place01 | ||
| mbff_orig_name | ||
| convergence01 | ||
| core01 | ||
| density01 | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| VERSION 5.8 ; | ||
| DIVIDERCHAR "/" ; | ||
| BUSBITCHARS "[]" ; | ||
| DESIGN tray_test ; | ||
| UNITS DISTANCE MICRONS 1000 ; | ||
| DIEAREA ( 0 0 ) ( 10000 10000 ) ; | ||
|
|
||
|
|
||
| COMPONENTS 4 ; | ||
| - ff1 DFFHQNx1_ASAP7_75t_L + PLACED ( 6000 6000 ) N ; | ||
| - ff2 DFFHQNx1_ASAP7_75t_L + PLACED ( 4000 6000 ) N ; | ||
| - ff3 DFFHQNx1_ASAP7_75t_L + PLACED ( 4000 4000 ) N ; | ||
| - ff4 DFFHQNx1_ASAP7_75t_L + PLACED ( 6000 4000 ) N ; | ||
| END COMPONENTS | ||
|
|
||
| PINS 1 ; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Trivial. Pin count is wrong |
||
| - clk1 + NET clk1 + DIRECTION INPUT + USE SIGNAL + FIXED ( 0 0 ) N + LAYER M1 ( 0 0 ) ( 180 180 ) ; | ||
| - d1 + NET d1 + DIRECTION INPUT + USE SIGNAL + FIXED ( 360 0 ) N + LAYER M1 ( 0 0 ) ( 180 180 ) ; | ||
| - d2 + NET d2 + DIRECTION INPUT + USE SIGNAL + FIXED ( 540 0 ) N + LAYER M1 ( 0 0 ) ( 180 180 ) ; | ||
| - d3 + NET d3 + DIRECTION INPUT + USE SIGNAL + FIXED ( 720 0 ) N + LAYER M1 ( 0 0 ) ( 180 180 ) ; | ||
| - d4 + NET d4 + DIRECTION INPUT + USE SIGNAL + FIXED ( 900 0 ) N + LAYER M1 ( 0 0 ) ( 180 180 ) ; | ||
| - o1 + NET o1 + DIRECTION INPUT + USE SIGNAL + FIXED ( 360 10000 ) N + LAYER M1 ( 0 0 ) ( 180 180 ) ; | ||
| - o2 + NET o2 + DIRECTION INPUT + USE SIGNAL + FIXED ( 540 10000 ) N + LAYER M1 ( 0 0 ) ( 180 180 ) ; | ||
| - o3 + NET o3 + DIRECTION INPUT + USE SIGNAL + FIXED ( 720 10000 ) N + LAYER M1 ( 0 0 ) ( 180 180 ) ; | ||
| - o4 + NET o4 + DIRECTION INPUT + USE SIGNAL + FIXED ( 900 10000 ) N + LAYER M1 ( 0 0 ) ( 180 180 ) ; | ||
| END PINS | ||
|
|
||
|
|
||
| NETS 1 ; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Net count is also wrong. |
||
| - clk1 ( PIN clk1 ) ( ff1 CLK ) ( ff2 CLK ) ( ff3 CLK ) ( ff4 CLK ) + USE SIGNAL ; | ||
| - d1 ( PIN d1 ) ( ff1 D ) + USE SIGNAL ; | ||
| - d2 ( PIN d2 ) ( ff2 D ) + USE SIGNAL ; | ||
| - d3 ( PIN d3 ) ( ff3 D ) + USE SIGNAL ; | ||
| - d4 ( PIN d4 ) ( ff4 D ) + USE SIGNAL ; | ||
| - o1 ( PIN o1 ) ( ff1 QN ) + USE SIGNAL ; | ||
| - o2 ( PIN o2 ) ( ff2 QN ) + USE SIGNAL ; | ||
| - o3 ( PIN o3 ) ( ff3 QN ) + USE SIGNAL ; | ||
| - o4 ( PIN o4 ) ( ff4 QN ) + USE SIGNAL ; | ||
| END NETS | ||
|
|
||
| END DESIGN | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| [INFO ODB-0227] LEF file: ./asap7/asap7_tech_1x_201209.lef, created 30 layers, 9 vias | ||
| [INFO ODB-0227] LEF file: ./SingleBit/asap7sc7p5t_28_L_1x_220121a.lef, created 212 library cells | ||
| [INFO ODB-0227] LEF file: ./2BitTrayH2/asap7sc7p5t_DFFHQNV2X.lef, created 9 library cells | ||
| [INFO ODB-0394] Duplicate site asap7sc7p5t_pg in asap7sc7p5t_DFFHQNV4X already seen in asap7sc7p5t_DFFHQNV2X | ||
| [INFO ODB-0227] LEF file: ./4BitTrayH4/asap7sc7p5t_DFFHQNV4X.lef, created 9 library cells | ||
| [INFO ODB-0394] Duplicate site asap7sc7p5t_pg in asap7sc7p5t_DFFHQNH2V2X already seen in asap7sc7p5t_DFFHQNV2X | ||
| [INFO ODB-0227] LEF file: ./4BitTrayH2W2/asap7sc7p5t_DFFHQNH2V2X.lef, created 9 library cells | ||
| [INFO ODB-0128] Design: tray_test | ||
| [INFO ODB-0130] Created 9 pins. | ||
| [INFO ODB-0131] Created 4 components and 20 component-terminals. | ||
| [INFO ODB-0133] Created 9 nets and 12 connections. | ||
| Alpha = 40.0, Beta = 1.0, #paths = 0, max size = -1 | ||
| Total ILP Cost: 97.228 | ||
| Total Timing Critical Path Displacement: 0.0 | ||
| Average slot-to-flop displacement: 0.865 | ||
| Final Objective Value: 97.228 | ||
| Sizes used | ||
| 2-bit: 2 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Minor. How about adding 4-bit test too? |
||
| Startpoint: d1 (input port clocked by clk) | ||
| Endpoint: _tray_size2_7 (rising edge-triggered flip-flop clocked by clk) | ||
| Path Group: clk | ||
| Path Type: max | ||
|
|
||
| Delay Time Description Orig Name | ||
| --------------------------------------------------------------------------------------------- | ||
| 0.00 0.00 clock clk (rise edge) | ||
| 0.00 0.00 clock network delay (ideal) | ||
| 0.00 0.00 ^ input external delay | ||
| 0.00 0.00 ^ d1 (in) | ||
| 0.00 0.00 ^ _tray_size2_7/D1 (DFFHQNV2Xx1_ASAP7_75t_L) ff1/D | ||
| 0.00 data arrival time | ||
|
|
||
| 1000.00 1000.00 clock clk (rise edge) | ||
| 0.00 1000.00 clock network delay (ideal) | ||
| 0.00 1000.00 clock reconvergence pessimism | ||
| 1000.00 ^ _tray_size2_7/CLK (DFFHQNV2Xx1_ASAP7_75t_L) | ||
| -22.99 977.01 library setup time | ||
| 977.01 data required time | ||
| --------------------------------------------------------------------------------------------- | ||
| 977.01 data required time | ||
| -0.00 data arrival time | ||
| --------------------------------------------------------------------------------------------- | ||
| 977.01 slack (MET) | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| source helpers.tcl | ||
| set test_name mbff_orig_name | ||
|
|
||
| read_lef ./asap7/asap7_tech_1x_201209.lef | ||
| read_lef ./SingleBit/asap7sc7p5t_28_L_1x_220121a.lef | ||
| read_lib ./SingleBit/asap7sc7p5t_SEQ_LVT_TT_nldm_220123.lib | ||
|
|
||
| read_lef ./2BitTrayH2/asap7sc7p5t_DFFHQNV2X.lef | ||
| read_lib ./2BitTrayH2/asap7sc7p5t_DFFHQNV2X_LVT_TT_nldm_FAKE.lib | ||
|
|
||
| read_lef ./4BitTrayH4/asap7sc7p5t_DFFHQNV4X.lef | ||
| read_lib ./4BitTrayH4/asap7sc7p5t_DFFHQNV4X_LVT_TT_nldm_FAKE.lib | ||
|
|
||
| read_lef ./4BitTrayH2W2/asap7sc7p5t_DFFHQNH2V2X.lef | ||
| read_lib ./4BitTrayH2W2/asap7sc7p5t_DFFHQNH2V2X_LVT_TT_nldm_FAKE.lib | ||
|
|
||
| read_def ./$test_name.def | ||
|
|
||
| create_clock -name clk -period 1000 [get_ports clk1] | ||
| set_input_delay -clock clk 0 [get_ports {d1 d2 d3 d4}] | ||
|
|
||
| cluster_flops -tray_weight 40.0 \ | ||
| -timing_weight 1.0 \ | ||
| -max_split_size -1 \ | ||
| -num_paths 0 | ||
|
|
||
| # Report timing to verify original FF names appear in the path report. | ||
| # After clustering the tray pin descriptions should show in the Orig Name column. | ||
| report_checks -path_delay max -fields {orig_name} -through [get_pins _tray_size2_7/D1] |
| +2 −1 | include/sta/Sta.hh | |
| +41 −19 | search/ReportPath.cc | |
| +5 −1 | search/ReportPath.hh | |
| +4 −2 | search/Search.i | |
| +6 −2 | search/Search.tcl | |
| +4 −2 | search/Sta.cc | |
| +2 −2 | search/test/cpp/TestSearchStaDesign.cc | |
| +4 −4 | search/test/cpp/TestSearchStaInit.cc | |
| +5 −5 | search/test/cpp/TestSearchStaInitB.cc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@maliberty Why a while loop to disconnect the iterm? An iterm cannot have multiple connections in OpenDB, can it? If an dbITerm connects to exactly zero or one dbNet, then this while loop runs exactly once always. This was an existing structure so I did not touch it, but have this question.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@therealshreyas I believe question goes back to your original implementation. Do you recall the reasoning?