-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathout_en_gen.v
83 lines (78 loc) · 1.43 KB
/
out_en_gen.v
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
module out_en_gen (output reg E_en, W_en, N_en, S_en, Eject_en,
input [2:0] S_E, S_W, S_N, S_S, S_eject,
input e_push_o, w_push_o, n_push_o, s_push_o, j_push_o, input reset);
always @(*)
begin
if (reset)
{E_en, W_en, N_en, S_en, Eject_en} = 5'b0;
else
begin
{E_en, W_en, N_en, S_en, Eject_en} = 5'b0;
if(e_push_o == 1)
begin
if(S_E == 3'b000)
E_en = 1;
if(S_W == 3'b000)
W_en = 1;
if(S_N == 3'b000)
N_en = 1;
if(S_S == 3'b000)
S_en = 1;
if(S_eject == 3'b000)
Eject_en = 1;
end
if(w_push_o == 1)
begin
if(S_E == 3'b001)
E_en = 1;
if(S_W == 3'b001)
W_en = 1;
if(S_N == 3'b001)
N_en = 1;
if(S_S == 3'b001)
S_en = 1;
if(S_eject == 3'b001)
Eject_en = 1;
end
if(n_push_o == 1)
begin
if(S_E == 3'b010)
E_en = 1;
if(S_W == 3'b010)
W_en = 1;
if(S_N == 3'b010)
N_en = 1;
if(S_S == 3'b010)
S_en = 1;
if(S_eject == 3'b010)
Eject_en = 1;
end
if(s_push_o == 1)
begin
if(S_E == 3'b011)
E_en = 1;
if(S_W == 3'b011)
W_en = 1;
if(S_N == 3'b011)
N_en = 1;
if(S_S == 3'b011)
S_en = 1;
if(S_eject == 3'b011)
Eject_en = 1;
end
if(j_push_o == 1)
begin
if(S_E == 3'b100)
E_en = 1;
if(S_W == 3'b100)
W_en = 1;
if(S_N == 3'b100)
N_en = 1;
if(S_S == 3'b100)
S_en = 1;
if(S_eject == 3'b100)
Eject_en = 1;
end
end
end
endmodule