Skip to content

Commit 19a6f21

Browse files
committed
Merge branch 'master' into mb@update
Signed-off-by: louiic <[email protected]>
2 parents 75720ae + 0005998 commit 19a6f21

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+4701
-2899
lines changed

docs/user/FlowVariables.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ Note:
7777
| Clock Tree Synthesis | | | | | |
7878
| `CTS_BUF_CELL` | = | = | = | = | = |
7979
| `CTS_BUF_DISTANCE` | N/A | N/A | N/A | = | = |
80-
| `ENABLE_GATE_CLONING` | ?= | ?= | ?= | ?= | ?= |
8180
| `FILL_CELLS` | = | = | = | = | = |
81+
| `SKIP_GATE_CLONING` | ?= | ?= | ?= | ?= | ?= |
8282
| `SKIP_PIN_SWAP` | ?= | ?= | ?= | ?= | ?= |
8383
| `TNS_END_PERCENT` | ?= | ?= | | ?= | ?= |
8484
| Routing | | | | | |
@@ -88,6 +88,7 @@ Note:
8888
| `MAX_ROUTING_LAYER` | = | = | = | = | ?= |
8989
| `MIN_ROUTING_LAYER` | = | = | = | = | ?= |
9090
| `RCX_RULES` | = | = | = | = | = |
91+
| `RECOVER_POWER` | ?= | ?= | ?= | ?= | ?= |
9192

9293

9394
### Library Setup
@@ -169,10 +170,10 @@ Note:
169170
| Variable | Description |
170171
|-----------------------|--------------------------------------------------------------------------------------------------------------|
171172
| `CTS_BUF_CELL` | The buffer cell used in the clock tree. |
172-
| `ENABLE_GATE_CLONING` | Use gate cloning transform to fix timing violations when appropriate (default: do not use cloning) |
173173
| `FILL_CELLS` | Fill cells are used to fill empty sites. |
174174
| `HOLD_SLACK_MARGIN` | Specifies a time margin for the slack when fixing hold violations. This option allow you to overfix. |
175175
| `SETUP_SLACK_MARGIN` | Specifies a time margin for the slack when fixing setup violations. |
176+
| `SKIP_GATE_CLONING` | Do not use gate cloning transform to fix timing violations (default: use gate cloning) |
176177
| `SKIP_PIN_SWAP` | Do not use pin swapping as a transform to fix timing violations (default: use pin swapping) |
177178
| `TNS_END_PERCENT` | Specifies how many percent of violating paths to fix [0-100]. Worst path will always be fixed |
178179

@@ -181,11 +182,12 @@ Note:
181182

182183

183184
| Variable | Description |
184-
|-----------------------|-------------------------------------------------------------------------|
185-
| `MIN_ROUTING_LAYER` | The lowest metal layer name to be used in routing. |
186-
| `MAX_ROUTING_LAYER` | The highest metal layer name to be used in routing. |
187-
| `DETAILED_ROUTE_ARGS` | Add additional arguments for debugging purpose during detail route. |
188-
| `MACRO_EXTENSION` | Sets the number of GCells added to the blockages boundaries from macros.|
185+
|-----------------------|---------------------------------------------------------------------------------------------------|
186+
| `MIN_ROUTING_LAYER` | The lowest metal layer name to be used in routing. |
187+
| `MAX_ROUTING_LAYER` | The highest metal layer name to be used in routing. |
188+
| `DETAILED_ROUTE_ARGS` | Add additional arguments for debugging purpose during detail route. |
189+
| `MACRO_EXTENSION` | Sets the number of GCells added to the blockages boundaries from macros. |
190+
| `RECOVER_POWER` | Specifies how many percent of paths with positive slacks can be slowed for power savings [0-100]. |
189191

190192

