Fix sq id tracking

This commit is contained in:
Chris Keilbart 2024-08-16 10:02:42 -07:00
parent beacd43b0b
commit 9b589caba5
2 changed files with 4 additions and 4 deletions

View file

@ -156,7 +156,6 @@ module load_store_queue //ID-based input buffer for Load/Store Unit
.store_forward_wb_group (store_forward_wb_group),
.fp_store_forward_wb_group (fp_store_forward_wb_group),
.addr_hash (addr_hash),
.potential_id (lsq.data_in.id),
.potential_store_conflict (potential_store_conflict),
.sq_index (sq_index),
.sq_oldest (sq_oldest),

View file

@ -39,7 +39,6 @@ module store_queue
//Address hash (shared by loads and stores)
input addr_hash_t addr_hash,
input id_t potential_id,
//hash check on adding a load to the queue
output logic [$clog2(CONFIG.SQ_DEPTH)-1:0] sq_index,
@ -75,6 +74,7 @@ module store_queue
logic [CONFIG.SQ_DEPTH-1:0] valid;
logic [CONFIG.SQ_DEPTH-1:0] valid_next;
addr_hash_t [CONFIG.SQ_DEPTH-1:0] hashes;
logic [CONFIG.SQ_DEPTH-1:0] ids_valid;
id_t [CONFIG.SQ_DEPTH-1:0] ids;
//LUTRAM-based memory blocks
@ -163,7 +163,7 @@ module store_queue
potential_store_conflict = 0;
for (int i = 0; i < CONFIG.SQ_DEPTH; i++) begin
potential_store_conflict |= {(valid[i] & ~issued_one_hot[i]), addr_hash} == {1'b1, hashes[i]};
potential_store_conflict |= {(valid[i] & ~issued_one_hot[i]), potential_id} == {1'b1, ids[i]};
potential_store_conflict |= {(valid[i] & ~issued_one_hot[i] & ids_valid[i]), sq.data_in.id} == {1'b1, ids[i]};
end
end
////////////////////////////////////////////////////
@ -173,7 +173,8 @@ module store_queue
for (int i = 0; i < CONFIG.SQ_DEPTH; i++) begin
if (new_request_one_hot[i]) begin
hashes[i] <= addr_hash;
ids[i] <= potential_id;
ids[i] <= sq.data_in.id_needed;
ids_valid[i] <= CONFIG.INCLUDE_UNIT.FPU & sq.data_in.fp ? |fp_store_forward_wb_group : |store_forward_wb_group;
end
end
end