mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-23 21:39:10 -04:00
minor update
This commit is contained in:
parent
1f5cc53434
commit
10a8705161
1 changed files with 33 additions and 24 deletions
|
@ -61,8 +61,8 @@ module VX_pending_size #(
|
|||
|
||||
end else begin
|
||||
|
||||
logic empty_r, alm_empty_r;
|
||||
logic full_r, alm_full_r;
|
||||
reg empty_r, alm_empty_r;
|
||||
reg full_r, alm_full_r;
|
||||
|
||||
if (INCRW != 1 || DECRW != 1) begin
|
||||
|
||||
|
@ -98,43 +98,55 @@ module VX_pending_size #(
|
|||
|
||||
reg [ADDRW-1:0] used_r;
|
||||
|
||||
wire is_alm_empty = (used_r == ADDRW'(ALM_EMPTY));
|
||||
wire is_alm_empty_n = (used_r == ADDRW'(ALM_EMPTY+1));
|
||||
wire is_alm_full = (used_r == ADDRW'(ALM_FULL));
|
||||
wire is_alm_full_n = (used_r == ADDRW'(ALM_FULL-1));
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (reset) begin
|
||||
alm_empty_r <= 1;
|
||||
alm_full_r <= 0;
|
||||
end else begin
|
||||
if (incr) begin
|
||||
if (~decr) begin
|
||||
if (is_alm_empty)
|
||||
alm_empty_r <= 0;
|
||||
if (is_alm_full_n)
|
||||
alm_full_r <= 1;
|
||||
end
|
||||
end else if (decr) begin
|
||||
if (is_alm_full)
|
||||
alm_full_r <= 0;
|
||||
if (is_alm_empty_n)
|
||||
alm_empty_r <= 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (SIZE > 2) begin
|
||||
|
||||
wire is_empty_n = (used_r == ADDRW'(1));
|
||||
wire is_full_n = (used_r == ADDRW'(SIZE-1));
|
||||
wire is_alm_empty = (used_r == ADDRW'(ALM_EMPTY));
|
||||
wire is_alm_empty_n= (used_r == ADDRW'(ALM_EMPTY+1));
|
||||
wire is_alm_full = (used_r == ADDRW'(ALM_FULL));
|
||||
wire is_alm_full_n = (used_r == ADDRW'(ALM_FULL-1));
|
||||
wire is_empty_n = (used_r == ADDRW'(1));
|
||||
wire is_full_n = (used_r == ADDRW'(SIZE-1));
|
||||
|
||||
wire [1:0] push_minus_pop = {~incr & decr, incr ^ decr};
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (reset) begin
|
||||
empty_r <= 1;
|
||||
full_r <= 0;
|
||||
alm_empty_r <= 0;
|
||||
alm_full_r <= 0;
|
||||
used_r <= '0;
|
||||
empty_r <= 1;
|
||||
full_r <= 0;
|
||||
used_r <= '0;
|
||||
end else begin
|
||||
if (incr) begin
|
||||
if (~decr) begin
|
||||
empty_r <= 0;
|
||||
if (is_alm_empty)
|
||||
alm_empty_r <= 0;
|
||||
if (is_full_n)
|
||||
full_r <= 1;
|
||||
if (is_alm_full_n)
|
||||
alm_full_r <= 1;
|
||||
end
|
||||
end else if (decr) begin
|
||||
full_r <= 0;
|
||||
if (is_alm_full)
|
||||
alm_full_r <= 0;
|
||||
if (is_empty_n)
|
||||
empty_r <= 1;
|
||||
if (is_alm_empty_n)
|
||||
alm_empty_r <= 1;
|
||||
end
|
||||
used_r <= $signed(used_r) + ADDRW'($signed(push_minus_pop));
|
||||
end
|
||||
|
@ -153,9 +165,6 @@ module VX_pending_size #(
|
|||
used_r <= used_r ^ (incr ^ decr);
|
||||
end
|
||||
end
|
||||
|
||||
assign alm_empty_r = used_r;
|
||||
assign alm_full_r = used_r;
|
||||
end
|
||||
|
||||
assign size = {full_r, used_r};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue