📄 alu.v
字号:
//`timescale 1ns/1ps
module alu_test;
reg [3:0] op = 4'b0001;
reg [31:0] s1 = 32'h0000_0000;
reg [31:0] s2 = 32'h0000_0000;
reg [31:0] imm_32 = 32'h0000_0000;
reg imm_en = 1'b0;
wire [31:0] alu_o;
wire [4:0] flag_o;
reg [1:0] mux_1 = 2'b00;
reg [1:0] mux_2 = 2'b00;
reg [31:0] fdata_ex = 32'h0000_0000;
reg [31:0] fdata_mem = 32'h0000_0000;
wire [31:0] s2_fwd;
reg c_in = 1'b0;
alu UUT (
.op(op),
.s1(s1),
.s2(s2),
.imm_32(imm_32),
.imm_en(imm_en),
.alu_o(alu_o),
.flag_o(flag_o),
.mux_1(mux_1),
.mux_2(mux_2),
.fdata_ex(fdata_ex),
.fdata_mem(fdata_mem),
.s2_fwd(s2_fwd),
.c_in(c_in));
initial begin
#50;
s1 = 32'h0000_0001;
s2 = 32'h0000_0004;
op = 4'h1;
c_in = 1'b0;
#50;
s1 = 32'hffff_ffff;
s2 = 32'hffff_ffff;
op = 4'h1;
c_in = 1'b0;
#50;
s1 = 32'h7fff_ffff;
s2 = 32'h0000_0001;
op = 4'h1;
c_in = 1'b0;
#50;
s1 = 32'hffff_fff0;
s2 = 32'h0000_00ff;
op = 4'h1;
c_in = 1'b0;
#50;
s1 = 32'h0000_0001;
s2 = 32'h0000_0004;
op = 4'h3;
c_in = 1'b1;
#50;
s1 = 32'h0000_0004;
s2 = 32'h0000_0001;
op = 4'h3;
c_in = 1'b1;
#50;
s1 = 32'hffff_ffff;
s2 = 32'h0000_000f;
op = 4'h3;
c_in = 1'b1;
#50;
s1 = 32'h0000_0004;
s2 = 32'h0000_0002;
op = 4'h3;
c_in = 1'b1;
#50;
s1 = 32'h0000_0001;
s2 = 32'h0000_0001;
op = 4'h3;
c_in = 1'b1;
#50;
s1 = 32'h0000_0004;
s2 = 32'h0000_0002;
op = 4'h4;
c_in = 1'b0;
#50;
s1 = 32'h0000_0004;
s2 = 32'h0000_0002;
op = 4'h4;
c_in = 1'b1;
#50;
s1 = 32'h0000_0001;
s2 = 32'h0000_0001;
op = 4'h4;
c_in = 1'b0;
#50;
s1 = 32'h0000_0001;
s2 = 32'h0000_0001;
op = 4'h4;
c_in = 1'b1;
#50;
s1 = 32'h0000_0001;
s2 = 32'h0000_0001;
op = 4'h1;
c_in = 1'b1;
imm_32 = 32'h0000_00ff;
imm_en = 1'b1;
#50;
s1 = 32'h0000_0001;
s2 = 32'h0000_0001;
op = 4'h1;
c_in = 1'b1;
imm_32 = 32'h0000_0000;
imm_en = 1'b0;
mux_1 = 2'b01;
mux_2 = 2'b01;
fdata_ex = 32'h0000_0002;
fdata_mem = 32'h0000_0003;
#50;
s1 = 32'h0000_0001;
s2 = 32'h0000_0001;
op = 4'h1;
c_in = 1'b1;
imm_32 = 32'h0000_0000;
imm_en = 1'b0;
mux_1 = 2'b01;
mux_2 = 2'b10;
fdata_ex = 32'h0000_0002;
fdata_mem = 32'h0000_0003;
#50;
s1 = 32'h0000_0001;
s2 = 32'h0000_0001;
op = 4'h1;
c_in = 1'b1;
imm_32 = 32'h0000_0000;
imm_en = 1'b0;
mux_1 = 2'b10;
mux_2 = 2'b10;
fdata_ex = 32'h0000_0002;
fdata_mem = 32'h0000_0003;
#50;
s1 = 32'h0000_0001;
s2 = 32'h0000_0001;
op = 4'h1;
c_in = 1'b1;
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -