Entity: prim_fifo_async
- File: prim_fifo_async.sv
Diagram
Description
Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0
Generic asynchronous fifo for use in a variety of devices.
Generics
Generic name | Type | Value | Description |
---|---|---|---|
Width | int unsigned | 16 | |
Depth | int unsigned | 4 | |
OutputZeroIfEmpty | bit | 1'b0 | if == 1 always output 0 when FIFO is empty |
DepthW | int unsigned | $clog2(Depth+1) | derived parameter representing [0..Depth] |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
clk_wr_i | input | write port | |
rst_wr_ni | input | ||
wvalid_i | input | ||
wready_o | output | ||
wdata_i | input | [Width-1:0] | |
wdepth_o | output | [DepthW-1:0] | |
clk_rd_i | input | read port | |
rst_rd_ni | input | ||
rvalid_o | output | ||
rready_i | input | ||
rdata_o | output | [Width-1:0] | |
rdepth_o | output | [DepthW-1:0] |
Signals
Name | Type | Description |
---|---|---|
fifo_wptr_q | logic [PTR_WIDTH-1:0] | |
fifo_wptr_d | logic [PTR_WIDTH-1:0] | |
fifo_rptr_q | logic [PTR_WIDTH-1:0] | |
fifo_rptr_d | logic [PTR_WIDTH-1:0] | |
fifo_wptr_sync_combi | logic [PTR_WIDTH-1:0] | |
fifo_rptr_sync_combi | logic [PTR_WIDTH-1:0] | |
fifo_wptr_gray_sync | logic [PTR_WIDTH-1:0] | |
fifo_rptr_gray_sync | logic [PTR_WIDTH-1:0] | |
fifo_rptr_sync_q | logic [PTR_WIDTH-1:0] | |
fifo_wptr_gray_q | logic [PTR_WIDTH-1:0] | |
fifo_wptr_gray_d | logic [PTR_WIDTH-1:0] | |
fifo_rptr_gray_q | logic [PTR_WIDTH-1:0] | |
fifo_rptr_gray_d | logic [PTR_WIDTH-1:0] | |
fifo_incr_wptr | logic | |
fifo_incr_rptr | logic | |
full_wclk | logic | |
full_rclk | logic | |
empty_rclk | logic | |
storage | logic [Width-1:0] | |
xor_mask | logic [PTR_WIDTH-1:0] | //////////////// Empty / Full // //////////////// |
rdata_int | logic [Width-1:0] | /////////// Storage // /////////// |
Constants
Name | Type | Value | Description |
---|---|---|---|
DepthW | int unsigned | $clog2(Depth+1) | derived parameter representing [0..Depth] |
PTRV_W | int unsigned | $clog2(Depth) | |
PTR_WIDTH | int unsigned | PTRV_W+1 |
Processes
- unnamed: ( @(posedge clk_wr_i or negedge rst_wr_ni) )
Type: always_ff
- unnamed: ( @(posedge clk_wr_i or negedge rst_wr_ni) )
Type: always_ff
Description
gray-coded version
- unnamed: ( @(posedge clk_rd_i or negedge rst_rd_ni) )
Type: always_ff
- unnamed: ( @(posedge clk_rd_i or negedge rst_rd_ni) )
Type: always_ff
Description
gray-coded version
- unnamed: ( @(posedge clk_wr_i or negedge rst_wr_ni) )
Type: always_ff
Description
Registered version of synced read pointer
Instantiations
- sync_wptr: prim_flop_2sync
Description
sync gray-coded pointer to read clk
- sync_rptr: prim_flop_2sync
Description
sync gray-coded pointer to write clk