第6章 FPGA设计中的注意问题.ppt
第6章FPGA设计中的注意问题
6.1 建立和保持时间
6.2 冒险现象
6.3 时钟问题
6.4 清零和置位信号
6.5 信号的延时
6.6 流水线
6.7 FSM
6.8 TestBench
6.1 建立和保持时间
“建立时间”定义为在时钟跳变前数据必须保持稳定
(无跳变)的时间。
“保持时间” 定义为在时钟跳变后数据必须保持稳定的
时间,如图所示。每一种具有时钟和数据输入的同步数字
电路都会在技术指标表中规定这两种时间。
6.2 冒险现象
几乎所有关于数字电路的教材,都会提到数字电路中的
竞争和冒险问题,但是这个问题往往被我们忽略。我们可以
先来回顾一下关于竞争和冒险的一些基本概念。
当一个门的输入有两个或两个以上的变量发生
改变时,由于这些变量是经过不同路径产生的,使
得它们状态改变的时刻有先有后,这种时差引起的
现象称为竞争(Race )。
竞争的结果若导致冒险或险象(Hazard )发生(例如毛
刺),并造成错误的后果,那么就称这种竞争为临界竞争。
若竞争的结果没有导致冒险发生,或虽有冒险发生,但不影
响系统的工作,那么就称这种竞争为非临界竞争。
组合逻辑电路的险象仅在信号状态改变的时刻出现毛
刺,这种冒险是过渡性的,它不会使稳态值偏离正常值,但
在时序电路中,冒险是本质的,可导致电路的输出值永远偏
离正常值或者发生振荡。
图6.21 存在逻辑冒险的电路示例
图6.22仿真波形
组合逻辑电路的冒险是过渡性冒险,从冒险的
波形上,可分为静态冒险和动态冒险。
输入信号变化前后,输出的稳态值是一样的,
但在输入信号变化时,输出信号产生了毛刺,这种
冒险是静态冒险。若输出的稳态值为0,出现了正
的尖脉冲毛刺,称为静态0冒险。若输出稳态值为
1,出现了负的尖脉冲毛刺,则称为静态1冒险。
输入信号变化前后,输出的稳态值不同,并在
边沿处出现了毛刺,称为动态险象(冒险)。
信号在FPGA器件内部通过连线和逻辑单元时,都有一
定的延时。
延时的因素:连线的长短、逻辑单元的数目、器件的制
造工艺、工作电压、温度等。
信号的高低电平转换也需要一定的过渡时间。
多路信号的电平值发生变化时,在信号变化的瞬间,
组合逻辑的输出状态不确定,往往会出现一些不正确的尖
峰信号,这些尖峰信号称为“毛刺” 。 存在“ 冒险”
冒险往往会影响到逻辑电路的稳定性, 时钟端口、
清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可
能会使系统出错,因此判断逻辑电路中是否存在冒险以及
如何避免冒险是设计人员必须要考虑的问题。
我们可以通过改变设计,破坏毛刺产生的条件,来减
少毛刺的发生。例如,在数字电路设计中,常常采用格雷
码计数器取代普通的二进制计数器,这是因为格雷码计数
器的输出每次只有一位跳变,消除了竞争冒险的发生条
件,避免了毛刺的产生。
十进制数 自然二进制数 格雷码 十进制数 自然二进制数 格雷码
0 0000 0000 8 1000 1100
1 0001 0001 9 1001 1101
2 0010 0011 10 1010 1111
3 0011 0010 11 1011 1110
4 0100 0110 12 1100 1010
5 0101 0111 13 1101 1011
6
原创力文档

文档评论(0)