当前位置:文档之家› FPGA竞争冒险详解

FPGA竞争冒险详解

FPGA竞争冒险详解
FPGA竞争冒险详解

F P

G A竞争冒险详解 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

1 引言

现场可编程门阵列(FPGA)在结构上由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功

能块,来实现一定的逻辑功能。 FPGA可以替代其他PLD或者各种中小规模数字逻辑芯片在数字系

统中广泛应用,也是实现具有不同逻辑功能ASIC的有效办法。FPGA是进行原型设计最理想的载

体,原型机的最初框架和实现通过PFGA来验证,可以降低成本、缩短开发周期。利用FPGA的可

重配置功能,可以在使用过程中,在不改变所设计的设备的硬件电路情况下,改变设备的功能。但

和所有的数字电路一样,FPGA电路中也存在毛刺问题。它的出现会影响电路工作的可靠性、稳定

性,严重时会导致整个数字系统的误动作和逻辑紊乱。在此详细论述了解决此问题的多种方法。

2 FPGA的功能和结构特点

FPGA的功能

FPGA的功能由逻辑结构的配置数据决定,在工作时,这些配置数据存放在片内的SRAM或者熔

丝图上。使用SRAM的FPGA器件,在工作前需要从芯片外部加载配置数据,这些配置数据可以存

放在片外的EPROM或其他存储体上,人们可以控制加载过程,在现场修改器件的逻辑功能。

图1 实际逻辑电路

图2 LUT的实现方式

FPGA的结构特点

FPGA使用了可编程的查找表(Look Up Table ,LUT)结构,LUT是可编程的最小逻辑构成单元。大部分FPGA采用基于SRAM的查找表逻辑形成结构,就是用SRAM(静态随机存储器)来构成逻辑函数发生器。图1、2分别是4输入LUT的实际逻辑电路和LUT的实现方式。FLEX10KE系列器件的结构和工作原理在Altera的FPGA器件中具有典型性,下面以此类器件为例,介绍PFGA的结构。其内部结构如图3所示:

图3 FLEX10KE内部结构

FLEX10KE内部结构包含嵌入式阵列块(EAB,Embedded Array Block)、逻辑阵列块(LAB,Logic Array Block)、快速通道(Fast Track)互连和输入/输出单元(I/O Element,IOE)四部分。

(1) 嵌入式阵列用来实现各种存储器及复杂的逻辑功能,如数字信号处理、微控制器等。嵌入式阵列由一系列嵌入式阵列块(EAB)构成。EAB是在输入输出口上具有寄存器的能变形的RAM块。(2) 逻辑阵列用来实现普通逻辑功能,如计数器、加法器、状态机等。逻辑阵列由一系列逻辑阵列块(LAB)构成。每个LAB包含八个LE和一些局部互连。LAB 构成了FLEX10KE的“粗粒度”结构,有利于EDA软件进行布局布线,优化器件的利用,提高性能。LE是FLEX10KE结构中的最小单元,

每个LE 含有一个4输入查找表(LUT)、一个带有同步使能的可编程触发器(Programmable Register)、一个进位链(Carry Chain)和一个级连链(Cascade)。每个LE都能驱动LAB局部互连(LAB Local Interconnect)和快速通道互连(Fast Track Interconnect)。LE的内部结构如图4所示。

图4 逻辑单元(LE)内部结构

(3) 器件内部信号的互连和器件引出端之间的信号互连由快速通道(FastTrack)连线提供,FastTrack遍布于整个FLEX10KE器件,是一系列水平和垂直走向的连续式布线通道。FastTrack互连是一系列贯通器件行、列的快速连接通道。

(4) I/O引出端由一些I/O单元(IOE)驱动。IOE位于快速通道的行和列的末端,每个IOE有一个双向I/O缓冲器和一个既可做输入寄存器也可做输出寄存器的触发器。

3 竞争冒险

在组合电路中,当逻辑门有两个互补输入信号同时向相反状态变化时,输出端可能产生过渡干扰脉冲的现象,称为竞争冒险。

FPGA中产生竞争冒险的原因

信号在FPGA器件内部通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。如果一个组合逻辑电路中有“毛刺”出现,就说明该电路存在“冒险”。(与分立元件不同,由于PLD内部不存在寄生电容电感,这些毛刺将被完整的保留并向下一级传递,因此毛刺现象在PLD、FPGA 设计中尤为突出)

FPGA中竞争冒险的危害

图5给出了一个逻辑冒险的例子,从图6的仿真波形可以看出,“A、B、C、D”四个输入信号经过布线延时以后,高低电平变换不是同时发生的,这导致输出信号“OUT”出现了毛刺。而当数据完全稳定的时候,毛刺信号也就自然消失了。可以概括的讲,只要输入信号不同时变化,(经过内部走线)组合逻辑必将产生毛刺。将它们的输出直接连接到时钟输入端、清零或置位端口的设计方法是错误的,这可能会导致严重的后果。而现在FPGA设计中的信号往往是由时钟控制的,多数据输入的复杂运算系统,甚至每个数据都由相当多的位数组成。这时,每一级的毛刺都会对结果有严重的影响,如果是多级的设计,那么毛刺累加后甚至会影响整个设计的可靠性和精确性。时钟端口、清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错,因此判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须要考虑的问题。

图5 一个逻辑冒险的例子

图6 仿真波形

任何组合电路、反馈电路和计数器都可能是潜在的毛刺信号发生器。毛刺并不是对所有输入都有危害,如触发器的D输入端,只要毛刺不出现在时钟的上升沿并满足数据的建立保持时间,就不会对系统造成危害。而当毛刺信号成为系统的启动信号、控制信号、握手信号,触发器的清零信号(CLEAR)、预置信号(PRESET)、时钟输入信号(CLK)或锁存器的输入信号就会产生逻辑错误。任何一点毛刺都可能使系统出错。

3 毛刺的消除

利用冗余项消除毛刺

函数式和真值表所描述的是静态逻辑,而竞争则是从一种稳态到另一种稳态的过程。因此竞争是动态过程,它发生在输入变量变化时。此时,修改卡诺图,增加多余项,在卡诺图的两圆相切处增加一个圆,可以消除逻辑冒险。但该法对于计数器型产生的毛刺是无法消除的。<

采用格雷码

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

采样法

由于冒险出现在变量发生变化的时刻,如果待信号稳定之后加入取样脉冲,那么就只有在取样脉冲作用期间输出的信号才能有效。这样可以避免产生的毛刺影响输出波形。

一般说来,冒险出现在信号发生电平转换的时刻,也就是说在输出信号的建立时间内会发生冒险,而在输出信号的保持时间内是不会有毛刺信号出现的。如果在输出信号的保持时间内对其进行“采样”,就可以消除毛刺信号的影响。

