[verilog] b
Viewer
- `timescale 1ns / 1ps
- //////////////////////////////////////////////////////////////////////////////////
- //Eric Chhour
- //CECS341 Lab 02
- //2/06/21
- //////////////////////////////////////////////////////////////////////////////////
- module testBench;
- //Reg=inputs, wire=outputs
- reg [31:0] A_tb;
- reg [31:0] B_tb;
- reg [3:0] ALUCntrl_tb;
- wire [31:0]ALU_Out_tb;
- wire CarryFlag;
- wire OverflowFlag;
- wire NegativeFlag;
- wire ZeroFlag;
- alu uut (.A(A_tb),
- .B(B_tb),
- .ALUCntrl(ALUCntrl_tb),
- .ALU_Out(ALU_Out_tb),
- .C(CarryFlag),
- .V(OverflowFlag),
- .N(NegativeFlag),
- .Z(ZeroFlag));
- initial
- begin
- $timeformat(-9, 1, " ns", 9);
- $display("\n *****CECS341***** LAB05 \n");
- //Test Case 1
- A_tb = 32'hf0f0_3c3c; B_tb = 32'hbf0f_f5f5; ALUCntrl_tb=4'b0000;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 2
- A_tb = 32'hf0f0_3c3c; B_tb = 32'hbf0f_f5f5; ALUCntrl_tb=4'b0001;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 3
- A_tb = 32'hf0f0_3c3c; B_tb = 32'hbf0f_f5f5; ALUCntrl_tb=4'b0011;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 4
- A_tb = 32'h00000001; B_tb = 32'hffffffff; ALUCntrl_tb=4'b0010;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 5
- A_tb = 32'h6389754f; B_tb = 32'had5624e6; ALUCntrl_tb=4'b0010;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 6
- A_tb = 32'hffffffff; B_tb = 32'hffffffff; ALUCntrl_tb=4'b0010;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 7
- A_tb = 32'h6389754f; B_tb = 32'had5624e6; ALUCntrl_tb=4'b0010;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 8
- A_tb = 32'hffffffff; B_tb = 32'hffffffff; ALUCntrl_tb=4'b0010;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 9
- A_tb = 32'h00000000; B_tb = 32'h00000001; ALUCntrl_tb=4'b0110;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 10
- A_tb = 32'hf9684783; B_tb = 32'hf998d562; ALUCntrl_tb=4'b0110;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 11
- A_tb = 32'hf0f03c3c; B_tb = 32'hbf0ff5f5; ALUCntrl_tb=4'b1100;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 12
- A_tb = 32'h89bcde34; B_tb = 32'hc53bd687; ALUCntrl_tb=4'b0111;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 13
- A_tb = 32'hf0f03c3c; B_tb = 32'hbf0fff5; ALUCntrl_tb=4'b1101;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 14
- A_tb = 32'hf0f03c3c; B_tb = 32'hbf0ff5f5; ALUCntrl_tb=4'b1111;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 15
- A_tb = 32'hf0f03c3c; B_tb = 32'hbf0ff5f5; ALUCntrl_tb=4'b1010;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- //Test Case 16
- A_tb = 32'hf0f03c3c; B_tb = 32'hbf0ff5f5; ALUCntrl_tb=4'b1110;
- #10 $display("Time=%t || A=%x | B=%x | ALU Cntrl=%4b | ALU Out = %x Carry Flag = %0b | Overflow Flag = %0b | Zero Flag = %0b | Negative Flag= %0b",
- $time, A_tb, B_tb, ALUCntrl_tb, ALU_Out_tb, CarryFlag, OverflowFlag, ZeroFlag, NegativeFlag);
- $display("\n\n");
- $finish;
- end
- endmodule
Editor
You can edit this paste and save as new:
File Description
- b
- Paste Code
- 24 Feb-2021
- 6.17 Kb
You can Share it: