Skip to content

Commit a166175

Browse files
authored
Merge pull request #4111 from The-OpenROAD-Project-staging/t0.5-design-config-update
Updated design configs for TPDK 0.5
2 parents ba36e76 + 9f81796 commit a166175

15 files changed

Lines changed: 272 additions & 35 deletions

File tree

flow/designs/rapidus2hp/cva6/config.mk

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ export ADDITIONAL_LIBS += $(PLATFORM_DIR)/ram/lib/sacrls0g0d1p64x128m2b1w0c1p0d0
100100
._0P15_8T_SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint_0.15_8T.sdc
101101
._0P3S_6T_SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint_0.3s_6T.sdc
102102
._0P3S_8T_SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint_0.3s_8T.sdc
103+
.T0P5_8T_SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint_t0.5_8T.sdc
103104

104105
# Use $(if) to defer conditional eval until all makefiles are read
105106
export SDC_FILE = $(strip \
@@ -118,7 +119,10 @@ export SDC_FILE = $(strip \
118119
$(._0P3S_6T_SDC_FILE), \
119120
$(._0P3S_8T_SDC_FILE) \
120121
), \
121-
$(.DEFAULT_SDC_FILE) \
122+
$(if $(and $(filter t0.5,$(RAPIDUS_PDK_VERSION)),$(filter SC8T,$(PLACE_SITE)),$(filter verific,$(SYNTH_HDL_FRONTEND))), \
123+
$(.T0P5_8T_SDC_FILE), \
124+
$(.DEFAULT_SDC_FILE) \
125+
) \
122126
) \
123127
) \
124128
))
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Derived from cva6_synth.tcl and Makefiles
2+
3+
source $::env(PLATFORM_DIR)/util.tcl
4+
5+
set clk_name main_clk
6+
set clk_port clk_i
7+
set clk_ports_list [list $clk_port]
8+
set clk_period 700
9+
10+
convert_time_value clk_period
11+
12+
set input_delay [convert_time_value 0.46]
13+
set output_delay [convert_time_value 0.11]
14+
15+
16+
create_clock [get_ports $clk_port] -name $clk_name -period $clk_period

flow/designs/rapidus2hp/cva6/test/test_params.py

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def setUp(self):
2121

2222
ParamTestBase.setUp(self, "cva6")
2323

24-
def get_exp_sdc(self, place_site, pdk_version):
24+
def get_exp_sdc(self, place_site, pdk_version, front_end):
2525
"""Returns the expected SDC file path"""
2626

2727
if pdk_version in ["0.2a", "0.3s"]:
@@ -36,7 +36,14 @@ def get_exp_sdc(self, place_site, pdk_version):
3636
return os.path.join(
3737
self._design_full_dir, f"constraint_{pdk_version}_8T.sdc"
3838
)
39-
39+
if (
40+
pdk_version == "t0.5"
41+
and place_site in ["", "SC8T"]
42+
and front_end == "verific"
43+
):
44+
return os.path.join(
45+
self._design_full_dir, f"constraint_{pdk_version}_8T.sdc"
46+
)
4047
return os.path.join(self._design_full_dir, "constraint.sdc")
4148

