1、FPGA 建立时间(setu p time)&保持时间(hold time)&竞争和冒险&毛刺 建立时间(setu p time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间, 如果保持时间不够,数据同样不能被打入触发器
数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零
PLD/FPGA 开发软件可以自动计算两个相关输入的建立和保持时间 竞争和冒险 PLD 内部毛刺产生的原因 我们在使用分立元件设计数字系统时,由于 PCB 走线时,存在分布电感和电容,所以几纳秒的毛刺将被自然滤除,而在 PLD 内部决无分布电感和电容,所以在 PLD/FPGA 设计中,竞争和冒险问题将变的较为突出
FPGA 中的冒险现象 信号在 FPGA 器件内部通过连线和逻辑单元时,都有一定的延时
延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响
信号的高低电平转换也需要一定的过渡时间
由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"
如果一个组合逻辑电路中有"毛刺"出现,就说明该电路存在"冒险"
(与分立元件不同,由于 PLD 内部不存在寄生电容电感,这些毛刺将被完整的保留并向下一级传递,因此毛刺现象在 PLD、FPGA 设计中尤为突出) 图 1 给出了一个逻辑冒险的例子,从图 6
22 的仿真波形可以看出,"A、B、C、D"四个输入信号经过布线延时以后,高低电平变换不是同时发生的,这导致输出信号"OUT"出现了毛刺