Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 16 additions & 9 deletions flow/designs/rapidus2hp/hercules_is_int/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,25 @@ export SYNTH_HDL_FRONTEND ?= slang
export SYNTH_HIERARCHICAL ?= 0

# Use $(if) to defer conditional eval until all makefiles are read
#
# | PDK Version | Front End | Place Site | Utilization |
# | ------------| --------- | ---------- | ----------- |
# | all | slang | 6T | 30 |
# | non-0.3 | slang | 8T | 52 |
# | all | verific | 6T | 30 |
# | non-0.3 | verific | 8T | 54 |
# | 0.3 | any | 8T | 56 |

export CORE_UTILIZATION = $(strip \
$(if $(filter 0.3,$(RAPIDUS_PDK_VERSION)), \
56, \
$(if $(filter ra02h138_DST_45CPP,$(PLACE_SITE)), \
$(if $(filter slang,$(SYNTH_HDL_FRONTEND)), \
$(if $(filter 14LM,$(LAYER_STACK_OPTION)), \
52, \
$(if $(filter 16LM,$(LAYER_STACK_OPTION)), \
54, \
56 \
) \
), \
$(if $(filter 14LM,$(LAYER_STACK_OPTION)), \
50, \
56 \
) \
), \
56 \
), \
$(if $(filter slang,$(SYNTH_HDL_FRONTEND)), \
$(if $(filter ra02h138_DST_45CPP SC6T,$(PLACE_SITE)), \
30, \
Expand Down
96 changes: 62 additions & 34 deletions flow/designs/rapidus2hp/hercules_is_int/test/test_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,19 @@ def setUp(self):

ParamTestBase.setUp(self, "hercules_is_int")

def get_exp_util(self, place_site, front_end, pdk_version):
def get_exp_util(self, place_site, front_end, pdk_version, layer_stack):
"""Returns the expected value"""

if pdk_version in ["", "0.3"]:
if place_site == "ra02h138_DST_45CPP":
if front_end in ["", "slang"]:
if layer_stack == "14LM":
return 52
if layer_stack in ["", "16LM"]:
return 54
else:
if layer_stack == "14LM":
return 50
return 56
if front_end == "verific":
if place_site in ["SC6T", "ra02h138_DST_45CPP"]:
Expand All @@ -43,24 +52,31 @@ def test_pdk_0p3_default(self):
pdk_version = ""
for front_end in self._front_end_list:
for place_site in self._synopsys_site_list:
exp_util = self.get_exp_util(place_site, front_end, pdk_version)
self.execute_cmd(
"CORE_UTILIZATION",
exp_util,
place_site=place_site,
pdk_version=pdk_version,
front_end=front_end,
)
for layer_stack in self._layer_stack_list:
exp_util = self.get_exp_util(
place_site, front_end, pdk_version, layer_stack
)
self.execute_cmd(
"CORE_UTILIZATION",
exp_util,
place_site=place_site,
pdk_version=pdk_version,
front_end=front_end,
layer_stack=layer_stack,
)

def test_pdk_0p2(self):
"""
Tests PDK 0.2 utilization
"""

pdk_version = "0.2"
layer_stack = "16LM"
for front_end in self._front_end_list:
for place_site in self._ibm_site_list:
exp_util = self.get_exp_util(place_site, front_end, pdk_version)
exp_util = self.get_exp_util(
place_site, front_end, pdk_version, layer_stack
)
self.execute_cmd(
"CORE_UTILIZATION",
exp_util,
Expand All @@ -77,14 +93,18 @@ def test_pdk_0p2a(self):
pdk_version = "0.2a"
for front_end in self._front_end_list:
for place_site in self._synopsys_site_list:
exp_util = self.get_exp_util(place_site, front_end, pdk_version)
self.execute_cmd(
"CORE_UTILIZATION",
exp_util,
place_site=place_site,
pdk_version=pdk_version,
front_end=front_end,
)
for layer_stack in self._layer_stack_list:
exp_util = self.get_exp_util(
place_site, front_end, pdk_version, layer_stack
)
self.execute_cmd(
"CORE_UTILIZATION",
exp_util,
place_site=place_site,
pdk_version=pdk_version,
front_end=front_end,
layer_stack=layer_stack,
)

def test_pdk_0p15(self):
"""
Expand All @@ -94,14 +114,18 @@ def test_pdk_0p15(self):
pdk_version = "0.15"
for front_end in self._front_end_list:
for place_site in self._synopsys_site_list:
exp_util = self.get_exp_util(place_site, front_end, pdk_version)
self.execute_cmd(
"CORE_UTILIZATION",
exp_util,
place_site=place_site,
pdk_version=pdk_version,
front_end=front_end,
)
for layer_stack in self._layer_stack_list:
exp_util = self.get_exp_util(
place_site, front_end, pdk_version, layer_stack
)
self.execute_cmd(
"CORE_UTILIZATION",
exp_util,
place_site=place_site,
pdk_version=pdk_version,
front_end=front_end,
layer_stack=layer_stack,
)

def test_pdk_0p3(self):
"""
Expand All @@ -111,14 +135,18 @@ def test_pdk_0p3(self):
pdk_version = "0.3"
for front_end in self._front_end_list:
for place_site in self._synopsys_site_list:
exp_util = self.get_exp_util(place_site, front_end, pdk_version)
self.execute_cmd(
"CORE_UTILIZATION",
exp_util,
place_site=place_site,
pdk_version=pdk_version,
front_end=front_end,
)
for layer_stack in self._layer_stack_list:
exp_util = self.get_exp_util(
place_site, front_end, pdk_version, layer_stack
)
self.execute_cmd(
"CORE_UTILIZATION",
exp_util,
place_site=place_site,
pdk_version=pdk_version,
front_end=front_end,
layer_stack=layer_stack,
)

def test_flow_variant(self):
"""Tests that setting the flow variant uses the right frontend"""
Expand Down
6 changes: 6 additions & 0 deletions flow/designs/rapidus2hp/utils/param_test_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ def setUp(self, design_name):
self._front_end_list = ["", "slang", "verific"]
self._ibm_site_list = ["", "SC6T", "SC8T"]
self._synopsys_site_list = ["", "ra02h138_DST_45CPP", "ra02h184_HST_45CPP"]
self._layer_stack_list = ["", "14LM", "16LM", "18LM", "20LM"]

def get_track_height(self, place_site):
"""Returns the track height for the place site"""
Expand All @@ -44,6 +45,7 @@ def build_cmd(
pdk_version=None,
front_end=None,
flow_variant=None,
layer_stack=None,
):
"""Builds the command to execute"""

Expand All @@ -54,6 +56,8 @@ def build_cmd(
str_buf.append(f"RAPIDUS_PDK_VERSION={pdk_version}")
if front_end and front_end == "verific":
str_buf.append(f"SYNTH_HDL_FRONTEND={front_end}")
if layer_stack and layer_stack != "":
str_buf.append(f"LAYER_STACK_OPTION={layer_stack}")
if flow_variant and flow_variant != "":
str_buf.append(f"FLOW_VARIANT={flow_variant}")
str_buf.append(f"print-{param_name}")
Expand All @@ -66,6 +70,7 @@ def execute_cmd(
place_site=None,
pdk_version=None,
front_end=None,
layer_stack=None,
debug=False,
):
"""
Expand All @@ -78,6 +83,7 @@ def execute_cmd(
place_site=place_site,
pdk_version=pdk_version,
front_end=front_end,
layer_stack=layer_stack,
)
if debug:
print(cmd)
Expand Down