Skip to content

Commit 71abcaa

Browse files
committed
docs: Add util_var_fifo IP core
Signed-off-by: Jorge Marques <jorge.marques@analog.com>
1 parent cf8c58e commit 71abcaa

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

docs/library/util_var_fifo/index.rst

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
.. _util_var_fifo:
2+
3+
Util VAR FIFO
4+
===============================================================================
5+
6+
.. hdl-component-diagram::
7+
8+
The :git-hdl:`Util VAR FIFO <library/util_var_fifo>` core
9+
controls an external BRAM memory through which it allows
10+
the storage of a variable number of samples before triggering.
11+
12+
Features
13+
--------------------------------------------------------------------------------
14+
15+
* Variable depth
16+
17+
Files
18+
--------------------------------------------------------------------------------
19+
20+
.. list-table::
21+
:header-rows: 1
22+
23+
* - Name
24+
- Description
25+
* - :git-hdl:`library/util_var_fifo/util_var_fifo.v`
26+
- Verilog source for the peripheral.
27+
28+
Configuration Parameters
29+
--------------------------------------------------------------------------------
30+
31+
.. hdl-parameters::
32+
33+
* - DATA_WIDTH
34+
- Data width of the FIFO. The BRAM generator parameters should match this.
35+
* - ADDRESS_WIDTH
36+
- The BRAM generator parameters should match this. Gives the maximum depth
37+
of the FIFO
38+
39+
Interface
40+
--------------------------------------------------------------------------------
41+
42+
.. hdl-interfaces::
43+
44+
* - clk
45+
- Clock input. Should be synchronous to the input and the output data.
46+
* - rst
47+
- Reset input. Should be synchronous clk clock
48+
* - depth
49+
- Controls the depth of the FIFO. Should be less than the maximum depth.
50+
Controlled by an outside IP.
51+
* - data_in
52+
- Data to be stored.
53+
* - data_in_valid
54+
- Valid for the input data.
55+
* - data_out
56+
- Data forwarded to the DMA.
57+
* - data_out_valid
58+
- Valid for the output data.
59+
* - wea_w
60+
- Write signal.
61+
* - en_w
62+
- Write enable signal.
63+
* - addr_w
64+
- Address for the write pointer.
65+
* - din_w
66+
- Data to be written to the BRAM.
67+
* - en_r
68+
- Read enable signal.
69+
* - addr_r
70+
- Address for the read pointer.
71+
* - dout_r
72+
- Data read from the BRAM.
73+
74+
Detailed Description
75+
--------------------------------------------------------------------------------
76+
77+
This IP controls an external BRAM. It has a two clock cycle latency even if
78+
bypassed.
79+
If valid is not always asserted, the latency is only one word instead of two.
80+
81+
Design Guidelines
82+
--------------------------------------------------------------------------------
83+
84+
The IP should be used with an external BRAM, which can be optimized for power
85+
or for speed, depending on the design requirements. It uses only one clock
86+
domain, so everything should be synchronous to that clock domain.

0 commit comments

Comments
 (0)