FPGA | 组合逻辑中的竞争与险象问题

这篇具有很好参考价值的文章主要介绍了FPGA | 组合逻辑中的竞争与险象问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 建立时间和保持时间

建立时间(Setup Time):在时钟跳变前数据必须保持稳定的时间。

保持时间(Hold Time):在时钟跳变后数据必须保持稳定的时间。

如果建立时间或保持时间不满足,数据将不能进入触发器。

二、冒险现象

2.1 竞争冒险现象

当一个门的输入有两个或两个以上的信号发生改变时,由于这些信号是经过不同路径产生的,使得他们状态改变的时刻不同步,这种时差引起的现象称为竞争(Race)。

竞争的结果若是导致冒险或者险象(Hazard)发生(例如毛刺),并造成错误的后果,那么就称这种竞争为临界竞争。若竞争的结果没有导致冒险发生,或虽有冒险发生,但不影响系统的工作,那么就称这种竞争为非临界竞争。

组合逻辑电路的险象仅在信号状态改变的时刻出现毛刺,这种冒险是过度性的,它不会使稳态值偏离正常值,但在时序电路中,冒险可导致电路的输出值永远偏离正常值或者发生振荡。

组合逻辑电路的冒险是过渡性冒险,从冒险的波形上,可分为静态冒险和动态冒险。输入信号变化前后,输出的稳态值是一样的,但在输入信号变化时,输出信号产生了毛刺,这种冒险是静态冒险。若输出的稳态值为0,出现了正的尖脉冲毛刺,称为静态0冒险。若输出稳态值为1,出现了负的见脉冲毛刺,则称为静态1冒险。输入信号变化前后,输出的稳态值不同,并在边沿处出现了毛刺,称为动态险象(冒险)。

2.2 冒险险象产生的原因

竞争冒险主要是由于信号在FPGA原件内部通过连线和逻辑单元时,都有一定的延时。多路信号的电平值发生变化时,这些延时使得电路信号到达门时存在一个时间差,在信号变化的瞬间,组合逻辑的输出状态不确定,往往会出现一些不正确的尖峰信号,这些尖峰信号称之为“毛刺”。导致延时的因素有很多,如连线的长短、逻辑单元的数目、元件的制造工艺以及工作电压和温度等。不仅是这些固定的物理因素,一些信号的高低电平转换也需要一定时间。

2.3 竞争冒险的判断

1.逻辑代数法
如果输出端门电路的两个输入信号 A A A A ‾ \overline{A} A是输人变量A经过两个不同的传输路径而来,那么当输入变量A的状态突变时,输出端必然存在竞争冒险现象。所以,只要输出端的逻辑函数在一定的条件下能简化为 L = A 十 A ˉ ‾ L=\overline{A十\bar{A}} L=AAˉ或者 L = A A ˉ ‾ L=\overline{A\bar{A}} L=AAˉ,那么,输出端也必然存在竞争冒险现象。
2. 卡诺图法
在组合逻辑电路的输入变量为多个变量的情况下,可利用卡诺图法来判断当两个以上的变量同时改变状态时,电路是否存在竞争冒险现象。
考虑到代数法的原理是只要出现 L = A 十 A ˉ ‾ L=\overline{A十\bar{A}} L=AAˉ或者 L = A A ˉ ‾ L=\overline{A\bar{A}} L=AAˉ就存在音争冒险,那么自然想到,把它推广到卡诺图上就是:只要卡诺图上有两个卡诺圈单独相切,此逻辑电路就必然存在竞争冒险。

(1) 某函数L的卡诺图上,只要有两个卡诺圈单独相切,此逻辑电路必然存在竞争冒险。
例如下图,由于卡诺图上的两个卡诺图圈相切,故其表示的逻辑函数 L = A ˉ B ˉ + A C L=\bar{A}\bar{B}+AC L=AˉBˉAC存在冒险。

FPGA | 组合逻辑中的竞争与险象问题,农夫笔记,fpga开发

(2)对角相邻的卡诺图不算相切。但是最左与最右相邻,最上与最下行相邻。

3.逻辑模拟法
用计算机辅助分析的手段来分析组合逻辑电路。通过在计算机上运行数字电路的模拟程序,能够迅速判断出电路是否出现竞争冒险现象而输出尖峰脉冲。
4.实验观察法
将组合逻辑电路输入端的信号应包含的所有可能的输入状态的变化都输入到示波器,用示波器来观察电路的输出端是否存在竞争冒险现象而产生的尖峰脉冲。

2.4如何消除冒险现象

消除险象的思路有两种,一种是后向消除,一种是前向消除。