4249
def test_pdk_0p3_default(self):
@@ -47,7 +54,7 @@ def test_pdk_0p3_default(self):
4754
pdk_version = ""
4855
for front_end in self._front_end_list:
4956
for place_site in self._synopsys_site_list:
50-
exp_sdc = self.get_exp_sdc(place_site, pdk_version)
57+
exp_sdc = self.get_exp_sdc(place_site, pdk_version, front_end)
5158
self.execute_cmd(
5259
"SDC_FILE",
5360
exp_sdc,
@@ -64,7 +71,7 @@ def test_pdk_0p2(self):
6471
pdk_version = "0.2"
6572
for front_end in self._front_end_list:
6673
for place_site in self._ibm_site_list:
67-
exp_sdc = self.get_exp_sdc(place_site, pdk_version)
74+
exp_sdc = self.get_exp_sdc(place_site, pdk_version, front_end)
6875
self.execute_cmd(
6976
"SDC_FILE",
7077
exp_sdc,
@@ -81,7 +88,7 @@ def test_pdk_0p2a(self):
8188
pdk_version = "0.2a"
8289
for front_end in self._front_end_list:
8390
for place_site in self._synopsys_site_list:
84-
exp_sdc = self.get_exp_sdc(place_site, pdk_version)
91+
exp_sdc = self.get_exp_sdc(place_site, pdk_version, front_end)
8592
self.execute_cmd(
8693
"SDC_FILE",
8794
exp_sdc,
@@ -98,7 +105,7 @@ def test_pdk_0p15(self):
98105
pdk_version = "0.15"
99106
for front_end in self._front_end_list:
100107
for place_site in self._synopsys_site_list:
101-
exp_sdc = self.get_exp_sdc(place_site, pdk_version)
108+
exp_sdc = self.get_exp_sdc(place_site, pdk_version, front_end)
102109
self.execute_cmd(
103110
"SDC_FILE",
104111
exp_sdc,
@@ -115,7 +122,7 @@ def test_pdk_0p3s(self):
115122
pdk_version = "0.3s"
116123
for front_end in self._front_end_list:
117124
for place_site in self._synopsys_site_list:
118-
exp_sdc = self.get_exp_sdc(place_site, pdk_version)
125+
exp_sdc = self.get_exp_sdc(place_site, pdk_version, front_end)
119126
self.execute_cmd(
120127
"SDC_FILE",
121128
exp_sdc,
@@ -132,7 +139,24 @@ def test_pdk_0p3(self):
132139
pdk_version = "0.3"
133140
for front_end in self._front_end_list:
134141
for place_site in self._synopsys_site_list:
135-
exp_sdc = self.get_exp_sdc(place_site, pdk_version)
142+
exp_sdc = self.get_exp_sdc(place_site, pdk_version, front_end)
143+
self.execute_cmd(
144+
"SDC_FILE",
145+
exp_sdc,
146+
place_site=place_site,
147+
pdk_version=pdk_version,
148+
front_end=front_end,
149+
)
150+
151+
def test_pdk_t0p5(self):
152+
"""
153+
Tests Titan PDK 0.5
154+
"""
155+
156+
pdk_version = "t0.5"
157+
for front_end in self._front_end_list:
158+
for place_site in self._synopsys_site_list:
159+
exp_sdc = self.get_exp_sdc(place_site, pdk_version, front_end)
136160
self.execute_cmd(
137161
"SDC_FILE",
138162
exp_sdc,

flow/designs/rapidus2hp/ethmac/test/test_params.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,21 @@ def test_pdk_0p3(self):
124124
front_end=front_end,
125125
)
126126

127+
def test_pdk_t0p5(self):
128+
"""Tests Titan PDK 0.5 Utilization"""
129+
130+
pdk_version = "t0.5"
131+
for front_end in self._front_end_list:
132+
for place_site in self._synopsys_site_list:
133+
exp_util = self.get_exp_util(place_site, pdk_version)
134+
self.execute_cmd(
135+
"CORE_UTILIZATION",
136+
exp_util,
137+
place_site=place_site,
138+
pdk_version=pdk_version,
139+
front_end=front_end,
140+
)
141+
127142
def test_flow_variant(self):
128143
"""Tests that setting the flow variant uses the right frontend"""
129144

flow/designs/rapidus2hp/gcd/test/test_params.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,23 @@ def test_pdk_0p3(self):
138138
front_end=front_end,
139139
)
140140

141+
def test_pdk_t0p5(self):
142+
"""
143+
Tests Titan PDK 0.5 utilization
144+
"""
145+
146+
pdk_version = "t0.5"
147+
for front_end in self._front_end_list:
148+
for place_site in self._synopsys_site_list:
149+
exp_util = self.get_exp_util(place_site, pdk_version)
150+
self.execute_cmd(
151+
"CORE_UTILIZATION",
152+
exp_util,
153+
place_site=place_site,
154+
pdk_version=pdk_version,
155+
front_end=front_end,
156+
)
157+
141158

142159
if __name__ == "__main__":
143160
unittest.main()

flow/designs/rapidus2hp/hercules_idecode/config.mk

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,20 @@ export CORE_UTILIZATION = $(strip \
5050
58 \
5151
) \
5252
), \
53-
$(if $(filter ra02h138_DST_45CPP SC6T,$(PLACE_SITE)), \
53+
$(if $(and $(filter t0.5,$(RAPIDUS_PDK_VERSION)),$(filter SC5T,$(PLACE_SITE))), \
5454
$(if $(filter slang,$(SYNTH_HDL_FRONTEND)), \
5555
44, \
56-
43 \
56+
42 \
5757
), \
58-
$(if $(filter slang,$(SYNTH_HDL_FRONTEND)), \
59-
50, \
60-
48 \
58+
$(if $(filter ra02h138_DST_45CPP SC6T,$(PLACE_SITE)), \
59+
$(if $(filter slang,$(SYNTH_HDL_FRONTEND)), \
60+
44, \
61+
43 \
62+
), \
63+
$(if $(filter slang,$(SYNTH_HDL_FRONTEND)), \
64+
50, \
65+
48 \
66+
) \
6167
) \
6268
) \
6369
) \

flow/designs/rapidus2hp/hercules_idecode/test/test_params.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ def get_exp_util(self, place_site, pdk_version, front_end):
4040
if front_end in ["", "slang"]:
4141
return 62
4242
return 58
43+
if pdk_version == "t0.5" and place_site == "SC5T":
44+
if front_end in ["", "slang"]:
45+
return 48
46+
return 46
4347
if place_site in ["SC6T", "ra02h138_DST_45CPP"]:
4448
if front_end in ["", "slang"]:
4549
return 44
@@ -150,6 +154,23 @@ def test_pdk_0p3(self):
150154
front_end=front_end,
151155
)
152156

157+
def test_pdk_t0p5(self):
158+
"""
159+
Tests Titan PDK 0.5 utilization
160+
"""
161+
162+
pdk_version = "t0.5"
163+
for front_end in self._front_end_list:
164+
for place_site in self._synopsys_site_list:
165+
exp_util = self.get_exp_util(place_site, pdk_version, front_end)
166+
self.execute_cmd(
167+
"CORE_UTILIZATION",
168+
exp_util,
169+
place_site=place_site,
170+
pdk_version=pdk_version,
171+
front_end=front_end,
172+
)
173+
153174
def test_flow_variant(self):
154175
"""Tests that setting the flow variant uses the right frontend"""
155176

flow/designs/rapidus2hp/hercules_is_int/config.mk

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,17 @@ export CORE_UTILIZATION = $(strip \
6464
63 \
6565
) \
6666
), \
67-
$(if $(filter slang,$(SYNTH_HDL_FRONTEND)), \
68-
$(if $(filter ra02h138_DST_45CPP SC6T,$(PLACE_SITE)), \
69-
30, \
70-
52 \
71-
), \
72-
$(if $(filter ra02h138_DST_45CPP SC6T,$(PLACE_SITE)), \
73-
30, \
74-
54 \
67+
$(if $(and $(filter t0.5,$(RAPIDUS_PDK_VERSION)),$(filter SC5T,$(PLACE_SITE))), \
68+
45, \
69+
$(if $(filter slang,$(SYNTH_HDL_FRONTEND)), \
70+
$(if $(filter ra02h138_DST_45CPP SC6T,$(PLACE_SITE)), \
71+
30, \
72+
52 \
73+
), \
74+
$(if $(filter ra02h138_DST_45CPP SC6T,$(PLACE_SITE)), \
75+
30, \
76+
54 \
77+
) \
7578
) \
7679
) \
7780
) \

flow/designs/rapidus2hp/hercules_is_int/test/test_params.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ def get_exp_util(self, place_site, front_end, pdk_version, layer_stack):
4545
if front_end in ["", "slang"]:
4646
return 65
4747
return 63
48+
if pdk_version == "t0.5" and place_site == "SC5T":
49+
return 45
4850
if front_end == "verific":
4951
if place_site in ["SC6T", "ra02h138_DST_45CPP"]:
5052
return 30
@@ -188,6 +190,27 @@ def test_pdk_0p3(self):
188190
layer_stack=layer_stack,
189191
)
190192

193+
def test_pdk_t0p5(self):
194+
"""
195+
Tests Titan PDK 0.5 utilization
196+
"""
197+
198+
layer_stack = "16LM"
199+
pdk_version = "t0.5"
200+
for front_end in self._front_end_list:
201+
for place_site in self._synopsys_site_list:
202+
exp_util = self.get_exp_util(
203+
place_site, front_end, pdk_version, layer_stack
204+
)
205+
self.execute_cmd(
206+
"CORE_UTILIZATION",
207+
exp_util,
208+
place_site=place_site,
209+
pdk_version=pdk_version,
210+
front_end=front_end,
211+
layer_stack=layer_stack,
212+
)
213+
191214
def test_flow_variant(self):
192215
"""Tests that setting the flow variant uses the right frontend"""
193216

flow/designs/rapidus2hp/ibex/config.mk

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ else
3030
._0P3S_6T_SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint_0.3s_6T.sdc
3131
._0P3S_8T_SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint_0.3s_8T.sdc
3232
._0P3_8T_SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint_0.3_8T.sdc
33+
.T0P5_8T_SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint_t0.5_8T.sdc
3334

3435
# Use $(if) to defer conditional eval until all makefiles are read
3536
export SDC_FILE = $(strip \
@@ -50,7 +51,10 @@ else
5051
$(._0P3_8T_SDC_FILE), \
5152
$(.DEFAULT_SDC_FILE) \
5253
), \
53-
$(.DEFAULT_SDC_FILE) \
54+
$(if $(and $(filter t0.5,$(RAPIDUS_PDK_VERSION)),$(filter SC8T,$(PLACE_SITE))), \
55+
$(.T0P5_8T_SDC_FILE), \
56+
$(.DEFAULT_SDC_FILE) \
57+
) \
5458
) \
5559
) \
5660
) \
@@ -73,7 +77,10 @@ export CORE_UTILIZATION = $(strip \
7377
55, \
7478
70 \
7579
), \
76-
70 \
80+
$(if $(and $(filter t0.5,$(RAPIDUS_PDK_VERSION)),$(filter SC5T,$(PLACE_SITE))), \
81+
65, \
82+
70 \
83+
) \
7784
) \
7885
) \
7986
))

0 commit comments

Comments
 (0)