有两种基本的采样方法:一种方法是在输出信号的保持时间内,用一定宽度的高电平脉冲与输出信号做逻辑“与”运算,由此获取输出信号的电平值。图7说明了这种方法,采样脉冲信号从输入引脚“SAMPLE”引入。从图8的仿真波形上可以看出,毛刺信号出现在“TEST”引脚上,而“OUT”引脚上的毛刺已被消除了。

图7 采样法一

图8 采样法一仿真波形

上述方法的一个缺点是必须人为的保证sample信号必须在合适的时间中产生,另一种更常见的方法是利用D触发器的D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输出信号,这种方法类似于将异步电路转化为同步电路。图9给出了这种方法的示范电路,图 10是仿真波形。在仿真时,我们也可能会发现在FPGA器件对外输出引脚上有输出毛刺,但由于毛刺很短,加上PCB本身的寄生参数,大多数情况下,毛刺通过PCB走线,基本可以自然被虑除,不用再外加阻容滤波。

图9 采样法二

图10 采样法二仿真波形

吸收法

增加输出滤波,在输出端接上小电容C可以滤除毛刺,图11所示。但输出波形的前后沿将变坏,在对波形要求较严格时,应再加整形电路,该方法不宜在中间级使用。

图11 吸收法消除毛刺图

延迟办法

因为毛刺最终是由于延迟造成的,所以可以找出产生延迟的支路。对于相对延迟小的支路,加上毛刺宽度的延迟可以消除毛刺。当需要对某一信号作一段延时时,初学者往往在此信号后串接一些非门或其它门电路,此方法在分离电路中是可行的。但在FPGA中,开发软件在综合设计时会将这些门当作冗余逻辑去掉,达不到延时的效果。用Altera公司的 MaxplusII开发FPGA时,可以通过插入一些LCELL原语或调用延时线模块来产生一定的延时,但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,因此并不提倡这样。在此,可以用高频时钟来驱动一移位

寄存器,待延时信号作数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。在此以实现双口RAM的读写时序中IDT7132的读时序为例,时序图如图12所示。无论用CE还是OE来控制读取,都需要CE或OE保持一段低电平。令OE保持低电平,CE平时为高电平,读双口RAM时触发CE变为低电平,延迟一小段时间再恢复高电平。本设计产生这段延时的方法是用高频计数器产生,具体方法为:在FPGA中设计一个计数器,取系统可用的高频时钟(周期小于所需延时)驱动它计数,计到设定好的终值时产生触发脉冲。不同的计数终值可以产生不同的延时。此方法所产生的延时为高频时钟周期的整数倍,若高频时钟周期与所需延时相比很小,则延时较精确,否则只能做一粗略的延时。

图12 双口RAM IDT7132读操作时序图

4 FPGA设计中避免毛刺的其他注意事项

电路选用

要用寄存器和触发器设计电路,尽量不要用锁存器,因它对输入信号的毛刺太敏感。如果坚持用锁存器设计必须保证输入信号绝对没有毛刺,且满足保持时间。

译码器

设计设计译码逻辑电路时必须十分小心,因为译码器和比较器本身会产生尖峰,容易产生毛刺,把译码器或比较器的输出直接连到时钟输入端或异步清除端,会造成严重的后果。

避免隐含RS触发器

应该尽量避免隐含RS触发器的出现。一般要控制输出被直接反馈到输入端,采用反馈环路会出现隐含RS触发器,其对输入尖峰和假信号很敏感,输入端有任何变化都有可能使输出值立刻改变,此时易造成毛刺的产生,导致时序的严重混乱。一旦具有隐含的RS触发器,加锁存器消除毛刺是不能解决问题的。此时只有通过全面修改电路来从根本上解决。

避免使用多时钟设计

每一个模块中只用一个时钟,避免使用多时钟设计,同时避免使用主时钟分频后的二次时钟作为时序器件的时钟输入,因为二次时钟相对于一次时钟可能存在过大的时钟歪斜。对所有模块的输入时钟、输入信号、输出信号都用D触发器或寄存器进行同步处理,即输出信号直接来自触发器或寄存器的输出端。这样可以消除尖峰和毛刺信号。不论是控制信号还是地址总线信号、数据总线信号,都要采用另外的寄存器,以使内部歪斜的数据变成同步数据。这些表面上看似乎无用的操作可以大大提高电路系统的性能。

避免使用延迟线

应该尽量避免使用延迟线,因它对工艺过程的变化极为敏感,会大大降低电路的稳定性和可靠性,并将为测试带来麻烦。

充分利用资源

大部分FPGA器件都为时钟、复位、预置等信号提供特殊的全局布线资源,要充分利用这些资源。这样可以减少电路中的毛刺并且大大提高设计电路的性能.

不要期望仿真器替你找到毛刺错误

注意仿真结果和实际综合的电路的不一致性。无论是时序电路还是异步逻辑电路,其行为与其仿真器结果都是不完全一样的。特别是异步逻辑电路,仿真结果将会隐藏竞争冒险和毛刺现象,与实

际行为相差较远。故在FPGA设计中,对每一个逻辑门、每一行VHDL (Verilof)语言,必须完全理解,不要期望仿真器替你找到错误。

使用FPGA开发数字电路,可以大大缩短设计时间、减少PCB 面积、提高系统的可靠性。它的这些优点使得FPGA技术得到飞速的发展,已经在通信、电子、信号处理、工业控制等领域被广泛应用。随着FPGA容量的增加,SOPC (可编程芯片上系统)SOPC(对信号的处理和整个系统的控制)的应用时代即将到来。SOPC既有嵌入处理器、I/O电路和大规模嵌入存储器,也有 CPLD/FPGA,用户可以选择。同时也可以选择PLD公司提供的FPGA IP Intellectual Property内核。使用IP核能保证系统级芯片的开发效率、质量,并能大大缩短产品开发时间。

5 结束语

FPGA已成为解决系统级设计的重要选择方案之一。因而毛刺是设计系统中不可忽视的问题,实际电路中它常惹出很多的麻烦。本文结合FPGA的特点,论述了如何解决FPGA设计中的毛刺问题。增强电路的稳定性和可靠性,并为实际电路的测试带来方便。

组合逻辑电路中的竞争与冒险.

