新闻中心

EEPW首页>嵌入式系统>设计应用> FPGA设计中毛刺信号解析

FPGA设计中毛刺信号解析

作者: 时间:2011-08-08 来源:网络 收藏

  注意在新的计数器中,每次状态发生改变时Q0,Q1,Q2 只有1位发生跳变,从根本上消除了。但计数器的输出状态没有规律,不便于其他电路利用。如果希望计数器的输出状态有规律变化以便其他电路使用,可以考虑采用双输出电路,一路是单输出,一路是正常计数输出。这种方法从根本上消除了产生的根源,具有普遍的意义,对系统也不会产生影响,是最为可靠的方法,其不利之处是这种方法对VHDL语言要求比较高,必须对电路的工作状态及其转变有全面的分析和掌握,而随着电路的复杂度提高,产生的来源繁杂,实现起来比较困难。

  对于一般情况下产生的毛刺,可以尝试用D触发器来消除。但用D触发器消除时,有时会影响到时序,需要考虑很多问题。所以应根据不同情况,仔细地分析毛刺产生的来源和毛刺的性质,结合系统资源选择具体办法,消除毛刺的影响。

4具体实例

  在实际应用中要对一个周期同步脉冲进行检测,要求若在给定的时间内没有检测到同步则给出一定脉冲宽度的高电平,作为复位信号。思想是采用一个计数器,当有同步信号时对其清零,并同时开始计数,根据给定时间和系统时钟周期设定计数器的模数,经过给定的时间后输出高电平,满足宽度后再置低。

  实际要求检测时间大约1 s,脉冲宽度保持在20 ms左右,采用5片74161级联,第5片计数器的ROC接D触发器的使能端。同步信号输入后,清零并开始计数,若不再出现同步脉冲,经16^5 个时钟周期后,第5片的RCO端输出一个高电平,使触发器的Q输出D(高电平),再过16^3*2个时钟周期后使第4片的QA,QB,QC,QD接组合门电路输出低电平,接到D触发器的计数器预制端,使Q输出为零。这样就实现经一定延时后的一定宽度的脉冲。经仿真结果如图4所示。

  仿真平台采用Max+PlusⅡ,时钟周期设为10 ns,经计算可以知道在10.485 928 2 ms处产生宽度为81.92μs的高电平,但由于存在数据建立时间和保持时间,仿真结果中的变化时刻并不是严格与计算相符的,其中 q0,q1,q2,q3是第5片74161的输出,roc1是第4片的进位输出,roc是第5片的进位输出,roc1输出16个高电平后,roc同时输出一个高电平。图4中复位信号reset却在5.247 ms和10.485 297 9 ms处发生。第一个错误的原因是,由于计数器累加,内部走线造成的延时,当第5片计数器从0111状态跳变到1 000时,输入同时有3位变化,致使进位输出roc在roc1的第8个输出时产生了一个尖脉冲,使触发器的Q端提前发生电平转变,导致了在5.247 ms处产生错误复位信号。同样的原因,第4片的进位输出roc1在第14个输出跳变到第15个输出时发生毛刺,而该毛刺使第5片161进入计数状态,在roc端也产生了毛刺,就出现了图4中复位信号提前翻转的结果。

  对于该电路中存在的毛刺问题,可以采用2种方法修改电路。由于该电路对时间要求的不是很严格,对第4,5片74LS161取1110状态做最后输出,就避免了由延迟造成的假象全1状态,仿真结果证明这种方法是有效的。但这种方法增加了逻辑门数量,同时也增加了险象发生的可能性。

  另一种比较可靠且常用的方法是用带使能端的D触发器代替原来的触发器,把计数器最后的输出roc接到触发器的使能端,时钟用统一的计数时钟,由于毛刺本身是尖脉冲,不能满足数据的建立时间和保持时间,避免了产生的毛刺对Q的输出的影响。从仿真结果(图5)中可以看到,虽然这种方法并不能消除毛刺,但是毛刺已经不具有危害性,故这是一种简单有效的方法。

5结语

  毛刺问题在中非常关键,只有深刻理解毛刺的本质,才有可能真正掌握的精髓,本文就设计中的毛刺问题进行了深入的探讨,分析其产生的原因和条件,给出了几种常用的消除方法,希望对设计者有一定的参考作用。

尘埃粒子计数器相关文章:尘埃粒子计数器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