易灵思FIFO操作指南
一.软件设置界面
打开任意工程,在IPM菜单栏里面,双击FIFO IP ;
生成IP ,需要在module name 处 命名,
在配置界面根据需要,使能某些指示信号;
右下角点击generate生成。
二.FIFO端口定义
时钟,复位端口定义 | Synchronous | Asynchronous | input or output | 功能描述 |
---|---|---|---|---|
a_rst_i | √ | √ | input | 异步复位信号,初始化所有内部指针和输出标志。 |
wr_clk_i | √ | input | 写时钟 | |
rd_clk_i | √ | input | 读时钟 | |
clk_i | √ | input | 时钟(同步模式下,只有一个时钟) | |
wr_datacount_o [n-1:0] | √ | output | 异步 FIFO 写入域数据计数 | |
rd_datacount_o [n-1:0] | √ | output | 异步 FIFO 读取域数据计数 | |
datacount_o [n-1:0] | √ | output | 同步 FIFO 数据计数 |
时钟,复位端口定义 | Synchronous | Asynchronous | input or output | 功能描述 |
---|---|---|---|---|
写数据端口定义 | ||||
wr_en_i | Input | 写数据使能 | ||
wdata [m-1:0] | Input | 写数据 | ||
full_o | output | 写满标志 | ||
almost_full_o | output (可选) | 几乎写满 | ||
prog_full_o | output(可选) | (可设置)几乎写满 | ||
wr_ack_o | output(可选) | 写入确认。代表上一个写时钟的wr_en_i成功 | ||
overflow_o | output (可选) | 溢出。代表上一个写时钟的wr_en_i被拒绝 |
时钟,复位端口定义 | Synchronous | Asynchronous | input or output | 功能描述 |
---|---|---|---|---|
读数据端口定义 | ||||
rd_en_i | Input | 读使能 | ||
rdata [m-1:0] | output | 读数据 | ||
rd_valid_o | output (可选) | 读数据取有效 | ||
empty_o | output | 读空标志 | ||
almost_empty_o | output (可选) | 几乎为空 | ||
prog_empty_o | output(可选) | (可设置)几乎为空 | ||
underflow_o | output(可选) | 代表上一个读时钟的rd_en_i被拒绝 |
三.FIFO时序
同步FIFO标准模式
同步FIFO FWFT模式
异步FIFO标准模式
异步FIFO FWFT模式
小结
1.在实际使用易灵思的FIFO时,为了避免版本更新产生的IP重加载和重配置 ,笔者一般都会将对应IP生成下的 .v 文件直接copy到工程目录下进行使用;
2.如FIFO模块 对应产品的.V文件中,如果要重新配置 ,将再次生成的 .v文件的这部分做替换就行 ;