异步fifo设计注意事项有哪些(陈设设计)

近日学习用到异步FIFO,故写下这篇博客记录学习心得。在我看来,异步FIFO的设计注意事项大体分为两点:亚稳态的处理空满状态的判断第一,来说一下亚稳态。亚稳态是指触发器无法在某个规定时间内达到一个可确认的状态。在FIFO的设计中,产生的原因主要由两点:一是逻辑电平的误判,也就是如果通过二进制作为指针来判断空满状态,因二进制数值变化引起的位数变化大,对电路的危害也随之增加,故在本设计中使…

大家好,又见面了,我是你们的朋友全栈君。

近日学习用到异步FIFO,故写下这篇博客记录学习心得。
在我看来,异步FIFO的设计注意事项大体分为两点:

  1. 亚稳态的处理
  2. 空满状态的判断

第一,来说一下亚稳态。亚稳态是指触发器无法在某个规定时间内达到一个可确认的状态。在FIFO的设计中,产生的原因主要由两点:一是逻辑电平的误判,也就是如果通过二进制作为指针来判断空满状态,因二进制数值变化引起的位数变化大,对电路的危害也随之增加,故在本设计中使用个格雷码。二是信号和时钟之间不满足要求,即建立时间和保持时间未满足,在这里通过打两级寄存器来消除亚稳态使信号稳定。

第二,关于空满状态的判断,常使用的方法为附加位比较法。对于二进制指针而言,FIFO的满状态时写指针比读指针多循环了一次,而且两个数只是最高位不同,其余各位都相同。那么我就可以这样判断,如果读指针和写指针的最高位不同,而其他位都相同时,此时的状态为满状态。FIFO的空状态时写指针和读指针相同,那么此时读指针和写指针相等。这样读指针和写指针就变成了一个n位指针,其中低n-1位时用来存放FIFO存储器的地址,可以用来对2^(n-1)个存储单元寻址,而最高位则用来辨别空满状态。

但是格雷码在判断空满状态时和二进制有出入。当格雷码由7到8时(0100到1100),可以看到指针的附加位改变,但是地址位并未变化,这是因为格雷码是一种镜像码造成的。所以我们需要附加位和地址位分开循坏,此时就需要既能产生n位格雷码又能产生n-1位格雷码的计数器,这种计数器被称为“两重格雷码计数器”。格雷码指针的空状态也是判断读指针和写指针是否相等。但是判断满状态和二进制指针有很大不同。首先应该明白数据存入的顺序并不是按照000递增开始的,而是随机的。例如一次写入数据是从十进制的地址6开始,连续写入8个数据,地址指向14,这是存储器存满8个数据,应该产生满状态输出。地址6的格雷码0101,地址14的格雷码1001。假如从十进制的地址2开始,结束地址指向10,此时地址2的格雷码为0011,地址10的格雷码为1111,观察两次例子,起始地址和结束地址的格雷码后两位都相同,前两位的异或值相等,并且起始地址和结束地址的首位是不同的。那么4位格雷码判断满状态就可以分为3步:首先后两位相同,然后前两位的异或值相等,最后首位不同。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129143.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月15日 上午11:40
下一篇 2022年4月15日 上午11:40


相关推荐

  • n8n隐藏技巧:用OpenAI兼容协议一键调用国产大模型(含阿里/深度求索配置)

    n8n隐藏技巧:用OpenAI兼容协议一键调用国产大模型(含阿里/深度求索配置)

    2026年3月19日
    3
  • bc04蓝牙模块_戴尔蓝牙鼠标怎么打开

    bc04蓝牙模块_戴尔蓝牙鼠标怎么打开一、简介BT401支持双模蓝牙,所以可以很轻松的支持蓝牙BLE。因为支持了BLE,所有就支持了BLE的HID。也就是蓝牙的键盘、鼠标设备注意,这里BLE的HID是可以回连手机的2.1串口指令和测试的效果1、AT+HD123456789aBcS其中:AT+HD是命令,123456789aBcS是需要发送的数据2、其他所有的指令参考标准的即可,包括设置波…

    2025年5月24日
    6
  • Python3 — 关于pycharm自动导入包快捷设置

    Python3 — 关于pycharm自动导入包快捷设置正常开发的时候 我们都手动去写要引入到包 有过 java 开发的同事 用过快捷键 ctrl alt o 会自动引入所有的依赖包 pycharm 也有这样的设置 看看怎么设置吧 设置快捷键 默认 ctrl 空格 win 的用户会和切换中文快捷键冲突 这里我设置的 shift 1 用的时候 shift 1 按两下 1 看看效果

    2026年3月18日
    3
  • 软件工程项目_软件工程对象模型图

    软件工程项目_软件工程对象模型图软件工程中应用的几种图辨析:系统流程图、数据流图、数据字典、实体联系图、状态转换图、层次方框图、Warnier图、IPO图、层次图、HIPO图、结构图、程序流程图、盒图、PAD图、判定表、判定树、Jackson图、流图、甘特图、工程网络图我们先将这几种图按照软件工程中的阶段分类~接下来看一下这些图都长什么样子~1.系统流程图2.数据流图3.数据字典4.E-R图5.状态转换图:6…

    2022年8月13日
    8
  • vb.net 教程 目录

    vb.net 教程 目录最新更新:在vb.net教程中更新了:vb.net教程5-19拓展:制作一个QQ大家来找茬和美女找茬辅助工具(2019-11-2516:29:53)vb.net教程5-20拓展论坛图片批量转换(2019-11-2516:19:31)vb.net教程5-21拓展如何给IE浏览器截图2019年11月25日16:58:13更进一步的vb.net学习,欢迎…

    2022年6月21日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号