fix dcache
This commit is contained in:
parent
fa89b358df
commit
e62dd7676d
@ -271,386 +271,388 @@ module DCache (
|
||||
wdata1[3] = dataOut[3];
|
||||
wdata2[3] = port.rdata;
|
||||
|
||||
case (port.wstrb)
|
||||
4'b1111: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][127:96] = port.wdata;
|
||||
wdata1[1][127:96] = port.wdata;
|
||||
wdata1[2][127:96] = port.wdata;
|
||||
wdata1[3][127:96] = port.wdata;
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][95:64] = port.wdata;
|
||||
wdata1[1][95:64] = port.wdata;
|
||||
wdata1[2][95:64] = port.wdata;
|
||||
wdata1[3][95:64] = port.wdata;
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][63:32] = port.wdata;
|
||||
wdata1[1][63:32] = port.wdata;
|
||||
wdata1[2][63:32] = port.wdata;
|
||||
wdata1[3][63:32] = port.wdata;
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][31:0] = port.wdata;
|
||||
wdata1[1][31:0] = port.wdata;
|
||||
wdata1[2][31:0] = port.wdata;
|
||||
wdata1[3][31:0] = port.wdata;
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][127:96] = port.wdata;
|
||||
wdata2[1][127:96] = port.wdata;
|
||||
wdata2[2][127:96] = port.wdata;
|
||||
wdata2[3][127:96] = port.wdata;
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][95:64] = port.wdata;
|
||||
wdata2[1][95:64] = port.wdata;
|
||||
wdata2[2][95:64] = port.wdata;
|
||||
wdata2[3][95:64] = port.wdata;
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][63:32] = port.wdata;
|
||||
wdata2[1][63:32] = port.wdata;
|
||||
wdata2[2][63:32] = port.wdata;
|
||||
wdata2[3][63:32] = port.wdata;
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][31:0] = port.wdata;
|
||||
wdata2[1][31:0] = port.wdata;
|
||||
wdata2[2][31:0] = port.wdata;
|
||||
wdata2[3][31:0] = port.wdata;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b1100: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][127:112] = port.wdata[31:16];
|
||||
wdata1[1][127:112] = port.wdata[31:16];
|
||||
wdata1[2][127:112] = port.wdata[31:16];
|
||||
wdata1[3][127:112] = port.wdata[31:16];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][95:80] = port.wdata[31:16];
|
||||
wdata1[1][95:80] = port.wdata[31:16];
|
||||
wdata1[2][95:80] = port.wdata[31:16];
|
||||
wdata1[3][95:80] = port.wdata[31:16];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][63:48] = port.wdata[31:16];
|
||||
wdata1[1][63:48] = port.wdata[31:16];
|
||||
wdata1[2][63:48] = port.wdata[31:16];
|
||||
wdata1[3][63:48] = port.wdata[31:16];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][31:16] = port.wdata[31:16];
|
||||
wdata1[1][31:16] = port.wdata[31:16];
|
||||
wdata1[2][31:16] = port.wdata[31:16];
|
||||
wdata1[3][31:16] = port.wdata[31:16];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][127:112] = port.wdata[31:16];
|
||||
wdata2[1][127:112] = port.wdata[31:16];
|
||||
wdata2[2][127:112] = port.wdata[31:16];
|
||||
wdata2[3][127:112] = port.wdata[31:16];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][95:80] = port.wdata[31:16];
|
||||
wdata2[1][95:80] = port.wdata[31:16];
|
||||
wdata2[2][95:80] = port.wdata[31:16];
|
||||
wdata2[3][95:80] = port.wdata[31:16];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][63:48] = port.wdata[31:16];
|
||||
wdata2[1][63:48] = port.wdata[31:16];
|
||||
wdata2[2][63:48] = port.wdata[31:16];
|
||||
wdata2[3][63:48] = port.wdata[31:16];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][31:16] = port.wdata[31:16];
|
||||
wdata2[1][31:16] = port.wdata[31:16];
|
||||
wdata2[2][31:16] = port.wdata[31:16];
|
||||
wdata2[3][31:16] = port.wdata[31:16];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b0011: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][111:96] = port.wdata[15:0];
|
||||
wdata1[1][111:96] = port.wdata[15:0];
|
||||
wdata1[2][111:96] = port.wdata[15:0];
|
||||
wdata1[3][111:96] = port.wdata[15:0];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][79:64] = port.wdata[15:0];
|
||||
wdata1[1][79:64] = port.wdata[15:0];
|
||||
wdata1[2][79:64] = port.wdata[15:0];
|
||||
wdata1[3][79:64] = port.wdata[15:0];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][47:32] = port.wdata[15:0];
|
||||
wdata1[1][47:32] = port.wdata[15:0];
|
||||
wdata1[2][47:32] = port.wdata[15:0];
|
||||
wdata1[3][47:32] = port.wdata[15:0];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][15:0] = port.wdata[15:0];
|
||||
wdata1[1][15:0] = port.wdata[15:0];
|
||||
wdata1[2][15:0] = port.wdata[15:0];
|
||||
wdata1[3][15:0] = port.wdata[15:0];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][111:96] = port.wdata[15:0];
|
||||
wdata2[1][111:96] = port.wdata[15:0];
|
||||
wdata2[2][111:96] = port.wdata[15:0];
|
||||
wdata2[3][111:96] = port.wdata[15:0];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][79:64] = port.wdata[15:0];
|
||||
wdata2[1][79:64] = port.wdata[15:0];
|
||||
wdata2[2][79:64] = port.wdata[15:0];
|
||||
wdata2[3][79:64] = port.wdata[15:0];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][47:32] = port.wdata[15:0];
|
||||
wdata2[1][47:32] = port.wdata[15:0];
|
||||
wdata2[2][47:32] = port.wdata[15:0];
|
||||
wdata2[3][47:32] = port.wdata[15:0];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][15:0] = port.wdata[15:0];
|
||||
wdata2[1][15:0] = port.wdata[15:0];
|
||||
wdata2[2][15:0] = port.wdata[15:0];
|
||||
wdata2[3][15:0] = port.wdata[15:0];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b1000: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][127:120] = port.wdata[31:24];
|
||||
wdata1[1][127:120] = port.wdata[31:24];
|
||||
wdata1[2][127:120] = port.wdata[31:24];
|
||||
wdata1[3][127:120] = port.wdata[31:24];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][95:88] = port.wdata[31:24];
|
||||
wdata1[1][95:88] = port.wdata[31:24];
|
||||
wdata1[2][95:88] = port.wdata[31:24];
|
||||
wdata1[3][95:88] = port.wdata[31:24];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][63:56] = port.wdata[31:24];
|
||||
wdata1[1][63:56] = port.wdata[31:24];
|
||||
wdata1[2][63:56] = port.wdata[31:24];
|
||||
wdata1[3][63:56] = port.wdata[31:24];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][31:24] = port.wdata[31:24];
|
||||
wdata1[1][31:24] = port.wdata[31:24];
|
||||
wdata1[2][31:24] = port.wdata[31:24];
|
||||
wdata1[3][31:24] = port.wdata[31:24];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][127:120] = port.wdata[31:24];
|
||||
wdata2[1][127:120] = port.wdata[31:24];
|
||||
wdata2[2][127:120] = port.wdata[31:24];
|
||||
wdata2[3][127:120] = port.wdata[31:24];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][95:88] = port.wdata[31:24];
|
||||
wdata2[1][95:88] = port.wdata[31:24];
|
||||
wdata2[2][95:88] = port.wdata[31:24];
|
||||
wdata2[3][95:88] = port.wdata[31:24];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][63:56] = port.wdata[31:24];
|
||||
wdata2[1][63:56] = port.wdata[31:24];
|
||||
wdata2[2][63:56] = port.wdata[31:24];
|
||||
wdata2[3][63:56] = port.wdata[31:24];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][31:24] = port.wdata[31:24];
|
||||
wdata2[1][31:24] = port.wdata[31:24];
|
||||
wdata2[2][31:24] = port.wdata[31:24];
|
||||
wdata2[3][31:24] = port.wdata[31:24];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b0100: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][119:112] = port.wdata[23:16];
|
||||
wdata1[1][119:112] = port.wdata[23:16];
|
||||
wdata1[2][119:112] = port.wdata[23:16];
|
||||
wdata1[3][119:112] = port.wdata[23:16];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][87:80] = port.wdata[23:16];
|
||||
wdata1[1][87:80] = port.wdata[23:16];
|
||||
wdata1[2][87:80] = port.wdata[23:16];
|
||||
wdata1[3][87:80] = port.wdata[23:16];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][55:48] = port.wdata[23:16];
|
||||
wdata1[1][55:48] = port.wdata[23:16];
|
||||
wdata1[2][55:48] = port.wdata[23:16];
|
||||
wdata1[3][55:48] = port.wdata[23:16];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][23:16] = port.wdata[23:16];
|
||||
wdata1[1][23:16] = port.wdata[23:16];
|
||||
wdata1[2][23:16] = port.wdata[23:16];
|
||||
wdata1[3][23:16] = port.wdata[23:16];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][119:112] = port.wdata[23:16];
|
||||
wdata2[1][119:112] = port.wdata[23:16];
|
||||
wdata2[2][119:112] = port.wdata[23:16];
|
||||
wdata2[3][119:112] = port.wdata[23:16];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][87:80] = port.wdata[23:16];
|
||||
wdata2[1][87:80] = port.wdata[23:16];
|
||||
wdata2[2][87:80] = port.wdata[23:16];
|
||||
wdata2[3][87:80] = port.wdata[23:16];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][55:48] = port.wdata[23:16];
|
||||
wdata2[1][55:48] = port.wdata[23:16];
|
||||
wdata2[2][55:48] = port.wdata[23:16];
|
||||
wdata2[3][55:48] = port.wdata[23:16];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][23:16] = port.wdata[23:16];
|
||||
wdata2[1][23:16] = port.wdata[23:16];
|
||||
wdata2[2][23:16] = port.wdata[23:16];
|
||||
wdata2[3][23:16] = port.wdata[23:16];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b0010: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][111:104] = port.wdata[15:8];
|
||||
wdata1[1][111:104] = port.wdata[15:8];
|
||||
wdata1[2][111:104] = port.wdata[15:8];
|
||||
wdata1[3][111:104] = port.wdata[15:8];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][79:72] = port.wdata[15:8];
|
||||
wdata1[1][79:72] = port.wdata[15:8];
|
||||
wdata1[2][79:72] = port.wdata[15:8];
|
||||
wdata1[3][79:72] = port.wdata[15:8];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][47:40] = port.wdata[15:8];
|
||||
wdata1[1][47:40] = port.wdata[15:8];
|
||||
wdata1[2][47:40] = port.wdata[15:8];
|
||||
wdata1[3][47:40] = port.wdata[15:8];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][15:8] = port.wdata[15:8];
|
||||
wdata1[1][15:8] = port.wdata[15:8];
|
||||
wdata1[2][15:8] = port.wdata[15:8];
|
||||
wdata1[3][15:8] = port.wdata[15:8];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][111:104] = port.wdata[15:8];
|
||||
wdata2[1][111:104] = port.wdata[15:8];
|
||||
wdata2[2][111:104] = port.wdata[15:8];
|
||||
wdata2[3][111:104] = port.wdata[15:8];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][79:72] = port.wdata[15:8];
|
||||
wdata2[1][79:72] = port.wdata[15:8];
|
||||
wdata2[2][79:72] = port.wdata[15:8];
|
||||
wdata2[3][79:72] = port.wdata[15:8];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][47:40] = port.wdata[15:8];
|
||||
wdata2[1][47:40] = port.wdata[15:8];
|
||||
wdata2[2][47:40] = port.wdata[15:8];
|
||||
wdata2[3][47:40] = port.wdata[15:8];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][15:8] = port.wdata[15:8];
|
||||
wdata2[1][15:8] = port.wdata[15:8];
|
||||
wdata2[2][15:8] = port.wdata[15:8];
|
||||
wdata2[3][15:8] = port.wdata[15:8];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b0001: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][103:96] = port.wdata[7:0];
|
||||
wdata1[1][103:96] = port.wdata[7:0];
|
||||
wdata1[2][103:96] = port.wdata[7:0];
|
||||
wdata1[3][103:96] = port.wdata[7:0];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][71:64] = port.wdata[7:0];
|
||||
wdata1[1][71:64] = port.wdata[7:0];
|
||||
wdata1[2][71:64] = port.wdata[7:0];
|
||||
wdata1[3][71:64] = port.wdata[7:0];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][39:32] = port.wdata[7:0];
|
||||
wdata1[1][39:32] = port.wdata[7:0];
|
||||
wdata1[2][39:32] = port.wdata[7:0];
|
||||
wdata1[3][39:32] = port.wdata[7:0];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][7:0] = port.wdata[7:0];
|
||||
wdata1[1][7:0] = port.wdata[7:0];
|
||||
wdata1[2][7:0] = port.wdata[7:0];
|
||||
wdata1[3][7:0] = port.wdata[7:0];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][103:96] = port.wdata[7:0];
|
||||
wdata2[1][103:96] = port.wdata[7:0];
|
||||
wdata2[2][103:96] = port.wdata[7:0];
|
||||
wdata2[3][103:96] = port.wdata[7:0];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][71:64] = port.wdata[7:0];
|
||||
wdata2[1][71:64] = port.wdata[7:0];
|
||||
wdata2[2][71:64] = port.wdata[7:0];
|
||||
wdata2[3][71:64] = port.wdata[7:0];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][39:32] = port.wdata[7:0];
|
||||
wdata2[1][39:32] = port.wdata[7:0];
|
||||
wdata2[2][39:32] = port.wdata[7:0];
|
||||
wdata2[3][39:32] = port.wdata[7:0];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][7:0] = port.wdata[7:0];
|
||||
wdata2[1][7:0] = port.wdata[7:0];
|
||||
wdata2[2][7:0] = port.wdata[7:0];
|
||||
wdata2[3][7:0] = port.wdata[7:0];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
endcase
|
||||
if (port.wvalid) begin
|
||||
case (port.wstrb)
|
||||
4'b1111: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][127:96] = port.wdata;
|
||||
wdata1[1][127:96] = port.wdata;
|
||||
wdata1[2][127:96] = port.wdata;
|
||||
wdata1[3][127:96] = port.wdata;
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][95:64] = port.wdata;
|
||||
wdata1[1][95:64] = port.wdata;
|
||||
wdata1[2][95:64] = port.wdata;
|
||||
wdata1[3][95:64] = port.wdata;
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][63:32] = port.wdata;
|
||||
wdata1[1][63:32] = port.wdata;
|
||||
wdata1[2][63:32] = port.wdata;
|
||||
wdata1[3][63:32] = port.wdata;
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][31:0] = port.wdata;
|
||||
wdata1[1][31:0] = port.wdata;
|
||||
wdata1[2][31:0] = port.wdata;
|
||||
wdata1[3][31:0] = port.wdata;
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][127:96] = port.wdata;
|
||||
wdata2[1][127:96] = port.wdata;
|
||||
wdata2[2][127:96] = port.wdata;
|
||||
wdata2[3][127:96] = port.wdata;
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][95:64] = port.wdata;
|
||||
wdata2[1][95:64] = port.wdata;
|
||||
wdata2[2][95:64] = port.wdata;
|
||||
wdata2[3][95:64] = port.wdata;
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][63:32] = port.wdata;
|
||||
wdata2[1][63:32] = port.wdata;
|
||||
wdata2[2][63:32] = port.wdata;
|
||||
wdata2[3][63:32] = port.wdata;
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][31:0] = port.wdata;
|
||||
wdata2[1][31:0] = port.wdata;
|
||||
wdata2[2][31:0] = port.wdata;
|
||||
wdata2[3][31:0] = port.wdata;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b1100: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][127:112] = port.wdata[31:16];
|
||||
wdata1[1][127:112] = port.wdata[31:16];
|
||||
wdata1[2][127:112] = port.wdata[31:16];
|
||||
wdata1[3][127:112] = port.wdata[31:16];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][95:80] = port.wdata[31:16];
|
||||
wdata1[1][95:80] = port.wdata[31:16];
|
||||
wdata1[2][95:80] = port.wdata[31:16];
|
||||
wdata1[3][95:80] = port.wdata[31:16];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][63:48] = port.wdata[31:16];
|
||||
wdata1[1][63:48] = port.wdata[31:16];
|
||||
wdata1[2][63:48] = port.wdata[31:16];
|
||||
wdata1[3][63:48] = port.wdata[31:16];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][31:16] = port.wdata[31:16];
|
||||
wdata1[1][31:16] = port.wdata[31:16];
|
||||
wdata1[2][31:16] = port.wdata[31:16];
|
||||
wdata1[3][31:16] = port.wdata[31:16];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][127:112] = port.wdata[31:16];
|
||||
wdata2[1][127:112] = port.wdata[31:16];
|
||||
wdata2[2][127:112] = port.wdata[31:16];
|
||||
wdata2[3][127:112] = port.wdata[31:16];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][95:80] = port.wdata[31:16];
|
||||
wdata2[1][95:80] = port.wdata[31:16];
|
||||
wdata2[2][95:80] = port.wdata[31:16];
|
||||
wdata2[3][95:80] = port.wdata[31:16];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][63:48] = port.wdata[31:16];
|
||||
wdata2[1][63:48] = port.wdata[31:16];
|
||||
wdata2[2][63:48] = port.wdata[31:16];
|
||||
wdata2[3][63:48] = port.wdata[31:16];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][31:16] = port.wdata[31:16];
|
||||
wdata2[1][31:16] = port.wdata[31:16];
|
||||
wdata2[2][31:16] = port.wdata[31:16];
|
||||
wdata2[3][31:16] = port.wdata[31:16];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b0011: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][111:96] = port.wdata[15:0];
|
||||
wdata1[1][111:96] = port.wdata[15:0];
|
||||
wdata1[2][111:96] = port.wdata[15:0];
|
||||
wdata1[3][111:96] = port.wdata[15:0];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][79:64] = port.wdata[15:0];
|
||||
wdata1[1][79:64] = port.wdata[15:0];
|
||||
wdata1[2][79:64] = port.wdata[15:0];
|
||||
wdata1[3][79:64] = port.wdata[15:0];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][47:32] = port.wdata[15:0];
|
||||
wdata1[1][47:32] = port.wdata[15:0];
|
||||
wdata1[2][47:32] = port.wdata[15:0];
|
||||
wdata1[3][47:32] = port.wdata[15:0];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][15:0] = port.wdata[15:0];
|
||||
wdata1[1][15:0] = port.wdata[15:0];
|
||||
wdata1[2][15:0] = port.wdata[15:0];
|
||||
wdata1[3][15:0] = port.wdata[15:0];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][111:96] = port.wdata[15:0];
|
||||
wdata2[1][111:96] = port.wdata[15:0];
|
||||
wdata2[2][111:96] = port.wdata[15:0];
|
||||
wdata2[3][111:96] = port.wdata[15:0];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][79:64] = port.wdata[15:0];
|
||||
wdata2[1][79:64] = port.wdata[15:0];
|
||||
wdata2[2][79:64] = port.wdata[15:0];
|
||||
wdata2[3][79:64] = port.wdata[15:0];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][47:32] = port.wdata[15:0];
|
||||
wdata2[1][47:32] = port.wdata[15:0];
|
||||
wdata2[2][47:32] = port.wdata[15:0];
|
||||
wdata2[3][47:32] = port.wdata[15:0];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][15:0] = port.wdata[15:0];
|
||||
wdata2[1][15:0] = port.wdata[15:0];
|
||||
wdata2[2][15:0] = port.wdata[15:0];
|
||||
wdata2[3][15:0] = port.wdata[15:0];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b1000: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][127:120] = port.wdata[31:24];
|
||||
wdata1[1][127:120] = port.wdata[31:24];
|
||||
wdata1[2][127:120] = port.wdata[31:24];
|
||||
wdata1[3][127:120] = port.wdata[31:24];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][95:88] = port.wdata[31:24];
|
||||
wdata1[1][95:88] = port.wdata[31:24];
|
||||
wdata1[2][95:88] = port.wdata[31:24];
|
||||
wdata1[3][95:88] = port.wdata[31:24];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][63:56] = port.wdata[31:24];
|
||||
wdata1[1][63:56] = port.wdata[31:24];
|
||||
wdata1[2][63:56] = port.wdata[31:24];
|
||||
wdata1[3][63:56] = port.wdata[31:24];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][31:24] = port.wdata[31:24];
|
||||
wdata1[1][31:24] = port.wdata[31:24];
|
||||
wdata1[2][31:24] = port.wdata[31:24];
|
||||
wdata1[3][31:24] = port.wdata[31:24];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][127:120] = port.wdata[31:24];
|
||||
wdata2[1][127:120] = port.wdata[31:24];
|
||||
wdata2[2][127:120] = port.wdata[31:24];
|
||||
wdata2[3][127:120] = port.wdata[31:24];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][95:88] = port.wdata[31:24];
|
||||
wdata2[1][95:88] = port.wdata[31:24];
|
||||
wdata2[2][95:88] = port.wdata[31:24];
|
||||
wdata2[3][95:88] = port.wdata[31:24];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][63:56] = port.wdata[31:24];
|
||||
wdata2[1][63:56] = port.wdata[31:24];
|
||||
wdata2[2][63:56] = port.wdata[31:24];
|
||||
wdata2[3][63:56] = port.wdata[31:24];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][31:24] = port.wdata[31:24];
|
||||
wdata2[1][31:24] = port.wdata[31:24];
|
||||
wdata2[2][31:24] = port.wdata[31:24];
|
||||
wdata2[3][31:24] = port.wdata[31:24];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b0100: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][119:112] = port.wdata[23:16];
|
||||
wdata1[1][119:112] = port.wdata[23:16];
|
||||
wdata1[2][119:112] = port.wdata[23:16];
|
||||
wdata1[3][119:112] = port.wdata[23:16];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][87:80] = port.wdata[23:16];
|
||||
wdata1[1][87:80] = port.wdata[23:16];
|
||||
wdata1[2][87:80] = port.wdata[23:16];
|
||||
wdata1[3][87:80] = port.wdata[23:16];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][55:48] = port.wdata[23:16];
|
||||
wdata1[1][55:48] = port.wdata[23:16];
|
||||
wdata1[2][55:48] = port.wdata[23:16];
|
||||
wdata1[3][55:48] = port.wdata[23:16];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][23:16] = port.wdata[23:16];
|
||||
wdata1[1][23:16] = port.wdata[23:16];
|
||||
wdata1[2][23:16] = port.wdata[23:16];
|
||||
wdata1[3][23:16] = port.wdata[23:16];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][119:112] = port.wdata[23:16];
|
||||
wdata2[1][119:112] = port.wdata[23:16];
|
||||
wdata2[2][119:112] = port.wdata[23:16];
|
||||
wdata2[3][119:112] = port.wdata[23:16];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][87:80] = port.wdata[23:16];
|
||||
wdata2[1][87:80] = port.wdata[23:16];
|
||||
wdata2[2][87:80] = port.wdata[23:16];
|
||||
wdata2[3][87:80] = port.wdata[23:16];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][55:48] = port.wdata[23:16];
|
||||
wdata2[1][55:48] = port.wdata[23:16];
|
||||
wdata2[2][55:48] = port.wdata[23:16];
|
||||
wdata2[3][55:48] = port.wdata[23:16];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][23:16] = port.wdata[23:16];
|
||||
wdata2[1][23:16] = port.wdata[23:16];
|
||||
wdata2[2][23:16] = port.wdata[23:16];
|
||||
wdata2[3][23:16] = port.wdata[23:16];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b0010: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][111:104] = port.wdata[15:8];
|
||||
wdata1[1][111:104] = port.wdata[15:8];
|
||||
wdata1[2][111:104] = port.wdata[15:8];
|
||||
wdata1[3][111:104] = port.wdata[15:8];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][79:72] = port.wdata[15:8];
|
||||
wdata1[1][79:72] = port.wdata[15:8];
|
||||
wdata1[2][79:72] = port.wdata[15:8];
|
||||
wdata1[3][79:72] = port.wdata[15:8];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][47:40] = port.wdata[15:8];
|
||||
wdata1[1][47:40] = port.wdata[15:8];
|
||||
wdata1[2][47:40] = port.wdata[15:8];
|
||||
wdata1[3][47:40] = port.wdata[15:8];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][15:8] = port.wdata[15:8];
|
||||
wdata1[1][15:8] = port.wdata[15:8];
|
||||
wdata1[2][15:8] = port.wdata[15:8];
|
||||
wdata1[3][15:8] = port.wdata[15:8];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][111:104] = port.wdata[15:8];
|
||||
wdata2[1][111:104] = port.wdata[15:8];
|
||||
wdata2[2][111:104] = port.wdata[15:8];
|
||||
wdata2[3][111:104] = port.wdata[15:8];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][79:72] = port.wdata[15:8];
|
||||
wdata2[1][79:72] = port.wdata[15:8];
|
||||
wdata2[2][79:72] = port.wdata[15:8];
|
||||
wdata2[3][79:72] = port.wdata[15:8];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][47:40] = port.wdata[15:8];
|
||||
wdata2[1][47:40] = port.wdata[15:8];
|
||||
wdata2[2][47:40] = port.wdata[15:8];
|
||||
wdata2[3][47:40] = port.wdata[15:8];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][15:8] = port.wdata[15:8];
|
||||
wdata2[1][15:8] = port.wdata[15:8];
|
||||
wdata2[2][15:8] = port.wdata[15:8];
|
||||
wdata2[3][15:8] = port.wdata[15:8];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
4'b0001: begin
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata1[0][103:96] = port.wdata[7:0];
|
||||
wdata1[1][103:96] = port.wdata[7:0];
|
||||
wdata1[2][103:96] = port.wdata[7:0];
|
||||
wdata1[3][103:96] = port.wdata[7:0];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata1[0][71:64] = port.wdata[7:0];
|
||||
wdata1[1][71:64] = port.wdata[7:0];
|
||||
wdata1[2][71:64] = port.wdata[7:0];
|
||||
wdata1[3][71:64] = port.wdata[7:0];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata1[0][39:32] = port.wdata[7:0];
|
||||
wdata1[1][39:32] = port.wdata[7:0];
|
||||
wdata1[2][39:32] = port.wdata[7:0];
|
||||
wdata1[3][39:32] = port.wdata[7:0];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata1[0][7:0] = port.wdata[7:0];
|
||||
wdata1[1][7:0] = port.wdata[7:0];
|
||||
wdata1[2][7:0] = port.wdata[7:0];
|
||||
wdata1[3][7:0] = port.wdata[7:0];
|
||||
end
|
||||
endcase
|
||||
case (addr[3:2])
|
||||
2'b11: begin
|
||||
wdata2[0][103:96] = port.wdata[7:0];
|
||||
wdata2[1][103:96] = port.wdata[7:0];
|
||||
wdata2[2][103:96] = port.wdata[7:0];
|
||||
wdata2[3][103:96] = port.wdata[7:0];
|
||||
end
|
||||
2'b10: begin
|
||||
wdata2[0][71:64] = port.wdata[7:0];
|
||||
wdata2[1][71:64] = port.wdata[7:0];
|
||||
wdata2[2][71:64] = port.wdata[7:0];
|
||||
wdata2[3][71:64] = port.wdata[7:0];
|
||||
end
|
||||
2'b01: begin
|
||||
wdata2[0][39:32] = port.wdata[7:0];
|
||||
wdata2[1][39:32] = port.wdata[7:0];
|
||||
wdata2[2][39:32] = port.wdata[7:0];
|
||||
wdata2[3][39:32] = port.wdata[7:0];
|
||||
end
|
||||
2'b00: begin
|
||||
wdata2[0][7:0] = port.wdata[7:0];
|
||||
wdata2[1][7:0] = port.wdata[7:0];
|
||||
wdata2[2][7:0] = port.wdata[7:0];
|
||||
wdata2[3][7:0] = port.wdata[7:0];
|
||||
end
|
||||
endcase
|
||||
end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
cache_tagd_bram tag_ram0 (
|
||||
|
Loading…
Reference in New Issue
Block a user