首页 > 其他分享 >FPGA基础:格雷码及FIFO应用概述

FPGA基础:格雷码及FIFO应用概述

时间:2024-08-24 19:25:57浏览次数:9  
标签:格雷 二进制码 FPGA 比特 二进制 码及 FIFO 时钟

1简介

反射二进制码反射二进制码(RBC),也称为反射二进制(RB)或格雷码(Gray code),得名于Frank Gray,是二进制数制的一种排列方式,使得连续两个值之间仅有一个比特(二进制位)不同。格雷码在数字电路中的应用有助于减少误差、提高系统的可靠性,并简化逻辑操作,因此被广泛应用于各种数字系统和电子设备中。

2格雷码原理

自然二进制码

 

许多设备通过关闭和打开开关来指示位置。如果该设备使用自然二进制编码,位置3和4是相邻的,但二进制表示的所有三个比特都不同。自然二进制编码的问题在于物理开关并非理想的,理想的二进制码应该是连续两个值之间仅有一个比特变化。

格雷码

 


格雷码应运而生,对于十进制数,编码在仅改变一个开关的情况下会回到十进制数0。

在现代数字通信中,格雷码在错误纠正中扮演着重要的角色。例如,在诸如QAM这样的数字调制方案中,数据通常以4位或更多位的符号传输,信号的星座图被安排成相邻星座点传达的位模式仅相差一个比特。通过结合能够纠正单比特错误的前向错误纠正,接收器可以纠正导致星座点偏离到相邻点区域的任何传输错误。这使得传输系统对噪声的影响更小。

格雷码也可以用于编码跨时钟FIFO的地址,以确保在不同时钟域之间读写操作的正确执行。使用格雷码编码地址可以减少在不同时钟域之间发生的时序问题,提高跨时钟FIFO的可靠性和性能。

3格雷码在FIFO中的应用

 

 

在FIFO中,通常我们需要一个指针计数器来标识我们读取FIFO的位置。然而,在异步FIFO中,将一个时钟域中的二进制计数值同步到另一个时钟域是有问题的。这是因为一个n位计数器的每一位都可能同时改变(例如,二进制数从7变为8是0111->1000,所有位都改变了)。通常,当我们处理1位跨越时钟域的信号时,会使用多级DFF来避免亚稳态的问题。但是,如果我们有多个信号线(例如,4位计数器),并且这些信号线的延迟不一致,即skew不同,使用异步时钟采样可能导致数据不一致的问题。为了避免这一问题,FIFO计数指针的常见方法是使用格雷码计数器。格雷码每个时钟转换只允许一位改变,从而消除了尝试在同一时钟边缘上同步多个改变信号所带来的问题。

3总结

本章主要探讨了格雷码以及格雷码在FIFO中的应用,后续会进一步探讨FIFO的详细应用以及数字电路中跨时钟的处理方法。

标签:格雷,二进制码,FPGA,比特,二进制,码及,FIFO,时钟
From: https://www.cnblogs.com/cnlntr/p/18378130

相关文章

  • FPGA开发——verilog的运算符以及相关优先级的介绍
    一、简介        在我们学习任何一门编程语言时,不可避免的都会遇见运算符和相关的运算优先级的问题,只有掌握了各个运算符的优先级关系我们才能进行更好的代码编写。在前面的时候因为我没有遇到因为优先级而导致的工程结果错误,所以没有过多注意,但是遇到之后才发现运算......
  • FPGA开发——DS18B20读取温度并且在数码管上显示
    一、简介        在上一篇文章中我们对于DS18B20的相关理论进行了详细的解释,同时也对怎样使用DS18B20进行了一个简单的叙述。在这篇文章我们通过工程来实现DS18B20的温度读取并且实现在数码管伤显示。1、基本实现思路根据不同时刻的操作,我们可以使用一个状态机来实......
  • 【AD9361 数字基带】多片基带内FPGA补偿 I/Q Rotation
    I/Q旋转Rotation在许多多通道射频系统中,如AD-FMCOMMS5,甚至在AD-FMCOMMS2、AD-FMCOMMS3上,都需要测量或校正两个复数(I/Q)RF信号之间的相位差。从纯粹的数学描述来看,单个正弦波没有相位,一个相位只能在两个不同的正弦波之间发展。增加复杂性的是,我们没有一个单一的真实......
  • AD7606芯片驱动-FPGA实现
        简介        AD7606是一款16位ADC芯片,可实现8通道并行采集,每通道最大速度可达1M,可实现多种模式数据采集。    介绍        本次FPGA使用的是8通道串行采样模式,设计中所用到的AD7606引脚说明如下:名称定义CONVST同步采集转换开始信号BUS......
  • 基于FPGA的图像拼接融合算法
    基于FPGA的图像拼接融合算法一、图像拼接1.0拼接算法设计预处理(图像矫正)图像矫正通过计算图像灰度值,赋值给目标像素,将目标像素与源数据比较,然后将图像边缘的值插入到目标点;对图像消除彩色分量(对提取特征无影响),只提取亮度分量;得到的灰度图像噪声更小,细节更明显。特征点检......
  • 数字IC/FPGA中有符号数的处理探究
    做秋招笔试题时不出意外地又发现了知识盲区,特此学习记录。1.前提说明        有符号数无非分为两种:正数和负数,其中正数的符号位是0,不会引起歧义,负数的符号为1,采用的是补码表示。    此处复习一下补码的知识:对正数而言原码反码补码一致,负数则有区别,要掌握将......
  • FPGA配置高速ADC篇(1)_什么是SPI
    FPGA配置高速ADC篇(1)_什么是SPI-CSDN博客FPGA配置高速ADC篇(2)_4线SPI配置时序分析-CSDN博客FPGA配置高速ADC篇(3)_3线SPI配置时序分析-CSDN博客FPGA配置高速ADC篇(4)_基于verilog的4线SPI实现-CSDN博客FPGA配置高速ADC篇(5)_基于verilog的3线SPI实现-CSDN博客FPGA配置高......
  • FPGA配置高速ADC篇(2)_4线SPI配置时序分析
    FPGA配置高速ADC篇(1)_什么是SPI-CSDN博客FPGA配置高速ADC篇(2)_4线SPI配置时序分析-CSDN博客FPGA配置高速ADC篇(3)_3线SPI配置时序分析-CSDN博客FPGA配置高速ADC篇(4)_基于verilog的4线SPI实现-CSDN博客FPGA配置高速ADC篇(5)_基于verilog的3线SPI实现-CSDN博客FPGA配置高......
  • FPGA配置高速ADC篇(3)_3线SPI配置时序分析
    *******私信博主请加V:FPGA_GO*******上篇(第2篇)博主小飞以德州仪器(TI)的高速ADC芯片——ads52j90为例,介绍完了4线SPI配置时序。本篇(第3篇)咱们将以AnalogDevice(ADI)的多通道高速ADC芯片AD9249为例,介绍3线SPI读写配置时序。另外,大家如果想详细了解ADI公司的关于SPI配置的所有......
  • FIFO读数取数
    FIFO:先进先出的缓存器。常应用于带宽不同或者跨时钟域等数据传输情况。相关参数:数据宽度,存储深度,将空标志位。空标志位。将满标志位,满标志位。读写时钟。其中将满信号与将空信号相较于真正的满信号与空信号都会提前一个时钟周期拉高。FIFOgenerator配置注意事项:Basic选项......