def build(self, directory): for base_name in self.parts: template_fn = os.path.join( config.hdldir, 'tree', '{}.vhd.t'.format(base_name)) output_fn = os.path.join( directory, '{}_{}.vhd'.format(base_name, self.tree_name)) utils.format_file(template_fn, output_fn, {'tree_name': self.tree_name})
def make_defs_file(filename, package_name, signal_types, contained_signal_types): ''' Makes a package of definitions so you don't have to. TODO: I haven't been using this recently so it probably needs better testing. Args: `filename`: Where to write the file. `package_name`: The name of the package. `signal_type`: A list of signal types to define in the package. `contained_signal_types`: A list of signa types which we will make unnamed arrays of. ''' defs = [] imps = [] for signal_type in signal_types: new_defs, new_imps = signal_type.defs_and_imps() defs += new_defs imps += new_imps for signal_type in contained_signal_types: new_defs, new_imps = make_array_defs(signal_type) defs += new_defs imps += new_imps template_fn = os.path.join(config.basedir, 'hdl', 'definitions.vhd.t') template_params = { 'definitions': defs, 'implementations': imps, 'package_name': package_name, } utils.format_file(template_fn, filename, template_params)
def build(self, directory): template_filename = os.path.join(config.hdldir, 'wrapper', 'jtag_axi_wrapper.vhd.t') filename = self.get_filename(directory) params = { 'dut_name': self.top_name, 'dut_parameters': self.top_parameters, } utils.format_file(template_filename, filename, params)
def build(self, directory): for base_name in self.parts: template_fn = os.path.join(config.hdldir, 'tree', '{}.vhd.t'.format(base_name)) output_fn = os.path.join( directory, '{}_{}.vhd'.format(base_name, self.tree_name)) utils.format_file(template_fn, output_fn, {'tree_name': self.tree_name})
def build(self, directory): if self.language == 'vhdl': template_fn = os.path.join(config.hdldir, 'wrapper', 'inner_wrapper.vhd.t') elif self.language == 'systemverilog': template_fn = os.path.join(config.hdldir, 'wrapper', 'inner_wrapper.sv.t') else: raise ValueError('Unknown language: {}'.format(self.language)) output_fn = self.get_filename(directory) utils.format_file(template_fn, output_fn, self.template_params)
def build(self, directory): if self.language == 'vhdl': template_fn = os.path.join(config.hdldir, 'wrapper', 'inner_wrapper.vhd.t') elif self.language in ('systemverilog', 'verilog'): template_fn = os.path.join(config.hdldir, 'wrapper', 'inner_wrapper.sv.t') else: raise ValueError('Unknown language: {}'.format(self.language)) output_fn = self.get_filename(directory) utils.format_file(template_fn, output_fn, self.template_params)
def build(self, directory, false_directory=None): ''' Produce the necessary files. `directory` is where the files will be placed. `false_directory` is where the files should think they are being placed. `false_directory` is necessary so we can compare the contents of files that have been placed in different directories when getting hashs. ''' if false_directory is None: false_directory = directory template_fn = os.path.join(config.hdldir, 'wrapper', 'file_testbench.vhd.t') output_fn = self.get_filename(directory) # Don't set a limit on running time time_limit = 0 template_params = { 'total_width_in': self.interface.total_width_in(), 'total_width_out': self.interface.total_width_out(), 'input_filename': os.path.join(false_directory, 'input.data'), 'output_filename': os.path.join(false_directory, 'output.data'), 'clock_period': '10 ns', 'max_cycles': time_limit, 'dut_parameters': self.interface.module_parameters, } utils.format_file(template_fn, output_fn, template_params)
def build(self, directory): template_fn = os.path.join(config.hdldir, 'wrapper', 'dummy_wrapper.vhd.t') output_fn = self.get_filename(directory) utils.format_file(template_fn, output_fn, self.params)
def build(self, directory): template_fn = os.path.join(config.hdldir, 'wrapper', 'outer_wrapper.vhd.t') output_fn = self.get_filename(directory) utils.format_file(template_fn, output_fn, self.template_params)