Skip to content

Commit 976df1b

Browse files
committed
Refactored to be able to load TIS100 instructions at
runtime
1 parent a1436de commit 976df1b

21 files changed

+604
-1958
lines changed

README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ positional arguments:
106106
107107
optional arguments:
108108
-h, --help show this help message and exit
109-
-t {memh,memb,csvb,coeh,pick}, --type {memh,memb,csvb,coeh,pick}
109+
-t {memh,memb,csvb,coeh,pick}, --type {memh,memb,csvb,coeh,pick, cu32}
110110
sets output type
111111
-o OUT_FILE, --out_file OUT_FILE
112112
sets output file path
@@ -121,6 +121,7 @@ The current output formats are:
121121
* csvb - memb, but each portion of instruction separated by comma
122122
* coeh - Xilinx coefficients file, see [here](https://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgn_r_coe_file_syntax.htm)
123123
* pick - python pickle used for emulator
124+
* cu32 - a c array of 32 bit unsigned values. This is used to load instruction onto the TIS100 from the ARM CPU.
124125

125126
For example to compile the multiplier code for the emulator:
126127

@@ -147,13 +148,13 @@ To run on real hardware:
147148

148149
- [x] Connect multiple nodes together using top level design file
149150
- [x] Connect to ARM in Zynq SoC over AXI (use as co-processor)
150-
- [ ] Have ability to view contents, load code, input, output
151+
- [x] Have ability to load code
151152
- [x] Be able to wire up in Xilinx Block designer
153+
- [ ] Set up a monitoring/control UI
152154
- [ ] Build from Lua Script
153155

154156
# Misc Todo
155157

156158
- [ ] Refactor Testbenches to use tasks for code reuse
157159
- [ ] Add ANY and LAST targets for data (use 4 cycles to avoid multiple writes or reads to same node)
158160
- [ ] Improve testbench simulations to avoid needing to fully recompile each time (compile library?)
159-
- [ ] Comment and clean up code

build.tcl

+93-15
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44
# build.tcl: Tcl script for re-creating project 'tis100'
55
#
6-
# Generated by Vivado on Mon Feb 24 00:44:55 -0800 2020
6+
# Generated by Vivado on Mon Feb 24 12:37:34 -0800 2020
77
# IP Build 2700528 on Thu Nov 7 00:09:20 MST 2019
88
#
99
# This file contains the Vivado Tcl commands for re-creating the project to the state*
@@ -23,7 +23,7 @@
2323
# 2. The following source(s) files that were local or imported into the original project.
2424
# (Please see the '$orig_proj_dir' and '$origin_dir' variable setting below at the start of the script)
2525
#
26-
# "C:/Users/A/tis100/tis100/tis100.srcs/sources_1/bd/design_top/design_top.bd"
26+
# <none>
2727
#
2828
# 3. The following remote source files that were added to the original project:-
2929
#
@@ -32,7 +32,7 @@
3232
# "C:/Users/A/tis100/data/seq_gen/seq_gen_ina.mem"
3333
# "C:/Users/A/tis100/src/ip/tis100_1.0/src/my_params.vh"
3434
# "C:/Users/A/tis100/data/dir_manager_tv.mem"
35-
# "C:/Users/A/tis100/data/instr_ram_tv.mem"
35+
# "C:/Users/A/tis100/data/instr_rom_tv.mem"
3636
# "C:/Users/A/tis100/data/seq_gen/seq_gen_node2.mem"
3737
# "C:/Users/A/tis100/data/test_mult.mem"
3838
# "C:/Users/A/tis100/data/registers_tv.mem"
@@ -41,6 +41,7 @@
4141
# "C:/Users/A/tis100/data/op_decode_tv.mem"
4242
# "C:/Users/A/tis100/data/alu_tv.mem"
4343
# "C:/Users/A/tis100/data/test_opcodes.mem"
44+
# "C:/Users/A/tis100/src/sim/axi_tis_rw_tb.v"
4445
# "C:/Users/A/tis100/src/sim/op_decode_tb.v"
4546
# "C:/Users/A/tis100/src/sim/t21_node_tb.v"
4647
# "C:/Users/A/tis100/src/sim/t21_2_node_tb.v"
@@ -51,9 +52,11 @@
5152
# "C:/Users/A/tis100/src/ip/tis100_1.0/src/op_decode.v"
5253
# "C:/Users/A/tis100/src/sim/registers_tb.v"
5354
# "C:/Users/A/tis100/src/sim/instr_ram_tb.v"
55+
# "C:/Users/A/tis100/src/sim/instr_rom_tb.v"
5456
# "C:/Users/A/tis100/src/sim/dir_manager_tb.v"
5557
# "C:/Users/A/tis100/src/ip/tis100_1.0/src/instr_ram.v"
5658
# "C:/Users/A/tis100/src/ip/tis100_1.0/src/registers.v"
59+
# "C:/Users/A/tis100/src/ip/tis100_1.0/hdl/tis100_v1_0_S00_AXI.v"
5760
#
5861
#*****************************************************************************************
5962

@@ -179,6 +182,7 @@ add_files -norecurse -fileset $obj $files
179182
# Set 'sources_1' fileset properties
180183
set obj [get_filesets sources_1]
181184
set_property -name "top" -value "design_top_wrapper" -objects $obj
185+
set_property -name "top_auto_set" -value "0" -objects $obj
182186

183187
# Create 'constrs_1' fileset (if not found)
184188
if {[string equal [get_filesets -quiet constrs_1] ""]} {
@@ -214,6 +218,7 @@ set files [list \
214218
[file normalize "${origin_dir}/data/op_decode_tv.mem"] \
215219
[file normalize "${origin_dir}/data/alu_tv.mem"] \
216220
[file normalize "${origin_dir}/data/test_opcodes.mem"] \
221+
[file normalize "${origin_dir}/src/sim/axi_tis_rw_tb.v"] \
217222
[file normalize "${origin_dir}/src/sim/op_decode_tb.v"] \
218223
[file normalize "${origin_dir}/src/sim/t21_node_tb.v"] \
219224
[file normalize "${origin_dir}/src/sim/t21_2_node_tb.v"] \
@@ -228,12 +233,84 @@ set files [list \
228233
[file normalize "${origin_dir}/src/sim/dir_manager_tb.v"] \
229234
[file normalize "${origin_dir}/src/ip/tis100_1.0/src/instr_ram.v"] \
230235
[file normalize "${origin_dir}/src/ip/tis100_1.0/src/registers.v"] \
236+
[file normalize "${origin_dir}/src/ip/tis100_1.0/hdl/tis100_v1_0_S00_AXI.v"] \
231237
]
232238
add_files -norecurse -fileset $obj $files
233239

240+
# Set 'sim_1' fileset file properties for remote files
241+
set file "$origin_dir/data/seq_gen/seq_gen_inb.mem"
242+
set file [file normalize $file]
243+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
244+
set_property -name "file_type" -value "Memory File" -objects $file_obj
245+
246+
set file "$origin_dir/data/seq_gen/seq_gen_ina.mem"
247+
set file [file normalize $file]
248+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
249+
set_property -name "file_type" -value "Memory File" -objects $file_obj
250+
251+
set file "$origin_dir/src/ip/tis100_1.0/src/my_params.vh"
252+
set file [file normalize $file]
253+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
254+
set_property -name "file_type" -value "Verilog Header" -objects $file_obj
255+
256+
set file "$origin_dir/data/dir_manager_tv.mem"
257+
set file [file normalize $file]
258+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
259+
set_property -name "file_type" -value "Memory File" -objects $file_obj
260+
261+
set file "$origin_dir/data/instr_rom_tv.mem"
262+
set file [file normalize $file]
263+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
264+
set_property -name "file_type" -value "Memory File" -objects $file_obj
265+
266+
set file "$origin_dir/data/seq_gen/seq_gen_node2.mem"
267+
set file [file normalize $file]
268+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
269+
set_property -name "file_type" -value "Memory File" -objects $file_obj
270+
271+
set file "$origin_dir/data/test_mult.mem"
272+
set file [file normalize $file]
273+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
274+
set_property -name "file_type" -value "Memory File" -objects $file_obj
275+
276+
set file "$origin_dir/data/registers_tv.mem"
277+
set file [file normalize $file]
278+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
279+
set_property -name "file_type" -value "Memory File" -objects $file_obj
280+
281+
set file "$origin_dir/data/seq_gen/seq_gen_result.mem"
282+
set file [file normalize $file]
283+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
284+
set_property -name "file_type" -value "Memory File" -objects $file_obj
285+
286+
set file "$origin_dir/data/seq_gen/seq_gen_node1.mem"
287+
set file [file normalize $file]
288+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
289+
set_property -name "file_type" -value "Memory File" -objects $file_obj
290+
291+
set file "$origin_dir/data/op_decode_tv.mem"
292+
set file [file normalize $file]
293+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
294+
set_property -name "file_type" -value "Memory File" -objects $file_obj
295+
296+
set file "$origin_dir/data/alu_tv.mem"
297+
set file [file normalize $file]
298+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
299+
set_property -name "file_type" -value "Memory File" -objects $file_obj
300+
301+
set file "$origin_dir/data/test_opcodes.mem"
302+
set file [file normalize $file]
303+
set file_obj [get_files -of_objects [get_filesets sim_1] [list "*$file"]]
304+
set_property -name "file_type" -value "Memory File" -objects $file_obj
305+
306+
307+
# Set 'sim_1' fileset file properties for local files
308+
# None
309+
234310
# Set 'sim_1' fileset properties
235311
set obj [get_filesets sim_1]
236312
set_property -name "top" -value "design_top_wrapper" -objects $obj
313+
set_property -name "top_auto_set" -value "0" -objects $obj
237314
set_property -name "top_lib" -value "xil_defaultlib" -objects $obj
238315

239316
# Set 'utils_1' fileset object
@@ -388,7 +465,8 @@ proc cr_bd_design_top { parentCell } {
388465
CONFIG.PCW_ENET1_PERIPHERAL_DIVISOR0 {1} \
389466
CONFIG.PCW_ENET1_PERIPHERAL_DIVISOR1 {1} \
390467
CONFIG.PCW_ENET1_RESET_ENABLE {0} \
391-
CONFIG.PCW_ENET_RESET_ENABLE {0} \
468+
CONFIG.PCW_ENET_RESET_ENABLE {1} \
469+
CONFIG.PCW_ENET_RESET_SELECT {Share reset pin} \
392470
CONFIG.PCW_EN_CLK0_PORT {1} \
393471
CONFIG.PCW_EN_CLK1_PORT {0} \
394472
CONFIG.PCW_EN_CLK2_PORT {0} \
@@ -658,8 +736,8 @@ proc cr_bd_design_top { parentCell } {
658736
CONFIG.PCW_MIO_9_PULLUP {disabled} \
659737
CONFIG.PCW_MIO_9_SLEW {slow} \
660738
CONFIG.PCW_MIO_PRIMITIVE {54} \
661-
CONFIG.PCW_MIO_TREE_PERIPHERALS {GPIO#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#GPIO#Quad SPI Flash#GPIO#GPIO#GPIO#GPIO#GPIO#GPIO#GPIO#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#SD 0#SD 0#SD 0#SD 0#SD 0#SD 0#SD 0#GPIO#UART 1#UART 1#SD 0#GPIO#Enet 0#Enet 0} \
662-
CONFIG.PCW_MIO_TREE_SIGNALS {gpio[0]#qspi0_ss_b#qspi0_io[0]#qspi0_io[1]#qspi0_io[2]#qspi0_io[3]/HOLD_B#qspi0_sclk#gpio[7]#qspi_fbclk#gpio[9]#gpio[10]#gpio[11]#gpio[12]#gpio[13]#gpio[14]#gpio[15]#tx_clk#txd[0]#txd[1]#txd[2]#txd[3]#tx_ctl#rx_clk#rxd[0]#rxd[1]#rxd[2]#rxd[3]#rx_ctl#data[4]#dir#stp#nxt#data[0]#data[1]#data[2]#data[3]#clk#data[5]#data[6]#data[7]#clk#cmd#data[0]#data[1]#data[2]#data[3]#cd#gpio[47]#tx#rx#wp#gpio[51]#mdc#mdio} \
739+
CONFIG.PCW_MIO_TREE_PERIPHERALS {GPIO#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#USB Reset#Quad SPI Flash#GPIO#GPIO#GPIO#GPIO#GPIO#GPIO#GPIO#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#SD 0#SD 0#SD 0#SD 0#SD 0#SD 0#SD 0#GPIO#UART 1#UART 1#SD 0#GPIO#Enet 0#Enet 0} \
740+
CONFIG.PCW_MIO_TREE_SIGNALS {gpio[0]#qspi0_ss_b#qspi0_io[0]#qspi0_io[1]#qspi0_io[2]#qspi0_io[3]/HOLD_B#qspi0_sclk#reset#qspi_fbclk#gpio[9]#gpio[10]#gpio[11]#gpio[12]#gpio[13]#gpio[14]#gpio[15]#tx_clk#txd[0]#txd[1]#txd[2]#txd[3]#tx_ctl#rx_clk#rxd[0]#rxd[1]#rxd[2]#rxd[3]#rx_ctl#data[4]#dir#stp#nxt#data[0]#data[1]#data[2]#data[3]#clk#data[5]#data[6]#data[7]#clk#cmd#data[0]#data[1]#data[2]#data[3]#cd#gpio[47]#tx#rx#wp#gpio[51]#mdc#mdio} \
663741
CONFIG.PCW_NAND_GRP_D8_ENABLE {0} \
664742
CONFIG.PCW_NAND_PERIPHERAL_ENABLE {0} \
665743
CONFIG.PCW_NOR_GRP_A25_ENABLE {0} \
@@ -768,11 +846,12 @@ proc cr_bd_design_top { parentCell } {
768846
CONFIG.PCW_UIPARAM_DDR_USE_INTERNAL_VREF {0} \
769847
CONFIG.PCW_USB0_PERIPHERAL_ENABLE {1} \
770848
CONFIG.PCW_USB0_PERIPHERAL_FREQMHZ {60} \
771-
CONFIG.PCW_USB0_RESET_ENABLE {0} \
772-
CONFIG.PCW_USB0_RESET_IO {<Select>} \
849+
CONFIG.PCW_USB0_RESET_ENABLE {1} \
850+
CONFIG.PCW_USB0_RESET_IO {MIO 7} \
773851
CONFIG.PCW_USB0_USB0_IO {MIO 28 .. 39} \
774852
CONFIG.PCW_USB1_RESET_ENABLE {0} \
775-
CONFIG.PCW_USB_RESET_ENABLE {0} \
853+
CONFIG.PCW_USB_RESET_ENABLE {1} \
854+
CONFIG.PCW_USB_RESET_SELECT {Share reset pin} \
776855
CONFIG.PCW_USE_AXI_NONSECURE {1} \
777856
CONFIG.PCW_USE_FABRIC_INTERRUPT {1} \
778857
CONFIG.PCW_USE_M_AXI_GP0 {1} \
@@ -782,7 +861,7 @@ proc cr_bd_design_top { parentCell } {
782861
# Create instance: ps7_0_axi_periph, and set properties
783862
set ps7_0_axi_periph [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 ps7_0_axi_periph ]
784863
set_property -dict [ list \
785-
CONFIG.NUM_MI {2} \
864+
CONFIG.NUM_MI {1} \
786865
] $ps7_0_axi_periph
787866

788867
# Create instance: rst_ps7_0_100M, and set properties
@@ -796,24 +875,23 @@ proc cr_bd_design_top { parentCell } {
796875
connect_bd_intf_net -intf_net processing_system7_0_FIXED_IO [get_bd_intf_ports FIXED_IO] [get_bd_intf_pins processing_system7_0/FIXED_IO]
797876
connect_bd_intf_net -intf_net processing_system7_0_M_AXI_GP0 [get_bd_intf_pins processing_system7_0/M_AXI_GP0] [get_bd_intf_pins ps7_0_axi_periph/S00_AXI]
798877
connect_bd_intf_net -intf_net ps7_0_axi_periph_M00_AXI [get_bd_intf_pins ps7_0_axi_periph/M00_AXI] [get_bd_intf_pins tis100_0/S00_AXI]
799-
connect_bd_intf_net -intf_net ps7_0_axi_periph_M01_AXI [get_bd_intf_pins ps7_0_axi_periph/M01_AXI] [get_bd_intf_pins tis100_0/S_AXI_INTR]
800878

801879
# Create port connections
802-
connect_bd_net -net processing_system7_0_FCLK_CLK0 [get_bd_pins processing_system7_0/FCLK_CLK0] [get_bd_pins processing_system7_0/M_AXI_GP0_ACLK] [get_bd_pins ps7_0_axi_periph/ACLK] [get_bd_pins ps7_0_axi_periph/M00_ACLK] [get_bd_pins ps7_0_axi_periph/M01_ACLK] [get_bd_pins ps7_0_axi_periph/S00_ACLK] [get_bd_pins rst_ps7_0_100M/slowest_sync_clk] [get_bd_pins tis100_0/s00_axi_aclk] [get_bd_pins tis100_0/s_axi_intr_aclk]
880+
connect_bd_net -net processing_system7_0_FCLK_CLK0 [get_bd_pins processing_system7_0/FCLK_CLK0] [get_bd_pins processing_system7_0/M_AXI_GP0_ACLK] [get_bd_pins ps7_0_axi_periph/ACLK] [get_bd_pins ps7_0_axi_periph/M00_ACLK] [get_bd_pins ps7_0_axi_periph/S00_ACLK] [get_bd_pins rst_ps7_0_100M/slowest_sync_clk] [get_bd_pins tis100_0/s00_axi_aclk]
803881
connect_bd_net -net processing_system7_0_FCLK_RESET0_N [get_bd_pins processing_system7_0/FCLK_RESET0_N] [get_bd_pins rst_ps7_0_100M/ext_reset_in]
804-
connect_bd_net -net rst_ps7_0_100M_peripheral_aresetn [get_bd_pins ps7_0_axi_periph/ARESETN] [get_bd_pins ps7_0_axi_periph/M00_ARESETN] [get_bd_pins ps7_0_axi_periph/M01_ARESETN] [get_bd_pins ps7_0_axi_periph/S00_ARESETN] [get_bd_pins rst_ps7_0_100M/peripheral_aresetn] [get_bd_pins tis100_0/s00_axi_aresetn] [get_bd_pins tis100_0/s_axi_intr_aresetn]
882+
connect_bd_net -net rst_ps7_0_100M_peripheral_aresetn [get_bd_pins ps7_0_axi_periph/ARESETN] [get_bd_pins ps7_0_axi_periph/M00_ARESETN] [get_bd_pins ps7_0_axi_periph/S00_ARESETN] [get_bd_pins rst_ps7_0_100M/peripheral_aresetn] [get_bd_pins tis100_0/s00_axi_aresetn]
805883
connect_bd_net -net tis100_0_irq [get_bd_pins processing_system7_0/IRQ_F2P] [get_bd_pins tis100_0/irq]
806884

807885
# Create address segments
808886
assign_bd_address -offset 0x43C00000 -range 0x00010000 -target_address_space [get_bd_addr_spaces processing_system7_0/Data] [get_bd_addr_segs tis100_0/S00_AXI/S00_AXI_reg] -force
809-
assign_bd_address -offset 0x43C10000 -range 0x00010000 -target_address_space [get_bd_addr_spaces processing_system7_0/Data] [get_bd_addr_segs tis100_0/S_AXI_INTR/S_AXI_INTR_reg] -force
810887

811888

812889
# Restore current instance
813890
current_bd_instance $oldCurInst
814891

815-
validate_bd_design
816892
save_bd_design
893+
common::send_msg_id "BD_TCL-1000" "WARNING" "This Tcl script was generated from a block design that has not been validated. It is possible that design <$design_name> may result in errors during validation."
894+
817895
close_bd_design $design_name
818896
}
819897
# End of cr_bd_design_top()

scripts/compiler.py

+12-1
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,15 @@ def write_hex_memory_file(hex_file, output_codes):
165165
lines.append(f'{combined:06x}')
166166
hex_file.write('\n'.join(lines))
167167

168+
def write_c_u32_array_file(header_file, output_codes):
169+
lines = []
170+
for output_code in output_codes:
171+
combined = output_code_to_int(output_code)
172+
lines.append(f'0b{combined:021b}')
173+
header_file.write('u32 instrs[] = {\n ')
174+
header_file.write(',\n '.join(lines))
175+
header_file.write('\n};')
176+
168177
def write_hex_coe_file(coe_file, output_codes):
169178
coe_file.write('memory_initialization_radix = 16;\n')
170179
coe_file.write('memory_initialization_vector=\n')
@@ -209,7 +218,8 @@ def main(asm_file_name, out_file_name, output_type):
209218
OutType.memb: write_bin_memory_file,
210219
OutType.csvb: write_bin_csv_file,
211220
OutType.coeh: write_hex_coe_file,
212-
OutType.pick: write_pickle_file
221+
OutType.pick: write_pickle_file,
222+
OutType.cu32: write_c_u32_array_file
213223
}[output_type](fd, output_codes)
214224

215225
class OutType(Enum):
@@ -218,6 +228,7 @@ class OutType(Enum):
218228
csvb = 'csvb'
219229
coeh = 'coeh'
220230
pick = 'pick'
231+
cu32 = 'cu32'
221232
def __str__(self):
222233
return self.value
223234

scripts/run_tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ source scripts/env.sh
66
# xsim op_decode_tb_behav -key {Behavioral:sim_1:Functional:op_decode_tb} -tclbatch $SCRIPT_PATH/run_tests.tcl -log simulate1.log
77

88
vivado -mode batch -source scripts/run_tests.tcl | tee simulation.log
9-
python scripts/check_sim_logs.py simulation.log 8
9+
python scripts/check_sim_logs.py simulation.log 9

scripts/run_tests.tcl

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ open_project tis100/tis100.xpr
22

33
set_property -name {xsim.simulate.runtime} -value {100us} -objects [get_filesets sim_1]
44

5-
set test_benches {"alu_tb" "op_decode_tb" "registers_tb" "instr_rom_tb" "instr_ram_tb" "dir_manager_tb" "t21_node_tb" "t21_2_node_tb" }
5+
set test_benches {"alu_tb" "op_decode_tb" "registers_tb" "instr_rom_tb" "instr_ram_tb" "dir_manager_tb" "t21_node_tb" "t21_2_node_tb" "axi_tis_rw_tb" }
66

77
foreach test_bench $test_benches {
88
set_property top $test_bench [get_filesets sim_1]

0 commit comments

Comments
 (0)