2019-05-16 15:30:16 -05:00
|
|
|
#!/bin/bash
|
2019-05-15 16:57:05 -05:00
|
|
|
# Example of how to run vpr
|
|
|
|
|
|
|
|
# Set variables
|
|
|
|
# For FPGA-Verilog ONLY
|
2019-05-16 15:30:16 -05:00
|
|
|
benchmark="test_modes"
|
2019-06-14 12:44:44 -05:00
|
|
|
OpenFPGA_path="OPENFPGAPATHKEYWORD"
|
2019-05-16 15:30:16 -05:00
|
|
|
verilog_output_dirname="${benchmark}_Verilog"
|
|
|
|
verilog_output_dirpath="$PWD"
|
2019-06-06 12:47:51 -05:00
|
|
|
tech_file="${OpenFPGA_path}/fpga_flow/tech/PTM_45nm/45nm.xml"
|
2019-05-15 16:57:05 -05:00
|
|
|
# VPR critical inputs
|
2019-08-14 10:10:13 -05:00
|
|
|
template_arch_xml_file="${OpenFPGA_path}/fpga_flow/arch/template/k6_N10_sram_chain_HC_template.xml"
|
2019-08-14 11:10:27 -05:00
|
|
|
arch_xml_file="${OpenFPGA_path}/fpga_flow/arch/generated/k6_N10_sram_chain_HC.xml"
|
2019-06-06 12:47:51 -05:00
|
|
|
blif_file="${OpenFPGA_path}/fpga_flow/benchmarks/Blif/Test_Modes/$benchmark.blif"
|
|
|
|
act_file="${OpenFPGA_path}/fpga_flow/benchmarks/Blif/Test_Modes/$benchmark.act "
|
|
|
|
verilog_reference="${OpenFPGA_path}/fpga_flow/benchmarks/Verilog/Test_Modes/$benchmark.v"
|
2019-07-16 08:04:45 -05:00
|
|
|
vpr_route_chan_width="300"
|
2019-06-11 15:28:58 -05:00
|
|
|
fpga_flow_script="${OpenFPGA_path}/fpga_flow/scripts"
|
2019-06-14 12:44:44 -05:00
|
|
|
ff_path="$vpr_path/VerilogNetlists/ff.v"
|
|
|
|
new_ff_path="$verilog_output_dirpath/$verilog_output_dirname/SRC/ff.v"
|
|
|
|
ff_keyword="GENERATED_DIR_KEYWORD"
|
|
|
|
ff_include_path="$verilog_output_dirpath/$verilog_output_dirname"
|
|
|
|
arch_ff_keyword="FFPATHKEYWORD"
|
2019-05-15 16:57:05 -05:00
|
|
|
|
|
|
|
# Remove previous designs
|
|
|
|
rm -rf $verilog_output_dirpath/$verilog_output_dirname
|
|
|
|
|
2019-07-16 14:13:30 -05:00
|
|
|
mkdir -p ${OpenFPGA_path}/fpga_flow/arch/generated
|
2019-06-11 15:28:58 -05:00
|
|
|
|
|
|
|
cd $fpga_flow_scripts
|
2019-06-14 12:44:44 -05:00
|
|
|
perl rewrite_path_in_file.pl -i $template_arch_xml_file -o $arch_xml_file
|
|
|
|
perl rewrite_path_in_file.pl -i $arch_xml_file -k $arch_ff_keyword $new_ff_path
|
2019-06-11 15:28:58 -05:00
|
|
|
cd -
|
|
|
|
|
2019-05-15 16:57:05 -05:00
|
|
|
# Run VPR
|
2019-07-17 08:54:23 -05:00
|
|
|
echo "./vpr $arch_xml_file $blif_file --full_stats --nodisp --activity_file $act_file --fpga_verilog --fpga_verilog_dir $verilog_output_dirpath/$verilog_output_dirname --fpga_x2p_rename_illegal_port --fpga_bitstream_generator --fpga_verilog_print_top_testbench --fpga_verilog_print_input_blif_testbench --fpga_verilog_include_timing --fpga_verilog_include_signal_init --fpga_verilog_print_formal_verification_top_netlist --fpga_verilog_print_autocheck_top_testbench $verilog_reference --fpga_verilog_print_user_defined_template --route_chan_width $vpr_route_chan_width --fpga_verilog_include_icarus_simulator --fpga_verilog_print_report_timing_tcl --power --tech_properties $tech_file --fpga_verilog_print_sdc_pnr --fpga_verilog_print_sdc_analysis --fpga_x2p_compact_routing_hierarchy #--fpga_verilog_explicit_mapping"
|
2019-07-16 14:13:30 -05:00
|
|
|
./vpr $arch_xml_file $blif_file --full_stats --nodisp --activity_file $act_file --fpga_verilog --fpga_verilog_dir $verilog_output_dirpath/$verilog_output_dirname --fpga_x2p_rename_illegal_port --fpga_bitstream_generator --fpga_verilog_print_top_testbench --fpga_verilog_print_input_blif_testbench --fpga_verilog_include_timing --fpga_verilog_include_signal_init --fpga_verilog_print_formal_verification_top_netlist --fpga_verilog_print_autocheck_top_testbench $verilog_reference --fpga_verilog_print_user_defined_template --route_chan_width $vpr_route_chan_width --fpga_verilog_include_icarus_simulator --fpga_verilog_print_report_timing_tcl --power --tech_properties $tech_file --fpga_verilog_print_sdc_pnr --fpga_verilog_print_sdc_analysis --fpga_x2p_compact_routing_hierarchy #--fpga_verilog_explicit_mapping
|
2019-05-15 16:57:05 -05:00
|
|
|
|
2019-06-14 12:44:44 -05:00
|
|
|
cd $fpga_flow_scripts
|
|
|
|
perl rewrite_path_in_file.pl -i $ff_path -o $new_ff_path -k $ff_keyword $ff_include_path
|
|
|
|
cd -
|