Updated tests for the ql-ios plugin. Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
diff --git a/ql-iob-plugin/Makefile b/ql-iob-plugin/Makefile index 446dfc7..94b8536 100644 --- a/ql-iob-plugin/Makefile +++ b/ql-iob-plugin/Makefile
@@ -21,4 +21,4 @@ clean: rm -f *.d *.o *.so - + $(MAKE) -C tests clean
diff --git a/ql-iob-plugin/tests/.gitignore b/ql-iob-plugin/tests/.gitignore new file mode 100644 index 0000000..744eec9 --- /dev/null +++ b/ql-iob-plugin/tests/.gitignore
@@ -0,0 +1,2 @@ +*.eblif +ok
diff --git a/ql-iob-plugin/tests/Makefile b/ql-iob-plugin/tests/Makefile index f6ddd6a..11a3704 100644 --- a/ql-iob-plugin/tests/Makefile +++ b/ql-iob-plugin/tests/Makefile
@@ -1,7 +1,13 @@ -TESTS = generic +TESTS = sdiomux ckpad -all: $(TESTS) +all: $(addsuffix /ok,$(TESTS)) -generic: - yosys -p "plugin -i ../ql-iob.so; read_verilog design.v; synth_quicklogic ; stat; quicklogic_iob design.pcf pinmap.csv; stat; write_blif -attr -param -cname design.eblif" - @echo $@ PASS +clean: + @find . -name "ok" | xargs rm -rf + +sdiomux/ok: + cd sdiomux && $(MAKE) test +ckpad/ok: + cd ckpad && $(MAKE) test + +.PHONY: all clean
diff --git a/ql-iob-plugin/tests/ckpad/Makefile b/ql-iob-plugin/tests/ckpad/Makefile new file mode 100644 index 0000000..ac7b664 --- /dev/null +++ b/ql-iob-plugin/tests/ckpad/Makefile
@@ -0,0 +1,4 @@ +test: + yosys -s script.ys + @echo $@ PASS + @touch ok
diff --git a/ql-iob-plugin/tests/ckpad/design.pcf b/ql-iob-plugin/tests/ckpad/design.pcf new file mode 100644 index 0000000..00563c5 --- /dev/null +++ b/ql-iob-plugin/tests/ckpad/design.pcf
@@ -0,0 +1,14 @@ +set_io clk0 B3 # to a BIDIR +set_io clk1 A3 # to a BIDIR/CLOCK +set_io clk2 B4 # to a BIDIR +set_io clk3 C4 # to a BIDIR/CLOCK + +set_io d(0) C1 +set_io d(1) A1 +set_io d(2) A2 +set_io d(3) B2 + +set_io q(0) B5 +set_io q(1) D6 +set_io q(2) A5 +set_io q(3) C6
diff --git a/ql-iob-plugin/tests/ckpad/design.v b/ql-iob-plugin/tests/ckpad/design.v new file mode 100644 index 0000000..8ef1418 --- /dev/null +++ b/ql-iob-plugin/tests/ckpad/design.v
@@ -0,0 +1,22 @@ +module top ( + input wire clk0, + input wire clk1, + (* clkbuf_inhibit *) + input wire clk2, + (* clkbuf_inhibit *) + input wire clk3, + + input wire [3:0] d, + output reg [3:0] q +); + + always @(posedge clk0) + q[0] <= d[0]; + always @(posedge clk1) + q[1] <= d[1]; + always @(posedge clk2) + q[2] <= d[2]; + always @(posedge clk3) + q[3] <= d[3]; + +endmodule
diff --git a/ql-iob-plugin/tests/ckpad/script.ys b/ql-iob-plugin/tests/ckpad/script.ys new file mode 100644 index 0000000..fad6921 --- /dev/null +++ b/ql-iob-plugin/tests/ckpad/script.ys
@@ -0,0 +1,14 @@ +plugin -i ../../ql-iob.so +read_verilog design.v + +synth_quicklogic +stat + +quicklogic_iob design.pcf ../pinmap.csv + +select r:IO_TYPE=BIDIR -assert-count 11 +select r:IO_TYPE=CLOCK -assert-count 1 +select r:IO_TYPE=SDIOMUX -assert-count 0 +select r:IO_TYPE= -assert-count 0 + +write_blif -attr -param -cname design.eblif
diff --git a/ql-iob-plugin/tests/design.pcf b/ql-iob-plugin/tests/design.pcf deleted file mode 100644 index 5e7afd3..0000000 --- a/ql-iob-plugin/tests/design.pcf +++ /dev/null
@@ -1,5 +0,0 @@ -set_io clk FBIO_8 -set_io led(0) FBIO_0 -set_io led(1) FBIO_1 -set_io led(2) SFBIO_2 -set_io led(3) SFBIO_3
diff --git a/ql-iob-plugin/tests/pinmap.csv b/ql-iob-plugin/tests/pinmap.csv index 1587df5..c7edb17 100644 --- a/ql-iob-plugin/tests/pinmap.csv +++ b/ql-iob-plugin/tests/pinmap.csv
@@ -1,47 +1,52 @@ name,x,y,z,type -FBIO_0,2,2,0,BIDIR -FBIO_1,4,2,0,BIDIR -FBIO_2,6,2,0,BIDIR -FBIO_3,8,2,0,BIDIR -FBIO_4,10,2,0,BIDIR -FBIO_5,12,2,0,BIDIR -FBIO_6,14,2,0,BIDIR -FBIO_7,16,2,0,BIDIR -FBIO_8,18,2,0,BIDIR -FBIO_9,20,2,0,BIDIR -FBIO_10,22,2,0,BIDIR -FBIO_11,24,2,0,BIDIR -FBIO_12,26,2,0,BIDIR -FBIO_13,28,2,0,BIDIR -FBIO_14,30,2,0,BIDIR -FBIO_15,32,2,0,BIDIR -FBIO_16,32,31,0,BIDIR -FBIO_17,30,31,0,BIDIR -FBIO_18,28,31,0,BIDIR -FBIO_19,26,31,0,BIDIR -FBIO_20,24,31,0,BIDIR -FBIO_21,22,31,0,BIDIR -FBIO_22,20,31,0,BIDIR -FBIO_23,18,31,0,BIDIR -FBIO_24,16,31,0,BIDIR -FBIO_25,14,31,0,BIDIR -FBIO_26,12,31,0,BIDIR -FBIO_27,10,31,0,BIDIR -FBIO_28,8,31,0,BIDIR -FBIO_29,6,31,0,BIDIR -FBIO_30,4,31,0,BIDIR -FBIO_31,2,31,0,BIDIR -SFBIO_0,1,30,0,SDIOMUX -SFBIO_1,1,30,0,SDIOMUX -SFBIO_2,1,30,0,SDIOMUX -SFBIO_3,1,29,0,SDIOMUX -SFBIO_4,1,29,0,SDIOMUX -SFBIO_5,1,29,0,SDIOMUX -SFBIO_6,1,28,0,SDIOMUX -SFBIO_7,1,28,0,SDIOMUX -SFBIO_8,1,28,0,SDIOMUX -SFBIO_9,1,27,0,SDIOMUX -SFBIO_10,1,27,0,SDIOMUX -SFBIO_11,1,27,0,SDIOMUX -SFBIO_12,1,26,0,SDIOMUX -SFBIO_13,1,26,0,SDIOMUX +B1,4,3,0,BIDIR +C1,6,3,0,BIDIR +A1,8,3,0,BIDIR +A2,10,3,0,BIDIR +B2,12,3,0,BIDIR +C3,14,3,0,BIDIR +B3,16,3,0,BIDIR +A3,18,2,0,CLOCK +A3,18,3,0,BIDIR +C4,20,2,0,CLOCK +C4,20,3,0,BIDIR +B4,22,3,0,BIDIR +A4,24,3,0,BIDIR +C5,26,3,0,BIDIR +B5,28,3,0,BIDIR +D6,30,3,0,BIDIR +A5,32,3,0,BIDIR +C6,34,3,0,BIDIR +E7,34,32,0,BIDIR +D7,32,32,0,BIDIR +E8,30,32,0,BIDIR +H8,28,32,0,BIDIR +G8,26,32,0,BIDIR +H7,24,32,0,BIDIR +G7,22,33,0,CLOCK +G7,22,32,0,BIDIR +H6,20,32,0,BIDIR +H6,20,33,0,CLOCK +G6,18,32,0,BIDIR +G6,18,33,0,CLOCK +F7,16,32,0,BIDIR +F6,14,32,0,BIDIR +H5,12,32,0,BIDIR +G5,10,32,0,BIDIR +F5,8,32,0,BIDIR +F4,6,32,0,BIDIR +G4,4,32,0,BIDIR +H4,3,31,0,SDIOMUX +E3,2,31,0,SDIOMUX +F3,1,31,0,SDIOMUX +F2,3,30,0,SDIOMUX +H3,2,30,0,SDIOMUX +G2,1,30,0,SDIOMUX +E2,3,29,0,SDIOMUX +H2,2,29,0,SDIOMUX +D2,1,29,0,SDIOMUX +F1,3,28,0,SDIOMUX +H1,2,28,0,SDIOMUX +D1,1,28,0,SDIOMUX +E1,3,27,0,SDIOMUX +G1,2,27,0,SDIOMUX
diff --git a/ql-iob-plugin/tests/sdiomux/Makefile b/ql-iob-plugin/tests/sdiomux/Makefile new file mode 100644 index 0000000..ac7b664 --- /dev/null +++ b/ql-iob-plugin/tests/sdiomux/Makefile
@@ -0,0 +1,4 @@ +test: + yosys -s script.ys + @echo $@ PASS + @touch ok
diff --git a/ql-iob-plugin/tests/sdiomux/design.pcf b/ql-iob-plugin/tests/sdiomux/design.pcf new file mode 100644 index 0000000..9aa0551 --- /dev/null +++ b/ql-iob-plugin/tests/sdiomux/design.pcf
@@ -0,0 +1,5 @@ +set_io clk B1 +set_io led(0) C1 +set_io led(1) A1 +set_io led(2) H3 +set_io led(3) E3
diff --git a/ql-iob-plugin/tests/design.v b/ql-iob-plugin/tests/sdiomux/design.v similarity index 100% rename from ql-iob-plugin/tests/design.v rename to ql-iob-plugin/tests/sdiomux/design.v
diff --git a/ql-iob-plugin/tests/sdiomux/script.ys b/ql-iob-plugin/tests/sdiomux/script.ys new file mode 100644 index 0000000..57eb53b --- /dev/null +++ b/ql-iob-plugin/tests/sdiomux/script.ys
@@ -0,0 +1,13 @@ +plugin -i ../../ql-iob.so +read_verilog design.v + +synth_quicklogic +stat + +quicklogic_iob design.pcf ../pinmap.csv + +select r:IO_TYPE=BIDIR -assert-count 3 +select r:IO_TYPE=SDIOMUX -assert-count 2 +select r:IO_TYPE= -assert-count 1 + +write_blif -attr -param -cname design.eblif