2020-11-24 10:58:23 -06:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
2021-01-26 17:40:45 -06:00
|
|
|
source openfpga.sh
|
2020-11-24 10:58:23 -06:00
|
|
|
###############################################
|
|
|
|
# OpenFPGA Shell with VPR8
|
|
|
|
##############################################
|
|
|
|
echo -e "FPGA-Verilog Feature Tests";
|
|
|
|
|
|
|
|
echo -e "Testing Verilog generation for LUTs: a single mode LUT6 FPGA using micro benchmarks";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/lut_design/single_mode $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation for LUTs: simple fracturable LUT4 ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/lut_design/frac_lut4 $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
2021-02-09 22:15:21 -06:00
|
|
|
echo -e "Testing Verilog generation for LUTs: fracturable LUT4 with embedded carry logic";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/lut_design/frac_lut4_arith $@
|
2021-02-09 22:15:21 -06:00
|
|
|
|
2020-11-26 00:02:18 -06:00
|
|
|
echo -e "Testing Verilog generation for LUTs: native fracturable LUT4 ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/lut_design/frac_native_lut4 $@
|
2020-11-26 00:02:18 -06:00
|
|
|
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing Verilog generation for LUTs: simple fracturable LUT4 using AND gate to switch modes";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/lut_design/frac_lut4_and_switch $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation for LUTs: simple fracturable LUT6 ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/lut_design/frac_lut6 $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation for LUTs: LUT6 with intermediate buffers";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/lut_design/intermediate_buffer $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with VPR's untileable routing architecture ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/untileable $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with hard adder chain in CLBs ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/adder/hard_adder $@
|
2021-02-01 12:16:12 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with soft adder chain in CLBs ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/adder/soft_adder $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
2021-04-28 13:45:52 -05:00
|
|
|
echo -e "Testing Verilog generation with 1k block RAMs ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/bram/dpram1k $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
2021-04-28 13:45:52 -05:00
|
|
|
echo -e "Testing Verilog generation with 1k block RAMs spanning two columns ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/bram/wide_dpram1k $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
2021-03-23 16:36:28 -05:00
|
|
|
echo -e "Testing Verilog generation with heterogeneous fabric using 8-bit single-mode multipliers ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/dsp/single_mode_mult_8x8 $@
|
2021-03-23 16:36:28 -05:00
|
|
|
|
2021-04-24 16:55:05 -05:00
|
|
|
echo -e "Testing Verilog generation with heterogeneous fabric using 16-bit multi-mode multipliers ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/dsp/multi_mode_mult_16x16 $@
|
2021-04-24 16:55:05 -05:00
|
|
|
|
2021-04-26 17:29:54 -05:00
|
|
|
echo -e "Testing Verilog generation with heterogeneous fabric using multi-width 16-bit multi-mode multipliers ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/dsp/wide_multi_mode_mult_16x16 $@
|
2021-04-26 17:29:54 -05:00
|
|
|
|
2022-01-02 22:21:58 -06:00
|
|
|
echo -e "Testing Verilog generation with heterogeneous fabric using 8-bit single-mode registerable multipliers ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/dsp/single_mode_mult_8x8_reg $@
|
2022-01-02 22:21:58 -06:00
|
|
|
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing Verilog generation with different I/O capacities on each side of an FPGA ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/io/multi_io_capacity $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with I/Os only on left and right sides of an FPGA ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/io/reduced_io $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with embedded I/Os for an FPGA ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/io/embedded_io $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with SoC I/Os for an FPGA ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/io/soc_io $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
2021-01-10 12:53:49 -06:00
|
|
|
echo -e "Testing Verilog generation with registerable I/Os for an FPGA ";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/io/registerable_io $@
|
2021-01-10 12:53:49 -06:00
|
|
|
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing Verilog generation with adder chain across an FPGA";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/fabric_chain/adder_chain $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with shift register chain across an FPGA";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/fabric_chain/register_chain $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with scan chain across an FPGA";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/fabric_chain/scan_chain $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with routing multiplexers implemented by tree structure";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/mux_design/tree_structure $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with routing multiplexers implemented by standard cell MUX2";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/mux_design/stdcell_mux2 $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with routing multiplexers implemented by local encoders";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/mux_design/local_encoder $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with routing multiplexers without buffers";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/mux_design/debuf_mux $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with routing multiplexers with input buffers only";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/mux_design/inbuf_only_mux $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with routing multiplexers with output buffers only";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/mux_design/outbuf_only_mux $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with routing multiplexers with constant gnd input";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/mux_design/const_input_gnd $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with routing multiplexers without constant inputs";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/mux_design/no_const_input $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with behavioral description";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/verilog_netlist_formats/behavioral_verilog $@
|
|
|
|
run-task fpga_verilog/verilog_netlist_formats/behavioral_verilog_default_nettype_wire $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
2021-02-17 17:13:15 -06:00
|
|
|
echo -e "Testing synthesizable Verilog generation with external standard cells";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/verilog_netlist_formats/synthesizable_verilog $@
|
2021-02-17 17:13:15 -06:00
|
|
|
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing implicit Verilog generation";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/verilog_netlist_formats/implicit_verilog $@
|
|
|
|
run-task fpga_verilog/verilog_netlist_formats/implicit_verilog_default_nettype_wire $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
2021-02-28 17:18:46 -06:00
|
|
|
echo -e "Testing explicit Verilog generation";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/verilog_netlist_formats/explicit_port_mapping_default_nettype_wire $@
|
2021-02-28 13:33:48 -06:00
|
|
|
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing Verilog generation with flatten routing modules";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/flatten_routing $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with duplicated grid output pins";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/duplicated_grid_pin $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog generation with spy output pads";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/spypad $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Power-gating designs";
|
2021-01-26 17:40:45 -06:00
|
|
|
run-task fpga_verilog/power_gated_design/power_gated_inverter --show_thread_logs --debug
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Depopulated crossbar in local routing";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/depopulate_crossbar $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Fully connected output crossbar in local routing";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/fully_connected_output_crossbar $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing through channels in tileable routing";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/thru_channel/thru_narrow_tile $@
|
|
|
|
run-task fpga_verilog/thru_channel/thru_wide_tile $@
|
2021-06-27 20:58:15 -05:00
|
|
|
|
2023-11-13 16:11:34 -06:00
|
|
|
echo -e "Testing wire concatation in tileable routing";
|
|
|
|
run-task fpga_verilog/rr_concat_wire $@
|
|
|
|
|
2021-06-27 20:58:15 -05:00
|
|
|
echo -e "Testing the generation of preconfigured fabric wrapper for different HDL simulators";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/verilog_netlist_formats/embed_bitstream_none $@
|
|
|
|
run-task fpga_verilog/verilog_netlist_formats/embed_bitstream_modelsim $@
|
2022-01-31 15:02:19 -06:00
|
|
|
|
|
|
|
echo -e "Testing the netlist generation by forcing the use of relative paths";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task fpga_verilog/verilog_netlist_formats/use_relative_path $@
|
|
|
|
run-task fpga_verilog/verilog_netlist_formats/preconfig_testbench_use_relative_path $@
|