竞争与冒险——随笔

  1)竞争与冒险的概念(产生原因)

  ①信号在组合逻辑电路内部通过连线逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。此外,信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,这种现象叫做竞争

  由于竞争往往会出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。 如果一个组合逻辑电路中有“毛刺”出现,就说明该电路存在“冒险”。

  ②冒险信号的脉冲宽度很小,常常只有数纳秒或数十纳秒,其频带带宽可达数百兆赫兹或更宽。在板级调试时,如果示波器的上限频率较低,会将幅度较大的毛刺显示为幅度较小的毛刺,甚至不易被察觉。

  ③冒险按产生形式的不同可以分为静态冒险和动态冒险两大类。

·静态冒险是指输入有变化,而输出不应变化时产生的单个窄脉冲;

·动态冒险则指的是输入变化时,输出也应变化时产生的冒险。

  动态冒险是由静态冒险引起的,因此存在动态冒险的电路也存在静态冒险。

  ④静态冒险根据产生条件的不同,分为功能冒险和逻辑冒险两大类。

·当有两个或两个以上输入信号同时产生变化时,在输出端产生毛刺,这种冒险称为功能冒险

·如果只有一个变量产生变化时出现的冒险则是逻辑冒险

  冒险往往会影响到逻辑电路的稳定性,因此要注意冒险的消除。

  (2)静态冒险产生的判断

  ①判断一个逻辑电路在某些输入信号发生变化时是否会产生冒险,首先要判断信号是否会同时变化,然后判断在信号同时变化的时候,是否会产生冒险,这可以通过逻辑函数的卡诺图逻辑函数表达式来进行判断。

  ②功能冒险的检查

  功能冒险是由电路的逻辑功能引起的,只要输入信号不是按照循环码的规律变化,组合逻辑就可能产生功能冒险,且不能通过修改设计加以消除,只能通过对输出采用时钟采样来消除

  ③逻辑冒险的检查

检查电路是否产生逻辑冒险的方法有两种:代数法和卡诺图法

代数法:

  如果一个组合逻辑函数表达式 F,在某些条件下能化简成F = A+ A或F = AA的形式,在A 产生变化时,就可能产生静态逻辑冒险。

卡诺图法

  在组合逻辑的卡诺图中,若存在素项圈相切,则可能会产生逻辑冒险,如下图所示的卡诺图中,AC 和AB两个素项环相切,在B = C = 1时,A 由1 变为0 时,将产生逻辑冒险:

          

  (3)毛刺的消除

  毛刺并不是对所有的输入都有危害,例如D 触发器的D 输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危害,我们可以说D 触发器的D 输入端对毛刺不敏感

  根据这个特性,我们应当在系统中尽可能采用同步电路,这是因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且不满足数据的建立和保持时间,就不会对系统造成危害。(由于毛刺很短,多为几纳秒,基本上都不可能满足数据的建立和保持时间)因此我们可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。

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

  目前,主要有两种基本的采样方法:脉冲选择法时序逻辑保持法

  ①脉冲选择法

  该方法在输出信号的保持时间内,用一定宽度的高电平脉冲输出信号做逻辑“”运算,由此获取输出信号的电平值。

  这种方法大大减少毛刺,但它并不能完全消除毛刺,我们通常使用“采样”的方法。一般说来,冒险出现在信号发生电平转换的时刻,也就是说在输出信号的建立时间内会发生冒险,而在输出信号的保持时间内是不会有毛刺信号出现的。如果在输出信号的保持时间内对其进行“采样”,就可以消除毛刺信号的影响。但是这种方法必须产生在合适的时候产生高电平,因此有一定的难度。

  ②时序逻辑保持法

  其利用D 触发器的D 输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输出信号,这种方法类似于将异步电路转化为同步电路。举例如下:

 1 module maoxian(
 2     input clk,
 3     input A, B, C, D,
 4     output reg Out,
 5     output Tout
 6 );
 7
 8 wire aandb, candd, tmp;
 9
10 assign aandb = A && B;
11 assign candd = C && D;
12 assign tmp = aandb || candd;
13
14
15 always @(posedge clk) begin
16     Out <= tmp;
17 end
18
19 assign Tout = tmp;
20
21 endmodule
时间: 2024-10-15 04:28:44

竞争与冒险——随笔的相关文章

【硬件】竞争和冒险

竞争:在组合电路中,信号经由不同的途径达到某一会合点的时间有先有后,这种现象称为竞争. 冒险:由于竞争而引起电路输出发生瞬间错误现象称为冒险.表现为输出端出现了原设计中没有的窄脉冲,常称其为毛刺. 竞争与冒险的关系:有竞争不一定会产生冒险,但有冒险就一定有竞争. 在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争.产生毛刺叫冒险.如果布尔式中有相反的信号则可能产生竞争和冒险现象. 下面的图片很好的描述了竞争和冒险的现象: ABCD在电平翻转的时候不一致,就导致输