191193
### Extraction
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
export PLATFORM = asap7
2+
3+
export DESIGN_NAME = aes_cipher_top
4+
export DESIGN_NICKNAME = aes_lvt
5+
6+
export VERILOG_FILES = $(sort $(wildcard ./designs/src/$(DESIGN_NICKNAME)/*.v))
7+
export SDC_FILE = ./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint.sdc
8+
9+
export ABC_AREA = 1
10+
11+
export CORE_UTILIZATION = 40
12+
export CORE_ASPECT_RATIO = 1
13+
export CORE_MARGIN = 2
14+
export PLACE_DENSITY = 0.65
15+
export TNS_END_PERCENT = 100
16+
17+
export ASAP7_USELVT = 1
18+
export ADDITIONAL_LIBS = $(PLATFORM_DIR)/lib/asap7sc7p5t_AO_RVT_FF_nldm_211120.lib.gz \
19+
$(PLATFORM_DIR)/lib/asap7sc7p5t_INVBUF_RVT_FF_nldm_220122.lib.gz \
20+
$(PLATFORM_DIR)/lib/asap7sc7p5t_OA_RVT_FF_nldm_211120.lib.gz \
21+
$(PLATFORM_DIR)/lib/asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz \
22+
$(PLATFORM_DIR)/lib/asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib
23+
24+
export ADDITIONAL_GDS = $(PLATFORM_DIR)/gds/asap7sc7p5t_28_R_220121a.gds
25+
export ADDITIONAL_LEFS = $(PLATFORM_DIR)/lef/asap7sc7p5t_28_R_1x_220121a.lef
26+
27+
export RECOVER_POWER = 20
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
set clk_name clk
2+
set clk_port_name clk
3+
set clk_period 400
4+
set clk_io_pct 0.2
5+
6+
set clk_port [get_ports $clk_port_name]
7+
8+
create_clock -name $clk_name -period $clk_period $clk_port
9+
10+
set non_clock_inputs [lsearch -inline -all -not -exact [all_inputs] $clk_port]
11+
12+
set_input_delay [expr $clk_period * $clk_io_pct] -clock $clk_name $non_clock_inputs
13+
set_output_delay [expr $clk_period * $clk_io_pct] -clock $clk_name [all_outputs]
Lines changed: 273 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,273 @@
1+
{
2+
"constraints__clocks__count": 1,
3+
"constraints__clocks__details": [
4+
"clk: 400.0000"
5+
],
6+
"cts__clock__skew__hold": 14.7663,
7+
"cts__clock__skew__hold__post_repair": 12.5163,
8+
"cts__clock__skew__hold__pre_repair": 12.5163,
9+
"cts__clock__skew__setup": 14.7663,
10+
"cts__clock__skew__setup__post_repair": 12.5163,
11+
"cts__clock__skew__setup__pre_repair": 12.5163,
12+
"cts__design__core__area": 5569.33,
13+
"cts__design__core__area__post_repair": 5569.33,
14+
"cts__design__core__area__pre_repair": 5569.33,
15+
"cts__design__die__area": 6214.96,
16+
"cts__design__die__area__post_repair": 6214.96,
17+
"cts__design__die__area__pre_repair": 6214.96,
18+
"cts__design__instance__area": 2854.27,
19+
"cts__design__instance__area__macros": 0,
20+
"cts__design__instance__area__macros__post_repair": 0,
21+
"cts__design__instance__area__macros__pre_repair": 0,
22+
"cts__design__instance__area__post_repair": 2522.14,
23+
"cts__design__instance__area__pre_repair": 2522.14,
24+
"cts__design__instance__area__stdcell": 2854.27,
25+
"cts__design__instance__area__stdcell__post_repair": 2522.14,
26+
"cts__design__instance__area__stdcell__pre_repair": 2522.14,
27+
"cts__design__instance__count": 26066,
28+
"cts__design__instance__count__hold_buffer": 743.0,
29+
"cts__design__instance__count__macros": 0,
30+
"cts__design__instance__count__macros__post_repair": 0,
31+
"cts__design__instance__count__macros__pre_repair": 0,
32+
"cts__design__instance__count__post_repair": 22657,
33+
"cts__design__instance__count__pre_repair": 22657,
34+
"cts__design__instance__count__setup_buffer": 2666.0,
35+
"cts__design__instance__count__stdcell": 26066,
36+
"cts__design__instance__count__stdcell__post_repair": 22657,
37+
"cts__design__instance__count__stdcell__pre_repair": 22657,
38+
"cts__design__instance__displacement__max": 8.427,
39+
"cts__design__instance__displacement__mean": 0.213,
40+
"cts__design__instance__displacement__total": 5564.24,
41+
"cts__design__instance__utilization": 0.512498,
42+
"cts__design__instance__utilization__post_repair": 0.452862,
43+
"cts__design__instance__utilization__pre_repair": 0.452862,
44+
"cts__design__instance__utilization__stdcell": 0.512498,
45+
"cts__design__instance__utilization__stdcell__post_repair": 0.452862,
46+
"cts__design__instance__utilization__stdcell__pre_repair": 0.452862,
47+
"cts__design__io": 388,
48+
"cts__design__io__post_repair": 388,
49+
"cts__design__io__pre_repair": 388,
50+
"cts__design__violations": 0,
51+
"cts__route__wirelength__estimated": 91736.9,
52+
"cts__timing__drv__hold_violation_count": 0,
53+
"cts__timing__drv__hold_violation_count__post_repair": 260,
54+
"cts__timing__drv__hold_violation_count__pre_repair": 260,
55+
"cts__timing__drv__max_cap": 0,
56+
"cts__timing__drv__max_cap__post_repair": 0,
57+
"cts__timing__drv__max_cap__pre_repair": 0,
58+
"cts__timing__drv__max_cap_limit": 0.702167,
59+
"cts__timing__drv__max_cap_limit__post_repair": 0.702414,
60+
"cts__timing__drv__max_cap_limit__pre_repair": 0.702414,
61+
"cts__timing__drv__max_fanout": 0,
62+
"cts__timing__drv__max_fanout__post_repair": 0,
63+
"cts__timing__drv__max_fanout__pre_repair": 0,
64+
"cts__timing__drv__max_fanout_limit": 0,
65+
"cts__timing__drv__max_fanout_limit__post_repair": 0,
66+
"cts__timing__drv__max_fanout_limit__pre_repair": 0,
67+
"cts__timing__drv__max_slew": 0,
68+
"cts__timing__drv__max_slew__post_repair": 0,
69+
"cts__timing__drv__max_slew__pre_repair": 0,
70+
"cts__timing__drv__max_slew_limit": 0.436142,
71+
"cts__timing__drv__max_slew_limit__post_repair": 0.40892,
72+
"cts__timing__drv__max_slew_limit__pre_repair": 0.40892,
73+
"cts__timing__drv__setup_violation_count": 120,
74+
"cts__timing__drv__setup_violation_count__post_repair": 367,
75+
"cts__timing__drv__setup_violation_count__pre_repair": 367,
76+
"cts__timing__setup__tns": -1653.86,
77+
"cts__timing__setup__tns__post_repair": -25729,
78+
"cts__timing__setup__tns__pre_repair": -25729,
79+
"cts__timing__setup__ws": -27.6732,
80+
"cts__timing__setup__ws__post_repair": -150.755,
81+
"cts__timing__setup__ws__pre_repair": -150.755,
82+
"detailedplace__cpu__total": 25.54,
83+
"detailedplace__design__core__area": 5569.33,
84+
"detailedplace__design__die__area": 6214.96,
85+
"detailedplace__design__instance__area": 2496.85,
86+
"detailedplace__design__instance__area__macros": 0,
87+
"detailedplace__design__instance__area__stdcell": 2496.85,
88+
"detailedplace__design__instance__count": 22107,
89+
"detailedplace__design__instance__count__macros": 0,
90+
"detailedplace__design__instance__count__stdcell": 22107,
91+
"detailedplace__design__instance__displacement__max": 3.588,
92+
"detailedplace__design__instance__displacement__mean": 0.243,
93+
"detailedplace__design__instance__displacement__total": 5375.62,
94+
"detailedplace__design__instance__utilization": 0.448322,
95+
"detailedplace__design__instance__utilization__stdcell": 0.448322,
96+
"detailedplace__design__io": 388,
97+
"detailedplace__design__violations": 0,
98+
"detailedplace__mem__peak": 272648.0,
99+
"detailedplace__route__wirelength__estimated": 75436.7,
100+
"detailedplace__runtime__total": "0:25.76",
101+
"detailedplace__timing__drv__hold_violation_count": 0,
102+
"detailedplace__timing__drv__max_cap": 0,
103+
"detailedplace__timing__drv__max_cap_limit": 0.702414,
104+
"detailedplace__timing__drv__max_fanout": 0,
105+
"detailedplace__timing__drv__max_fanout_limit": 0,
106+
"detailedplace__timing__drv__max_slew": 0,
107+
"detailedplace__timing__drv__max_slew_limit": 0.408916,
108+
"detailedplace__timing__drv__setup_violation_count": 371,
109+
"detailedplace__timing__setup__tns": -25310.8,
110+
"detailedplace__timing__setup__ws": -147.946,
111+
"detailedroute__route__drc_errors": 0,
112+
"detailedroute__route__drc_errors__iter:1": 7814,
113+
"detailedroute__route__drc_errors__iter:2": 1260,
114+
"detailedroute__route__drc_errors__iter:3": 967,
115+
"detailedroute__route__drc_errors__iter:4": 1,
116+
"detailedroute__route__drc_errors__iter:5": 0,
117+
"detailedroute__route__net": 25501,
118+
"detailedroute__route__net__special": 2,
119+
"detailedroute__route__vias": 224947,
120+
"detailedroute__route__vias__multicut": 0,
121+
"detailedroute__route__vias__singlecut": 224947,
122+
"detailedroute__route__wirelength": 107768,
123+
"detailedroute__route__wirelength__iter:1": 108650,
124+
"detailedroute__route__wirelength__iter:2": 107982,
125+
"detailedroute__route__wirelength__iter:3": 107773,
126+
"detailedroute__route__wirelength__iter:4": 107767,
127+
"detailedroute__route__wirelength__iter:5": 107768,
128+
"finish__clock__skew__hold": 16.9658,
129+
"finish__clock__skew__setup": 16.5131,
130+
"finish__cpu__total": 55.09,
131+
"finish__design__core__area": 5569.33,
132+
"finish__design__die__area": 6214.96,
133+
"finish__design__instance__area": 2854.27,
134+
"finish__design__instance__area__macros": 0,
135+
"finish__design__instance__area__stdcell": 2854.27,
136+
"finish__design__instance__count": 26066,
137+
"finish__design__instance__count__macros": 0,
138+
"finish__design__instance__count__stdcell": 26066,
139+
"finish__design__instance__utilization": 0.512498,
140+
"finish__design__instance__utilization__stdcell": 0.512498,
141+
"finish__design__io": 388,
142+
"finish__mem__peak": 1452784.0,
143+
"finish__runtime__total": "0:55.54",
144+
"finish__timing__drv__hold_violation_count": 0.0,
145+
"finish__timing__drv__max_cap": 0,
146+
"finish__timing__drv__max_cap_limit": 0.700104,
147+
"finish__timing__drv__max_fanout": 0,
148+
"finish__timing__drv__max_fanout_limit": 0,
149+
"finish__timing__drv__max_slew": 0,
150+
"finish__timing__drv__max_slew_limit": 0.150706,
151+
"finish__timing__drv__setup_violation_count": 1.0,
152+
"finish__timing__setup__tns": -147.887,
153+
"finish__timing__setup__ws": -26.4503,
154+
"finish__timing__wns_percent_delay": -4.851525,
155+
"floorplan__cpu__total": 2.22,
156+
"floorplan__design__core__area": 5569.33,
157+
"floorplan__design__die__area": 6214.96,
158+
"floorplan__design__instance__area": 2128.42,
159+
"floorplan__design__instance__area__macros": 0,
160+
"floorplan__design__instance__area__stdcell": 2128.42,
161+
"floorplan__design__instance__count": 20872,
162+
"floorplan__design__instance__count__macros": 0,
163+
"floorplan__design__instance__count__stdcell": 20872,
164+
"floorplan__design__instance__utilization": 0.382168,
165+
"floorplan__design__instance__utilization__stdcell": 0.382168,
166+
"floorplan__design__io": 388,
167+
"floorplan__mem__peak": 190664.0,
168+
"floorplan__runtime__total": "0:02.33",
169+
"floorplan__timing__setup__tns": -210064,
170+
"floorplan__timing__setup__ws": -1777.33,
171+
"globalplace__cpu__total": 15.42,
172+
"globalplace__design__core__area": 5569.33,
173+
"globalplace__design__die__area": 6214.96,
174+
"globalplace__design__instance__area": 2152.62,
175+
"globalplace__design__instance__area__macros": 0,
176+
"globalplace__design__instance__area__stdcell": 2152.62,
177+
"globalplace__design__instance__count": 21702,
178+
"globalplace__design__instance__count__macros": 0,
179+
"globalplace__design__instance__count__stdcell": 21702,
180+
"globalplace__design__instance__utilization": 0.386514,
181+
"globalplace__design__instance__utilization__stdcell": 0.386514,
182+
"globalplace__design__io": 388,
183+
"globalplace__mem__peak": 252828.0,
184+
"globalplace__runtime__total": "0:15.61",
185+
"globalplace__timing__setup__tns": -450260,
186+
"globalplace__timing__setup__ws": -2955.35,
187+
"globalroute__antenna__violating__nets": 0,
188+
"globalroute__antenna__violating__pins": 0,
189+
"globalroute__clock__skew__hold": 15.6901,
190+
"globalroute__clock__skew__setup": 15.6901,
191+
"globalroute__design__core__area": 5569.33,
192+
"globalroute__design__die__area": 6214.96,
193+
"globalroute__design__instance__area": 2854.27,
194+
"globalroute__design__instance__area__macros": 0,
195+
"globalroute__design__instance__area__stdcell": 2854.27,
196+
"globalroute__design__instance__count": 26066,
197+
"globalroute__design__instance__count__macros": 0,
198+
"globalroute__design__instance__count__stdcell": 26066,
199+
"globalroute__design__instance__utilization": 0.512498,
200+
"globalroute__design__instance__utilization__stdcell": 0.512498,
201+
"globalroute__design__io": 388,
202+
"globalroute__timing__clock__slack": -38.796,
203+
"globalroute__timing__drv__hold_violation_count": 0,
204+
"globalroute__timing__drv__max_cap": 0,
205+
"globalroute__timing__drv__max_cap_limit": 0.686241,
206+
"globalroute__timing__drv__max_fanout": 0,
207+
"globalroute__timing__drv__max_fanout_limit": 0,
208+
"globalroute__timing__drv__max_slew": 0,
209+
"globalroute__timing__drv__max_slew_limit": 0.418915,
210+
"globalroute__timing__drv__setup_violation_count": 167,
211+
"globalroute__timing__setup__tns": -3305.45,
212+
"globalroute__timing__setup__ws": -38.7959,
213+
"placeopt__cpu__total": 15.42,
214+
"placeopt__design__core__area": 5569.33,
215+
"placeopt__design__core__area__pre_opt": 5569.33,
216+
"placeopt__design__die__area": 6214.96,
217+
"placeopt__design__die__area__pre_opt": 6214.96,
218+
"placeopt__design__instance__area": 2496.85,
219+
"placeopt__design__instance__area__macros": 0,
220+
"placeopt__design__instance__area__macros__pre_opt": 0,
221+
"placeopt__design__instance__area__pre_opt": 2152.62,
222+
"placeopt__design__instance__area__stdcell": 2496.85,
223+
"placeopt__design__instance__area__stdcell__pre_opt": 2152.62,
224+
"placeopt__design__instance__count": 22107,
225+
"placeopt__design__instance__count__macros": 0,
226+
"placeopt__design__instance__count__macros__pre_opt": 0,
227+
"placeopt__design__instance__count__pre_opt": 21702,
228+
"placeopt__design__instance__count__stdcell": 22107,
229+
"placeopt__design__instance__count__stdcell__pre_opt": 21702,
230+
"placeopt__design__instance__utilization": 0.448322,
231+
"placeopt__design__instance__utilization__pre_opt": 0.386514,
232+
"placeopt__design__instance__utilization__stdcell": 0.448322,
233+
"placeopt__design__instance__utilization__stdcell__pre_opt": 0.386514,
234+
"placeopt__design__io": 388,
235+
"placeopt__design__io__pre_opt": 388,
236+
"placeopt__mem__peak": 252828.0,
237+
"placeopt__runtime__total": "0:15.61",
238+
"placeopt__timing__drv__hold_violation_count": 0,
239+
"placeopt__timing__drv__max_cap": 0,
240+
"placeopt__timing__drv__max_cap_limit": 0.702038,
241+
"placeopt__timing__drv__max_fanout": 0,
242+
"placeopt__timing__drv__max_fanout_limit": 0,
243+
"placeopt__timing__drv__max_slew": 0,
244+
"placeopt__timing__drv__max_slew_limit": 0.394961,
245+
"placeopt__timing__drv__setup_violation_count": 373,
246+
"placeopt__timing__setup__tns": -25420.3,
247+
"placeopt__timing__setup__tns__pre_opt": -450260,
248+
"placeopt__timing__setup__ws": -150.643,
249+
"placeopt__timing__setup__ws__pre_opt": -2955.35,
250+
"run__flow__design": "aes",
251+
"run__flow__generate_date": "2023-06-18 00:47",
252+
"run__flow__metrics_version": "Metrics_2.1.2",
253+
"run__flow__openroad_commit": "N/A",
254+
"run__flow__openroad_version": "v2.0-8760-gc8a48928f",
255+
"run__flow__platform": "asap7",
256+
"run__flow__platform__capacitance_units": "1fF",
257+
"run__flow__platform__current_units": "1mA",
258+
"run__flow__platform__distance_units": "1um",
259+
"run__flow__platform__power_units": "1pW",
260+
"run__flow__platform__resistance_units": "1kohm",
261+
"run__flow__platform__time_units": "1ps",
262+
"run__flow__platform__voltage_units": "1v",
263+
"run__flow__platform_commit": "732ef8d8080f7d11825909a2f1f697908c2d374f",
264+
"run__flow__scripts_commit": "732ef8d8080f7d11825909a2f1f697908c2d374f",
265+
"run__flow__uuid": "e4b45cc3-3f53-4519-9e35-2c34ac2aedb9",
266+
"run__flow__variant": "base",
267+
"synth__cpu__total": 142.83,
268+
"synth__design__instance__area__stdcell": 2240.12952,
269+
"synth__design__instance__count__stdcell": 22235.0,
270+
"synth__mem__peak": 707528.0,
271+
"synth__runtime__total": "2:26.35",
272+
"total_time": "0:04:21.200000"
273+
}

0 commit comments

Comments
 (0)