Skip to content

Commit 38915fb

Browse files
committed
Fix reset CDC in AXI VFIFO
Signed-off-by: Alex Forencich <[email protected]>
1 parent 59d37ee commit 38915fb

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

rtl/axi_vfifo.v

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,10 +415,14 @@ for (n = 0; n < AXI_CH; n = n + 1) begin : axi_ch
415415
// control sync
416416
(* shreg_extract = "no" *)
417417
reg ch_cfg_enable_sync_1_reg = 1'b0, ch_cfg_enable_sync_2_reg = 1'b0;
418+
(* shreg_extract = "no" *)
419+
reg ch_cfg_reset_sync_1_reg = 1'b0, ch_cfg_reset_sync_2_reg = 1'b0;
418420

419421
always @(posedge ch_clk) begin
420422
ch_cfg_enable_sync_1_reg <= cfg_enable_reg;
421423
ch_cfg_enable_sync_2_reg <= ch_cfg_enable_sync_1_reg;
424+
ch_cfg_reset_sync_1_reg <= cfg_reset_reg;
425+
ch_cfg_reset_sync_2_reg <= ch_cfg_reset_sync_1_reg;
422426
end
423427

424428
// status sync
@@ -535,7 +539,7 @@ for (n = 0; n < AXI_CH; n = n + 1) begin : axi_ch
535539
.cfg_fifo_base_addr(cfg_fifo_base_addr_reg[AXI_ADDR_WIDTH*n +: AXI_ADDR_WIDTH]),
536540
.cfg_fifo_size_mask(cfg_fifo_size_mask_reg),
537541
.cfg_enable(ch_cfg_enable_sync_2_reg),
538-
.cfg_reset(cfg_reset_reg),
542+
.cfg_reset(ch_cfg_reset_sync_2_reg),
539543

540544
/*
541545
* Status

syn/vivado/axi_vfifo.tcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ foreach inst [get_cells -hier -filter {(ORIG_REF_NAME == axi_vfifo || REF_NAME =
4949

5050
# control
5151
constrain_sync_chain $inst "cfg_enable_reg_reg" "axi_ch[*].ch_cfg_enable_sync_1_reg_reg" "axi_ch[*].ch_cfg_enable_sync_2_reg_reg"
52+
constrain_sync_chain $inst "cfg_reset_reg_reg" "axi_ch[*].ch_cfg_reset_sync_1_reg_reg" "axi_ch[*].ch_cfg_reset_sync_2_reg_reg"
5253

5354
set sync_ffs [get_cells "$inst/cfg_fifo_base_addr_reg_reg[*] $inst/axi_ch[*].axi_vfifo_raw_inst/fifo_base_addr_reg_reg[*]"]
5455

0 commit comments

Comments
 (0)