[tlgen] Revise core file template to be unique
Xbar can be generated in multiple top. Now it accepts the library name
in VLNV format. So topgen can create core file with `top_earlgrey` or
something else for another top.
Signed-off-by: Eunchan Kim <eunchan@opentitan.org>
diff --git a/hw/top_earlgrey/ip/xbar_main/dv/autogen/xbar_main_sim.core b/hw/top_earlgrey/ip/xbar_main/dv/autogen/xbar_main_sim.core
index 69d1515..f011f57 100644
--- a/hw/top_earlgrey/ip/xbar_main/dv/autogen/xbar_main_sim.core
+++ b/hw/top_earlgrey/ip/xbar_main/dv/autogen/xbar_main_sim.core
@@ -9,7 +9,7 @@
filesets:
files_dv:
depend:
- - lowrisc:ip:xbar_main
+ - lowrisc:top_earlgrey:xbar_main
- lowrisc:dv:dv_utils
- lowrisc:dv:xbar_tb
- lowrisc:dv:xbar_main_bind
diff --git a/hw/top_earlgrey/ip/xbar_main/rtl/autogen/xbar_main.core b/hw/top_earlgrey/ip/xbar_main/rtl/autogen/xbar_main.core
index ae5f028..c76aa9e 100644
--- a/hw/top_earlgrey/ip/xbar_main/rtl/autogen/xbar_main.core
+++ b/hw/top_earlgrey/ip/xbar_main/rtl/autogen/xbar_main.core
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: Apache-2.0
#
# xbar_main core file generated by `tlgen.py` tool
-name: "lowrisc:ip:xbar_main:0.1"
+name: "lowrisc:top_earlgrey:xbar_main:0.1"
description: "Generated RTL xbar_main"
filesets:
diff --git a/hw/top_earlgrey/ip/xbar_peri/dv/autogen/xbar_peri_sim.core b/hw/top_earlgrey/ip/xbar_peri/dv/autogen/xbar_peri_sim.core
index 2612b89..53240b0 100644
--- a/hw/top_earlgrey/ip/xbar_peri/dv/autogen/xbar_peri_sim.core
+++ b/hw/top_earlgrey/ip/xbar_peri/dv/autogen/xbar_peri_sim.core
@@ -9,7 +9,7 @@
filesets:
files_dv:
depend:
- - lowrisc:ip:xbar_peri
+ - lowrisc:top_earlgrey:xbar_peri
- lowrisc:dv:dv_utils
- lowrisc:dv:xbar_tb
- lowrisc:dv:xbar_peri_bind
diff --git a/hw/top_earlgrey/ip/xbar_peri/rtl/autogen/xbar_peri.core b/hw/top_earlgrey/ip/xbar_peri/rtl/autogen/xbar_peri.core
index 8aea20f..fd455a5 100644
--- a/hw/top_earlgrey/ip/xbar_peri/rtl/autogen/xbar_peri.core
+++ b/hw/top_earlgrey/ip/xbar_peri/rtl/autogen/xbar_peri.core
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: Apache-2.0
#
# xbar_peri core file generated by `tlgen.py` tool
-name: "lowrisc:ip:xbar_peri:0.1"
+name: "lowrisc:top_earlgrey:xbar_peri:0.1"
description: "Generated RTL xbar_peri"
filesets:
diff --git a/hw/top_earlgrey/top_earlgrey.core b/hw/top_earlgrey/top_earlgrey.core
index 32c681d..227174f 100644
--- a/hw/top_earlgrey/top_earlgrey.core
+++ b/hw/top_earlgrey/top_earlgrey.core
@@ -33,8 +33,8 @@
- lowrisc:constants:top_pkg
- lowrisc:ip:nmi_gen
- lowrisc:ip:usbdev
- - lowrisc:ip:xbar_main
- - lowrisc:ip:xbar_peri
+ - lowrisc:top_earlgrey:xbar_main
+ - lowrisc:top_earlgrey:xbar_peri
- lowrisc:ip:rstmgr
- lowrisc:tlul:headers
- lowrisc:prim:all
diff --git a/util/tlgen/generate.py b/util/tlgen/generate.py
index ff2a177..0f97bff 100644
--- a/util/tlgen/generate.py
+++ b/util/tlgen/generate.py
@@ -12,7 +12,7 @@
from .xbar import Xbar
-def generate(xbar: Xbar) -> str:
+def generate(xbar: Xbar, library_name: str = "ip") -> str:
"""generate uses elaborated model then creates top level Xbar module
with prefix.
"""
@@ -27,7 +27,9 @@
try:
out_rtl = xbar_rtl_tpl.render(xbar=xbar, ntype=NodeType)
out_pkg = xbar_pkg_tpl.render(xbar=xbar)
- out_core = xbar_core_tpl.render(xbar=xbar, ntype=NodeType)
+ out_core = xbar_core_tpl.render(xbar=xbar,
+ ntype=NodeType,
+ library_name=library_name)
except: # noqa: E722
log.error(exceptions.text_error_template().render())
diff --git a/util/tlgen/generate_tb.py b/util/tlgen/generate_tb.py
index 5fc0674..68aa68b 100644
--- a/util/tlgen/generate_tb.py
+++ b/util/tlgen/generate_tb.py
@@ -12,7 +12,9 @@
from .xbar import Xbar
-def generate_tb(xbar: Xbar, dv_path: Path) -> str: # xbar: Xbar -> str
+def generate_tb(xbar: Xbar,
+ dv_path: Path,
+ library_name: str = "ip") -> str: # xbar: Xbar -> str
# list all the generate files for TB
tb_files = [
"xbar_env_pkg__params.sv", "tb__xbar_connect.sv", "xbar.sim.core",
@@ -45,6 +47,6 @@
with dv_filepath.open(mode='w', encoding='UTF-8') as fout:
try:
- fout.write(tpl.render(xbar=xbar))
+ fout.write(tpl.render(xbar=xbar, library_name=library_name))
except: # noqa: E722 for general exception handling
log.error(exceptions.text_error_template().render())
diff --git a/util/tlgen/xbar.core.tpl b/util/tlgen/xbar.core.tpl
index e2ed6fb..c3a0e3d 100644
--- a/util/tlgen/xbar.core.tpl
+++ b/util/tlgen/xbar.core.tpl
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: Apache-2.0
#
# xbar_${xbar.name} core file generated by `tlgen.py` tool
-name: "lowrisc:ip:xbar_${xbar.name}:0.1"
+name: "lowrisc:${library_name}:xbar_${xbar.name}:0.1"
description: "Generated RTL xbar_${xbar.name}"
filesets:
diff --git a/util/tlgen/xbar.sim.core.tpl b/util/tlgen/xbar.sim.core.tpl
index 1ae4a59..d027786 100644
--- a/util/tlgen/xbar.sim.core.tpl
+++ b/util/tlgen/xbar.sim.core.tpl
@@ -9,7 +9,7 @@
filesets:
files_dv:
depend:
- - lowrisc:ip:xbar_${xbar.name}
+ - lowrisc:${library_name}:xbar_${xbar.name}
- lowrisc:dv:dv_utils
- lowrisc:dv:xbar_tb
- lowrisc:dv:xbar_${xbar.name}_bind
diff --git a/util/topgen.py b/util/topgen.py
index 0884e1f..ba52aa6 100755
--- a/util/topgen.py
+++ b/util/topgen.py
@@ -63,7 +63,8 @@
log.error("Elaboration failed." + repr(xbar))
try:
- out_rtl, out_pkg, out_core = tlgen.generate(xbar)
+ out_rtl, out_pkg, out_core = tlgen.generate(
+ xbar, "top_" + top["name"])
except: # noqa: E722
log.error(exceptions.text_error_template().render())
@@ -88,7 +89,7 @@
fout.write(out_core)
# generate testbench for xbar
- tlgen.generate_tb(xbar, dv_path)
+ tlgen.generate_tb(xbar, dv_path, "top_" + top["name"])
def generate_alert_handler(top, out_path):