Gray码在异步FIFO中的应用

异步fifo_Gray Code异步FIFO的多种约束方式 点击上方码农的假期,订阅、星标我!此刻开始我们一起进步!01 前言现如今,随着芯片规模和复杂度的升级,同颗芯片内部存在跨时钟域的逻辑已经在所难免。大家都知道,在处理异步路径时,异步FIFO的使用,是最常见的处理方式。但是,针对于异步FIFO的约束问题,还是非常值得深究的。是否异步FIFO就是完全可以异步处理呢?接下来就跟大家一起分析一下。02 分类我们在实现异步FIFO时,比较常见的有两... 阅读详情

 在异步FIFO中,写操作和读操作工作在不同的时钟域,需要跨时钟域来传递FIFO的空满状态信息。一般是通过传递读写的地址来实现空满状态控制的。写地址减去读地址(如果写地址小于读地址,则写地址先加上FIFO深度再减去读地址),即为FIFO中存放的数据个数,由此产生FIFO的空满判断。不管是读地址还是写地址,每次变化都是加1,溢出后从0开始重新累加。当写地址跨越时钟域到达读操作一侧时,需要用读时钟去采样由写时钟产生的数据(即写地址)。由于是异步操作,有可能会出现竞争和冒险,采样过程不满足建立保持时间,导致亚稳态。写地址变化的位越多,出现亚稳态的位就越多,用读时钟采样时出错的概率越高。同理,当读地址跨越时钟域到达写操作侧时,读地址变化的位越多,写时钟采样时出错的概率越高。因为,必须采用有效的编码,降低读写地址在连续变化时的位翻转率。采用格雷码就能有效的降低连续变化数值的位翻转率。所以,可以在将地址跨越时钟域之前,先转换成格雷码,然后跨越时钟域。到达另一时钟域后,通过两级寄存器消除亚稳态,再将格雷码转换成二进制数。这样,每次地址变化,跨越时钟域时只有一位可能出错,可以大幅降低出错概率,提高FIFO运行的可靠性。

下面附上格雷码和二进制码的转换程序

module BinToGray(
				input clk              ,
				input rst              ,
				input [3:0]bin_in      ,
				output reg [3:0]gray_out
    );

