永发信息网

我在FPGA里的FIFO设定好之后,如何防止写溢出和读空?

答案:2  悬赏:30  手机版
解决时间 2021-11-13 18:15
  • 提问者网友:温旧梦泪无声
  • 2021-11-12 22:06
我在FPGA里的FIFO设定好之后,如何防止写溢出和读空?
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-11-12 23:30
如果是同步fifo深度设置成128,你存100个以后再开始读,永远不可能出现空满。因为写入和读取的速度是一样的。两边时钟也一样,位宽也一样怎么可能出现空满。追问哦哦,问一下如果永远不出现空满信号是不是意味着不需要关心这两个信号,正常做通信就行了?追答嗯 不需要考虑。两边速度一样
全部回答
  • 1楼网友:往事隔山水
  • 2021-11-12 23:39
把写信号与满与上之后作为写,读信号与空与上之后再读追问能否描述得具体点?我现在我程序已经有要写的数据和要读的数据以及读写使能信号,现在IP软核还有full和 empty输出信号,不知道怎么使用?追答nterface_data_fifo inst_data (
.rst (rst_fifo_reg1 || rst ), // input rst
.wr_clk (cpu_clk ), // input wr_clk
.rd_clk (data_clk ), // input rd_clk
.din (dma_dw_data ), //cpu_dout ), // input [31 : 0] din
.wr_en (wren && (~full)), // input wr_en
.rd_en (rd_req && (~empty)), // input rd_en
.dout (flash_din ), // output [31 : 0] dout
.full (full ), // output full
.empty (empty), // output empty
.rd_data_count ( ), // output [8 : 0] rd_data_count
.wr_data_count (dma_fifo_dw_usedw) // output [10 : 0] wr_data_count
);追问感谢大神神速的回答!问一下最后那两个读写计数是干嘛用的?是不是数据的深度啊?追答是的,有了深度 你可以任意限制写入深度,比如128深的只想写100个,那么可以根据深度自己生成一个快满信号,用这个快满信号 与 wren组合起来去做写~~追问哦哦,我忽然发现我用的是同步的fifo,读写速度一样,因此不存在读满和写满,这样的话是不是那两个信号对我来说可以不考虑了?追答速度一样是读写时钟一样, 一直写不读也会满,一直读不写也会空!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