-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdecoder5to32.sv
More file actions
128 lines (115 loc) · 2.67 KB
/
decoder5to32.sv
File metadata and controls
128 lines (115 loc) · 2.67 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
`timescale 1ns/10ps
module decoder5_32(in, out, en);
input [4:0] in;
input en;
output [31:0] out;
wire [3:0] dec24_out;
decoder2_4 dec24 (in[4:3], dec24_out, en);
decoder3_8 dec38_0 (in[2:0], out[7:0], dec24_out[0]);
decoder3_8 dec38_1 (in[2:0], out[15:8], dec24_out[1]);
decoder3_8 dec38_2 (in[2:0], out[23:16], dec24_out[2]);
decoder3_8 dec38_3 (in[2:0], out[31:24], dec24_out[3]);
endmodule
module decoder_5to32_test;
reg [4:0] in;
reg en;
wire [31:0] out;
decoder5_32 test (.in, .out, .en);
initial begin
en = 1;
in = 5'b00000; #500;
in = 5'b00001; #500;
in = 5'b00010; #500;
in = 5'b00011; #500;
in = 5'b00100; #500;
in = 5'b00101; #500;
in = 5'b00110; #500;
in = 5'b00111; #500;
in = 5'b01000; #500;
in = 5'b01001; #500;
in = 5'b01011; #500;
in = 5'b01100; #500;
in = 5'b01101; #500;
in = 5'b01110; #500;
in = 5'b01111; #500;
in = 5'b10000; #500;
in = 5'b10001; #500;
in = 5'b10010; #500;
in = 5'b10011; #500;
in = 5'b10100; #500;
in = 5'b10101; #500;
in = 5'b10110; #500;
in = 5'b10111; #500;
in = 5'b11000; #500;
in = 5'b11001; #500;
in = 5'b11010; #500;
in = 5'b11011; #500;
in = 5'b11100; #500;
in = 5'b11101; #500;
in = 5'b11110; #500;
in = 5'b11111; #500;
in = 5'b00000; #500;
in = 5'b00001; #500;
in = 5'b00010; #500;
in = 5'b00011; #500;
in = 5'b00100; #500;
in = 5'b00101; #500;
in = 5'b00110; #500;
in = 5'b00111; #500;
in = 5'b01000; #500;
in = 5'b01001; #500;
in = 5'b01011; #500;
in = 5'b01100; #500;
in = 5'b01101; #500;
in = 5'b01110; #500;
in = 5'b01111; #500;
in = 5'b10000; #500;
in = 5'b10001; #500;
in = 5'b10010; #500;
in = 5'b10011; #500;
in = 5'b10100; #500;
in = 5'b10101; #500;
in = 5'b10110; #500;
in = 5'b10111; #500;
in = 5'b11000; #500;
in = 5'b11001; #500;
in = 5'b11010; #500;
in = 5'b11011; #500;
in = 5'b11100; #500;
in = 5'b11101; #500;
in = 5'b11110; #500;
in = 5'b11111; #500;
en = 0;
in = 5'b00000; #500;
in = 5'b00001; #500;
in = 5'b00010; #500;
in = 5'b00011; #500;
in = 5'b00100; #500;
in = 5'b00101; #500;
in = 5'b00110; #500;
in = 5'b00111; #500;
in = 5'b01000; #500;
in = 5'b01001; #500;
in = 5'b01011; #500;
in = 5'b01100; #500;
in = 5'b01101; #500;
in = 5'b01110; #500;
in = 5'b01111; #500;
in = 5'b10000; #500;
in = 5'b10001; #500;
in = 5'b10010; #500;
in = 5'b10011; #500;
in = 5'b10100; #500;
in = 5'b10101; #500;
in = 5'b10110; #500;
in = 5'b10111; #500;
in = 5'b11000; #500;
in = 5'b11001; #500;
in = 5'b11010; #500;
in = 5'b11011; #500;
in = 5'b11100; #500;
in = 5'b11101; #500;
in = 5'b11110; #500;
in = 5'b11111; #500;
end
endmodule