aboutsummaryrefslogtreecommitdiffstats
path: root/tests/arch/common/mux.v
diff options
context:
space:
mode:
authorMiodrag Milanović <mmicko@gmail.com>2019-10-18 14:29:44 +0200
committerGitHub <noreply@github.com>2019-10-18 14:29:44 +0200
commite8ef3fcdfcacbc711a4722deee95f0707634bed0 (patch)
tree971fae1a1b7d3204827759454fa55accdc9bc01f /tests/arch/common/mux.v
parent3c41599ee1f62e4d77ba630fa1a245ef3fe236fa (diff)
parent190b40341abd73ab5edf0e6740b6526e9575253b (diff)
downloadyosys-e8ef3fcdfcacbc711a4722deee95f0707634bed0.tar.gz
yosys-e8ef3fcdfcacbc711a4722deee95f0707634bed0.tar.bz2
yosys-e8ef3fcdfcacbc711a4722deee95f0707634bed0.zip
Merge pull request #1454 from YosysHQ/mmicko/common_tests
Share common tests
Diffstat (limited to 'tests/arch/common/mux.v')
-rw-r--r--tests/arch/common/mux.v60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/arch/common/mux.v b/tests/arch/common/mux.v
new file mode 100644
index 000000000..71c1ac7f2
--- /dev/null
+++ b/tests/arch/common/mux.v
@@ -0,0 +1,60 @@
+module mux2 (S,A,B,Y);
+ input S;
+ input A,B;
+ output reg Y;
+
+ always @(*)
+ Y = (S)? B : A;
+endmodule
+
+module mux4 ( S, D, Y );
+ input[1:0] S;
+ input[3:0] D;
+ output Y;
+
+ reg Y;
+ wire[1:0] S;
+ wire[3:0] D;
+
+ always @*
+ begin
+ case( S )
+ 0 : Y = D[0];
+ 1 : Y = D[1];
+ 2 : Y = D[2];
+ 3 : Y = D[3];
+ endcase
+ end
+endmodule
+
+module mux8 ( S, D, Y );
+ input[2:0] S;
+ input[7:0] D;
+ output Y;
+
+ reg Y;
+ wire[2:0] S;
+ wire[7:0] D;
+
+ always @*
+ begin
+ case( S )
+ 0 : Y = D[0];
+ 1 : Y = D[1];
+ 2 : Y = D[2];
+ 3 : Y = D[3];
+ 4 : Y = D[4];
+ 5 : Y = D[5];
+ 6 : Y = D[6];
+ 7 : Y = D[7];
+ endcase
+ end
+endmodule
+
+module mux16 (D, S, Y);
+ input [15:0] D;
+ input [3:0] S;
+ output Y;
+
+ assign Y = D[S];
+endmodule