blob: 91e41f23cee723b63993ef6b05c376055b1171f1 [file] [log] [blame]
Weicai Yanga495d202019-12-05 15:36:27 -08001# Copyright lowRISC contributors.
2# Licensed under the Apache License, Version 2.0, see LICENSE for details.
3# SPDX-License-Identifier: Apache-2.0
4
5import logging as log
6
7from mako import exceptions
8from mako.template import Template
9from pkg_resources import resource_filename
10
11from .item import NodeType
12from .xbar import Xbar
13
14
15def generate_tb(xbar, dv_path): #xbar: Xbar -> str
16 # list all the generate files for TB
17 tb_files = [
18 "xbar_env_pkg__params.sv", "tb__xbar_connect.sv", "xbar.sim.core",
19 "xbar.bind.sv", "Makefile"
20 ]
21
22 for fname in tb_files:
23 tpl = Template(filename=resource_filename('tlgen', fname + '.tpl'))
24
25 # some files need to be renamed
26 if fname == "xbar.sim.core":
27 fname = "xbar_%s_sim.core" % (xbar.name)
28 elif fname == "xbar.bind.sv":
29 fname = "xbar_%s_bind.sv" % (xbar.name)
30
31 dv_filepath = dv_path / fname
32 with dv_filepath.open(mode='w', encoding='UTF-8') as fout:
33 try:
34 fout.write(tpl.render(xbar=xbar))
35 except:
36 log.error(exceptions.text_error_template().render())