always@(bin_in ) begin
	gray_out <= {1'b0,bin_in[3:1]}^bin_in;
end

endmodule

        
[FPGA深度解析]异步FIFO原理及使用 FIFO是一种数据缓冲器,用来实现数据先入先出的读/写方式。异步FIFO的一种实现方式 阅读详情

相关推荐

Verilog基础知识11(异步FIFO为什么使用格雷码(gray-code) )

需求说明:Verilog设计 内容       :第一部分 异步FIFO为什么使用格雷码                   第二部分 格雷码在异步FIFO中的使用 来自       :时间的诗 第一部分 异步FIFO为什么使用格雷码 原文:http://www.cnblogs.com/kxk_kxk/p/3931591.html 异步FIFO通

时间的诗 8888

任意偶数长度Gray码序列及其在异步FIFO设计中的应用

任意偶数长度Gray码序列及其在异步FIFO设计中的应用 任意偶数长度的Gray码序列,在异步FIFO设计中,只需要对控制逻辑做少量的改动即可得到任意偶数深度的异步FIFO。在保持性能不变的前提下,改进后的异步FIFO能明显减少电路面积。 1、任意偶长度Gray码序列的存在性及构造方法 (1)首先证明对于任意奇数N,不存在长度为N的Gray序列。 不失一般性,假设存在任意长度为奇数N的Gray码序列,且以全0为起点。序列中N个编码映射到立方体的N个顶点;有Gray码的定义可知N个点之间可以建立一条哈密尔

weixin_43727437的博客 1357

Verilog基础知识(异步FIFO)

本文主要内容来自Clifford E. Cummings的 Simulation and Synthesis Techniques for Asynchronous FIFO Design 这篇文章的总结和个人理解。 一、FIFO简介   FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简...

maxwell2ic的博客 3961

Xilinx FIFO IP核实战指南——从手册到设计的核心要点解析

本文深入解析Xilinx FIFO IP核的核心要点,从基础入门到实战配置,涵盖Native接口、AXI接口等关键参数设置。详细讲解操作模式选择、存储资源优化及跨时钟域处理技巧,帮助开发者高效解决FPGA设计中的数据缓冲问题,提升系统性能与可靠性。

weixin_30319153的博客 448

Verilog基础知识8(异步FIFO的FPGA实现)

需求说明:Verilog设计 内容       :异步FIFO设计 来自       :时间的诗 原文:http://www.cnblogs.com/BitArt/archive/2013/04/10/3010073.html 本文大部分内容来自Clifford E. Cummings的《Simulation and Synthesis Techniques f

时间的诗 1万+

异步FIFO为什么要使用格雷码(笔记)

异步FIFO为什么要使用格雷码(笔记) 首先要了解的是异步FIFO使用格雷码的唯一目的就是: “即使在亚稳态进行读写指针抽样也能进行正确的空满状态判断”。 那么典型的判断方法是怎样进行的呢?以满状态判断为例,先要对读指针(属于读时钟域)在写时钟域进行抽样,然后才能与写指针进行比较,如果写指针赶上了读指针,说明已经写满,写操作必须暂停。 为什么2进制(binary编码)指针不适合做空满判断。 事实上2进制读指针在增减时,经常发生多位突变,比如6位地址111111会在下一时刻变成000000,在实际电路中,

Justin.upsame 蒲山牧 1万+

面试必杀技:异步FIFO

面试必杀技:异步FIFO上一篇介绍了异步FIFO的基础部分,包括为什么用Gray Code来同步read pointer, write pointer。这一篇咱们从头一起过一遍异步FIFO的具体设计,然后再讨论几个常见的问题。有的面试官可能上来让你先画异步FIFO的框图,建议大家自己手画一下,能够记住。要注意,wptr和rptr都是gray code,在上一篇我们已经讨论过gray code是可以直接利用2flop synchronizer来同步的。而用来读写实际的memory必须是binary addre

专注单片机实战教学,分享单片机学习资料 2928

异步FIFO设计

FIFO简介 FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。 用途1: 异步FIFO读写分别采用相互异步的不同时钟。在现代集成电路芯片中,随着设计规模的不断扩大,一个系统中往往含有数个时钟,多时钟域带来的一个问题就是,如何设计异步时钟之间的接口电路。异步FI

笔墨纸砚 863

FPGA跨时钟域处理指南

跨时钟域处理

m0_46644103的博客 73

基于FPGA的异步FIFO设计

大侠们,江湖偌大,有缘相见,欢迎一叙,今天来聊一聊在数字电路设计中,基于FPGA的异步FIFO的实现,在很多厂商的开发软件中都有异步FIFO IP核,为安全起见推荐使用IP核定制FIFO,本文的目的只是作为思路参考。 首先,我们来了解一下什么事FIFO,FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可

1744

别再只盯着MES了!半导体/面板厂CIM系统全家桶(EAP/YMS/SPC)保姆级入门指南

本文深入解析半导体制造中的CIM系统,涵盖EAP、YMS和SPC等关键子系统的协同工作。通过实战案例和技术细节,展示如何利用CIM系统提升生产效率、良率管理和设备维护,为半导体/面板厂提供全面的实施指南和优化策略。

weixin_33693070的博客 464

[多智能体强化学习] 王树森YouTube课程笔记

前言 近期在设计V2X资源分配任务下的状态空间和动作空间,可以说是一筹莫展,是自己菜,现在看来可能也是涉及到一些关于多智能体强化学习实现过程中过于细节的点,目前的知识储备还不够。因此打算用半周到一周的时间重电,希望之后能有进展。 本文内容来自于友人LX所推荐的油管教程,链接如下:多智能体强化学习,一共两节课40min左右。教程废话不多干货不少,老师的声音还好听,推荐直接去看原教程。 这里还要多一嘴,那就是对于强化学习来说,单主体和多主体的界限,在某种程度上来说是很模糊的,并不是场景中有多个主体需要..

观林望实的博客 3365

机器学习预测土壤养分:从电导率、pH到随机森林与神经网络的农业实践

在智慧农业与精准农业领域,机器学习已成为处理复杂农业数据、挖掘潜在规律的关键技术。其核心原理在于通过算法从多维数据中自动学习特征与目标变量之间的映射关系,尤其擅长捕捉非线性关联。这项技术的核心价值在于能够将传统上依赖昂贵、耗时实验室分析的问题(如土壤养分检测),转化为基于易获取传感器数据(如电导率、pH值)的快速、低成本预测任务,为农业生产的实时决策与资源优化提供了全新可能。其典型应用场景包括作物生长监测、产量预测以及精准施肥管理等。本文聚焦于利用随机森林和神经网络等回归算法,构建通过土壤物理参数预测氮磷钾

weixin_33693070的博客 666

(二)MS-MPI多机通信

1.关于MPI多机通信 一台计算机处理数据的能力是有限的,MPI的主要作用就是用来实现并行计算机,即将多台主机联机,实现大规模、高性能的计算机机群。我们知道一台计算机同时运行多个进程时,由于计算机资源是共享的,多个进程都会占用一些资源,每个进程运行的效率就会降低,比如当一台计算机同时跑着多个大型应用时会变得非常卡顿。所谓多机通信,可以理解为将本应该在同一台主机上运行的多个进程分配到多台主机上,以往...

xinwuya_的博客 4392

STM32巡线小车PID调参实战:从五路灰度传感器数据到稳定运行的避坑指南

本文详细介绍了STM32巡线小车的PID调参实战,从五路灰度传感器数据处理到PID参数优化,提供了系统化的调试方法和常见问题解决方案。通过加权平均法计算偏移量,逐步调整比例、积分、微分参数,实现小车稳定巡线。文章还涵盖了定时器配置、控制周期优化及高级调试技巧,帮助开发者避开常见陷阱,提升巡线性能。

weixin_42570484的博客 193

03. 线性规划与混合整数规划 (LP/MIP)

本文介绍了OR-Tools中的线性规划(LP)和混合整数规划(MIP)求解器。主要内容包括:1) LP/MIP的基本概念和数学形式,对比了LP、MIP、ILP和BIP的区别;2) OR-Tools支持的求解器类型,如GLOP、SCIP等,以及它们各自的特点和适用场景;3) 详细展示了如何使用GLOP求解器进行线性规划求解,包括变量定义、约束添加和目标函数设置;4) 介绍了SCIP求解器的配置和使用方法;5) 讨论了变量类型、约束类型、多目标优化等进阶功能。文章通过Java代码示例演示了如何实现一个完整的优化

智慧是做事用的 157

【华为OD机试真题】282、求满足条件的最长子串的长度 | 机试真题+思路参考+代码分析 (C++、Java、Py、C语言、JS)

题目描述 >给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求: >  1、只包含1个字母(a~ z,A~Z), 其余必须是数字; 2、字母可以在子 串中的任意位置; >  如果找不到满足要求的子串,如全是字母或全是数字,则返回-1

KJ.JK 1万+

【LLC快速上手系列】LLC轻载时,死区时间怎么调才对?别再傻傻乱搞了!

死区时间,就是指。如果你死区设得好,就能让开通前 ( V_DS to 0 ),完美实现!

weixin_43199439的博客 1857

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 工程中FIFO空,满,将空,将满标志使用
下一篇: BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用
在路上的少年
博客等级 码龄14年 33粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值