promach
Advanced Member level 4
I have some confusion regarding reorder queue using tag as sequence number
Do anyone have any general ideas about the following code snippet ?
- - - Updated - - -
Why do we need EXT_TAG_VALID in line 12 of the above code ?
Do anyone have any general ideas about the following code snippet ?
Code Verilog - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 assign EXT_TAG = rPos; assign EXT_TAG_VALID = rValid; // Move through tag/slot/bucket space. always @ (posedge CLK) begin if (RST) begin rPos <= #1 0; rUse <= #1 0; rValid <= #1 0; end else begin if (INT_TAG_VALID & EXT_TAG_VALID) begin rPos <= #1 rPos + 1'd1; rUse <= #1 1<<rPos; rValid <= #1 !rUsing[rPos + 1'd1]; end else begin rUse <= #1 0; rValid <= #1 !rUsing[rPos]; end end end // Update tag/slot/bucket status. always @ (posedge CLK) begin if (RST) begin rUsing <= #1 0; rFinished <= #1 0; end else begin rUsing <= #1 (rUsing | rUse) & ~wClear; rFinished <= #1 (rFinished | wFinish) & ~wClear; end end
- - - Updated - - -
Why do we need EXT_TAG_VALID in line 12 of the above code ?