SDC plugin: Use common plugin test Makefile Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
diff --git a/sdc-plugin/tests/Makefile b/sdc-plugin/tests/Makefile index 718241c..b2d146a 100644 --- a/sdc-plugin/tests/Makefile +++ b/sdc-plugin/tests/Makefile
@@ -1,7 +1,6 @@ # counter, counter2, pll - test buffer and clock divider propagation # set_false_path - test the set_false_path command # set_max_delay - test the set_max_delay command - TESTS = counter \ counter2 \ pll \ @@ -10,42 +9,13 @@ pll_approx_equal \ set_false_path \ set_max_delay +include $(shell pwd)/../../Makefile_test.common -.PHONY: $(TESTS) - -counter_verify = $(call compare,counter,sdc) && $(call compare,counter,txt) -counter2_verify = $(call compare,counter2,sdc) && $(call compare,counter2,txt) -pll_verify = $(call compare,pll,sdc) -pll_div_verify = $(call compare,pll_div,sdc) -pll_fbout_phase_verify = $(call compare,pll_fbout_phase,sdc) -pll_approx_equal_verify = $(call compare,pll_approx_equal,sdc) -set_false_path_verify = $(call compare,set_false_path,sdc) -set_max_delay_verify = $(call compare,set_max_delay,sdc) - -all: $(TESTS) -compare = diff $(1)/$(1).golden.$(2) $(1)/$(1).$(2) - -define test_tpl = -$(1): $(1)/$(1).sdc - $$($(1)_verify) - RETVAL=$$$$? ; \ - if [ $$$$RETVAL -eq 0 ]; then \ - echo "$(1) PASS"; \ - true; \ - else \ - echo "$(1) FAIL"; \ - false; \ - fi - -$(1)/$(1).sdc: $(1)/$(1).v - cd $(1); \ - INPUT_SDC_FILE=$(1).input.sdc \ - OUTPUT_SDC_FILE=$(1).sdc \ - yosys -p "tcl $(1).tcl" -l yosys.log - -endef - -$(foreach test,$(TESTS),$(eval $(call test_tpl,$(test)))) - -clean: - rm -rf $(foreach test,$(TESTS),$(test)/$(test).sdc $(test)/$(test).txt $(test)/yosys.log) +counter_verify = $(call diff_test,counter,sdc) && $(call diff_test,counter,txt) +counter2_verify = $(call diff_test,counter2,sdc) && $(call diff_test,counter2,txt) +pll_verify = $(call diff_test,pll,sdc) +pll_div_verify = $(call diff_test,pll_div,sdc) +pll_fbout_phase_verify = $(call diff_test,pll_fbout_phase,sdc) +pll_approx_equal_verify = $(call diff_test,pll_approx_equal,sdc) +set_false_path_verify = $(call diff_test,set_false_path,sdc) +set_max_delay_verify = $(call diff_test,set_max_delay,sdc)
diff --git a/sdc-plugin/tests/counter/counter.tcl b/sdc-plugin/tests/counter/counter.tcl index a27caf9..4fcf9be 100644 --- a/sdc-plugin/tests/counter/counter.tcl +++ b/sdc-plugin/tests/counter/counter.tcl
@@ -3,7 +3,7 @@ # Import the commands from the plugins to the tcl interpreter yosys -import -read_verilog counter.v +read_verilog $::env(DESIGN_TOP).v read_verilog -specify -lib -D_EXPLICIT_CARRY +/xilinx/cells_sim.v read_verilog -lib +/xilinx/cells_xtra.v hierarchy -check -auto-top @@ -11,16 +11,16 @@ synth_xilinx -vpr -flatten -abc9 -nosrl -nodsp -iopad -run prepare:check # Read the design's timing constraints -read_sdc $::env(INPUT_SDC_FILE) +read_sdc $::env(DESIGN_TOP).input.sdc # Propagate the clocks propagate_clocks # Write the clocks to file -set fh [open counter.txt w] +set fh [open $::env(DESIGN_TOP).txt w] set clocks [get_clocks] puts $fh $clocks close $fh # Write out the SDC file after the clock propagation step -write_sdc $::env(OUTPUT_SDC_FILE) +write_sdc $::env(DESIGN_TOP).sdc
diff --git a/sdc-plugin/tests/counter2/counter2.tcl b/sdc-plugin/tests/counter2/counter2.tcl index 80bce1b..4fcf9be 100644 --- a/sdc-plugin/tests/counter2/counter2.tcl +++ b/sdc-plugin/tests/counter2/counter2.tcl
@@ -3,7 +3,7 @@ # Import the commands from the plugins to the tcl interpreter yosys -import -read_verilog counter2.v +read_verilog $::env(DESIGN_TOP).v read_verilog -specify -lib -D_EXPLICIT_CARRY +/xilinx/cells_sim.v read_verilog -lib +/xilinx/cells_xtra.v hierarchy -check -auto-top @@ -11,16 +11,16 @@ synth_xilinx -vpr -flatten -abc9 -nosrl -nodsp -iopad -run prepare:check # Read the design's timing constraints -read_sdc $::env(INPUT_SDC_FILE) +read_sdc $::env(DESIGN_TOP).input.sdc # Propagate the clocks propagate_clocks # Write the clocks to file -set fh [open counter2.txt w] +set fh [open $::env(DESIGN_TOP).txt w] set clocks [get_clocks] puts $fh $clocks close $fh # Write out the SDC file after the clock propagation step -write_sdc $::env(OUTPUT_SDC_FILE) +write_sdc $::env(DESIGN_TOP).sdc
diff --git a/sdc-plugin/tests/pll/pll.tcl b/sdc-plugin/tests/pll/pll.tcl index 61e67f6..5a2e3c4 100644 --- a/sdc-plugin/tests/pll/pll.tcl +++ b/sdc-plugin/tests/pll/pll.tcl
@@ -3,7 +3,7 @@ # Import the commands from the plugins to the tcl interpreter yosys -import -read_verilog pll.v +read_verilog $::env(DESIGN_TOP).v read_verilog -specify -lib -D_EXPLICIT_CARRY +/xilinx/cells_sim.v read_verilog -lib +/xilinx/cells_xtra.v hierarchy -check -auto-top @@ -12,10 +12,10 @@ synth_xilinx -vpr -flatten -abc9 -nosrl -nodsp -iopad -run prepare:check # Read the design timing constraints -read_sdc $::env(INPUT_SDC_FILE) +read_sdc $::env(DESIGN_TOP).input.sdc # Propagate the clocks propagate_clocks # Write out the SDC file after the clock propagation step -write_sdc $::env(OUTPUT_SDC_FILE) +write_sdc $::env(DESIGN_TOP).sdc
diff --git a/sdc-plugin/tests/pll_approx_equal/pll_approx_equal.tcl b/sdc-plugin/tests/pll_approx_equal/pll_approx_equal.tcl index 13c8890..5a2e3c4 100644 --- a/sdc-plugin/tests/pll_approx_equal/pll_approx_equal.tcl +++ b/sdc-plugin/tests/pll_approx_equal/pll_approx_equal.tcl
@@ -3,7 +3,7 @@ # Import the commands from the plugins to the tcl interpreter yosys -import -read_verilog pll_approx_equal.v +read_verilog $::env(DESIGN_TOP).v read_verilog -specify -lib -D_EXPLICIT_CARRY +/xilinx/cells_sim.v read_verilog -lib +/xilinx/cells_xtra.v hierarchy -check -auto-top @@ -12,10 +12,10 @@ synth_xilinx -vpr -flatten -abc9 -nosrl -nodsp -iopad -run prepare:check # Read the design timing constraints -read_sdc $::env(INPUT_SDC_FILE) +read_sdc $::env(DESIGN_TOP).input.sdc # Propagate the clocks propagate_clocks # Write out the SDC file after the clock propagation step -write_sdc $::env(OUTPUT_SDC_FILE) +write_sdc $::env(DESIGN_TOP).sdc
diff --git a/sdc-plugin/tests/pll_div/pll_div.tcl b/sdc-plugin/tests/pll_div/pll_div.tcl index f8f0a9f..5a2e3c4 100644 --- a/sdc-plugin/tests/pll_div/pll_div.tcl +++ b/sdc-plugin/tests/pll_div/pll_div.tcl
@@ -3,7 +3,7 @@ # Import the commands from the plugins to the tcl interpreter yosys -import -read_verilog pll_div.v +read_verilog $::env(DESIGN_TOP).v read_verilog -specify -lib -D_EXPLICIT_CARRY +/xilinx/cells_sim.v read_verilog -lib +/xilinx/cells_xtra.v hierarchy -check -auto-top @@ -12,10 +12,10 @@ synth_xilinx -vpr -flatten -abc9 -nosrl -nodsp -iopad -run prepare:check # Read the design timing constraints -read_sdc $::env(INPUT_SDC_FILE) +read_sdc $::env(DESIGN_TOP).input.sdc # Propagate the clocks propagate_clocks # Write out the SDC file after the clock propagation step -write_sdc $::env(OUTPUT_SDC_FILE) +write_sdc $::env(DESIGN_TOP).sdc
diff --git a/sdc-plugin/tests/pll_fbout_phase/pll_fbout_phase.tcl b/sdc-plugin/tests/pll_fbout_phase/pll_fbout_phase.tcl index 6b6db73..5a2e3c4 100644 --- a/sdc-plugin/tests/pll_fbout_phase/pll_fbout_phase.tcl +++ b/sdc-plugin/tests/pll_fbout_phase/pll_fbout_phase.tcl
@@ -3,7 +3,7 @@ # Import the commands from the plugins to the tcl interpreter yosys -import -read_verilog pll_fbout_phase.v +read_verilog $::env(DESIGN_TOP).v read_verilog -specify -lib -D_EXPLICIT_CARRY +/xilinx/cells_sim.v read_verilog -lib +/xilinx/cells_xtra.v hierarchy -check -auto-top @@ -12,10 +12,10 @@ synth_xilinx -vpr -flatten -abc9 -nosrl -nodsp -iopad -run prepare:check # Read the design timing constraints -read_sdc $::env(INPUT_SDC_FILE) +read_sdc $::env(DESIGN_TOP).input.sdc # Propagate the clocks propagate_clocks # Write out the SDC file after the clock propagation step -write_sdc $::env(OUTPUT_SDC_FILE) +write_sdc $::env(DESIGN_TOP).sdc
diff --git a/sdc-plugin/tests/set_false_path/set_false_path.tcl b/sdc-plugin/tests/set_false_path/set_false_path.tcl index 39a51c0..a4e01f4 100644 --- a/sdc-plugin/tests/set_false_path/set_false_path.tcl +++ b/sdc-plugin/tests/set_false_path/set_false_path.tcl
@@ -3,7 +3,7 @@ #Import the commands from the plugins to the tcl interpreter yosys -import -read_verilog set_false_path.v +read_verilog $::env(DESIGN_TOP).v # Some of symbiflow expects eblifs with only one module. synth_xilinx -vpr -flatten -abc9 -nosrl -noclkbuf -nodsp @@ -16,4 +16,4 @@ # -from clk to bottom_inst/I set_false_path -from clk -to bottom_inst.I -write_sdc set_false_path.sdc +write_sdc $::env(DESIGN_TOP).sdc
diff --git a/sdc-plugin/tests/set_max_delay/set_max_delay.tcl b/sdc-plugin/tests/set_max_delay/set_max_delay.tcl index 8cfde6a..f2a5b4f 100644 --- a/sdc-plugin/tests/set_max_delay/set_max_delay.tcl +++ b/sdc-plugin/tests/set_max_delay/set_max_delay.tcl
@@ -3,7 +3,7 @@ #Import the commands from the plugins to the tcl interpreter yosys -import -read_verilog set_max_delay.v +read_verilog $::env(DESIGN_TOP).v # Some of symbiflow expects eblifs with only one module. synth_xilinx -vpr -flatten -abc9 -nosrl -noclkbuf -nodsp @@ -16,4 +16,4 @@ # -from clk to bottom_inst/I set_max_delay 3 -from clk -to bottom_inst.I -write_sdc set_max_delay.sdc +write_sdc $::env(DESIGN_TOP).sdc