新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Altera器件时间匹配问题的解决方案

Altera器件时间匹配问题的解决方案

作者:时间:2010-12-10来源:网络收藏

2.3 重新设计电路

毛刺是信号趋于稳定前不必要的开关动作,使每个时钟沿改变了寄存器间组合逻辑的输入。对每个节点而言,不同的输入路径有不同的延时,这将多次改变状态。节点上的毛刺多少与该节点的逻辑深度,也就是节点至最初输入的逻辑门个数有关。到达节点的逻辑锥体越深、越宽,毛刺也越多。降低逻辑深度,减少逻辑锥体的开关输入可减少这类毛剌。时序驱动合成以及逻辑单元的合理映射能减少逻辑级的数量。

如果一个计数器的输出端接一个组合电路,这个组合电路的输出端产生了毛刺,最好的解决方法是重新设计电路,只要在这一时刻改变计数器输出端子的输出顺序,就可以消除下一级组合电路输出端的毛刺。例如,在下面程序中,在这一时刻改变q0、q1、q2输出顺序,就能解决计数器输出所接的组合电路输出端毛刺的

subdesign modcount
(clk,reset:input;
q[2..0]utput;
)
variable
counter3:machine of bits(rr[2..0])
with states(r0=B101, --换成r5的输出
r1=B100, --换成r4的输出
r2=B000, --换成r0的输出
r3=B001, --换成r1的输出
r4=B011, --换成r3的输出
r5=B010, --换成r2的输出
r6=B110,
r7=B111);
begin
q[ ]=rr[ ];
counter3.reset=reset;
counter3.clk=clk;
CASE counter3 IS
when r0=>counter3=r1;
when r1=>counter3=r2;
when r2=>counter3=r3;
when r3=>counter3=r4;
when r4=>counter3=r5;
when r5=>counter3=r6;
when r6=>counter3=r7;
when r7=>counter3=r0;
END CASE;
End ;

3 行波时钟

行波时钟是计数器通常使用的一种时钟方式,而使用行波时钟是可能引起潜在的另一个因素。所谓行波时钟是指一个寄存器的输出为另一个寄存器产生时钟,而不是使用一个公共的系统时钟。如果仔细设计,行波时钟可以像全局时钟一样可靠工作,但是行波时钟使得与电路有关的定时计算变得很复杂。行波时钟在行波链上各寄存器时钟之间将产生较大的偏移,并且会超出最坏情况下的建立时间、保持时间和电路中时钟到输出的延时,使系统的实际速度下降。在图5(a)中使用行波时钟所示电路的时钟周期依赖于计数器最低位的变化沿计数器传播到最高位所花的时间,这个周期与计数器的位数有关。随着逐位进位计数器的位数增加,系统的速度将下降,为此可使用同步电路来解决这个问题,如图5(b)所示。当把异步计数器改成同步操作时,系统的速度由寄存器的建立和保持时间决定,而不是由计数器的位数决定。同步电路不需要使用附加的资源,就可以提高计数器的速度,并消除出现非法计数数值的可能性。

本文引用地址:http://www.eepw.com.cn/article/151258.htm

还可以通过在MAX+PLUSII中仔细地分配资源,来提高设计的可靠性。在MAX中通过PIA的信号将会有时间延时。为消除这种延时,可以在MAX+PLUSⅡ中进行团体分配,也就是将计数器邻接的位安排在同一个LAB中的诸宏单元内。

4 结束语

在组合电路中,从信号输入到稳定输出需要一定的时间。由于从输入到输出的过程中,不同通路上门的级数不同,或者门电路平均延迟时间的差异,使信号从输入经不同通道传输到输出级的时间不同,由于这个原因,就产生了毛刺。这是一个普遍性的问题。本文对解决毛刺的方法作了一个总结,有利于大家快速、准确设计稳定的集成电路。在这个问题上,AHDL语言比VHDL语言要直观、易于理解。从宏观上看,要解决设计中的时间问题,要使用同步设计。采用同步电路设计也可以使电路免受外部因素影响(如硅处理工艺和温度变动)而造成的时间匹配问题。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