Verilog实现同步整形电路的原理及代码解析

问题来源:

写RS-232串口的时候,涉及到按键处理逻辑模块,需要将“”在板子上按键”这一动作转化为一个脉冲信号。这一过程是通过同步整形电路实现的,精确表述如下:

将外部输入的异步信号进行同步处理(与系统时钟同步)和整形(将输入信号由不规则波形提取为具备一个或多个时钟周期长得脉冲信号)。

源代码有关片段如下:

[cpp]  view plain  copy
  1. reg  [2:0] bv1;  
  2. wire bv1_posedge;  
  3.   
  4. always@(posedge bclk)  
  5. begin  
  6.     bv1 <= {bv1[1:0],BUTTON_N};  
  7. end  
  8.   
  9. //完成用户按钮脉冲的提取  
  10. assign bv1_posedge = (!bv1[2]) & bv1[1];  
。解析前,先明确整形电路的方法是:同步整形的基本方法就是通过时钟对异步信号连续采样得到同步信号,然后由前后两
次的同步采样进行逻辑组合得到整形输出。所以要先进行两次采样, bv1写成:bv1 <= {bv1[1],bv1[0],BUTTON_N};第一次采样时写成bv1 <= {bv1[0],BUTTON_N,BUTTON_N'}  第二次采样可以写成bv1 <= { BUTTON_N , BUTTON_N',BUTTON_N'' }.由此就得到2次采样。然后将然后将一次采样结果取反和二次采样结果相与得到输出信号。




这是根据采样方法来分析的,大家有不同意见可以多交流,相互学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值