Skip to content

Commit fc4a4c9

Browse files
authored
Merge pull request #1136 from vijayank88/uart_tcgf180
gf180 uart-blocks test design added
2 parents 568e392 + 6d6b361 commit fc4a4c9

File tree

10 files changed

+466
-2
lines changed

10 files changed

+466
-2
lines changed

flow/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
# DESIGN_CONFIG=./designs/asap7/jpeg/config.mk
7777
# DESIGN_CONFIG=./designs/asap7/ethmac/config.mk
7878
# DESIGN_CONFIG=./designs/asap7/uart/config.mk
79+
# DESIGN_CONFIG=./designs/asap7/uart-blocks/config.mk
7980
# DESIGN_CONFIG=./designs/asap7/sha3/config.mk
8081
# DESIGN_CONFIG=./designs/asap7/riscv32i/config.mk
8182
# DESIGN_CONFIG=./designs/asap7/swerv_wrapper/config.mk
@@ -88,6 +89,7 @@
8889
# DESIGN_CONFIG=./designs/gf180/jpeg/config.mk
8990
# DESIGN_CONFIG=./designs/gf180/riscv32i/config.mk
9091
# DESIGN_CONFIG=./designs/gf180/sha3/config.mk
92+
# DESIGN_CONFIG=./designs/gf180/uart-blocks/config.mk
9193
#
9294
# Default design
9395
DESIGN_CONFIG ?= ./designs/nangate45/gcd/config.mk
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
####################################
2+
# global connections
3+
####################################
4+
add_global_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VDD$} -power
5+
add_global_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VDDPE$}
6+
add_global_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VDDCE$}
7+
add_global_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VDDP$}
8+
add_global_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VDDC$}
9+
add_global_connection -net {VDD} -inst_pattern {.*} -pin_pattern {^VNW$}
10+
add_global_connection -net {VSS} -inst_pattern {.*} -pin_pattern {^VSS$} -ground
11+
add_global_connection -net {VSS} -inst_pattern {.*} -pin_pattern {^VSSE$}
12+
add_global_connection -net {VSS} -inst_pattern {.*} -pin_pattern {^VSSC$}
13+
add_global_connection -net {VSS} -inst_pattern {.*} -pin_pattern {^VPW$}
14+
####################################
15+
# voltage domains
16+
####################################
17+
set_voltage_domain -name {CORE} -power {VDD} -ground {VSS}
18+
####################################
19+
# standard cell grid
20+
####################################
21+
define_pdn_grid -name {block} -voltage_domains {CORE}
22+
add_pdn_stripe -grid {block} -layer {Metal1} -width {0.900} -pitch {5.040} -offset {0} -followpins
23+
add_pdn_stripe -grid {block} -layer {Metal4} -width {4.480} -spacing {0.56} -pitch {44.8} -offset {22.4}
24+
add_pdn_stripe -grid {block} -layer {Metal5} -width {4.480} -pitch {89.6} -offset {44.8}
25+
add_pdn_connect -grid {block} -layers {Metal1 Metal4}
26+
add_pdn_connect -grid {block} -layers {Metal4 Metal5}
27+
####################################
28+
# Block grids
29+
####################################
30+
define_pdn_grid -macro -cells uart_rx -halo "2.0 2.0 2.0 2.0" -voltage_domains {CORE} -name BlocksGrid
31+
add_pdn_connect -grid {BlocksGrid} -layers {Metal4 Metal5}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
export PLATFORM = gf180
2+
3+
export DESIGN_NAME = uart
4+
export DESIGN_NICKNAME = uart-blocks
5+
6+
export VERILOG_FILES = ./designs/src/uart-no-param/*.v
7+
export SDC_FILE = ./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint.sdc
8+
9+
export BLOCKS = uart_rx
10+
11+
export VERILOG_FILES_BLACKBOX = ./designs/src/uart-no-param/uart_rx.v
12+
13+
export DIE_AREA = 0 0 430 430
14+
export CORE_AREA = 10 10 420 420
15+
16+
export HAS_IO_CONSTRAINTS = 1
17+
export PLACE_PINS_ARGS = -exclude bottom:* -exclude top:* -exclude right:*
18+
19+
export MACRO_PLACE_HALO = 20 20
20+
export MACRO_PLACE_CHANNEL = 20 20
21+
22+
export PDN_TCL = ./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/BLOCKS_grid_strategy.tcl
23+
export PLACE_DENSITY = 0.60
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 6
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: 271 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,271 @@
1+
{
2+
"constraints__clocks__count": 1,
3+
"constraints__clocks__details": [
4+
"clk: 6.0000"
5+
],
6+
"cts__clock__skew__hold": 0.0201974,
7+
"cts__clock__skew__hold__post_repair": 0.0201031,
8+
"cts__clock__skew__hold__pre_repair": 0.0201031,
9+
"cts__clock__skew__setup": 0.0201974,
10+
"cts__clock__skew__setup__post_repair": 0.0201031,
11+
"cts__clock__skew__setup__pre_repair": 0.0201031,
12+
"cts__design__core__area": 167346,
13+
"cts__design__core__area__post_repair": 167346,
14+
"cts__design__core__area__pre_repair": 167346,
15+
"cts__design__die__area": 184900,
16+
"cts__design__die__area__post_repair": 184900,
17+
"cts__design__die__area__pre_repair": 184900,
18+
"cts__design__instance__area": 62648.4,
19+
"cts__design__instance__area__macros": 41638.5,
20+
"cts__design__instance__area__macros__post_repair": 41638.5,
21+
"cts__design__instance__area__macros__pre_repair": 41638.5,
22+
"cts__design__instance__area__post_repair": 62648.4,
23+
"cts__design__instance__area__pre_repair": 62648.4,
24+
"cts__design__instance__area__stdcell": 21009.9,
25+
"cts__design__instance__area__stdcell__post_repair": 21009.9,
26+
"cts__design__instance__area__stdcell__pre_repair": 21009.9,
27+
"cts__design__instance__count": 1747,
28+
"cts__design__instance__count__hold_buffer": 0,
29+
"cts__design__instance__count__macros": 1,
30+
"cts__design__instance__count__macros__post_repair": 1,
31+
"cts__design__instance__count__macros__pre_repair": 1,
32+
"cts__design__instance__count__post_repair": 1747,
33+
"cts__design__instance__count__pre_repair": 1747,
34+
"cts__design__instance__count__setup_buffer": 0,
35+
"cts__design__instance__count__stdcell": 1746,
36+
"cts__design__instance__count__stdcell__post_repair": 1746,
37+
"cts__design__instance__count__stdcell__pre_repair": 1746,
38+
"cts__design__instance__displacement__max": 0,
39+
"cts__design__instance__displacement__mean": 0,
40+
"cts__design__instance__displacement__total": 0,
41+
"cts__design__instance__utilization": 0.374365,
42+
"cts__design__instance__utilization__post_repair": 0.374365,
43+
"cts__design__instance__utilization__pre_repair": 0.374365,
44+
"cts__design__instance__utilization__stdcell": 0.167134,
45+
"cts__design__instance__utilization__stdcell__post_repair": 0.167134,
46+
"cts__design__instance__utilization__stdcell__pre_repair": 0.167134,
47+
"cts__design__io": 44,
48+
"cts__design__io__post_repair": 44,
49+
"cts__design__io__pre_repair": 44,
50+
"cts__design__violations": 0,
51+
"cts__route__wirelength__estimated": 14765.6,
52+
"cts__timing__drv__hold_violation_count": 0,
53+
"cts__timing__drv__hold_violation_count__post_repair": 0,
54+
"cts__timing__drv__hold_violation_count__pre_repair": 0,
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.931763,
59+
"cts__timing__drv__max_cap_limit__post_repair": 0.931953,
60+
"cts__timing__drv__max_cap_limit__pre_repair": 0.931953,
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.60168,
71+
"cts__timing__drv__max_slew_limit__post_repair": 0.601787,
72+
"cts__timing__drv__max_slew_limit__pre_repair": 0.601787,
73+
"cts__timing__drv__setup_violation_count": 0,
74+
"cts__timing__drv__setup_violation_count__post_repair": 0,
75+
"cts__timing__drv__setup_violation_count__pre_repair": 0,
76+
"cts__timing__setup__tns": 0,
77+
"cts__timing__setup__tns__post_repair": 0,
78+
"cts__timing__setup__tns__pre_repair": 0,
79+
"cts__timing__setup__ws": 1.69078,
80+
"cts__timing__setup__ws__post_repair": 1.69139,
81+
"cts__timing__setup__ws__pre_repair": 1.69139,
82+
"detailedplace__cpu__total": 1.11,
83+
"detailedplace__design__core__area": 167346,
84+
"detailedplace__design__die__area": 184900,
85+
"detailedplace__design__instance__area": 62281.5,
86+
"detailedplace__design__instance__area__macros": 41638.5,
87+
"detailedplace__design__instance__area__stdcell": 20643,
88+
"detailedplace__design__instance__count": 1742,
89+
"detailedplace__design__instance__count__macros": 1,
90+
"detailedplace__design__instance__count__stdcell": 1741,
91+
"detailedplace__design__instance__displacement__max": 42,
92+
"detailedplace__design__instance__displacement__mean": 1.272,
93+
"detailedplace__design__instance__displacement__total": 2216.56,
94+
"detailedplace__design__instance__utilization": 0.372173,
95+
"detailedplace__design__instance__utilization__stdcell": 0.164215,
96+
"detailedplace__design__io": 44,
97+
"detailedplace__design__violations": 0,
98+
"detailedplace__mem__peak": 95864.0,
99+
"detailedplace__route__wirelength__estimated": 14690.5,
100+
"detailedplace__runtime__total": "0:01.16",
101+
"detailedplace__timing__drv__hold_violation_count": 0,
102+
"detailedplace__timing__drv__max_cap": 0,
103+
"detailedplace__timing__drv__max_cap_limit": 0.931953,
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.601787,
108+
"detailedplace__timing__drv__setup_violation_count": 0,
109+
"detailedplace__timing__setup__tns": 0,
110+
"detailedplace__timing__setup__ws": 1.40629,
111+
"detailedroute__route__drc_errors": 0,
112+
"detailedroute__route__drc_errors__iter:1": 271,
113+
"detailedroute__route__drc_errors__iter:2": 22,
114+
"detailedroute__route__drc_errors__iter:3": 11,
115+
"detailedroute__route__drc_errors__iter:4": 0,
116+
"detailedroute__route__net": 356,
117+
"detailedroute__route__net__special": 2,
118+
"detailedroute__route__vias": 1879,
119+
"detailedroute__route__vias__multicut": 0,
120+
"detailedroute__route__vias__singlecut": 1879,
121+
"detailedroute__route__wirelength": 16967,
122+
"detailedroute__route__wirelength__iter:1": 17071,
123+
"detailedroute__route__wirelength__iter:2": 16964,
124+
"detailedroute__route__wirelength__iter:3": 16950,
125+
"detailedroute__route__wirelength__iter:4": 16967,
126+
"finish__clock__skew__hold": 0.0259474,
127+
"finish__clock__skew__setup": 0.0259474,
128+
"finish__cpu__total": 2.62,
129+
"finish__design__core__area": 167346,
130+
"finish__design__die__area": 184900,
131+
"finish__design__instance__area": 62648.4,
132+
"finish__design__instance__area__macros": 41638.5,
133+
"finish__design__instance__area__stdcell": 21009.9,
134+
"finish__design__instance__count": 1747,
135+
"finish__design__instance__count__macros": 1,
136+
"finish__design__instance__count__stdcell": 1746,
137+
"finish__design__instance__utilization": 0.374365,
138+
"finish__design__instance__utilization__stdcell": 0.167134,
139+
"finish__design__io": 44,
140+
"finish__mem__peak": 200244.0,
141+
"finish__runtime__total": "0:02.82",
142+
"finish__timing__drv__hold_violation_count": 0.0,
143+
"finish__timing__drv__max_cap": 0,
144+
"finish__timing__drv__max_cap_limit": 0.54542,
145+
"finish__timing__drv__max_fanout": 0,
146+
"finish__timing__drv__max_fanout_limit": 0,
147+
"finish__timing__drv__max_slew": 0,
148+
"finish__timing__drv__max_slew_limit": 0.536271,
149+
"finish__timing__drv__setup_violation_count": 0.0,
150+
"finish__timing__setup__tns": 0,
151+
"finish__timing__setup__ws": 1.5288,
152+
"finish__timing__wns_percent_delay": 32.888736,
153+
"floorplan__cpu__total": 0.89,
154+
"floorplan__design__core__area": 167346,
155+
"floorplan__design__die__area": 184900,
156+
"floorplan__design__instance__area": 52264.8,
157+
"floorplan__design__instance__area__macros": 41638.5,
158+
"floorplan__design__instance__area__stdcell": 10626.3,
159+
"floorplan__design__instance__count": 250,
160+
"floorplan__design__instance__count__macros": 1,
161+
"floorplan__design__instance__count__stdcell": 249,
162+
"floorplan__design__instance__utilization": 0.312316,
163+
"floorplan__design__instance__utilization__stdcell": 0.0845324,
164+
"floorplan__design__io": 44,
165+
"floorplan__mem__peak": 90040.0,
166+
"floorplan__runtime__total": "0:00.94",
167+
"floorplan__timing__setup__tns": 0,
168+
"floorplan__timing__setup__ws": 2.21195,
169+
"globalplace__cpu__total": 1.2,
170+
"globalplace__design__core__area": 167346,
171+
"globalplace__design__die__area": 184900,
172+
"globalplace__design__instance__area": 60444.1,
173+
"globalplace__design__instance__area__macros": 41638.5,
174+
"globalplace__design__instance__area__stdcell": 18805.7,
175+
"globalplace__design__instance__count": 1699,
176+
"globalplace__design__instance__count__macros": 1,
177+
"globalplace__design__instance__count__stdcell": 1698,
178+
"globalplace__design__instance__utilization": 0.361193,
179+
"globalplace__design__instance__utilization__stdcell": 0.149599,
180+
"globalplace__design__io": 44,
181+
"globalplace__mem__peak": 105408.0,
182+
"globalplace__runtime__total": "0:01.27",
183+
"globalplace__timing__setup__tns": 0,
184+
"globalplace__timing__setup__ws": 2.20522,
185+
"globalroute__antenna__violating__nets": 9,
186+
"globalroute__antenna__violating__pins": 9,
187+
"globalroute__clock__skew__hold": 0.0211689,
188+
"globalroute__clock__skew__setup": 0.0211689,
189+
"globalroute__design__core__area": 167346,
190+
"globalroute__design__die__area": 184900,
191+
"globalroute__design__instance__area": 62648.4,
192+
"globalroute__design__instance__area__macros": 41638.5,
193+
"globalroute__design__instance__area__stdcell": 21009.9,
194+
"globalroute__design__instance__count": 1747,
195+
"globalroute__design__instance__count__macros": 1,
196+
"globalroute__design__instance__count__stdcell": 1746,
197+
"globalroute__design__instance__utilization": 0.374365,
198+
"globalroute__design__instance__utilization__stdcell": 0.167134,
199+
"globalroute__design__io": 44,
200+
"globalroute__timing__clock__slack": 1.685,
201+
"globalroute__timing__drv__hold_violation_count": 0,
202+
"globalroute__timing__drv__max_cap": 0,
203+
"globalroute__timing__drv__max_cap_limit": 0.930942,
204+
"globalroute__timing__drv__max_fanout": 0,
205+
"globalroute__timing__drv__max_fanout_limit": 0,
206+
"globalroute__timing__drv__max_slew": 0,
207+
"globalroute__timing__drv__max_slew_limit": 0.600255,
208+
"globalroute__timing__drv__setup_violation_count": 0,
209+
"globalroute__timing__setup__tns": 0,
210+
"globalroute__timing__setup__ws": 1.68474,
211+
"placeopt__cpu__total": 1.2,
212+
"placeopt__design__core__area": 167346,
213+
"placeopt__design__core__area__pre_opt": 167346,
214+
"placeopt__design__die__area": 184900,
215+
"placeopt__design__die__area__pre_opt": 184900,
216+
"placeopt__design__instance__area": 62281.5,
217+
"placeopt__design__instance__area__macros": 41638.5,
218+
"placeopt__design__instance__area__macros__pre_opt": 41638.5,
219+
"placeopt__design__instance__area__pre_opt": 60444.1,
220+
"placeopt__design__instance__area__stdcell": 20643,
221+
"placeopt__design__instance__area__stdcell__pre_opt": 18805.7,
222+
"placeopt__design__instance__count": 1742,
223+
"placeopt__design__instance__count__macros": 1,
224+
"placeopt__design__instance__count__macros__pre_opt": 1,
225+
"placeopt__design__instance__count__pre_opt": 1699,
226+
"placeopt__design__instance__count__stdcell": 1741,
227+
"placeopt__design__instance__count__stdcell__pre_opt": 1698,
228+
"placeopt__design__instance__utilization": 0.372173,
229+
"placeopt__design__instance__utilization__pre_opt": 0.361193,
230+
"placeopt__design__instance__utilization__stdcell": 0.164215,
231+
"placeopt__design__instance__utilization__stdcell__pre_opt": 0.149599,
232+
"placeopt__design__io": 44,
233+
"placeopt__design__io__pre_opt": 44,
234+
"placeopt__mem__peak": 105408.0,
235+
"placeopt__runtime__total": "0:01.27",
236+
"placeopt__timing__drv__hold_violation_count": 0,
237+
"placeopt__timing__drv__max_cap": 0,
238+
"placeopt__timing__drv__max_cap_limit": 0.93239,
239+
"placeopt__timing__drv__max_fanout": 0,
240+
"placeopt__timing__drv__max_fanout_limit": 0,
241+
"placeopt__timing__drv__max_slew": 0,
242+
"placeopt__timing__drv__max_slew_limit": 0.602014,
243+
"placeopt__timing__drv__setup_violation_count": 0,
244+
"placeopt__timing__setup__tns": 0,
245+
"placeopt__timing__setup__tns__pre_opt": 0,
246+
"placeopt__timing__setup__ws": 1.4065,
247+
"placeopt__timing__setup__ws__pre_opt": 2.20522,
248+
"run__flow__design": "uart-blocks",
249+
"run__flow__generate_date": "2023-06-13 11:55",
250+
"run__flow__metrics_version": "Metrics_2.1.2",
251+
"run__flow__openroad_commit": "N/A",
252+
"run__flow__openroad_version": "v2.0-8453-g93fdf28ec",
253+
"run__flow__platform": "gf180",
254+
"run__flow__platform__capacitance_units": "1pF",
255+
"run__flow__platform__current_units": "1mA",
256+
"run__flow__platform__distance_units": "1um",
257+
"run__flow__platform__power_units": "1uW",
258+
"run__flow__platform__resistance_units": "1ohm",
259+
"run__flow__platform__time_units": "1ns",
260+
"run__flow__platform__voltage_units": "1v",
261+
"run__flow__platform_commit": "42e5a0605f18e2e29b359da8086ddb3172ed4794",
262+
"run__flow__scripts_commit": "42e5a0605f18e2e29b359da8086ddb3172ed4794",
263+
"run__flow__uuid": "19977507-a6e0-4ab2-b0f9-c42e3205acd4",
264+
"run__flow__variant": "base",
265+
"synth__cpu__total": 3.41,
266+
"synth__design__instance__area__stdcell": 10863.4176,
267+
"synth__design__instance__count__stdcell": 259.0,
268+
"synth__mem__peak": 68048.0,
269+
"synth__runtime__total": "0:03.54",
270+
"total_time": "0:00:11"
271+
}

0 commit comments

Comments
 (0)