diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2019-10-04 12:20:49 +0200 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2019-10-04 12:20:49 +0200 |
commit | ef417fb1b3555a3075bcd01cb7c5267f3e55b407 (patch) | |
tree | 80813ffc49a6a645cb28224af9359ebfe12634a5 /tests/efinix/mux.v | |
parent | 2ed2e9c3e8f2d9d6882588857c8556a6e2af57ea (diff) | |
parent | eb750670e3835a1bad36cb604e04bf4836cc7f91 (diff) | |
download | yosys-ef417fb1b3555a3075bcd01cb7c5267f3e55b407.tar.gz yosys-ef417fb1b3555a3075bcd01cb7c5267f3e55b407.tar.bz2 yosys-ef417fb1b3555a3075bcd01cb7c5267f3e55b407.zip |
Merge branch 'SergeyDegtyar/efinix' of https://github.com/SergeyDegtyar/yosys into mmicko/efinix
Diffstat (limited to 'tests/efinix/mux.v')
-rw-r--r-- | tests/efinix/mux.v | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/tests/efinix/mux.v b/tests/efinix/mux.v new file mode 100644 index 000000000..0814b733e --- /dev/null +++ b/tests/efinix/mux.v @@ -0,0 +1,100 @@ +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 + + +module top ( +input [3:0] S, +input [15:0] D, +output M2,M4,M8,M16 +); + +mux2 u_mux2 ( + .S (S[0]), + .A (D[0]), + .B (D[1]), + .Y (M2) + ); + + +mux4 u_mux4 ( + .S (S[1:0]), + .D (D[3:0]), + .Y (M4) + ); + +mux8 u_mux8 ( + .S (S[2:0]), + .D (D[7:0]), + .Y (M8) + ); + +mux16 u_mux16 ( + .S (S[3:0]), + .D (D[15:0]), + .Y (M16) + ); + +endmodule |