fix4
This commit is contained in:
parent
99436d9a42
commit
3eeb01fe6f
@ -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;
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user