This commit is contained in:
Paul Pan 2021-07-30 11:34:57 +08:00
parent 99436d9a42
commit 3eeb01fe6f
2 changed files with 26 additions and 14 deletions

View File

@ -28,8 +28,8 @@ module tb2_top ();
assign btn_step = 2'd3;
initial begin
$dumpfile("dump.vcd");
$dumpvars();
// $dumpfile("dump.vcd");
// $dumpvars();
resetn = 1'b0;
#2000;

View File

@ -82,32 +82,44 @@ module instr_valid (
endmodule
module woutput (
input logic [1:0] addr,
input word_t data,
input logic [1:0] size,
output word_t wdata,
output logic [3:0] wstrb,
output logic error
input logic [1:0] addr,
input word_t data,
input logic [1:0] size,
output word_t wdata,
output logic [3:0] wstrb,
output logic error
);
always_comb
casez (size)
2'b1?: begin
wdata = data;
wstrb = 4'b1111;
wstrb = 4'b1111;
error = (addr != 2'b00);
end
2'b01: begin
wdata = addr[1] ? data[31:16] : data[15:0];
wdata = addr[1] ? {data[15:0], 16'b0} : {16'b0, data[15:0]};
wstrb = addr[1] ? 4'b1100 : 4'b0011;
error = (addr[0] != 1'b0);
end
2'b00: begin
case (addr)
2'b11: begin wdata = data[31:24]; wstrb = 4'b1000; end
2'b10: begin wdata = data[23:16]; wstrb = 4'b0100; end
2'b01: begin wdata = data[15: 8]; wstrb = 4'b0010; end
2'b00: begin wdata = data[ 7: 0]; wstrb = 4'b0001; end
2'b11: begin
wdata = {data[7:0], 24'b0};
wstrb = 4'b1000;
end
2'b10: begin
wdata = {8'b0, data[7:0], 16'b0};
wstrb = 4'b0100;
end
2'b01: begin
wdata = {16'b0, data[7:0], 8'b0};
wstrb = 4'b0010;
end
2'b00: begin
wdata = {24'b0, data[7:0]};
wstrb = 4'b0001;
end
endcase
error = 1'b0;
end