异步FIFO中,空满信号该如何产生呢?

在复位的时候,读指针和写指针相等,读空信号有效(这里所说的指针其实就是读地址、写地址)当读指针赶上写指针的时候,写指针等于读指针意味着最后一个数据被读完,此时读空信号有效。写满信号:当写指针比读指针多一圈时,写指针等于读指针意味着写满了,此时写满信号有效。

问题a:我们会发现 读空的条件是写指针等于读指针,写满的条件也是写指针等于读指针,到底如何区分呢?

解决办法:将指针的位宽多一位,表示读写指针是否在同一轮,注意我们这里讨论的是2进制递增数。

举个例子说明:假设要设计深度为 8 的异步FIFO,此时定义读写指针只需要 3 位(2^3=8)就够用了,但是我们在设计时将指针的位宽设计成 4 位,最高位的作用就是区分是读空还是写满,具体理论 1 如下当最高位相同,其余位相同认为是读空;当最高位不同,其余位相同认为是写满。

这里还隐藏着一个问题,读写指针在不同时钟域的比较问题,如何解决亚稳态的问题?下一节我们继续介绍。


版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA极客空间 微信公众号

扫描二维码关注杭州卿萃科技FPGA极客空间


最新文章

  1. 用pyspider爬淘宝MM照片
  2. Akka-actor使用入门
  3. FMX下Edit只能输入数字
  4. ==与equals()
  5. Android 从Gallery获取图片
  6. FFMpeg ver 20160213-git-588e2e3 滤镜中英文对照
  7. 【WPF】提高InkAnalyer手写汉字识别的准确率
  8. [Tool] Fiddle2基本使用
  9. java 从零开始,学习笔记之基础入门<Oracle_基础>(三十三)
  10. 当ViewPager嵌套在ScrollView/ListView里时,手势冲突如何处理?
  11. struct2-json
  12. python 线程与进程
  13. 如何理解Axis?
  14. asp.net core开源项目
  15. C#下载Url文件到本地
  16. LInux下设置账号有效时间 以及 修改用户名(同时修改用户组名和家目录)
  17. django----Form扩展
  18. RocketMQ3.2.2生产者发送消息自动创建Topic队列数无法超过4个
  19. 学以致用八---centos7.2 安装vim8+支持python3
  20. LVS的优点和缺点

热门文章

  1. Solidity 官方文档中文版 1_简介
  2. hdu 5303 DP(离散化,环形)+贪心
  3. Leetcode 52
  4. 自定义jQuery的animate动画
  5. 通读cheerio API-网络爬虫
  6. gzip压缩初探
  7. mysql中limit的用法详解[数据分页常用]
  8. UVA 11624 Fire! bfs 难度:0
  9. Alpha阶段第1周Scrum立会报告+燃尽图 04
  10. 修改Oracle归档日志方法