所谓后向消除,其大体思路就是保持组合逻辑原有的情况不变,根据险象的特征,对组合逻辑的输出做特定的处理,从而消除其中的险象。

所谓的前向消除,其大体思路就是从组合逻辑本身出发,通过适当的修改,让其不会发生险象。

对于险象来说,前向消除难度难度大于后向消除,后向消除几乎是万能的。前向消除所能解决的问题比较有限,并且解决思路比较复杂。

  1. 修改逻辑设计

(1)使用格雷码代替普通二进制计数

可以通过改变设计,破环毛刺产生的条件,来减少毛刺的发生。在数字电路设计中,常常采用格雷码器取代普通的二进制计数器,这是因为格雷码计数器的输出每次只有一位跳变,从而消除竞争冒险的发生条件,避免了毛刺的产生。

(2)消除互补变量

如逻辑函数表达式为 L = ( A + B ) ( A ˉ + C ) L = (A+B)(\bar{A}+C) L=(A+B)(Aˉ+C),当B=C=0时, L = A A ˉ L = A\bar{A} L=AAˉ,如果直接根据此逻辑表达式组成逻辑电路,则有可能会出现竞争冒险现象。但若将其改为 L = A C 十 A ˉ B + B C L=AC十\bar{A}B+BC L=ACAˉB+BC ,其逻辑功能不变,而 A ˉ A \bar{A}A AˉA项已不存在。这样,当B=C=0时,无论A如何变化,此逻辑表达式组成的逻辑电路均不会出现竞争冒险现象。

(3)增加冗余项
如逻辑函数表达式为 L = A C 十 A ˉ B L=AC十\bar{A}{B} L=ACAˉB,当B=C=1时,A 的状态改恋时会出现竞争冒险现象,但若将逻辑函数表达式改为 L = A C + A ˉ B + B C L=AC+\bar{A}B+BC L=ACAˉBBC,即地加BC 项后,当B=C=1时,无论A如何变化,电路输出端均不会出现竞争冒险现象。

2.引入采样脉冲
一般来说,冒险出现在信号发生电平转换的时刻,在输出信号的建立时间内会发生冒险,而在输出信号的保持时间内不会出现毛刺,这样就可以在电路的输入端引人一个采样脉冲,由干采样脉冲的作用时间取在电路达到新的稳定状态之后,使电路的输出端不会出现尖峰脉冲,这样就可以消除毛刺信号的影响。

有两种基本的采样方法:一种方法是在输出信号的保持时间内,用一定宽度的高电平脉冲与输出信号做逻辑“与”运算,由此获取输出信号的电平值。

FPGA | 组合逻辑中的竞争与险象问题,农夫笔记,fpga开发

FPGA | 组合逻辑中的竞争与险象问题,农夫笔记,fpga开发

另一种方法是利用D触发器的D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输出信号。

FPGA | 组合逻辑中的竞争与险象问题,农夫笔记,fpga开发

D触发器无须再由外部单独输入一个“采样”信号,相比于与门采样电路,具有更加简便和更容易实现的优点,D触发器消除毛刺的可靠性也更高。

FPGA | 组合逻辑中的竞争与险象问题,农夫笔记,fpga开发

  1. 输出端加入RC滤波电路

对于速度较慢的组合逻辑电路,由于竞争冒险而产生的尖峰脉冲一般情况下很窄,所以可采用在电路输出端并联电容的方法消除尖峰脉冲,因竞争冒险而产生的尖峰脉冲的宽度与门电路的传输时间属于同一量级。因此,在TTL门电路中,只要适当地选择电容器的容量(几百皮法以下),即可将尖峰脉冲的幅度降至门电路的阈值电平以下,从而消除电路中的竞争冒险现象。

如果想要达到更好的滤波效果,还可以采用RC组成的低通滤波电路。同时由于同步电路对毛刺不敏感,因此尽可能使用同步电路。文章来源地址https://www.toymoban.com/news/detail-759629.html

