2020-11-24 10:58:23 -06:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
2021-01-26 17:40:45 -06:00
|
|
|
source openfpga.sh
|
|
|
|
PYTHON_EXEC=python3.8
|
2020-11-24 10:58:23 -06:00
|
|
|
###############################################
|
|
|
|
# OpenFPGA Shell with VPR8
|
|
|
|
##############################################
|
|
|
|
echo -e "Basic regression tests";
|
|
|
|
|
|
|
|
echo -e "Testing configuration chain of a K4N4 FPGA";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/full_testbench/configuration_chain $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_chain_no_time_stamp $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_chain_use_reset $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_chain_use_resetb $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_chain_use_set $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_chain_use_setb $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_chain_use_set_reset $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_chain_config_enable_scff $@
|
|
|
|
run-task basic_tests/full_testbench/multi_region_configuration_chain $@
|
|
|
|
run-task basic_tests/full_testbench/fast_configuration_chain $@
|
|
|
|
run-task basic_tests/full_testbench/fast_configuration_chain_use_set $@
|
|
|
|
run-task basic_tests/full_testbench/smart_fast_configuration_chain $@
|
|
|
|
run-task basic_tests/full_testbench/smart_fast_multi_region_configuration_chain $@
|
|
|
|
run-task basic_tests/preconfig_testbench/configuration_chain $@
|
|
|
|
run-task basic_tests/preconfig_testbench/configuration_chain_config_done_io $@
|
|
|
|
run-task basic_tests/preconfig_testbench/configuration_chain_no_time_stamp $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing fram-based configuration protocol of a K4N4 FPGA";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/full_testbench/configuration_frame $@
|
|
|
|
run-task basic_tests/full_testbench/smart_fast_configuration_frame $@
|
|
|
|
run-task basic_tests/full_testbench/fast_configuration_frame $@
|
|
|
|
run-task basic_tests/full_testbench/fast_configuration_frame_use_set $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_frame_ccff $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_frame_scff $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_frame_use_reset $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_frame_use_resetb $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_frame_use_set $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_frame_use_setb $@
|
|
|
|
run-task basic_tests/full_testbench/configuration_frame_use_set_reset $@
|
|
|
|
run-task basic_tests/full_testbench/multi_region_configuration_frame $@
|
|
|
|
run-task basic_tests/full_testbench/smart_fast_multi_region_configuration_frame $@
|
|
|
|
run-task basic_tests/preconfig_testbench/configuration_frame $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing memory bank configuration protocol of a K4N4 FPGA";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/full_testbench/memory_bank $@
|
|
|
|
run-task basic_tests/full_testbench/memory_bank_use_reset $@
|
|
|
|
run-task basic_tests/full_testbench/memory_bank_use_resetb $@
|
|
|
|
run-task basic_tests/full_testbench/memory_bank_use_set $@
|
|
|
|
run-task basic_tests/full_testbench/memory_bank_use_setb $@
|
|
|
|
run-task basic_tests/full_testbench/memory_bank_use_set_reset $@
|
|
|
|
run-task basic_tests/full_testbench/multi_region_memory_bank $@
|
|
|
|
run-task basic_tests/full_testbench/fast_memory_bank $@
|
|
|
|
run-task basic_tests/full_testbench/fast_memory_bank_use_set $@
|
|
|
|
run-task basic_tests/full_testbench/smart_fast_memory_bank $@
|
|
|
|
run-task basic_tests/full_testbench/smart_fast_multi_region_memory_bank $@
|
|
|
|
run-task basic_tests/preconfig_testbench/memory_bank $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
2021-09-09 15:48:30 -05:00
|
|
|
echo -e "Testing physical design friendly memory bank configuration protocol of a K4N4 FPGA";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/full_testbench/ql_memory_bank $@
|
|
|
|
run-task basic_tests/full_testbench/ql_memory_bank_use_wlr $@
|
|
|
|
run-task basic_tests/full_testbench/multi_region_ql_memory_bank $@
|
|
|
|
run-task basic_tests/full_testbench/ql_memory_bank_flatten $@
|
|
|
|
run-task basic_tests/full_testbench/ql_memory_bank_flatten_use_wlr $@
|
|
|
|
run-task basic_tests/full_testbench/ql_memory_bank_shift_register $@
|
|
|
|
run-task basic_tests/full_testbench/ql_memory_bank_shift_register_use_wlr $@
|
|
|
|
run-task basic_tests/full_testbench/ql_memory_bank_shift_register_multi_chain $@
|
2021-09-09 15:48:30 -05:00
|
|
|
|
2021-06-29 17:08:22 -05:00
|
|
|
echo -e "Testing testbenches without self checking features";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/full_testbench/full_testbench_without_self_checking $@
|
|
|
|
run-task basic_tests/preconfig_testbench/preconfigured_testbench_without_self_checking $@
|
2021-06-29 17:08:22 -05:00
|
|
|
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing standalone (flatten memory) configuration protocol of a K4N4 FPGA";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/full_testbench/flatten_memory $@
|
|
|
|
run-task basic_tests/preconfig_testbench/flatten_memory $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing fixed device layout and routing channel width";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/fixed_device_support $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing fabric Verilog generation only";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/generate_fabric $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Verilog testbench generation only";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/generate_testbench $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing separated Verilog fabric netlists and testbench locations";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/custom_fabric_netlist_location $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing user-defined simulation settings: clock frequency and number of cycles";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/fixed_simulation_settings/fixed_operating_clock_freq $@
|
2022-08-01 23:05:05 -05:00
|
|
|
run-task basic_tests/fixed_simulation_settings/fixed_operating_clock_freq_no_ace $@
|
2021-10-11 01:30:50 -05:00
|
|
|
# TODO: This feature is temporarily out of test due to the emergency in delivering netlists for multi-chain shift-register memory bank
|
2022-05-22 00:15:39 -05:00
|
|
|
#run-task basic_tests/fixed_simulation_settings/fixed_shift_register_clock_freq $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing Secured FPGA fabrics";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/fabric_key/generate_vanilla_key $@
|
|
|
|
run-task basic_tests/fabric_key/generate_multi_region_vanilla_key $@
|
|
|
|
run-task basic_tests/fabric_key/generate_random_key $@
|
|
|
|
run-task basic_tests/fabric_key/generate_random_key_ql_memory_bank $@
|
|
|
|
run-task basic_tests/fabric_key/load_external_key $@
|
|
|
|
run-task basic_tests/fabric_key/load_external_key_cc_fpga $@
|
|
|
|
run-task basic_tests/fabric_key/load_external_key_multi_region_cc_fpga $@
|
|
|
|
run-task basic_tests/fabric_key/load_external_key_qlbank_fpga $@
|
|
|
|
run-task basic_tests/fabric_key/load_external_key_multi_region_qlbank_fpga $@
|
|
|
|
run-task basic_tests/fabric_key/load_external_key_qlbanksr_multi_chain_fpga $@
|
2021-10-11 01:30:50 -05:00
|
|
|
# TODO: This feature is temporarily out of test due to the emergency in delivering netlists for multi-chain shift-register memory bank
|
2022-05-22 00:15:39 -05:00
|
|
|
#run-task basic_tests/fabric_key/load_external_key_multi_region_qlbanksr_fpga $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing K4 series FPGA";
|
|
|
|
echo -e "Testing K4N4 with facturable LUTs";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/k4_series/k4n4_frac_lut $@
|
2021-04-16 21:01:40 -05:00
|
|
|
echo -e "Testing K4N4 with asynchronous reset";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/k4_series/k4n4_fracff $@
|
2022-05-09 04:23:57 -05:00
|
|
|
echo -e "Testing K4N4 with negative edge clocks";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/k4_series/k4n4_fracff2edge $@
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing K4N4 with hard adders";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/k4_series/k4n4_adder $@
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing K4N4 without local routing architecture";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/k4_series/k4n4_no_local_routing $@
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing K4N4 with block RAM";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/k4_series/k4n4_bram $@
|
2021-01-29 11:19:05 -06:00
|
|
|
echo -e "Testing K4N4 with LUTRAM";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/k4_series/k4n4_lutram $@
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing K4N4 with multiple lengths of routing segments";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/k4_series/k4n4_L124 $@
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing K4N4 with 32-bit fracturable multiplier";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/k4_series/k4n4_frac_mult $@
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing K4N5 with pattern based local routing";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/k4_series/k4n5_pattern_local_routing $@
|
2022-09-08 18:27:11 -05:00
|
|
|
echo -e "Testing K4N4 with custom I/O location syntax";
|
|
|
|
run-task basic_tests/k4_series/k4n4_custom_io_loc $@
|
2022-09-16 12:31:15 -05:00
|
|
|
run-task basic_tests/k4_series/k4n4_custom_io_loc_center $@
|
|
|
|
run-task basic_tests/k4_series/k4n4_custom_io_loc_center_height_odd $@
|
|
|
|
run-task basic_tests/k4_series/k4n4_custom_io_loc_center_width_odd $@
|
2022-09-09 19:00:28 -05:00
|
|
|
echo -e "Testing K4N4 with a local routing where reset can driven LUT inputs";
|
|
|
|
run-task basic_tests/k4_series/k4n4_rstOnLut $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing different tile organizations";
|
|
|
|
echo -e "Testing tiles with pins only on top and left sides";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/tile_organization/top_left_custom_pins $@
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing tiles with pins only on top and right sides";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/tile_organization/top_right_custom_pins $@
|
2020-11-24 10:58:23 -06:00
|
|
|
echo -e "Testing tiles with pins only on bottom and right sides";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/tile_organization/bottom_right_custom_pins $@
|
2020-12-04 19:51:30 -06:00
|
|
|
echo -e "Testing tiles with I/O in center grid";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/tile_organization/tileable_io $@
|
2020-11-24 10:58:23 -06:00
|
|
|
|
|
|
|
echo -e "Testing global port definition from tiles";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/global_tile_ports/global_tile_clock $@
|
|
|
|
run-task basic_tests/global_tile_ports/global_tile_reset $@
|
|
|
|
run-task basic_tests/global_tile_ports/global_tile_4clock $@
|
|
|
|
run-task basic_tests/global_tile_ports/global_tile_4clock_pin $@
|
2020-12-16 06:19:56 -06:00
|
|
|
|
2021-11-01 08:33:33 -05:00
|
|
|
echo -e "Testing configuration chain of a K4N4 FPGA using .blif generated by yosys+verific";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/verific_test $@
|
2021-11-01 08:33:33 -05:00
|
|
|
|
2022-01-19 09:43:26 -06:00
|
|
|
echo -e "Testing explicit multi verilog files";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/explicit_multi_verilog_files $@
|
2022-01-25 18:30:48 -06:00
|
|
|
|
|
|
|
echo -e "Test the remove of runtime directories"
|
2022-05-22 00:15:39 -05:00
|
|
|
clear-task-run basic_tests/explicit_multi_verilog_files $@
|
2022-01-26 13:26:17 -06:00
|
|
|
|
|
|
|
echo -e "Testing write GSB to files";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml $@
|
2022-08-30 00:07:56 -05:00
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_exclude_rr_info $@
|
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_exclude_cbx $@
|
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_exclude_cby $@
|
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_exclude_cbx_cby $@
|
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_exclude_sb $@
|
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_exclude_sb_cbx $@
|
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_exclude_sb_cby $@
|
2022-08-30 10:59:20 -05:00
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_include_sb_cbx_cby $@
|
2022-08-30 00:07:56 -05:00
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_include_single_cbx $@
|
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_include_single_cby $@
|
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_include_single_sb $@
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/write_gsb/write_gsb_to_xml_compress_routing $@
|
|
|
|
run-task basic_tests/write_gsb/write_unique_gsb_to_xml $@
|
|
|
|
run-task basic_tests/write_gsb/write_unique_gsb_to_xml_compress_routing $@
|
2022-02-18 14:27:25 -06:00
|
|
|
|
|
|
|
echo -e "Testing bus group features";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/bus_group/preconfig_testbench_explicit_mapping $@
|
|
|
|
run-task basic_tests/bus_group/preconfig_testbench_implicit_mapping $@
|
|
|
|
run-task basic_tests/bus_group/full_testbench_explicit_mapping $@
|
|
|
|
run-task basic_tests/bus_group/full_testbench_implicit_mapping $@
|
2022-04-13 03:06:27 -05:00
|
|
|
|
|
|
|
echo -e "Testing fix pins features";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task basic_tests/fix_pins $@
|
2022-07-20 23:05:31 -05:00
|
|
|
run-task basic_tests/constrain_pin_location $@
|
2022-05-03 00:23:45 -05:00
|
|
|
|
|
|
|
echo -e "Testing project templates";
|
2022-05-22 00:15:39 -05:00
|
|
|
run-task template_tasks/vpr_blif_template $@
|
|
|
|
run-task template_tasks/yosys_vpr_template $@
|
|
|
|
run-task template_tasks/vtr_benchmarks_template $@
|
2022-05-03 15:03:52 -05:00
|
|
|
|
|
|
|
echo -e "Testing create tsk from template and run task"
|
|
|
|
create-task _task_copy basic_tests/generate_fabric
|
2022-08-25 18:20:18 -05:00
|
|
|
run-task _task_copy $@
|
2022-05-22 00:15:39 -05:00
|
|
|
|
|
|
|
echo -e "Testing output files without time stamp";
|
2022-09-06 16:59:00 -05:00
|
|
|
run-task basic_tests/no_time_stamp/device_1x1 $@
|
|
|
|
run-task basic_tests/no_time_stamp/device_4x4 $@
|
2022-10-01 13:04:08 -05:00
|
|
|
run-task basic_tests/no_time_stamp/no_cout_in_gsb $@
|
2022-05-22 00:15:39 -05:00
|
|
|
# Run git-diff to ensure no changes on the golden netlists
|
2022-05-22 21:32:43 -05:00
|
|
|
# Switch to root path in case users are running the tests in another location
|
|
|
|
cd ${OPENFPGA_PATH}
|
2022-05-22 22:21:36 -05:00
|
|
|
pwd
|
|
|
|
git config --global --add safe.directory ${OPENFPGA_PATH}
|
|
|
|
git log
|
2022-09-20 22:29:34 -05:00
|
|
|
if git diff --name-status --exit-code -- ':openfpga_flow/tasks/basic_tests/no_time_stamp/*/golden_outputs_no_time_stamp/**'; then
|
2022-05-22 00:15:39 -05:00
|
|
|
echo -e "Golden netlist remain unchanged"
|
|
|
|
else
|
2022-09-20 22:09:41 -05:00
|
|
|
echo -e "Detect changes in golden netlists";
|
|
|
|
git diff -- ':openfpga_flow/tasks/basic_tests/no_time_stamp/*/golden_outputs_no_time_stamp/**';
|
|
|
|
exit 1;
|
2022-05-22 00:15:39 -05:00
|
|
|
fi
|
2022-05-22 21:32:43 -05:00
|
|
|
cd -
|
2022-05-22 00:15:39 -05:00
|
|
|
|
|
|
|
# Repgression test to test multi-user enviroment
|
|
|
|
# Note: Keep this task as the last one!!!
|
|
|
|
cp -r */*/basic_tests/full_testbench/configuration_chain /tmp/
|
|
|
|
cd /tmp/ && run-task configuration_chain $@
|
|
|
|
cd -
|