1
0
mirror of https://github.com/corundum/corundum.git synced 2025-01-30 08:32:52 +08:00

Properly handle PCIE_TAG_COUNT setting of 32 or less

Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
Alex Forencich 2023-05-17 19:12:09 -07:00
parent 2f449d0b29
commit 8ad370ac99
3 changed files with 24 additions and 18 deletions

View File

@ -1206,7 +1206,7 @@ always @* begin
if (init_pcie_tag_reg) begin
// initialize FIFO
pcie_tag_fifo_wr_tag = init_count_reg;
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1) begin
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1 || !PCIE_TAG_COUNT_2) begin
pcie_tag_fifo_1_we = 1'b1;
end else if (pcie_tag_fifo_wr_tag) begin
pcie_tag_fifo_2_we = 1'b1;
@ -1217,7 +1217,7 @@ always @* begin
dec_active_tag = 1'b1;
pcie_tag_fifo_wr_tag = pcie_tag_reg;
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1) begin
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1 || !PCIE_TAG_COUNT_2) begin
pcie_tag_fifo_1_we = 1'b1;
end else begin
pcie_tag_fifo_2_we = 1'b1;
@ -1460,11 +1460,13 @@ always @(posedge clk) begin
pcie_tag_fifo_1_wr_ptr_reg <= pcie_tag_fifo_1_wr_ptr_reg + 1;
end
pcie_tag_fifo_1_rd_ptr_reg <= pcie_tag_fifo_1_rd_ptr_next;
if (pcie_tag_fifo_2_we) begin
pcie_tag_fifo_2_mem[pcie_tag_fifo_2_wr_ptr_reg[PCIE_TAG_WIDTH_2-1:0]] <= pcie_tag_fifo_wr_tag;
pcie_tag_fifo_2_wr_ptr_reg <= pcie_tag_fifo_2_wr_ptr_reg + 1;
if (PCIE_TAG_COUNT_2) begin
if (pcie_tag_fifo_2_we) begin
pcie_tag_fifo_2_mem[pcie_tag_fifo_2_wr_ptr_reg[PCIE_TAG_WIDTH_2-1:0]] <= pcie_tag_fifo_wr_tag;
pcie_tag_fifo_2_wr_ptr_reg <= pcie_tag_fifo_2_wr_ptr_reg + 1;
end
pcie_tag_fifo_2_rd_ptr_reg <= pcie_tag_fifo_2_rd_ptr_next;
end
pcie_tag_fifo_2_rd_ptr_reg <= pcie_tag_fifo_2_rd_ptr_next;
if (init_op_tag_reg) begin
op_table_read_init_a[init_count_reg] <= 1'b0;

View File

@ -1374,7 +1374,7 @@ always @* begin
if (init_pcie_tag_reg) begin
// initialize FIFO
pcie_tag_fifo_wr_tag = init_count_reg;
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1) begin
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1 || !PCIE_TAG_COUNT_2) begin
pcie_tag_fifo_1_we = 1'b1;
end else if (pcie_tag_fifo_wr_tag) begin
pcie_tag_fifo_2_we = 1'b1;
@ -1384,7 +1384,7 @@ always @* begin
pcie_tag_table_finish_en = 1'b1;
pcie_tag_fifo_wr_tag = pcie_tag_reg;
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1) begin
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1 || !PCIE_TAG_COUNT_2) begin
pcie_tag_fifo_1_we = 1'b1;
end else begin
pcie_tag_fifo_2_we = 1'b1;
@ -1584,11 +1584,13 @@ always @(posedge clk) begin
pcie_tag_fifo_1_wr_ptr_reg <= pcie_tag_fifo_1_wr_ptr_reg + 1;
end
pcie_tag_fifo_1_rd_ptr_reg <= pcie_tag_fifo_1_rd_ptr_next;
if (pcie_tag_fifo_2_we) begin
pcie_tag_fifo_2_mem[pcie_tag_fifo_2_wr_ptr_reg[PCIE_TAG_WIDTH_2-1:0]] <= pcie_tag_fifo_wr_tag;
pcie_tag_fifo_2_wr_ptr_reg <= pcie_tag_fifo_2_wr_ptr_reg + 1;
if (PCIE_TAG_COUNT_2) begin
if (pcie_tag_fifo_2_we) begin
pcie_tag_fifo_2_mem[pcie_tag_fifo_2_wr_ptr_reg[PCIE_TAG_WIDTH_2-1:0]] <= pcie_tag_fifo_wr_tag;
pcie_tag_fifo_2_wr_ptr_reg <= pcie_tag_fifo_2_wr_ptr_reg + 1;
end
pcie_tag_fifo_2_rd_ptr_reg <= pcie_tag_fifo_2_rd_ptr_next;
end
pcie_tag_fifo_2_rd_ptr_reg <= pcie_tag_fifo_2_rd_ptr_next;
if (init_op_tag_reg) begin
op_table_read_init_a[init_count_reg] <= 1'b0;

View File

@ -1380,7 +1380,7 @@ always @* begin
if (init_pcie_tag_reg) begin
// initialize FIFO
pcie_tag_fifo_wr_tag = init_count_reg;
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1) begin
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1 || !PCIE_TAG_COUNT_2) begin
pcie_tag_fifo_1_we = 1'b1;
end else if (pcie_tag_fifo_wr_tag) begin
pcie_tag_fifo_2_we = 1'b1;
@ -1390,7 +1390,7 @@ always @* begin
pcie_tag_table_finish_en = 1'b1;
pcie_tag_fifo_wr_tag = pcie_tag_reg;
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1) begin
if (pcie_tag_fifo_wr_tag < PCIE_TAG_COUNT_1 || !PCIE_TAG_COUNT_2) begin
pcie_tag_fifo_1_we = 1'b1;
end else begin
pcie_tag_fifo_2_we = 1'b1;
@ -1619,11 +1619,13 @@ always @(posedge clk) begin
pcie_tag_fifo_1_wr_ptr_reg <= pcie_tag_fifo_1_wr_ptr_reg + 1;
end
pcie_tag_fifo_1_rd_ptr_reg <= pcie_tag_fifo_1_rd_ptr_next;
if (pcie_tag_fifo_2_we) begin
pcie_tag_fifo_2_mem[pcie_tag_fifo_2_wr_ptr_reg[PCIE_TAG_WIDTH_2-1:0]] <= pcie_tag_fifo_wr_tag;
pcie_tag_fifo_2_wr_ptr_reg <= pcie_tag_fifo_2_wr_ptr_reg + 1;
if (PCIE_TAG_COUNT_2) begin
if (pcie_tag_fifo_2_we) begin
pcie_tag_fifo_2_mem[pcie_tag_fifo_2_wr_ptr_reg[PCIE_TAG_WIDTH_2-1:0]] <= pcie_tag_fifo_wr_tag;
pcie_tag_fifo_2_wr_ptr_reg <= pcie_tag_fifo_2_wr_ptr_reg + 1;
end
pcie_tag_fifo_2_rd_ptr_reg <= pcie_tag_fifo_2_rd_ptr_next;
end
pcie_tag_fifo_2_rd_ptr_reg <= pcie_tag_fifo_2_rd_ptr_next;
if (init_op_tag_reg) begin
op_table_read_init_a[init_count_reg] <= 1'b0;