-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArithmeticLogicUnit.txt
81 lines (69 loc) · 2.34 KB
/
ArithmeticLogicUnit.txt
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
module ALU(S0,S1,D0,D1, out);
input S0,S1,D0,D1;
output out;
assign W0 = ~S0 & ~S1;
assign W1 = S0 & ~S1;
assign W2 = ~S0 & S1;
assign W3 = S0 & S1;
assign V0 = W0 & (D0 & D1);
assign V1 = W1 & (D0 || D1);
assign V2 = W2 & (D0 ^ D1);
assign V3 = W3 & !(D0 & D1);
assign out = V0 || V1 || V2 || V3;
endmodule
module TestBench;
reg d0, d1, s1,s0;
wire out;
ALU myALU(s0,s1,d0,d1, out);
initial
begin
//0
d0 = 0; d1 = 0; s0 = 0; s1 = 0;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//1
d0 = 0; d1 = 0; s0 = 0; s1 = 1;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//2
d0 = 0; d1 = 0; s0 = 1; s1 = 0;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//3
d0 = 0; d1 = 0; s0 = 1; s1 = 1;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//4
d0 = 0; d1 = 1; s0 = 0; s1 = 0;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//5
d0 = 0; d1 = 1; s0 = 0; s1 = 1;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//6
d0 = 0; d1 = 1; s0 = 1; s1 = 0;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//7
d0 = 0; d1 = 1; s0 = 1; s1 = 1;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//8
d0 = 1; d1 = 0; s0 = 0; s1 = 0;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//9
d0 = 1; d1 = 0; s0 = 0; s1 = 1;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//10
d0 = 1; d1 = 0; s0 = 1; s1 = 0;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//11
d0 = 1; d1 = 0; s0 = 1; s1 = 1;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//12
d0 = 1; d1 = 1; s0 = 0; s1 = 0;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//13
d0 = 1; d1 = 1; s0 = 0; s1 = 1;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//14
d0 = 1; d1 = 1; s0 = 1; s1 = 0;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
//15
d0 = 1; d1 = 1; s0 = 1; s1 = 1;
#2 $display("d0=%b d1=%b s0=%b s1=%b out=%b", d0,d1,s0,s1,out);
end
endmodule