异步信号边沿检测电路该如何实现呢?.docx

上传人:lao****ou 文档编号:800586 上传时间:2024-05-27 格式:DOCX 页数:4 大小:86.13KB
下载 相关 举报
异步信号边沿检测电路该如何实现呢?.docx_第1页
第1页 / 共4页
异步信号边沿检测电路该如何实现呢?.docx_第2页
第2页 / 共4页
异步信号边沿检测电路该如何实现呢?.docx_第3页
第3页 / 共4页
异步信号边沿检测电路该如何实现呢?.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《异步信号边沿检测电路该如何实现呢?.docx》由会员分享,可在线阅读,更多相关《异步信号边沿检测电路该如何实现呢?.docx(4页珍藏版)》请在第一文库网上搜索。

1、异步信号边沿检测电路该如何实现呢?所谓边沿检迦(又叫沿提取),就是检测输入信号的上升沿和下降沿。在设计数字系统时,边沿检测是一种很重要的思想,实际编程时用的最多的时序电路应该就是边沿检测电路和分频电路了。那么,边沿检测电路该如何实现呢?我们知道,在a1ways块的敏感信号列表中可以直接用posedge和negedge来提取上升沿和下降沿,但是如果要在a1ways程序块的内部检测上升沿或者下降沿呢?还是用四Sedge和negedge吗?显然是不可以的,因为这样的语句不可综合,我在QUartUS1I中尝试了,编译时提示“mu1tip1eeventcontro1statementsnotsuppor

2、tedforsynthesis!,意思就是不可综合。实际上,posedge和negedge只能用在a1ways块的敏感信号列表中或者testbench中,所以我们还是通过其他的办法来实现吧。要实现边沿检测,最直接的想法是用两级数谴,第二级寄存器锁存住某个班上升沿到来时的输入电平,第一级寄存器锁存住下一个时钟沿到来时的输入电平,如果这两个寄存器锁存住的电平信号不同,就说明检测到了边沿,具体是上升沿还是下降沿可以通过组合逻辑来实现。如下图所示:图1用两级寄存器实现边沿检测上图使用b1ock图表示的,也可以用VeriIog编写出来,代码如下:边沿检测电路/2014/12/10modu1eedgeca

3、p(inpute1k,rst_n,inputpu1se,outputpos_edge,);regpu1se_r1,pu1se_r2;a1ways(posedgee1kornegedgerstn)if(!rstn)beginpu1se_r1=b;pu1se_r2=b;ende1sebeginpu1se_r1=pu1se;pu1se_r2=pu1se_r1;endassignpos_edge=(pu1se_r1&pu1se-r2)?1:0;assignneg_edge=Cpu1se_r1&pu1se_r2)?1:0;endmodu1e当检测到上升沿时,pos_edge信号输出一个时钟周期的高电平;

4、检测到下降沿时,neg_edge输出一个时钟周期的高电平。乍一看,这个电路似乎很简单地实现了边沿检测的功能,但是仔细分析就可以发现这种方法存在一个潜在的风险:当待测信号pu1se是一个异步信号时,输出可能是亚稳态,如果PUISe信号的变化刚好发生在C1k时钟的建立时间和保持时间之内,那么第一级寄存器的输出pu1se.r1就会进入亚稳态,而pu1se_r1的亚稳态会立即传递给pos_edge和neg_edge信号,从而使得整个电路的输出进入亚稳态,进而影响下一额电路的正常工作,甚至导致整个系统崩溃!因此,在进行异步信号边沿提取时,不能直接使用上面的这种电路,而应该先将异步信号同步化,一般采用多加

5、一级寄存器的方法来减小亚稳态的发生概率,如下图所示:图2异步信号边沿检测也可以用VeriIog编写出来,代码如下:异步信号边沿检测电路,三级寄存器实现/2014/12/08modu1eedgecap(inpute1k,rst_n,inputpu1se,outputpos_edge,outputneg_edge);regpu1se_r1,pu1se_r2,pu1se_r3;a1ways(posedgee1kornegedgerst_n)if(!rst_n)beginpu1se_r1=1,b;pu1se_r2=b;pu1se_r3=b;ende1sebeginpu1se_r1=pu1se;pu1s

6、e_r2=pu1se_r1;pu1se_r3=pu1se_r2;endassignneg_edge=(pu1se-r2&pu1se_r3)?1:0;endmodu1e经过这样的同步处理后,可以大大减小电路进入亚稳态的概率,如果第一级寄存器进入了亚稳态,一般也会在一个C1k周期内稳定下来(可能稳定为0也可能稳定为1),如下图所示:图中PUISe信号的改变刚好发生在C1k的建立时间和保持时间之内,因而第一级寄存器的输出pu1se_r1可能会进入亚稳态,图中Tco为第一级寄存器PUISe的状态建立时间(即C1oCktooutput),一般情况下,亚稳态的决断时而(即从进入亚稳态到稳定下来的时间)不会超过一个时钟周期,因此在下一个CIk上升沿到来之前,pu1sJr1已经稳定下来(可能稳定到0也可能稳定到1),这样第二级寄存器就会采集到一个稳定的状态,从而把亚稳态限制在第二级寄存器之前,保证了整个电路输出的稳定性。综上所述,在异步信号边沿检测电路中,至少需要采用三级寄存器来实现,在对系统稳定性要求较高的数字系统中,可以采用更多级的寄存器来减小亚稳态发生概率,提高系统稳定性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服