adding empty to index_buffer
This commit is contained in:
@@ -54,7 +54,8 @@ module VX_fpu_unit #(
|
|||||||
.write_data ({fpu_req_if.wid, fpu_req_if.tmask, fpu_req_if.PC, fpu_req_if.rd, fpu_req_if.wb}),
|
.write_data ({fpu_req_if.wid, fpu_req_if.tmask, fpu_req_if.PC, fpu_req_if.rd, fpu_req_if.wb}),
|
||||||
.read_data ({rsp_wid, rsp_tmask, rsp_PC, rsp_rd, rsp_wb}),
|
.read_data ({rsp_wid, rsp_tmask, rsp_PC, rsp_rd, rsp_wb}),
|
||||||
.release_slot (fpuq_pop),
|
.release_slot (fpuq_pop),
|
||||||
.full (fpuq_full)
|
.full (fpuq_full),
|
||||||
|
`UNUSED_PIN (empty)
|
||||||
);
|
);
|
||||||
|
|
||||||
// can accept new request?
|
// can accept new request?
|
||||||
|
|||||||
@@ -113,7 +113,8 @@ module VX_lsu_unit #(
|
|||||||
.read_data ({rsp_wid, rsp_pc, rsp_rd, rsp_wb, rsp_type, rsp_offset, rsp_is_dup}),
|
.read_data ({rsp_wid, rsp_pc, rsp_rd, rsp_wb, rsp_type, rsp_offset, rsp_is_dup}),
|
||||||
.release_addr (mbuf_raddr),
|
.release_addr (mbuf_raddr),
|
||||||
.release_slot (mbuf_pop),
|
.release_slot (mbuf_pop),
|
||||||
.full (mbuf_full)
|
.full (mbuf_full),
|
||||||
|
`UNUSED_PIN (empty)
|
||||||
);
|
);
|
||||||
|
|
||||||
assign req_sent_all = (&(dcache_req_if.ready | req_sent_mask | ~req_tmask))
|
assign req_sent_all = (&(dcache_req_if.ready | req_sent_mask | ~req_tmask))
|
||||||
|
|||||||
@@ -18,11 +18,12 @@ module VX_index_buffer #(
|
|||||||
input wire [ADDRW-1:0] release_addr,
|
input wire [ADDRW-1:0] release_addr,
|
||||||
input wire release_slot,
|
input wire release_slot,
|
||||||
|
|
||||||
|
output wire empty,
|
||||||
output wire full
|
output wire full
|
||||||
);
|
);
|
||||||
reg [SIZE-1:0] free_slots, free_slots_n;
|
reg [SIZE-1:0] free_slots, free_slots_n;
|
||||||
reg [ADDRW-1:0] write_addr_r;
|
reg [ADDRW-1:0] write_addr_r;
|
||||||
reg full_r;
|
reg empty_r, full_r;
|
||||||
|
|
||||||
wire free_valid;
|
wire free_valid;
|
||||||
wire [ADDRW-1:0] free_index;
|
wire [ADDRW-1:0] free_index;
|
||||||
@@ -51,6 +52,7 @@ module VX_index_buffer #(
|
|||||||
if (reset) begin
|
if (reset) begin
|
||||||
write_addr_r <= ADDRW'(1'b0);
|
write_addr_r <= ADDRW'(1'b0);
|
||||||
free_slots <= {SIZE{1'b1}};
|
free_slots <= {SIZE{1'b1}};
|
||||||
|
empty_r <= 1'b1;
|
||||||
full_r <= 1'b0;
|
full_r <= 1'b0;
|
||||||
end else begin
|
end else begin
|
||||||
if (release_slot) begin
|
if (release_slot) begin
|
||||||
@@ -60,6 +62,7 @@ module VX_index_buffer #(
|
|||||||
write_addr_r <= free_index;
|
write_addr_r <= free_index;
|
||||||
end
|
end
|
||||||
free_slots <= free_slots_n;
|
free_slots <= free_slots_n;
|
||||||
|
empty_r <= (& free_slots_n);
|
||||||
full_r <= ~free_valid;
|
full_r <= ~free_valid;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -81,6 +84,7 @@ module VX_index_buffer #(
|
|||||||
);
|
);
|
||||||
|
|
||||||
assign write_addr = write_addr_r;
|
assign write_addr = write_addr_r;
|
||||||
|
assign empty = empty_r;
|
||||||
assign full = full_r;
|
assign full = full_r;
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
Reference in New Issue
Block a user