[dv/xbar] Add chip-level xbar support
1. Use topgen to generate connect and parameter files
2. modify the other xbar to use force rather than direct connect for
better reusability
Signed-off-by: Weicai Yang <weicai@google.com>
diff --git a/util/topgen.py b/util/topgen.py
index d067d49..c3a3f72 100755
--- a/util/topgen.py
+++ b/util/topgen.py
@@ -17,9 +17,9 @@
from mako.template import Template
import tlgen
-
-from reggen import gen_dv, gen_rtl, gen_fpv, validate
-from topgen import get_hjsonobj_xbars, merge_top, search_ips, validate_top, amend_clocks
+from reggen import gen_dv, gen_fpv, gen_rtl, validate
+from topgen import (amend_clocks, get_hjsonobj_xbars, merge_top, search_ips,
+ validate_top)
# Common header for generated files
genhdr = '''// Copyright lowRISC contributors.
@@ -907,6 +907,21 @@
check=True,
cwd=str(SRCTREE_TOP))
+ # generate chip level xbar TB
+ tb_files = ["xbar_env_pkg__params.sv", "tb__xbar_connect.sv"]
+ for fname in tb_files:
+ tpl_fname = "%s.tpl" % (fname)
+ xbar_chip_data_path = tpl_path / tpl_fname
+ template_contents = generate_top(completecfg,
+ str(xbar_chip_data_path))
+
+ rendered_dir = tpl_path / '../dv/autogen'
+ rendered_dir.mkdir(parents=True, exist_ok=True)
+ rendered_path = rendered_dir / fname
+
+ with rendered_path.open(mode='w', encoding='UTF-8') as fout:
+ fout.write(template_contents)
+
if __name__ == "__main__":
main()