25
25
"DPRAM" : "dual_port_ram.v" ,
26
26
"SPRAMR" : "spram_rename.v" ,
27
27
"DPRAMR" : "dpram_rename.v" ,
28
+ "DSPBB" : "arch_dsps.v" ,
28
29
}
29
30
30
31
@@ -58,6 +59,7 @@ def init_script_file(
58
59
yosys_dpram_full_path ,
59
60
yosys_spram_rename_full_path ,
60
61
yosys_dpram_rename_full_path ,
62
+ architecture_dsp_full_path ,
61
63
circuit_list ,
62
64
output_netlist ,
63
65
memory_addr_width ,
@@ -81,6 +83,7 @@ def init_script_file(
81
83
"DDD" : yosys_dpram_full_path ,
82
84
"SSR" : yosys_spram_rename_full_path ,
83
85
"DDR" : yosys_dpram_rename_full_path ,
86
+ "CCC" : architecture_dsp_full_path ,
84
87
"TTT" : str (vtr .paths .yosys_lib_path ),
85
88
"ZZZ" : output_netlist ,
86
89
},
@@ -99,7 +102,7 @@ def init_script_file(
99
102
vtr .file_replace (yosys_dpram_rename_full_path , {"PPP" : memory_addr_width })
100
103
101
104
102
- # pylint: disable=too-many-arguments, too-many-locals
105
+ # pylint: disable=too-many-arguments, too-many-locals, too-many-statements
103
106
def run (
104
107
architecture_file ,
105
108
circuit_file ,
@@ -202,6 +205,21 @@ def run(
202
205
shutil .copyfile (yosys_base_spram_rename , yosys_spram_rename_full_path )
203
206
shutil .copyfile (yosys_base_dpram_rename , yosys_dpram_rename_full_path )
204
207
208
+ write_arch_bb_exec = str (vtr .paths .write_arch_bb_exe_path )
209
+ architecture_dsp_full_path = str (vtr .paths .scripts_path / temp_dir / YOSYS_LIB_FILES ["DSPBB" ])
210
+
211
+ # executing write_arch_bb to extract the black box definitions of the given arch file
212
+ command_runner .run_system_command (
213
+ [
214
+ write_arch_bb_exec ,
215
+ str (vtr .paths .scripts_path / architecture_file ),
216
+ architecture_dsp_full_path ,
217
+ ],
218
+ temp_dir = temp_dir ,
219
+ log_filename = "write_arch_bb.log" ,
220
+ indent_depth = 1 ,
221
+ )
222
+
205
223
# Create a list showing all (.v) and (.vh) files
206
224
circuit_list = create_circuits_list (circuit_file , include_files )
207
225
@@ -212,6 +230,7 @@ def run(
212
230
yosys_dpram_full_path ,
213
231
yosys_spram_rename_full_path ,
214
232
yosys_dpram_rename_full_path ,
233
+ architecture_dsp_full_path ,
215
234
circuit_list ,
216
235
output_netlist .name ,
217
236
vtr .determine_memory_addr_width (str (architecture_file )),
@@ -236,4 +255,4 @@ def run(
236
255
)
237
256
238
257
239
- # pylint: enable=too-many-arguments, too-many-locals
258
+ # pylint: enable=too-many-arguments, too-many-locals, too-many-statements
0 commit comments