竞争、冒险、毛刺、脉冲都是什么呢?

竞争:组合逻辑电路中,同一信号经不同的路径传输后,到达电路中某一会合点的时间有先有后(每条途径的组合逻辑污染延时不同),这种现象称为逻辑竞争,而因此产生输出干扰脉冲的现象称为冒险. 冒险:信号在器件内部通过连线和逻辑单元时,都有一定的延时.延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺.工作电压.温度等条件的影响.信号的高低电平转换也需要一定的过渡时间.由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些

数字电路与系统-组合逻辑电路的竞争冒险现象

1.前言 之前所探讨的组合逻辑电路的分析设计都是理想情况下的,信号的传输没有延迟,我们称之为稳态.实际生活中,输入的信号经过导线,门电路等都需要时间. 多个信号输入时,相应的输出的信号有快有慢.本节讨论的理想和实际之间的差异就是竞争和冒险现象. 2.基本概念 竞争:多个输入在到达门电路时,又先后顺序,存在时差.这是多个量之间进行的对比 险象:输入信号变化时,输出产生了错误.这是自己和自己进行了对比.这种错误是瞬时的,一闪而过,如果后续电路很敏感,那么将会带来严重的问题. 竞争和冒险间的关系:竞争

硬件笔试题积累1

1.同步电路和异步电路的区别是什么 同步电路:电路中所有触发器的时钟输入端都接同一个时钟源,因而所有触发器的状态的变化都与所加的时钟脉冲沿同步. 异步电路:电路没有统一的时钟,有些触发器的状态的变化不与所加的时钟脉冲同步. 2.什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求? 将两个门电路的输出端并联来实现“线与”. 在硬件上,要用OC门来实现,同时在输出端加一个上拉电阻. OC(Open Collector)门,又称集电极开路门. OD(Open Drain)门,又称漏极开

电路基础知识

1. 请列举您知道的电阻.电容.电感品牌(最好包括国内.国外品牌). 电阻: 美国:AVX.VISHAY威世日本:KOA兴亚.Kyocera京瓷.muRata村田.Panasonic松下.ROHM罗姆.susumu.TDK 台湾: LIZ丽智.PHYCOM飞元.RALEC旺诠.ROYALOHM厚生.SUPEROHM美隆.TA-I大毅.TMTEC泰铭.TOKEN德键.TYOHM幸亚.UniOhm厚声.VITROHM.VIKING光颉.WALSIN华新科.YAGEO国巨新加坡:ASJ 中国:FH风华

cancel_delayed_work和flush_scheduled_work【转】

转自:http://blog.chinaunix.net/uid-9688646-id-4052595.html 是不是觉得很玄?像思念一样玄?那好,我们来看点具体的,比如935行,INIT_DELAYED_WORK().这是一张新面孔.同志们大概注意到了,在hub这个故事里,我们的讲解风格略有变化,对于那些旧的东西,对于那些在usb-storage里面讲过很多次的东西,我们不会再多提,但是对于新鲜的东西,我们会花大把的笔墨去描摹.这样做的原因很简单,男人嘛,有几个不是喜新厌旧呢,要不然也不会结

第一章:数制和码制

数制 一. 十进制 进位规则是“逢十进一”.任意一个n位整数.m位小数的十进制可表示为: 其中 ki-称为数制的系数,表示第i位的系数,十进制ki的取值为0 ~ 9十个数, i 取值从 (n-1)-0的所有正整数到-1--m的所有负整数 10i-表示第i位的权值,10为基数,即采用数码的个数 n.m-为正整数, n为整数部分的位数, m为小数部分的位数 例如 (249.56)10=2×102+ 4×101+ 9×100+ 5×10–1+ 2×10-2 二. 二进制 进位规则是“逢二进一”,任意一

推挽输出与开漏输出

下面介绍一下开漏输出与推挽输出的结构原理: 推挽输出:可以输出高,低电平,连接数字器件; 开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.要实现“线与”需要用OC(open collector)门电路.是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务.电路工作时,两只对称的功

IIC、SPI和UART区别

第一个区别当然是名字:     SPI(Serial Peripheral Interface:串行外设接口);     I2C(INTER IC BUS)     UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上:     SPI总线由三条信号线组成:串行时钟(SCLK).串行数据输出(SDO).串行数据输入(SDI).SPI总线可以实现多个SPI设备互相连接.提供SPI串行时钟的SPI设备为SPI主机