到了这里,关于FPGA | 组合逻辑中的竞争与险象问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 什么是好的FPGA编码风格?(1)--尽量避免组合逻辑环路(Combinational Loops)

    什么是好的FPGA编码风格?(1)--尽量避免组合逻辑环路(Combinational Loops)

             组合逻辑环路 (Combinational Loops):指组合逻辑的输出信号 不经过任何时序逻辑电路 (FF等),而直接 反馈到输入节点 ,从而构成的电路环路。         此外,如果 直接将寄存器的输出端通过组合逻辑反馈到该寄存器的异步端口 (异步复位或异步置位),

    2024年02月05日
    浏览(10)
  • (数字逻辑笔记)用Verilog实现一个简单ALU(组合逻辑)

    (数字逻辑笔记)用Verilog实现一个简单ALU(组合逻辑)

    实验描述: 输入 :两个4位二进制数,代表两个操作数A,B;一个3位控制信号operation,代表ALU要进行的运算。本实验中,ALU可以实现8种运算: 输出 :4位结果,1位进位 operation | F 000 | A + B 001 | A - B 010 | B + 1 011 | B - 1 100 | NOT A 101 | A XOR B 110 | A AND B 111 | A OR B 实现代码: TestBen

    2024年02月04日
    浏览(12)
  • 【FPGA】组合逻辑电路三种建模方式(Verilog HDL 门级建模、Verilog HDL 数据流建模、组合电路行为级建模)

    【FPGA】组合逻辑电路三种建模方式(Verilog HDL 门级建模、Verilog HDL 数据流建模、组合电路行为级建模)

    目录   Verilog HDL 门级建模 各种逻辑门的表示和使用 门级建模书写实例 Verilog HDL 数据流建模 数据流建模 数据流建模书写实例 组合电路行为级建模 always语句 条件语句 多路分支语句 循环语句 for while repeat forever 行为级建模示例   可以理解为对逻辑电路中各个门依次进行描述

    2024年04月13日
    浏览(27)
  • 【FPGA】Verilog:组合逻辑电路应用 | 数码管 | 8421BCD编码 | 转换七段数码管段码

    【FPGA】Verilog:组合逻辑电路应用 | 数码管 | 8421BCD编码 | 转换七段数码管段码

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:数码管的使用 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用IO:Switch :

    2024年02月03日
    浏览(14)
  • 【FPGA】Verilog:模块化组合逻辑电路设计 | 半加器 | 全加器 | 串行加法器 | 子模块 | 主模块

    【FPGA】Verilog:模块化组合逻辑电路设计 | 半加器 | 全加器 | 串行加法器 | 子模块 | 主模块

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:加法器   ​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用IO:Switch :

    2024年02月15日
    浏览(12)
  • React hooks文档笔记(五)useEffect——解决异步操作竞争问题

    React hooks文档笔记(五)useEffect——解决异步操作竞争问题

    非bug,重新安装组件仅在开发过程中发生,帮助找到需要清理的效果。在生产环境中只会加载一次。 React 将在 Effect 下次运行之前以及卸载期间调用您的清理函数。 return () = {}; 在开发中, Effect call addEventListener() ,然后立即call removeEventListener() ,然后再次cal laddEventListener()

    2024年02月11日
    浏览(17)
  • FPGA加速技术在FPGA加速中的逻辑门复用:实现高效的数字电路设计

    作者:禅与计算机程序设计艺术 随着FPGA技术的飞速发展,越来越多的企业开始采用FPGA作为其核心系统硬件,而现在各个公司都在积极探索FPGA加速技术。为了让FPGA更加适合于各种应用场景,比如信号处理、图像识别等,FPGA厂商们提供了各种硬件IP核,可以帮助客户实现各种

    2024年02月12日
    浏览(12)
  • FPGA加速技术在FPGA加速中的逻辑门变换实现实现优化:实现高效的数字电路设计

    作者:禅与计算机程序设计艺术 FPGA(Field-Programmable Gate Array)即可编程门阵列,是一种集成电路可编程逻辑块,其外观类似于嵌入式系统的集成电路板,由一组并行处理器单元、存储器、输入输出接口、总线等部件构成。如今,FPGA已经广泛应用于各种各样的工业领域,可以

    2024年02月07日
    浏览(11)
  • 组合逻辑电路二——数字逻辑实验

    组合逻辑电路二——数字逻辑实验

    (1)掌握数据选择器和译码器的功能。 (2)用数据选择器实验逻辑函数。 (3)用译码器实现逻辑函数。 (一)74LS151 74LS151是常用的8选1数据选择器,芯片内部有一个8选1数据选择器。通过输入不同的地址码C、B、A,可以控制输出Y选择8个输入数据D0~D7中的一个。 连线图和

    2023年04月26日
    浏览(13)
  • 组合逻辑、时序逻辑的适用场合、数字逻辑电路的时序分析

    组合逻辑、时序逻辑的适用场合、数字逻辑电路的时序分析

    组合逻辑: 组合逻辑是一类逻辑电路,其输出仅仅取决于当前的输入信号状态,而不考虑过去的信号状态。 组合逻辑电路的输出完全由输入决定,没有时钟信号的概念,因此输出是输入的函数。 例子包括逻辑门(AND、OR、NOT等)和其他不带存储元件(如触发器)的电路。 时

    2024年02月03日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包