
# -*- python -*-

Module('caba:vci_synthetic_target',
	classname = 'soclib::caba::VciSyntheticTarget',
	   tmpl_parameters = [
	parameter.Module('vci_param',  default = 'caba:vci_param'),
	],
	header_files = ['../source/include/vci_synthetic_target.h',],
	implementation_files = ['../source/src/vci_synthetic_target.cpp',],
			  ports = [
	Port('caba:vci_target', 'p_vci'),
	Port('caba:bit_in', 'p_resetn', auto = 'resetn'),
	Port('caba:clock_in', 'p_clk', auto = 'clock'),
	],
	uses = [
		Uses('caba:base_module'),
	 	Uses('common:linked_access_buffer', 
			 addr_t = parameter.StringExt('sc_dt::sc_uint<%d>', parameter.Reference('addr_size')),
			 id_t = parameter.StringExt('sc_dt::sc_uint<%d>', parameter.Reference('srcid_size'))),
		Uses('common:loader'),
		Uses('common:mapping_table'),
		],
	instance_parameters = [
	parameter.IntTab('ident'),
	parameter.Module('mt', 'common:mapping_table'),
	parameter.Module('loader', 'common:loader', auto='env:loader'),
	parameter.Int('latency'),
	],
	   extensions = [
	'dsx:addressable=ident',
	'dsx:get_ident=ident:p_vci:mt',
    'dsx:obtain_ident_method=param:ident',
	'dsx:mapping_type=memory',
   ],
)
