-
Notifications
You must be signed in to change notification settings - Fork 0
Vivado ROM与FIFO的仿真研究
minichao9901 edited this page Feb 29, 2024
·
4 revisions
- 使用自定义的clk_rst_gen模块(以后可以经常使用)
- 用binary counter模块产生rom地址,以及fifo的rd_en/wr_en信号
- block memory配置为single-port-rom的形式
- 将rom读出的数据发送给fifo
- 每个周期rom会读出1个数据,每8个周期fifo会写入1个数据,每4个周期fifo会读出一个数据
- 用几个不同时刻的是能来启动binary counter
.coe后缀格式文件的产生,可以用excel表。注意rom的读延迟是2个cycle。
注意!发现仿真波形不对,有跳变。仔细检查发现,这里的.coe文件radix不对,不能是16,应该设置为10.
从波形看,fifo最先写入的是1286,1300,1304,... 注意fifo的写入是没有延时的。fifo写入后count值变化,相对写入pulse延迟了1拍。
从波形看,fifo读出的分别是1286,1300,1304,... fifo的读出有1个cycle的延时。fifo读出后count值变化,相对读出pulse延迟了1拍。 既读又写的时候,count值不变,合理。
当count=0时产生empty。这个时候如果发生既写又读,可以看到读出不成功,但写入成功,因此count变成1.