1 选择IP核
选择并双击”FIFO generator”
2 配置
3 单击OK,弹出“generate output products”(生成输出产品)对话框
如图:在sources 窗口单击IP sources,选择并展开fifo_generator_0选项,在展开项中,找到instantiation template,Verilog语言,一般选择fifo_generator_0.veo文件
4 添加顶层设计文件
在sources 窗口中,将标签页重新切换到hierarchy 标签页
选中design sources 文件夹,单击右键,出现add sources
Create source file, file name “top”,然后在top module中编写代码
5 错误记录
1)生成的FIFO的接口,带有DEST的接口,一般这个接口是用于分配数据的时候使用,比如主master需要向不同的slave写入数据,那么不同的slave的FIFO带有索引编号,第一个slave的接口TDEST标识1,第二个slave的接口标识为2
AXI stream的接口
Name | 输入/输出 | 描述 |
s_axis_tid[m:0] | Input | TID: The data stream identifier that indicates different |
s_axis_tdest[m:0] | Input | TDEST: Provides routing information for the data stream |
s_axis_tuser[m:0] | Input | TUSER: The user-defined sideband information that can be |
2)调试经验:
默认vivado生成的FIFO的timescale的精度为1ns/1ps,如果我们在写tb的时候,仿真的精度设置为1ps/1ps,出现的情况是FIFO的数据没有写进去,数据读出来全部为0,从波形上看,写入是成功的,但是读出来的数据为0