异步信号边沿检测电路该如何实现呢?.docx
《异步信号边沿检测电路该如何实现呢?.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信号输出一个时钟周期的高电平;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 异步 信号 边沿 检测 电路 如何 实现