-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdecoder3to8.sv
More file actions
55 lines (44 loc) · 1.06 KB
/
decoder3to8.sv
File metadata and controls
55 lines (44 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
`timescale 1ns/10ps
module decoder3_8(in, out, en);
input [2:0] in;
input en;
output [7:0] out;
wire in00,in01,in02;
not #0.05 n1 (in00,in[0]);
not #0.05 n2 (in01,in[1]);
not #0.05 n3 (in02,in[2]);
and #0.05 a1 (out[0],in00,in01,in02, en);
and #0.05 a2 (out[1],in[0],in01,in02, en);
and #0.05 a3 (out[2],in00,in[1],in02, en);
and #0.05 a4 (out[3],in[0],in[1],in02, en);
and #0.05 a5 (out[4],in00,in01,in[2], en);
and #0.05 a6 (out[5],in[0],in01,in[2], en);
and #0.05 a7 (out[6],in00,in[1],in[2], en);
and #0.05 a8 (out[7],in[0],in[1],in[2], en);
endmodule
module decoder_3to8_test;
reg [2:0] in;
reg en;
wire [7:0] out;
decoder3_8 test (.in, .out, .en);
initial begin
en = 1;
in = 3'b000; #300;
in = 3'b001; #300;
in = 3'b010; #300;
in = 3'b011; #300;
in = 3'b100; #300;
in = 3'b101; #300;
in = 3'b110; #300;
in = 3'b111; #300;
en = 0;
in = 3'b000; #300;
in = 3'b001; #300;
in = 3'b010; #300;
in = 3'b011; #300;
in = 3'b100; #300;
in = 3'b101; #300;
in = 3'b110; #300;
in = 3'b111; #300;
end
endmodule