[test] add a new test case 'empty_pcf' to ensure 'free pin assignment' support in pcf2place; Move all the tests related to I/O constraints to a dedicated directory

This commit is contained in:
tangxifan 2022-10-17 11:18:21 -07:00
parent 18fc9071ab
commit aa78981e37
11 changed files with 80 additions and 5 deletions

View File

@ -185,8 +185,9 @@ run-task basic_tests/bus_group/full_testbench_explicit_mapping $@
run-task basic_tests/bus_group/full_testbench_implicit_mapping $@
echo -e "Testing fix pins features";
run-task basic_tests/fix_pins $@
run-task basic_tests/constrain_pin_location $@
run-task basic_tests/io_constraints/fix_pins $@
run-task basic_tests/io_constraints/example_pcf $@
run-task basic_tests/io_constraints/empty_pcf $@
echo -e "Testing project templates";
run-task template_tasks/vpr_blif_template $@

View File

@ -1,3 +0,0 @@
a 0 1 0
b 2 0 3
out:c 1 3 7

View File

@ -0,0 +1 @@
# Intended to be empt

View File

@ -0,0 +1,18 @@
<io_coordinates>
<io pad="gfpga_pad_IO_A2F[0]" x="1" y="0" z="0"/>
<io pad="gfpga_pad_IO_F2A[0]" x="1" y="0" z="1"/>
<io pad="gfpga_pad_IO_A2F[1]" x="1" y="0" z="2"/>
<io pad="gfpga_pad_IO_F2A[1]" x="1" y="0" z="3"/>
<io pad="gfpga_pad_IO_A2F[2]" x="1" y="0" z="4"/>
<io pad="gfpga_pad_IO_F2A[2]" x="1" y="0" z="5"/>
<io pad="gfpga_pad_IO_A2F[3]" x="1" y="0" z="6"/>
<io pad="gfpga_pad_IO_F2A[3]" x="1" y="0" z="7"/>
<io pad="gfpga_pad_IO_A2F[4]" x="2" y="0" z="0"/>
<io pad="gfpga_pad_IO_F2A[4]" x="2" y="0" z="1"/>
<io pad="gfpga_pad_IO_A2F[5]" x="2" y="0" z="2"/>
<io pad="gfpga_pad_IO_F2A[5]" x="2" y="0" z="3"/>
<io pad="gfpga_pad_IO_A2F[6]" x="2" y="0" z="4"/>
<io pad="gfpga_pad_IO_F2A[6]" x="2" y="0" z="5"/>
<io pad="gfpga_pad_IO_A2F[7]" x="2" y="0" z="6"/>
<io pad="gfpga_pad_IO_F2A[7]" x="2" y="0" z="7"/>
</io_coordinates>

View File

