零、前言

关于异步FIFO如何设计请参考之前的一篇文章:手写异步FIFO。

关于异步FIFO的空满现象可以参考:你真的理解异步FIFO读写中的空满现象吗?

一、格雷码的作用

格雷码的每两个相邻码字只有1bit的变化,将多bit的地址转换成对应的格雷码然后进行跨时钟域的传递,就可以直接使用两级flop进行同步。并且由于只有一个bit变化,那么即使采样错误也只有一种错误的可能,也即1变成了0或者0变成了1,不会出现其他各种不稳定的状态。降低了亚稳态发生的概率,以及发生逻辑冒险的概率及其带来的影响

而且应用到异步FIFO的地址指针中,采样到的只有一个bit不同的错误值,其实也是正确的。例如在使用格雷码时,假设写指针从001->011,那么在读时钟域采样到的写指针的值只可能是001->001->011, 或者001->011->011,而不会出现除了这两个值以外的值。如果采样到011,那么采样是正确的;如果采样到001,其实也就是和读时钟域上一次同步到的写指针的值是一样的,最多只是出现假空现象,这是不影响FIFO的正常工作的。

二、如果现在同步到读时钟域的格雷码写指针是011,而写时钟快很多,写时钟域的格雷码写指针已经发生变化:011→010→110,在读时钟域这边,就需要直接同步110,那么,读时钟域的格雷码写指针就会从011变为110,第0位和第2位都发生变化,这会在采样时造成影响吗?

可以参考这篇文章:跨时钟域传输的黄金搭档:异步FIFO与格雷码

异步FIFO格雷码及同步相关问题?相关推荐

  1. 异步FIFO的设计详解(格雷码计数+两级DFF同步)

    文章目录 一.异步FIFO介绍 1.1.空满判断 1.2.跨时钟域问题 1.3.格雷码转换 1.4.格雷码计数器 二.代码code 一.异步FIFO介绍   FIFO有同步和异步两种,同步即读写时钟相 ...

  2. 74ls390设计任意进制计数器_异步FIFO:设计原理及Verliog源码

    1.  异步FIFO的概念 异步FIFO为读取与写入采用不同的时钟,使用异步FIFO用于在不同的时钟域传输数据,主要用于跨时钟域传输多bit数据. 2.  异步FIFO的设计难点 同步异步信号,避免亚 ...

  3. 02【Verilog实战】异步FIFO设计(附源码RTL/TB)

    脚 本:makefile 工 具:vcs 和 verdi 文 章:1. 同步FIFO的设计和功能验证(附源码)     2. Verilog的亚稳态现象和跨时钟域处理方法 写在前面 这个专栏的内容记录 ...

  4. FPGA逻辑设计回顾(6)多比特信号的CDC处理方式之异步FIFO

    文章目录 前言 异步FIFO的概念 异步FIFO为什么可以解决CDC问题? 异步FIFO的RTL实现 参考资料 前言 异步FIFO是处理多比特信号跨时钟域的最常用方法,简单来说,异步FIFO是双口RA ...

  5. verilog异步复位jk触发器_以不变应万变的异步FIFO面试宝典(二)

    异步FIFO面试宝典(二) 上一期为童鞋们带来了FIFO工作的基本原理,本期将继续与各位童鞋探讨FIFO类面试相关问题.首先让我们回顾一下上一期的课后思考题: 如果读时钟域速度较快.写时钟域速度较慢( ...

  6. 异步fifo_数字IC校招基础知识点复习(五)——跨时钟域涉及part2(异步FIFO)

    1.跨时钟域设计(CDC)-part 2 在上一篇中我们主要关注的是单比特的控制信号,而对于多比特信号的跨时钟域传输则需要一些其他的手段. 首先需要明确的是,一般不采用对多比特信号中的每个比特单独使用 ...

  7. Verilog实现FIFO专题5-异步FIFO设计(异步FIFO工作方式、异步FIFO介绍、异步FIFO介绍)

    FIFO根据输入输出时钟是否一致,分为同步FIFO与异步FIFO.同步FIFO中,读写控制信号以及数据均处于同一时钟域,满足STA分析时一般不会出现亚稳态等不稳定情形:而对于异步FIFO,读写相关信号 ...

  8. 异步FIFO基本原理(基于Verilog的简单实现)

    参考文献: [1]彭莉, 秦建业, 付宇卓. 异步FIFO的设计与验证[J]. 计算机工程与应用, 2005, 41(3):4. [2]魏芳, 刘志军, 马克杰. 基于Verilog HDL的异步FI ...

  9. 异步FIFO的verilog代码实现(包含将满和将空逻辑)

    目录 异步FIFO的verilog代码实现(包含将满和将空逻辑) 异步FIFO简介 异步FIFO关键技术1 -- 读写信号跨时钟域同步 异步FIFO关键技术2 -- 读写地址的比较 异步FIFO关键技 ...

最新文章

  1. 数字图像处理:边缘检测(Edge detection)
  2. 修改exe图标,加入版本号
  3. PHP沉思录-第三篇-Smarty-左轻侯-《程序员》2007年10月号
  4. 微信拦截网站怎么办 微信屏蔽网址如何正常打开
  5. 礼赞 Wordpress,蝉知可直接使用 Wordpress 模板
  6. python turtle应用实例_turtle库应用实例2-六芒星的绘制
  7. 语言中的petchar运用_还在担心你家孩子发音、语言问题?12个表现、3个预防是重点...
  8. 人工智能将助力智能家居产业发展
  9. weblogic集群集群说明
  10. nagios 飞信(fetion) 短信报警
  11. gradle 不支持多级子模块_Apache NetBeans 11.0 正式发布 支持Java 12
  12. 怎么添加计算机到网络共享中心,主编教您怎么设置局域网共享
  13. 费马小定理的归纳法证明和应用
  14. notebook pip install 只有星号_只有300人的”乡镇企业“:1件卖8亿垄断全球,帮三星称王,比光刻机还重要...
  15. spark整合hive
  16. 数据结构期末大题速成
  17. 一步一步搭建 oracle 11gR2 rac+dg之grid安装(四)
  18. 【HTML】HTML网页设计-----可爱多肉网页设计
  19. 视频人像抠图论文阅读
  20. Backtrader(十) - 经纪行 Broker

热门文章

  1. siki学院愤怒的小鸟脚本
  2. 无刷直流电机矢量控制(二):单电阻采样
  3. 【luogu P3674】 小清新人渣的本愿
  4. 查域名怎么查?如何查询域名到期时间?
  5. 人工智能NLTK性别发现器
  6. 【4Paradigm】第四范式实习经验与收获整理
  7. 处于停机等非正常状态_你好,为什么我变更套餐时提示:很抱歉,您选择的业务暂时无法办理,您可以体验我们其他的服务,感谢您的...
  8. 《linux内核设计分析》 第一周作业
  9. thegraph部署子图到私有节点macos
  10. 【视频理解论文】——TSM:Temporal Shift Module for Efficient Video Understanding