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