cache area optimization by disabling BRAM read-during-write bypassing for tag/data stores
This commit is contained in:
3
hw/rtl/cache/VX_bank.v
vendored
3
hw/rtl/cache/VX_bank.v
vendored
@@ -161,6 +161,8 @@ module VX_bank #(
|
|||||||
wire mreq_alm_full;
|
wire mreq_alm_full;
|
||||||
|
|
||||||
wire creq_fire = creq_valid && creq_ready;
|
wire creq_fire = creq_valid && creq_ready;
|
||||||
|
|
||||||
|
wire fill_in_st0 = valid_st0 && is_fill_st0;
|
||||||
|
|
||||||
// determine which queue to pop next in priority order
|
// determine which queue to pop next in priority order
|
||||||
wire mshr_grant = 1;
|
wire mshr_grant = 1;
|
||||||
@@ -172,6 +174,7 @@ module VX_bank #(
|
|||||||
wire creq_grant = !mshr_enable && !mrsq_enable && !flush_enable;
|
wire creq_grant = !mshr_enable && !mrsq_enable && !flush_enable;
|
||||||
|
|
||||||
wire mshr_ready = mshr_grant
|
wire mshr_ready = mshr_grant
|
||||||
|
&& !fill_in_st0 // prevent tag read-during-write with fill
|
||||||
&& !crsq_stall; // ensure core response ready
|
&& !crsq_stall; // ensure core response ready
|
||||||
|
|
||||||
assign mem_rsp_ready = mrsq_grant
|
assign mem_rsp_ready = mrsq_grant
|
||||||
|
|||||||
7
hw/rtl/cache/VX_data_access.v
vendored
7
hw/rtl/cache/VX_data_access.v
vendored
@@ -63,9 +63,10 @@ module VX_data_access #(
|
|||||||
end
|
end
|
||||||
|
|
||||||
VX_sp_ram #(
|
VX_sp_ram #(
|
||||||
.DATAW (CACHE_LINE_SIZE * 8),
|
.DATAW (CACHE_LINE_SIZE * 8),
|
||||||
.SIZE (`LINES_PER_BANK),
|
.SIZE (`LINES_PER_BANK),
|
||||||
.BYTEENW (BYTEENW)
|
.BYTEENW (BYTEENW),
|
||||||
|
.NO_RWCHECK (1)
|
||||||
) data_store (
|
) data_store (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.addr (line_addr),
|
.addr (line_addr),
|
||||||
|
|||||||
7
hw/rtl/cache/VX_shared_mem.v
vendored
7
hw/rtl/cache/VX_shared_mem.v
vendored
@@ -171,9 +171,10 @@ module VX_shared_mem #(
|
|||||||
&& creq_out_fire;
|
&& creq_out_fire;
|
||||||
|
|
||||||
VX_sp_ram #(
|
VX_sp_ram #(
|
||||||
.DATAW (`WORD_WIDTH),
|
.DATAW (`WORD_WIDTH),
|
||||||
.SIZE (`LINES_PER_BANK),
|
.SIZE (`LINES_PER_BANK),
|
||||||
.BYTEENW (WORD_SIZE)
|
.BYTEENW (WORD_SIZE),
|
||||||
|
.NO_RWCHECK (1)
|
||||||
) data_store (
|
) data_store (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.addr (per_bank_core_req_addr[i]),
|
.addr (per_bank_core_req_addr[i]),
|
||||||
|
|||||||
9
hw/rtl/cache/VX_tag_access.v
vendored
9
hw/rtl/cache/VX_tag_access.v
vendored
@@ -46,10 +46,11 @@ module VX_tag_access #(
|
|||||||
wire [`LINE_SELECT_BITS-1:0] line_addr = addr [`LINE_SELECT_BITS-1:0];
|
wire [`LINE_SELECT_BITS-1:0] line_addr = addr [`LINE_SELECT_BITS-1:0];
|
||||||
|
|
||||||
VX_sp_ram #(
|
VX_sp_ram #(
|
||||||
.DATAW(`TAG_SELECT_BITS + 1),
|
.DATAW (`TAG_SELECT_BITS + 1),
|
||||||
.SIZE(`LINES_PER_BANK),
|
.SIZE (`LINES_PER_BANK),
|
||||||
.INIT_ENABLE(1),
|
.INIT_ENABLE (1),
|
||||||
.INIT_VALUE(0)
|
.INIT_VALUE (0),
|
||||||
|
.NO_RWCHECK (1)
|
||||||
) tag_store (
|
) tag_store (
|
||||||
.clk( clk),
|
.clk( clk),
|
||||||
.addr (line_addr),
|
.addr (line_addr),
|
||||||
|
|||||||
7
hw/syn/opae/fpga_prog.sh
Executable file
7
hw/syn/opae/fpga_prog.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# FPGA programming
|
||||||
|
# first argument is the bitstream
|
||||||
|
|
||||||
|
echo "fpgaconf --bus 0xaf $1"
|
||||||
|
fpgaconf --bus 0xaf $1
|
||||||
Reference in New Issue
Block a user