minor update
This commit is contained in:
45
hw/rtl/cache/VX_cache.v
vendored
45
hw/rtl/cache/VX_cache.v
vendored
@@ -110,23 +110,42 @@ module VX_cache #(
|
|||||||
wire [NUM_PORTS-1:0][WORD_SIZE-1:0] mem_req_byteen_p;
|
wire [NUM_PORTS-1:0][WORD_SIZE-1:0] mem_req_byteen_p;
|
||||||
wire [NUM_PORTS-1:0][WORD_SELECT_BITS-1:0] mem_req_wsel_p;
|
wire [NUM_PORTS-1:0][WORD_SELECT_BITS-1:0] mem_req_wsel_p;
|
||||||
wire [NUM_PORTS-1:0][`WORD_WIDTH-1:0] mem_req_data_p;
|
wire [NUM_PORTS-1:0][`WORD_WIDTH-1:0] mem_req_data_p;
|
||||||
|
wire mem_req_rw_p;
|
||||||
|
|
||||||
reg [CACHE_LINE_SIZE-1:0] mem_req_byteen_r;
|
if (WRITE_ENABLE) begin
|
||||||
reg [`CACHE_LINE_WIDTH-1:0] mem_req_data_r;
|
|
||||||
|
|
||||||
always @(*) begin
|
reg [CACHE_LINE_SIZE-1:0] mem_req_byteen_r;
|
||||||
mem_req_byteen_r = 0;
|
reg [`CACHE_LINE_WIDTH-1:0] mem_req_data_r;
|
||||||
mem_req_data_r = 'x;
|
|
||||||
for (integer p = 0; p < NUM_PORTS; ++p) begin
|
always @(*) begin
|
||||||
if (mem_req_byteen_p[p] != 0) begin
|
mem_req_byteen_r = 0;
|
||||||
mem_req_byteen_r[mem_req_wsel_p[p] * WORD_SIZE +: WORD_SIZE] = mem_req_byteen_p[p];
|
mem_req_data_r = 'x;
|
||||||
mem_req_data_r[mem_req_wsel_p[p] * `WORD_WIDTH +: `WORD_WIDTH] = mem_req_data_p[p];
|
for (integer p = 0; p < NUM_PORTS; ++p) begin
|
||||||
|
if (mem_req_byteen_p[p] != 0) begin
|
||||||
|
mem_req_byteen_r[mem_req_wsel_p[p] * WORD_SIZE +: WORD_SIZE] = mem_req_byteen_p[p];
|
||||||
|
mem_req_data_r[mem_req_wsel_p[p] * `WORD_WIDTH +: `WORD_WIDTH] = mem_req_data_p[p];
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
assign mem_req_rw = mem_req_rw_p;
|
||||||
|
assign mem_req_byteen = mem_req_byteen_r;
|
||||||
|
assign mem_req_data = mem_req_data_r;
|
||||||
|
|
||||||
|
end else begin
|
||||||
|
|
||||||
|
`UNUSED_VAR (mem_req_byteen_p)
|
||||||
|
`UNUSED_VAR (mem_req_wsel_p)
|
||||||
|
`UNUSED_VAR (mem_req_data_p)
|
||||||
|
`UNUSED_VAR (mem_req_rw_p)
|
||||||
|
|
||||||
|
assign mem_req_rw = 0;
|
||||||
|
assign mem_req_byteen = 'x;
|
||||||
|
assign mem_req_data = 'x;
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
assign mem_req_byteen = mem_req_byteen_r;
|
|
||||||
assign mem_req_data = mem_req_data_r;
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@@ -225,8 +244,8 @@ module VX_cache #(
|
|||||||
|
|
||||||
// Memory request out
|
// Memory request out
|
||||||
.mem_req_valid_out (mem_req_valid),
|
.mem_req_valid_out (mem_req_valid),
|
||||||
.mem_req_rw_out (mem_req_rw),
|
|
||||||
.mem_req_addr_out (mem_req_addr),
|
.mem_req_addr_out (mem_req_addr),
|
||||||
|
.mem_req_rw_out (mem_req_rw_p),
|
||||||
.mem_req_byteen_out (mem_req_byteen_p),
|
.mem_req_byteen_out (mem_req_byteen_p),
|
||||||
.mem_req_wsel_out (mem_req_wsel_p),
|
.mem_req_wsel_out (mem_req_wsel_p),
|
||||||
.mem_req_data_out (mem_req_data_p),
|
.mem_req_data_out (mem_req_data_p),
|
||||||
@@ -261,8 +280,8 @@ module VX_cache #(
|
|||||||
assign core_rsp_ready_nc = core_rsp_ready;
|
assign core_rsp_ready_nc = core_rsp_ready;
|
||||||
|
|
||||||
assign mem_req_valid = mem_req_valid_nc;
|
assign mem_req_valid = mem_req_valid_nc;
|
||||||
assign mem_req_rw = mem_req_rw_nc;
|
|
||||||
assign mem_req_addr = mem_req_addr_nc;
|
assign mem_req_addr = mem_req_addr_nc;
|
||||||
|
assign mem_req_rw_p = mem_req_rw_nc;
|
||||||
assign mem_req_byteen_p = mem_req_byteen_nc;
|
assign mem_req_byteen_p = mem_req_byteen_nc;
|
||||||
assign mem_req_wsel_p = mem_req_wsel_nc;
|
assign mem_req_wsel_p = mem_req_wsel_nc;
|
||||||
assign mem_req_data_p = mem_req_data_nc;
|
assign mem_req_data_p = mem_req_data_nc;
|
||||||
|
|||||||
Reference in New Issue
Block a user