aboutsummaryrefslogtreecommitdiffstats
path: root/tests/arch/common/mux.v
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-11-22 15:13:18 -0800
committerEddie Hung <eddie@fpgeh.com>2019-11-22 15:13:18 -0800
commit2a54fa41c40969841ba0574ba725caa436b0212f (patch)
tree1dbf518fc73dbe253612bdb5e466c50b78bce44b /tests/arch/common/mux.v
parent6b9f90de789b1d0daf93ac1d2b608b057e7ca272 (diff)
parentc03b6a3e9cab9fc05b2d5b256676f5ddc6c2d763 (diff)
downloadyosys-2a54fa41c40969841ba0574ba725caa436b0212f.tar.gz
yosys-2a54fa41c40969841ba0574ba725caa436b0212f.tar.bz2
yosys-2a54fa41c40969841ba0574ba725caa436b0212f.zip
Merge branch 'master' of github.com:YosysHQ/yosys
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