minor update
This commit is contained in:
@@ -232,6 +232,11 @@
|
|||||||
|
|
||||||
// Pipeline Queues ////////////////////////////////////////////////////////////
|
// Pipeline Queues ////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Size of Instruction Buffer
|
||||||
|
`ifndef IBUF_SIZE
|
||||||
|
`define IBUF_SIZE 4
|
||||||
|
`endif
|
||||||
|
|
||||||
// Size of LSU Request Queue
|
// Size of LSU Request Queue
|
||||||
`ifndef LSUQ_SIZE
|
`ifndef LSUQ_SIZE
|
||||||
`define LSUQ_SIZE (`NUM_WARPS * 2)
|
`define LSUQ_SIZE (`NUM_WARPS * 2)
|
||||||
|
|||||||
@@ -16,8 +16,7 @@ module VX_ibuffer #(
|
|||||||
`UNUSED_PARAM (CORE_ID)
|
`UNUSED_PARAM (CORE_ID)
|
||||||
|
|
||||||
localparam DATAW = `NUM_THREADS + 32 + `EX_BITS + `OP_BITS + `FRM_BITS + 1 + (`NR_BITS * 4) + 32 + 1 + 1 + `NUM_REGS;
|
localparam DATAW = `NUM_THREADS + 32 + `EX_BITS + `OP_BITS + `FRM_BITS + 1 + (`NR_BITS * 4) + 32 + 1 + 1 + `NUM_REGS;
|
||||||
localparam SIZE = 3;
|
localparam ADDRW = $clog2(`IBUF_SIZE+1);
|
||||||
localparam ADDRW = $clog2(SIZE);
|
|
||||||
localparam NWARPSW = $clog2(`NUM_WARPS+1);
|
localparam NWARPSW = $clog2(`NUM_WARPS+1);
|
||||||
|
|
||||||
reg [`NUM_WARPS-1:0][ADDRW-1:0] used_r;
|
reg [`NUM_WARPS-1:0][ADDRW-1:0] used_r;
|
||||||
@@ -38,8 +37,9 @@ module VX_ibuffer #(
|
|||||||
|
|
||||||
wire is_head_ptr = empty_r[i] || (alm_empty_r[i] && reading);
|
wire is_head_ptr = empty_r[i] || (alm_empty_r[i] && reading);
|
||||||
|
|
||||||
VX_skid_buffer #(
|
VX_elastic_buffer #(
|
||||||
.DATAW (DATAW)
|
.DATAW (DATAW),
|
||||||
|
.SIZE (`IBUF_SIZE)
|
||||||
) queue (
|
) queue (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.reset (reset),
|
.reset (reset),
|
||||||
@@ -63,7 +63,7 @@ module VX_ibuffer #(
|
|||||||
empty_r[i] <= 0;
|
empty_r[i] <= 0;
|
||||||
if (used_r[i] == 1)
|
if (used_r[i] == 1)
|
||||||
alm_empty_r[i] <= 0;
|
alm_empty_r[i] <= 0;
|
||||||
if (used_r[i] == ADDRW'(SIZE-1))
|
if (used_r[i] == ADDRW'(`IBUF_SIZE))
|
||||||
full_r[i] <= 1;
|
full_r[i] <= 1;
|
||||||
end
|
end
|
||||||
end else if (reading) begin
|
end else if (reading) begin
|
||||||
@@ -164,6 +164,7 @@ module VX_ibuffer #(
|
|||||||
end
|
end
|
||||||
|
|
||||||
assign decode_if.ready = ~q_full[decode_if.wid];
|
assign decode_if.ready = ~q_full[decode_if.wid];
|
||||||
|
|
||||||
assign q_data_in = {decode_if.tmask,
|
assign q_data_in = {decode_if.tmask,
|
||||||
decode_if.PC,
|
decode_if.PC,
|
||||||
decode_if.ex_type,
|
decode_if.ex_type,
|
||||||
|
|||||||
@@ -138,7 +138,7 @@
|
|||||||
"icache_rsp_tag":"`ICORE_TAG_ID_BITS"
|
"icache_rsp_tag":"`ICORE_TAG_ID_BITS"
|
||||||
},
|
},
|
||||||
"afu/vortex/cluster/core/pipeline/fetch/warp_sched": {
|
"afu/vortex/cluster/core/pipeline/fetch/warp_sched": {
|
||||||
"?wsched_scheduled_warp": 1,
|
"?wsched_scheduled": 1,
|
||||||
"wsched_active_warps": "`NUM_WARPS",
|
"wsched_active_warps": "`NUM_WARPS",
|
||||||
"wsched_stalled_warps": "`NUM_WARPS",
|
"wsched_stalled_warps": "`NUM_WARPS",
|
||||||
"wsched_schedule_tmask": "`NUM_THREADS",
|
"wsched_schedule_tmask": "`NUM_THREADS",
|
||||||
|
|||||||
Reference in New Issue
Block a user