同步FIFO与异步FIFO
同步FIFO是用来做数据缓存,之前的设计一直将自己绕进了一个死循环,认为要想往外边读取FIFO,就必须先检测FIFO的空满标志,但实际上,对于同步FIFO,如果是同步fifo深度设置成128,你存100个以后再开始读,永远不可能出现空满。因为写入和读取的速度是一样的。两边时钟也一样,位宽也一样怎么可能出现空满。
FIFO核读写不需要指定地址,只要读、写使能信号打开,时钟到来,数据就可以读出和写入。
需要注意的问题是:
1、读时钟和写时钟必须一直存在,不可间断性的提供,否则会造成FIFO无法正常工作
2、读FIFO时钟要和读数据的赋值端的时钟是一个时钟
3、写FIFO的时钟要和将要写的数据的时钟是一个时钟
4、注意满标志和空标志的使用,禁止在FIFO满的情况下写FIFO,禁止在空的时候读FIFO,否则会出现错误
FPGA与上位机之间通过串口发送和接受数据的过程:
接收参数的过程:
1.rxd_en有效
2.如果数据准备好了temp《=rdata,rxd_en无效,否则等待
3.延时326*20ns后开始第二个参数的发送
发送参数过程:
1、tdata《= 要传输的数据,txd_en有效,
2、如果传输完成等待651*20ns,txd_en无效,开始传输下一个数,否则等待直到传输完成
posted on 2018-01-14 16:50 super_star123 阅读(2295) 评论(0) 编辑 收藏 举报