组合逻辑电路中的竞争与冒险 前面分析组合逻辑电路时,都没有考虑门电路的延迟时间对电路产生的影响。实际上, 从信号输入到稳定输出需要一定的时间。由于从输入到输出的过程中, 不同通路上门的级数不同, 或者门电路平均延迟时间的差异, 使信号从输入经不同通路传输到输出级的时间不同。由于这个原因, 可能会使逻辑电路产生错误输出,通常把这种现象称为竞争冒险。 竞争:在组合逻辑电路中, 某个输入变量通过两条或两条以上途径传到输出门的输入端, 由于每条途径的延迟时间不同帮到达输出门的时间就有先有后, 这种现象称为竞争。 冒险:是指数字电路中, 某个瞬间出现了非预期信号的现象, 即某一瞬间数字电路出现了违背真值表所规定的逻辑电平。这样就出现了不该出现的尖脉冲, 一、 竞争冒险的概念及其产生的原因 以图示电路为例可看出, 大多数组合电路都存在竞争, 但所有竞争不一定都产生错误的干扰脉冲。竞争是产生冒险的必然条件, 而冒险并非竞争的必然结果。由以上分析可知, 只要两个互补的信号送入同一门电路, 就可能出现竞争冒险。因此把冒险现象分为两种: 1. “ 0”型冒险

