如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
FPGA设计中的时序分析及异步设计注意事项?DragonWHteam什么是建立和保持时间建立时间和保持时间:建立时间(setuptime):是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(holdtime):是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。?DragonWHteam2时序分析基础电路设计的难点在时序设计,而时序设计的实质就是满足每一①组合其它控制信号DQ逻辑DQREG1REG2个触发器的建立/保持时间的要求。CLK②③T_cycleT1CLKCREG1T1TREG2(D)nn+1TsThCLK(REG2)TREG2(Q)nn+1?DragonWHteam3时序分析基础-续如上图所示,以REG2为例,假定触发器的建立时间要求为:T_setup,保持时间要求为:T_hold,路径①延时为:T1,路径②延时为:T2,路径③延时为:T3,时钟周期为:T_cycle,Ts=(T_cycle+△T)-T1,Th=T1-△T,令△T=T3-T2,则条件1.如果T_setup<Ts,即T_setup<(T_cycle+△T)-T1,这说明信号比时钟有效沿超过T_setup时间到达REG2的D端,满足建立时间要求。反之则不满足;条件2.如果T_hold<Th,即T_hold<T1-△T,这说明在时钟有效沿到达之后,信号能维持足够长的时间,满足保持时间要求。反之则不满足。从条件1和2我们可以看出,当△T>0时,T_hold受影响;当△T<0时,T_setup受影响。?DragonWHteam4时序分析基础-续如果我们采用的是严格的同步设计电路,即一个设计只有一个CLK,并且来自时钟PAD或时钟BUFF(全局时钟),则△T对电路的影响很小,几乎为0;如果采用的是异步电路,设计中时钟满天飞,无法保证每一个时钟都来自强大的驱动BUFF(非全局时钟),如下图所示,则△T影响较大,有时甚至超过人们想象。这就是为什么我们建议采用同步电路进行设计的重要原因之一。其它控制信号①组合DQ逻辑DQREG1REG2②CLK组合逻辑③?DragonWHteam5异步设计中常见问题及其解决方法很多异步设计都可以转化为同步设计,对于可以转化的逻辑必须转化,不能转化的逻辑,应将异步的部分减到最小,而其前后级仍然应该采用同步设计。下面给出一些异步逻辑转化为同步逻辑的例子:?DragonWHteam6异步设计中常见问题及浣饩龇椒ǎ?1、门控时钟DQinputclk组合逻辑门控时钟是非常危险的,极易产生毛刺,使逻辑误动作。在可编程逻辑器件中,一般使用触发器的时钟使能端,而这样,并不增加资源,只要保证建立时间,可使毛刺不起作用。改进后电路:Dinput图4.19Q组合逻辑clkENA图4.20?DragonWHteam7异步设计中常见问题及其解决方法-续2、组合逻辑产生时钟在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。组合逻辑的时钟如果产生毛刺,易使触发器误翻转。D输入Q...组合逻辑使用触发器的时钟使能端,并不增加资源,只要保证建立时间,可使毛刺不起作用。改进后电路:DinputQ组合逻辑clkENA?DragonWHteam8异步设计中常见问题及其解决方法-续3、不规则的计数器+1Q[5:0]DQ=53clk6位二进制计数器。CLRN图4.6这是一个53计数器,采用计到53后产生异步复位的办法实现清0,产生毛刺是必然的。然而最严重的是,当计数器所有bit或相关bit均在翻转时,电路有可能出错,例如:计数器从“110011”->“110100”,由于电路延时的原因,中间会出现“110101”状态,导致计数器误清0。采用同步清0的办法,不仅可以有效地消除毛刺,而且能避免计数器误清0。电路如下图所示。?DragonWHteam9异步设计中常见问题及其解决方法-续+1Q[5:0]"000000"DQ=52clk6位二进制计数器规则的计数器图4.7?DragonW