@ -0,0 +1,17 @@
orientation,row,col,pin_num_in_cell,port_name,mapped_pin,GPIO_type,Associated Clock,Clock Edge
TOP,,,,gfpga_pad_IO_A2F[0],pad_fpga_io[0],,,
TOP,,,,gfpga_pad_IO_F2A[0],pad_fpga_io[0],,,
TOP,,,,gfpga_pad_IO_A2F[2],pad_fpga_io[1],,,
TOP,,,,gfpga_pad_IO_F2A[2],pad_fpga_io[1],,,
TOP,,,,gfpga_pad_IO_A2F[1],pad_fpga_io[2],,,
TOP,,,,gfpga_pad_IO_F2A[1],pad_fpga_io[2],,,
TOP,,,,gfpga_pad_IO_A2F[3],pad_fpga_io[3],,,
TOP,,,,gfpga_pad_IO_F2A[3],pad_fpga_io[3],,,
RIGHT,,,,gfpga_pad_IO_A2F[5],pad_fpga_io[4],,,
RIGHT,,,,gfpga_pad_IO_F2A[5],pad_fpga_io[4],,,
RIGHT,,,,gfpga_pad_IO_A2F[4],pad_fpga_io[5],,,
RIGHT,,,,gfpga_pad_IO_F2A[4],pad_fpga_io[5],,,
BOTTOM,,,,gfpga_pad_IO_A2F[6],pad_fpga_io[6],,,
BOTTOM,,,,gfpga_pad_IO_F2A[6],pad_fpga_io[6],,,
LEFT,,,,gfpga_pad_IO_F2A[7],pad_fpga_io[7],,,
LEFT,,,,gfpga_pad_IO_A2F[7],pad_fpga_io[7],,,
1 orientation row col pin_num_in_cell port_name mapped_pin GPIO_type Associated Clock Clock Edge
2 TOP gfpga_pad_IO_A2F[0] pad_fpga_io[0]
3 TOP gfpga_pad_IO_F2A[0] pad_fpga_io[0]
4 TOP gfpga_pad_IO_A2F[2] pad_fpga_io[1]
5 TOP gfpga_pad_IO_F2A[2] pad_fpga_io[1]
6 TOP gfpga_pad_IO_A2F[1] pad_fpga_io[2]
7 TOP gfpga_pad_IO_F2A[1] pad_fpga_io[2]
8 TOP gfpga_pad_IO_A2F[3] pad_fpga_io[3]
9 TOP gfpga_pad_IO_F2A[3] pad_fpga_io[3]
10 RIGHT gfpga_pad_IO_A2F[5] pad_fpga_io[4]
11 RIGHT gfpga_pad_IO_F2A[5] pad_fpga_io[4]
12 RIGHT gfpga_pad_IO_A2F[4] pad_fpga_io[5]
13 RIGHT gfpga_pad_IO_F2A[4] pad_fpga_io[5]
14 BOTTOM gfpga_pad_IO_A2F[6] pad_fpga_io[6]
15 BOTTOM gfpga_pad_IO_F2A[6] pad_fpga_io[6]
16 LEFT gfpga_pad_IO_F2A[7] pad_fpga_io[7]
17 LEFT gfpga_pad_IO_A2F[7] pad_fpga_io[7]

View File

@ -0,0 +1,41 @@
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# Configuration file for running experiments
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# timeout_each_job : FPGA Task script splits fpga flow into multiple jobs
# Each job execute fpga_flow script on combination of architecture & benchmark
# timeout_each_job is timeout for each job
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
[GENERAL]
run_engine=openfpga_shell
power_tech_file = ${PATH:OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.xml
power_analysis = true
spice_output=false
verilog_output=true
timeout_each_job = 20*60
fpga_flow=yosys_vpr
[OpenFPGA_SHELL]
openfpga_shell_template=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_shell_scripts/pin_constrain_example_script.openfpga
openfpga_arch_file=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_arch/k4_N4_40nm_cc_openfpga.xml
openfpga_sim_setting_file=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_simulation_settings/auto_sim_openfpga.xml
openfpga_vpr_device_layout=4x4
openfpga_vpr_route_chan_width=20
openfpga_pcf=${PATH:OPENFPGA_PATH}/openfpga_flow/tasks/basic_tests/constrain_pin_location/config/and2.pcf
openfpga_io_map_file=${PATH:OPENFPGA_PATH}/openfpga_flow/tasks/basic_tests/constrain_pin_location/config/fpga_io_location.xml
openfpga_pin_table=${PATH:OPENFPGA_PATH}/openfpga_flow/tasks/basic_tests/constrain_pin_location/config/pinmap_k4_N4_tileable_40nm.csv
openfpga_vpr_fix_pins_file=and2_fix_pins.place
[ARCHITECTURES]
arch0=${PATH:OPENFPGA_PATH}/openfpga_flow/vpr_arch/k4_N4_tileable_40nm.xml
[BENCHMARKS]
bench0=${PATH:OPENFPGA_PATH}/openfpga_flow/benchmarks/micro_benchmark/and2/and2.v
[SYNTHESIS_PARAM]
bench_read_verilog_options_common = -nolatches
bench0_top = and2
[SCRIPT_PARAM_MIN_ROUTE_CHAN_WIDTH]
end_flow_with_test=
vpr_fpga_verilog_formal_verification_top_netlist=