A A +冒险在理想情况下输出电平为“ 1” , 由于竞争输出产生低电平窄脉冲。 A A ?冒险在理想情况下输出电平为“ 0” ,由于竞争输出产生高电平窄脉冲。 二、竞争冒险的判断方法 判断竞争冒险是否存在的方法很多,最常见的方法有: 1.代数法 在逻辑函数表达式中, 是否存在某变量的原变量和反变量。若去掉其他变量得到 A A Y +=,电路有可能产生“ 0”冒险;若得到 A A Y ?=,则可能产生“ 1” 冒险。 2.卡诺图法 画出逻辑函数的卡诺图, 当卡诺图中两个合并最小项圈相切, 即两个合并最小项圈相邻—有相邻项, 各合并最小项圈各自独立—不相交时, 这个逻辑函数有可能出现冒险现象。 三、消除竞争冒险的方法 1.修改逻辑设计 (1代数法 ①逻辑变换消去互补量 ((C A B A Y ++=当 B =C=0时, A A Y ?=, 存在竞争冒险。若将逻辑函数表达式进行逻辑变换,则 BC B A AC Y ++=,这时消去了 A A ?互补量,从而不会产生竞争冒险。②增加乘积项 C A AB Y +=当 B=C=1时, A A Y +=,存在竞争冒险。若增加乘积项 BC , 则 BC C A AB Y ++=,消除了竞争冒险。 (2卡诺图法 将卡诺图中相切的圈用一个多余的圈连接起来,即可消除冒险现象。

最新31仿真与测试竞争冒险现象汇总

31仿真与测试竞争冒 险现象

项目三组合逻辑电路 任务一仿真与测试竞争冒险现象 【学习目标】 1.掌握组合逻辑电路的分析方法; 2.掌握组合逻辑电路的简单设计方法; 3.掌握组合逻辑电路的竞争冒险及消除方法。 【任务引入】 按照逻辑功能不同,数字电路常分两大类:一类组合逻辑电路(简称组合电路);另一类时序逻辑电路(简称时序电路)。如果一个逻辑电路在任何时刻的输出状态只取决于该时刻的输入状态,与电路原来状态无关,这样的电路称为组合逻辑电路。本节课内容我们学习组合逻辑电路的分析与设计方法,了解并掌握组合逻辑电路中的竞争冒险现象及其消除方法。 【基本理论】 一、组合逻辑电路概述 1.组合逻辑电路在电路结构上的特点: (1)构成电路基本元件是门电路,不含记忆单元(存储元件); (2)只有从输入到输出通路,没有从输出反馈到输入回路。 2.组合电路逻辑功能的描述 描述组合电路逻辑功能的方法有逻辑函数式、真值表、逻辑图、工作波形图、卡诺图等几种。 3-1-1 组合逻辑电路的框图 组合逻辑电路n个输入端,用x1,x2,…,xn表输入变量; 有m个输出端,用y1,y2,…,ym表示输出变量,输出变量与输入变量间逻辑关系: y1 =f1(x1,x2,…,xn) y2 =f2(x1,x2,…,xn) … ym =fm(x1,x2,…,xn) 二、组合逻辑电路的分析与设计 1.组合逻辑电路的分析 步骤如下: (1)用逐级递推法写出输出逻辑函数与输入逻辑变量之间的关系; (2)用公式法或者卡诺图法化简,写出最简逻辑表达式;

(3)根据最简逻辑函数式列出功能真值表; (4)根据真值表写出逻辑功能说明,以便理解电路的作用。 例3-1-1:分析下图3-1-2三变量组合逻辑电路的功能。 图3-1-2 三变量组合逻辑电路 解: 第一步:写出输出逻辑函数与输入逻辑变量之间的关系,如下: 第二步:化简写出最简逻辑表达式,得:F=AB+BC+CA 第三步:列出功能真值表 第四步:写出逻辑功能说明 当输入A 、B 、C 中有2个或3个为1时,输出Y 为1,否则输出Y 为 0。所以这个电路实际上是一种3人表决用的组合电路:只要有2票或3 票同意,表决就通过。 2.组合逻辑电路的设计 组合逻辑电路的设计是根据给定的实际逻辑功能,找出实现该功能的逻辑电路。步骤如下: (1)根据给出的条件,找出什么是逻辑变量,什么是逻辑函数,用字母设 出,另外用0和1各表示一种状态,找出逻辑函数和逻辑变量之间的 关系; (2)根据逻辑函数和逻辑变量之间的关系列出真值表,并根据真值表写出逻辑表达式; C AB F =1BC F =2CA F =3AC BC AB F F F F 321==

FPGA入门及Quartus II使用教程(内部资料)

FPGA入门及Quartus II使用教程FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑PAL(Programmable Array Logic)、门阵列逻辑GAL(Gate Array Logic)等可编程器件的基础上上进一步发展的产物。 可以这样讲,ASIC(Application Specific Integrated Circuit )内部的所有资源,是用积木堆积起来的小房子,可以是一个欧美风情的房子,还可以是一个北京四合院…….而FPGA内部就可以说是一个个小积木,也就是内部有大量的资源提供给我们,根据我们的需求进行内部的设计。并且可以通过软件仿真,我们可以事先验证设计的正确性。 第一章FPGA的基本开发流程 下面我们基于Altera 公司的QuantusII 软件来说明FPGA 的开发流程。 下图是一个典型的基于Quartus II的FPGA开发整体流程框图。

1、建立工程师每个开发过程的开始,Quartus II以工程为单位对设计过程进行管 理。 2、建立顶层图。可以这样理解,顶层图是一个容器,将整个工程的各个模块包 容在里边,编译的时候就将这些模块整合在一起。也可以理解为它是一个大元件,比如一个单片机,内部包含各个模块,编译的时候就是生成一个这样的大元件。 3、采用ALTERA公司提供的LPM功能模块。Quartus软件环境包含了大量的常 用功能模块,比如计数器、累加器、比较器等等。 4、自己建立模块。由于有些设计中现有的模块功能不能满足具体设计的要求, 那就只能自己设计。使用硬件描述语言,当然也可以用原理图的输入方法,可以独立的把它们当成一个工程来设计,并且生成一个模块符号(Symbol),类似于那些LPM功能模块。这里可以理解为,如果我们需求的滤波器,没有现成的合适的,那我们可以通过LC自己来搭建一个滤波器。 5、将顶层图的各个功能模块连线起来。这个过程类似电路图设计,把各个芯片 连起来,组成电路系统。 6、系统的功能原理图至此已经基本出炉了,下一步就是选择芯片字载体,分配 引脚,设置编译选项等等。 7、编译。这个过程类似软件开发里德编译,但是实际上这个过程比软件的编译 复杂的多,因为它最终要实现硬件里边的物理结构,包含了优化逻辑的组合,综合逻辑以及布线等步骤。 8、编译后会生成2个文件,一个是*.sof文件,一个是*.pof文件,前者可以通过 JTAG方式下载到FPGA内部,可以进行调试,但断电后数据丢失;后者通过AS或者PS方式下载到FPGA的配置芯片里边(EEPROM或者FLASH),重新上电后FPGA会通过配置将数据读出。 9、对于复杂的设计,工程编译好了,我们可以通过Quartus软件或者其他仿真 软件来对设计进行反复仿真和验证,直到满足要求。(主要是时序仿真)。 第二章基于Quartus II的实例 一、建立工程 首先,打开Quartus II软件。

使用QUARTUS II做FPGA开发全流程,傻瓜式详细教程

My First FPGA Design Tutorial 101 Innovation Drive San Jose, CA 95134 (408) 544-7000 https://www.doczj.com/doc/d9760964.html, TU-01002-1.0

Copyright ? 2007 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device des-ignations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Al-tera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the ap- plication or use of any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of device specifications before relying on any published in- formation and before placing orders for products or services. Printed on recycled paper

组合电路中的竞争冒险实验报告

实验题目:组合电路中的竞争和冒险 姓名:班级:学号: 实验时间: 一.实验目的: 1、观察组合电路中的竞争与冒险现象,了解竞争冒险的实验原理 2、了解消除竞争与冒险的方法 二.实验仪器及器件: 1、实验箱、万用表、示波器 2、74LS00,74LS20 三.实验原理: 1、竞争冒险的原理 (1)竞争: 在组合逻辑电路中,某个输入变量通过两条或两条以上的途径传到输出端,由于每条途径延迟时间不同,到达输出门的时间就有先有后,这种现象称为竞争。 (2)冒险:信号在器件内部通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"。如果一个组合逻辑电路中有"毛刺"出现,就说明该电路存在冒险。 (3)竞争冒险产生原因:由于延迟时间的存在,当一个输入信号经过多条路径传送后又重新会合到某个门上,由于不同路径上门的级数不同,或者门电路延迟时间的差异,导致到达会合点的时间有先有后,从而产生瞬间的错误输出。 (4)竞争与冒险的关系:有竞争不一定会产生冒险,但有冒险就一定有竞争。 2、冒险现象的判别 Y=A?A’可能出现1型冒险 Y=A+A’可能出现0型冒险 3、消除竞争冒险的方法 (1)利用冗余项法: 利用冗余项消除毛刺有2 种方法:代数法和卡诺图法法: a、代数法,在产生冒险现象的逻辑表达式上,加上冗余项或乘上冗余因子; b、卡诺图法,将卡诺图中相切的圈用一个多余的圈连接起来。 (2)选通法: 在电路中加入选通信号,在输出信号稳定后,选通允许输出,从而产生正确输出。 滤出法: 由于冒险脉冲是一个非常窄的脉冲,可以在输出端接一个几百微法的电容将其滤出掉。 (3)常用消除方法: 1、接入滤波电容Cf; 2、引入选通脉冲; 3、修改逻辑设计; 4、.利用可靠性编码; 5、引入封锁脉冲。

FPGA开发入门教程

Altera FPGA开发入门教程

目录 目录 第一章 Altera FPGA 开发流程概述 (1) 1.1 你需要准备的 (1) 1.2 Altera FPGA 基本开发流程 (1) 第二章 QuartusII 软件安装教程 (4) 第三章 完成第一个FPGA设计 (20) 3.1 启动和建立QuartusII工程 (20) 3.2 编辑我们的设计文件 (27) 3.3 综合、布局布线 (30) 3.4 引脚约束 (34) 3.5 再次综合、布局布线 (37) 第四章 配置FPGA (38) 4.1 JTAG配置 (38) 4.2 JIC烧写 (42)

第一章Altera FPGA 开发流程概述 本章介绍Altera FPGA的最基本最简单的开发流程,目的在于让您更直观了解FPGA开发设计过程,最快上手FPGA开发,最快找到感觉:-) 1.1你需要准备的 ●兴趣 无需多言,兴趣是最好的老师! ●基本电路知识 学习FPGA最好能懂一些模拟电路和数字电路的基础知识,比如知道什么是高电平、低电平、逻辑门、触发器、电阻电容、发光二极管等。只需基本概念即可,不要求你是专家。当然,如果你有单片机之类的开发经验,那会更好! ●Verilog语言 是的,我们用Verilog进行FPGA设计。因为近年来,Verilog的使用率已经远远超过VHDL。你不需要太精通Verilog的语法,但是你需要用硬件的思维来学习和使用Verilog。在接下来的FPGA学习中,我们会反复强调这一点,以便带给你更深的体会。 ●硬件平台 纸上得来终觉浅。一块优秀而又易用的入门级FPGA开发板,会祝您一臂之力! 1.2A ltera FPGA 基本开发流程 图1- 1展示了Altera FPGA的基本开发流程。 1

竞争与冒险

1. 什么是竞争冒险? 信号在通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,成为“竞争”;往往导致出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"。 如果一个组合逻辑电路中有"毛刺"出现,就说明该电路存在“冒险”。冒险是由变量的竞争引起的。冒险又分为逻辑冒险和功能冒险。 简言之:在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争,竞争产生冒险。 2. 竞争冒险产生的原因?(1)根本原因:延迟(2)详细分析: 竞争冒险的产生受到四个要素的制约,即:时间延迟、过渡时间、逻辑关系和延迟信号相位。 [1]时间延迟,即信号在传输中受路径、器件等因素影响,输入端信号间出现的时间差异 [2]过渡时间,即脉冲信号状态不会发生突变,必须经历一段极短的过渡时间 [3]逻辑关系,即逻辑函数式 [4]延迟信号相位,即延迟信号状态间的相位关系,涵盖延迟信号同相位和延迟信号反相位两个方面。延迟信号状态变化相同的则是延迟信号同相位,反之则是反相位。 时间延迟和过渡时间要素是竞争冒险的产生原因,逻辑关系和延迟信号相位要素是竞争冒险的产生机制。由原因和机制,构成竞争冒险的产生条件。当电路满足产生条件时,则一定产生毛刺。 3. 如何判断有竞争冒险? 3.1 逻辑冒险的判断方法有两种: 1). 代数法: 在逻辑函数表达式中,若某个变量同时以原变量和反变量两种形式出现,例如:逻辑函数在一定条件下可简化为Y=A+A反或Y=A*A反就具备了竞争条件。去掉其余变量(也就是将其余变量取固定值0或1),留下有竞争能力的变量,如果表达式为F=A+A~(用A~表示A的反变量,以下同),就会产生0型冒险(F应该为1而实际却为0);如果表达式为F=AA~,就会产生1型冒险。例:表达式 F=AB+CB~,当A=C=1时,F=B+B~,在B发生跳变时,可能出现0型冒险。 2). 卡诺图法:将函数填入卡诺图,按照函数表达式的形式圈好卡诺圈。 A\BC| 00 01 11 10 ----------------------- 0 | 0 0 0 1 1 | 0 1 1 1 F=AC+BC~的卡诺图(将101和111的1圈一起,010和110的1圈一起)通过观察发现,这两个卡诺圈相切。则函数在相切处两值间跳变时发生逻辑冒险。(前提是这两个卡诺圈没有被其他卡诺圈包围) 3.2 功能冒险的判断: 功能冒险是当多个输入信号同时变化的瞬间,由于变化快慢不同而引起的冒险。 卡诺图法:依然用上面的卡诺图,按同样函数圈好。举例F=AC+BC~中,ABC从111变为

FPGA学习指南

PS:笔者强烈建议诸位注册一个EETOP的账号,每天签到或者发贴、回贴就有积分了,里面的资源非常丰富,各种软件、资料都能找到。 一、入门首先要掌握HDL(HDL=verilog+VHDL)。 第一句话是:还没学数电的先学数电。然后你可以选择verilog或者VHDL,有C语言基础的,建议选择VHDL。因为verilog太像C了,很容易混淆,最后你会发现,你花了大量时间去区分这两种语言,而不是在学习如何使用它。当然,你思维能转得过来,也可以选verilog,毕竟在国内verilog用得比较多。 接下来,首先找本实例抄代码。抄代码的意义在于熟悉语法规则和编译器(这里的编译器是硅编译器又叫综合器,常用的编译器有:Quartus、ISE、Vivado、Design Compiler、Synopsys的VCS、iverilog、Lattice的Diamond、Microsemi/Actel的Libero、Synplify pro),然后再模仿着写,最后不看书也能写出来。编译完代码,就打开RTL图,看一下综合出来是什么样的电路。 HDL是硬件描述语言,突出硬件这一特点,所以要用数电的思维去思考HDL,而不是用C语言或者其它高级语言,如果不能理解这句话的,可以看《什么是硬件以及什么是软件》。在这一阶段,推荐的教材是《Verilog传奇》、《Verilog HDL高级数字设计》或者是《用于逻辑综合的VHDL》。不看书也能写出个三段式状态机就可以进入下一阶段了。 此外,你手上必须准备Verilog或者VHDL的官方文档,《verilog_IEEE官方标准手册-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便遇到一些语法问题的时候能查一下。 二、独立完成中小规模的数字电路设计。 现在,你可以设计一些数字电路了,像交通灯、电子琴、DDS等等,推荐的教材是《Verilog HDL应用程序设计实例精讲》。在这一阶段,你要做到的是:给你一个指标要求或者时序图,你能用HDL设计电路去实现它。这里你需要一块开发板,可以选Altera的cyclone IV系列,或者Xilinx的Spantan 6。还没掌握HDL之前千万不要买开发板,因为你买回来也没用。这里你没必要每次编译通过就下载代码,咱们用modelsim仿真(此外还有QuestaSim、NC verilog、Diamond的Active-HDL、VCS、Debussy/Verdi等仿真工具),如果仿真都不能通过那就不用下载了,肯定不行的。在这里先掌握简单的testbench就可以了。推荐的教材是《WRITING TESTBENCHES Functional Verification of HDL Models》。 三、掌握设计方法和设计原则。 你可能发现你综合出来的电路尽管没错,但有很多警告。这个时候,你得学会同步设计原则、优化电路,是速度优先还是面积优先,时钟树应该怎样设计,怎样同步两个异频时钟 《Altera FPGA/CPLD 等等。推荐的教材是《FPGA权威指南》、《IP核芯志-数字逻辑设计思想》、 设计》第二版的基础篇和高级篇两本。学会加快编译速度(增量式编译、LogicLock),静态时序分析(timequest),嵌入式逻辑分析仪(signaltap)就算是通关了。如果有不懂的地方可以暂时跳过,因为这部分还需要足量的实践,才能有较深刻的理解。 四、学会提高开发效率。 因为Quartus和ISE的编辑器功能太弱,影响了开发效率。所以建议使用Sublime text 编辑器中代码片段的功能,以减少重复性劳动。Modelsim也是常用的仿真工具,学会TCL/TK 以编写适合自己的DO文件,使得仿真变得自动化,推荐的教材是《TCL/TK入门经典》。你可能会手动备份代码,但是专业人士都是用版本控制器的,所以,为了提高工作效率,必须掌握GIT。文件比较器Beyond Compare也是个比较常用的工具。此外,你也可以使用System Verilog来替代testbench,这样效率会更高一些。如果你是做IC验证的,就必须掌

FPGA入门系列实验教程——LED跑马灯

艾米电子工作室FPGA入门系列实验教程 FPGA入门系列实验教程V1.0 前言 目前市场销售FPGA开发板的厂商很多,但大多只提供些简单的代码,没有详尽的文档和教程提供给初学者。经验表明,很多学生在学习FPGA设计技术的过程中,虽然刚开始学习热情很高,但真正坚持下来一直到“学会”的却寥寥无几,除了学生个人毅力的因素外,另外一个更主要的原因就是所选的开发板缺少配套的说明文档和手把手系列的入门教程。原本FPGA的学习门槛相对于单片机来说就高了不少,再加上缺少手把手系列教程资料,这就给初学者学习FPGA增添了更多的困难,很多初学者因为找不到入门的方法而渐渐失去了学习FPGA的兴趣和信心。 作者从接著到系统学习FPGA有两年多的时间了,学习FPGA的时间不长,期间因为没有专业的老师指导,自己摸索学习FPGA走了很多的弯路。有过问题迎刃而解的快乐,也有过苦苦寻求结果和答案的痛苦历程,回想起自己学习FPGA的历程,从开始的茫然,到后来的疯狂看书,购买开发板,在开发板上练习各种FPGA实例,到最后能独立完成项目,一路走来,感受颇多。发觉学习FPGA只要选择正确的方法是有捷径可走的,有很多人学习FPGA很长时间,因为没有找到正确的方法还是停留在入门阶段。 针对现状,作者从初学者的角度出发,结合作者学习FPGA的经验和亲身体会,遵循“宁可啰嗦一点,也不放过细节”的原则编写了详尽的实验教程作为艾米电子工作室开发套件的配套教程使用,主要面向FPGA初学者。FPGA的学习只有通过大量的操作与实践才能很好并快速的掌握。为此本实验教程从点亮LED 灯写起,深入浅出,以图文并茂的方式由易到难地列举了很多实例,采用手把手、Step by Step的方式让初学者以最快的方式掌握FPGA技术的开发流程以及Quartus II软件的使用,从而激起初学者学习FPGA的兴趣。在教程中作者采用“授人以渔”的方式,努力做到不仅讲述怎样进行试验,而且分析为什么这样做,以便初学者深刻理解并快速掌握FPGA的学习方法。 本实验教程的所有实例均在艾米电子工作室开发套件上验证通过,本教程虽然简单但编写也花费了作者大量的时间和精力,对于转载需要注明出处:https://www.doczj.com/doc/d9760964.html,(艾米电子工作室作者:静水流深),并未经艾米电子工作室同意不得用于其他商业用途。 FPGA技术是不断发展变化的,要掌握FPGA技术的精髓,需要设计者在实践中不懈地摸索与积累,逐步提高自己的设计水平,本实验教程试图对初学者起到快速入门的作用。但由于作者学习FPGA时间不长,水平有限,错漏和不严谨之处在所难免,欢迎大家批评指正。并请您将阅读中发现的错误或建议发送到作者Email:zhoujie9220@https://www.doczj.com/doc/d9760964.html,,以使本教程不断地完善。

竞争冒险实验

实验十七竞争冒险 一、实验目的 通过实验观察组合电路中存在的竟争冒险现象,学会用实验手段消除责争冒险对电路 的影响. 二、实验内容 1.八位串行奇仍校验电路竞争冒险现象的观察及消除。 图17.1所示电路为八位串行奇偶校验电路。 图17.1八位串行奇、偶校验电路 按图接线。 测试电路的逻辑功能。a.b…g,h分别接逻辑开关K1;~K9,z接发光二级管显示。改变K1~K8的状态.观察并记录Z的变化。

(注:时间关系,仅列举几个有代表性的结果。其中以开关闭合表示“1”,开关断开表示“0”.) K1K2K3K4K5K6K7K8Z 000000001 000000010 000000111 000001110 000011111 000111110 001111111 011111110 111111111 表 由表可以看出每一次开关的断开和闭合都影响发光二极管的状态。

a接脉冲.b.c··h接高电平.用示波器观察并记录a和y湍的波形测出信号经七级异或门的延迟时间。

由上图可以看出,延迟时间为20ms a和h端接同一脉冲.b.c··g为高电平.观察并记录a和y端的波形。说明y端的

波形有何异常现象 如上图所示输出端y出现了原设计中没有的窄脉冲, 若采用加电容的办法来消除此异常现象.则电容C应接在何处 如图所示,滤波电容C应该与输出端并联. ,若设门的输出电阻R0≈100Ω,估算电容C值的大小测出门电路的阈值电压V T

用实验法测出消除上述异常现象所需的电容值.说明产生误差的原因有哪些 2.组合电路竞争冒险现象的观察及消除 组合电路如图17.2所示。 测试电路功能.结果列成真值表形式。 泪实验法测定.在信号变化过程中.竟争冒险在何处,什么时刻可能出现 用校正项的办法来消除竟争冒险.则电路应怎洋修改画出修改后的电路.并用实验验证之。若改用加滤波电容的办法来消除竞争冒险.则电容C应加在何处其值约为多大试通过实验验证之。

组合电路产生竞争冒险的原因及常用的消除竞争冒险的方法。

一、简答题 1、什么是触发器的空翻现象?简述造成空翻现象的原因。 答:如果在一个时钟脉冲的高电平作用下,触发器的状态发生了两次或两次以上的翻转,这叫做“空翻”。 由于是电平触发,在CP=1期间,数据输入端如果连续发生变化,触发器也连续随着变化,直到CP由1变0才停止,造成空翻现象的原因是触发器电平触发。 2.简述时序逻辑电路分析的步骤。 答:(1)观察电路,确定电路类型;是同步时序电路还是异步时序电路;是Mealy 型时序电路还是Moore型时序电路。 (2)根据电路写出各触发器驱动方程及时钟方程(即各触发器的CP信号表达式,如果是同步时序电路,则可不写时钟方程(因为每个触发器均接同一个脉冲源,来一个时钟脉冲,每个触发器同时变化)。 (3)将各触发器的驱动方程带入触发器的特性方程,写出各个触发器次态 1 n Q的逻辑 表达式(即状态方程)。 (4)根据电路写出输出逻辑表达式(输出方程)。 (5)推出时序逻辑电路的状态转换真值表、状态转换图及时序图(又称波形图)。 (6)总结和概括这个时序电路的逻辑功能。 3.最小项的性质。 答:(1)任何一组变量取值下,只有一个最小项的对应值为1; (2)任何两个不同的最小项的乘积为0; (3)任何一组变量取值下,全体最小项之和为1。 4.组合电路产生竞争冒险的原因及常用的消除竞争冒险的方法。 答:在组合电路中,当逻辑门有两个互补输入信号同时向相反状态变化时,输出端可能产生过渡干扰脉冲的现象。常用的消除竞争冒险的方法有:输入端加滤波电容、加封锁或选通脉冲、修改逻辑设计等。 5.简述时序逻辑电路与组合逻辑电路的异同。 答:时序逻辑电路是一种任意时刻的输出不仅取决于该时刻电路的输入,而且还与电路过去的输入有关的逻辑电路。因此,时序逻辑电路必须具备输入信号的存储电路,以便此信号在下一时刻其作用。组合逻辑电路在某一时刻的输出只取决于该时刻逻辑电路的输出,与过去的历史情况无关。因此,不需用存储电路记忆过去的输入,只有门电路就可构成。6.简述触发器的基本性质。 答:每个触发器有两个互非的输出端Q和Q,且有以下两个基本性质: (1)触发器有两个稳定的工作状态 一个是“1”态,即输出端Q=1,Q=0;另一个是“0”态,即输出端Q=0,Q=1。在没有外界信号作用时,触发器维持原有的稳定状态不变。 (2)两个稳定的工作状态相互转变 在外界信号作用下,触发器可以从一个稳定状态翻转为另一个稳定状态。所谓“稳定”的状态,是指没有外界信号作用时,触发器电路中电流和电压均维持恒定数值。 7.逻辑函数的表示方法有哪几种?

仿真与测试竞争冒险现象

项目三 组合逻辑电路 任务一 仿真与测试竞争冒险现象 【学习目标】 1.掌握组合逻辑电路的分析方法; 2.掌握组合逻辑电路的简单设计方法; 3.掌握组合逻辑电路的竞争冒险及消除方法。 【任务引入】 按照逻辑功能不同,数字电路常分两大类:一类组合逻辑电路(简称组合电路);另一类时序逻辑电路(简称时序电路)。如果一个逻辑电路在任何时刻的输出状态只取决于该时刻的输入状态,与电路原来状态无关,这样的电路称为组合逻辑电路。本节课内容我们学习组合逻辑电路的分析与设计方法,了解并掌握组合逻辑电路中的竞争冒险现象及其消除方法。 【基本理论】 一、组合逻辑电路概述 1.组合逻辑电路在电路结构上的特点: (1)构成电路基本元件是门电路,不含记忆单元(存储元件); (2)只有从输入到输出通路,没有从输出反馈到输入回路。 2.组合电路逻辑功能的描述 描述组合电路逻辑功能的方法有逻辑函数式、真值表、逻辑图、工作波形图、卡诺图等几种。 3-1-1 组合逻辑电路的框图 组合逻辑电路n 个输入端,用x1,x2,…,xn 表输入变量; 有m 个输出端,用y1,y2,…,ym 表示输出变量,输出变量与输入变量间逻辑关系: y1 =f1(x1,x2,…,xn) y2 =f2(x1,x2,…,xn) … ym =fm(x1,x2,…,xn) 二、组合逻辑电路的分析与设计 1.组合逻辑电路的分析 步骤如下: (1)用逐级递推法写出输出逻辑函数与输入逻辑变量之间的关系; (2)用公式法或者卡诺图法化简,写出最简逻辑表达式; (3)根据最简逻辑函数式列出功能真值表; (4)根据真值表写出逻辑功能说明,以便理解电路的作用。 例3-1-1:分析下图3-1-2三变量组合逻辑电路的功能。 图3-1-2三变量组合逻辑电路 解: 第一步:写出输出逻辑函数与输入逻辑变量之间的关系,如下: A B C F & & & & AB F =1BC F =2CA F =3

3-1 仿真与测试竞争冒险现象

项目三组合逻辑电路 任务一仿真与测试竞争冒险现象 【学习目标】 1.掌握组合逻辑电路的分析方法; 2.掌握组合逻辑电路的简单设计方法; 3.掌握组合逻辑电路的竞争冒险及消除方法。 【任务引入】 按照逻辑功能不同,数字电路常分两大类:一类组合逻辑电路(简称组合电路);另一类时序逻辑电路(简称时序电路)。如果一个逻辑电路在任何时刻的输出状态只取决于该时刻的输入状态,与电路原来状态无关,这样的电路称为组合逻辑电路。本节课内容我们学习组合逻辑电路的分析与设计方法,了解并掌握组合逻辑电路中的竞争冒险现象及其消除方法。 【基本理论】 一、组合逻辑电路概述 1.组合逻辑电路在电路结构上的特点: (1)构成电路基本元件是门电路,不含记忆单元(存储元件); (2)只有从输入到输出通路,没有从输出反馈到输入回路。 2.组合电路逻辑功能的描述 描述组合电路逻辑功能的方法有逻辑函数式、真值表、逻辑图、工作波形图、卡诺图等几种。 3-1-1 组合逻辑电路的框图 组合逻辑电路n个输入端,用x1,x2,…,xn表输入变量; 有m个输出端,用y1,y2,…,ym表示输出变量,输出变量与输入变量间逻辑关系: y1 =f1(x1,x2,…,xn) y2 =f2(x1,x2,…,xn) … ym =fm(x1,x2,…,xn) 二、组合逻辑电路的分析与设计 1.组合逻辑电路的分析 步骤如下: (1)用逐级递推法写出输出逻辑函数与输入逻辑变量之间的关系; (2)用公式法或者卡诺图法化简,写出最简逻辑表达式; (3)根据最简逻辑函数式列出功能真值表;

(4)根据真值表写出逻辑功能说明,以便理解电路的作用。 例3-1-1:分析下图3-1-2三变量组合逻辑电路的功能。 图3-1-2 三变量组合逻辑电路 解: 第一步:写出输出逻辑函数与输入逻辑变量之间的关系,如下: 第二步:化简写出最简逻辑表达式,得:F=AB+BC+CA 第三步:列出功能真值表 第四步:写出逻辑功能说明 当输入A 、B 、C 中有2个或3个为1时,输出Y 为1,否则输出Y 为0。所以这个电路实际上是一种3人表决用的组合电路:只要有2票或3票同意,表决就通过。 2.组合逻辑电路的设计 组合逻辑电路的设计是根据给定的实际逻辑功能,找出实现该功能的逻辑电路。步骤如下: (1)根据给出的条件,找出什么是逻辑变量,什么是逻辑函数,用字母设出,另外用0 和1各表示一种状态,找出逻辑函数和逻辑变量之间的关系; (2)根据逻辑函数和逻辑变量之间的关系列出真值表,并根据真值表写出逻辑表达式; (3)化简逻辑函数; (4)根据最简逻辑表达式画出逻辑电路; (5)验证所作的逻辑电路是否能满足设计的要求(特别是有约束条件时要验证约束条 件中的最小项对电路工作状态的影响)。 C AB F =1BC F =2CA F =3AC BC AB F F F F 321==

组合竞争冒险现象

组合竞争冒险现象 定义:门电路两个输入信号同时向相反的逻辑电平跳变的现象称为竞争。我们 把由于竞争而在电路输出端可能产生尖峰脉冲的现象叫做竞争-冒险现象。 如图(a)的例子,当输入信号A从1跳变为0时,如果B从0跳变为1,而且B 首先上升,就会出现尖峰脉冲,如图(b)所示。 影响:信号在转换瞬间电路传输信号的速度对电路工作状态产生的组合冒险现 象的影响,有时还比较严重,甚至会发生逻辑错误,产生错误的动作。 当电路对输入信号跳变情况的传输速度相同时,输出波形保持低电平。当电路对输入信号跳变情况的传输速度不相同时,A输入信号还没有降到UIL(max)以下,B输入信号已经跳到UIL(max)以上,在这个瞬间两输入信号同为“1”,输出信号Y也是1,出现了如图(a)所示的正尖波信号,因该信号违反了稳态条件下与门电路的逻辑关系,所以,该信号为不受欢迎的干扰信号。同理也可讨论图(b)所示的或门电路在瞬态出现的负尖波信号。这些干扰信号统称为电压毛刺或噪声。 解决方法: 1.接入滤波电容 见图,为接入滤波电容消除毛刺的影响。毛刺很窄,其宽度可以和门的传输时

间相比拟,因此常在输出端并联滤波电容C。但C的引入会使输出波形边沿变斜,故参数要选择合适,一般由实验确定。 2.引入选通脉冲 毛刺仅发生在输入信号变化的瞬间,因此在这段时间内先将门封住,待电路进入稳态后,再加选通脉冲选取输出结果。该方法简单易行,但选通信号的作用时间和极性等一定要合适。例如,见图,在组合电路中的输出门的一个输入端,加入一个选通信号,即可有效地消除任何冒险现象的影响。 3.修改逻辑设计 如图(a)所示逻辑函数F=AB+A C ,在B=C=1时,F=A+A将产生偏“1”冒 险。增加多余项BC,则当B=C=1 时,F恒为1,所以消除了冒险。即卡诺图化简时多圈了一个卡诺圈,如图(b)所示。相切处增加了一个BC圈,消除了相切部分的影响。 在负载电路对竞争-冒险所产生的尖峰脉冲不敏感时,如负载为发光器件,竞争-冒险所产生的尖峰脉冲对电路的工作没有影响,可不必考虑这一问题。

竞争冒险原理

竞争冒险原理 (一)一般竞争冒险的产生及消除 1. 理论上分析组合逻辑电路时, 都没有考虑门电路的延迟时间对电路产生的影响。 实 际上,从信号输入到输出稳定都需要一定的时间。由于从输入到输出的过程中,不 同通路上门的级数不同, 或者门电路平均延迟时间的差异, 使信号从输入经不同通 路传输到输出级的时间不同。由于这个原因,可能会使逻辑电路产生错误输出。通 常把这 种现象称为竞争冒险。 2. 竞争冒险现象有两种情况,分别是 0型竞争冒险现象和 1型竞争冒险现象。 (1) 0型竞争冒险现象 如下图所示: 输出函数L A A ,在电路达到稳定时,即静态时,输出 L 总是1。然而在 A 变化时(动态时),从图12-2可见,在输出L 的某些瞬间会出现 0,即当A 经历 1变0的 变化时,L 出现窄脉冲,即电路存在静态 0型竞争冒险现象。或门 G2的 两个输入信号分别由 G1和A 端两个路径在不同时刻到达的现象,通常称为竞争, 由此产生输出干扰脉冲的现象称为冒险。 (2) 1型竞争冒险现象 如下图所示: 输出L AA ,在电路达到稳定时,即静态时,输出 L 总是0。然而在A 变化时 (动态时),从图12-4可见,在输出L 的某些瞬间会出现 1,即当A 经历0变1的 变化时,L 出现窄脉冲,即电路存在静态 1型竞争冒险现象。 3. 总结 当电路中存在由反相器产生的互补信号,且在互补信号的状态发生变化时可能出 现竞争冒险现象。 4. 消除竞争冒险的方法 (1) 发现并消掉互补变量 G1 L 」——11 — 图12-4波形图 图12-1 0型竞争冒险电路图 图12-2 波形图 12-3 1型竞争冒险电路图

Xilinx_FPGA中文教程

Spartan-3E Starter Kit Board User Guide

Chapter 1: Introduction and Overview Chapter 2: Switches, Buttons, and Knob Chapter 3: Clock Sources Chapter 4: FPGA Configuration Options Chapter 5: Character LCD Screen Chapter 6: VGA Display Port Chapter 7: RS-232 Serial Ports Chapter 8: PS/2 Mouse/Keyboard Port Chapter 9: Digital to Analog Converter (DAC) Chapter 10: Analog Capture Circuit Chapter 11: Intel StrataFlash Parallel NOR Flash PROM Chapter 12: SPI Serial Flash Chapter 13: DDR SDRAM Chapter 14: 10/100 Ethernet Physical Layer Interface Chapter 15: Expansion Connectors Chapter 16: XC2C64A CoolRunner-II CPLD Chapter 17: DS2432 1-Wire SHA-1 EEPROM

Chapter 1:Introduction and Overview Spartan-3E 入门实验板使设计人员能够即时利用Spartan-3E 系列的完整平台性能。 设备支持设备支持::Spartan-3E 、CoolRunner-II 关键特性关键特性::Xilinx 器件: Spartan-3E (50万门,XC3S500E-4FG320C), CoolRunner?-II (XC2C64A-5VQ44C)与Platform Flash (XCF04S-VO20C) 时钟时钟::50 MHz 晶体时钟振荡器 存储器: 128 Mbit 并行Flash, 16 Mbit SPI Flash, 64 MByte DDR SDRAM 连接器与接口: 以太网10/100 Phy, JTAG USB 下载,两个9管脚RS-232串行端口, PS/2类型鼠标/键盘端口, 带按钮的旋转编码器, 四个滑动开关,八个单独的LED 输出, 四个瞬时接触按钮, 100管脚hirose 扩展连接端口与三个6管脚扩展连接器 显示器: VGA 显示端口,16 字符- 2 线式 LCD 电源电源::Linear Technologies 电源供电,TPS75003三路电源管理IC 市场: 消费类, 电信/数据通信, 服务器, 存储器 应用: 可支持32位的RISC 处理器,可以采用Xilinx 的MicroBlaze 以及PicoBlaze 嵌入式开发系统;支持DDR 接口的应用;支持基于Ethernet 网络的应用;支持大容量I/O 扩展的应用。 Choose the Starter Kit Board for Your Needs Spartan-3E FPGA Features and Embedded Processing Functions Spartan3-E FPGA 入门实验板具有Spartan3-E FPGA 系列突出独特的特点和为嵌入式处理发展与应用提供了很大的方便。该板的特点如下: Spartan3-E 特有的特征:并行NOR Flash 配置;通过并行NOR Flash PROM 实现FPGA 的多种配置方式 嵌入式系统:MicroBlaze? 32-bit 嵌入RISC 处理器;PicoBlaze? 8-bit 嵌入控制器;DDR 存储器接口 Learning Xilinx FPGA, CPLD, and ISE Development Software Basics Spartan3-E FPGA 入门实验板比其他的入门实验板先进、复杂。它是学习FPGA 或CPLD 设计和怎样运用ISE 软件的基础。 Advanced Spartan-3 Generation Development Boards 入门实验板示范了MicroBlaze? 32-bit 嵌入式处理器和EDK 的基本运用。其更先进的地方

相关主题
文本预览
相关文档 最新文档