Verilog实现同步整形电路的原理及代码解析
2017-11-06 21:09
417 查看
问题来源:
写RS-232串口的时候,涉及到按键处理逻辑模块,需要将“”在板子上按键”这一动作转化为一个脉冲信号。这一过程是通过同步整形电路实现的,精确表述如下:
将外部输入的异步信号进行同步处理(与系统时钟同步)和整形(将输入信号由不规则波形提取为具备一个或多个时钟周期长得脉冲信号)。
源代码有关片段如下:
[cpp] view
plain copy
reg [2:0] bv1;
wire bv1_posedge;
always@(posedge bclk)
begin
bv1 <= {bv1[1:0],BUTTON_N};
end
//完成用户按钮脉冲的提取
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次采样。然后将然后将一次采样结果取反和二次采样结果相与得到输出信号。
这是根据采样方法来分析的,大家有不同意见可以多交流,相互学习。
写RS-232串口的时候,涉及到按键处理逻辑模块,需要将“”在板子上按键”这一动作转化为一个脉冲信号。这一过程是通过同步整形电路实现的,精确表述如下:
将外部输入的异步信号进行同步处理(与系统时钟同步)和整形(将输入信号由不规则波形提取为具备一个或多个时钟周期长得脉冲信号)。
源代码有关片段如下:
[cpp] view
plain copy
reg [2:0] bv1;
wire bv1_posedge;
always@(posedge bclk)
begin
bv1 <= {bv1[1:0],BUTTON_N};
end
//完成用户按钮脉冲的提取
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次采样。然后将然后将一次采样结果取反和二次采样结果相与得到输出信号。
这是根据采样方法来分析的,大家有不同意见可以多交流,相互学习。
相关文章推荐
- Verilog实现同步整形电路的原理及代码解析
- 判断手机是否ROOT 代码实现+ Android 操作系统 获取Root权限 原理解析
- js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
- apkprotect(免费android代码混淆、加密保护工具) Android中的Apk的加固(加壳)原理解析和实现
- JS 实现2+2=5的代码 实现原理解析
- FPGA基础知识12(FIFO 同步、异步以及Verilog代码实现)
- Verilog同步整形电路
- 机器学习逻辑回归:原理解析及代码实现
- 多线程下载,断点续传原理解析和代码实现
- JS 实现2+2=5的代码 实现原理解析
- 从系统和代码实现角度解析TensorFlow的内部实现原理 | 深度
- js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
- 快速傅里叶变换(FFT)的原理、实现及代码解析(附C#源码)
- 【算法】(查找你附近的人) GeoHash核心原理解析及代码实现
- Mybatis 代码流程及实现原理解析(三)
- jquery绑定原理 简单解析与实现代码分享
- GeoHash核心原理解析及java代码实现(转)
- 关联规则挖掘算法之Apriori算法的原理解析及代码实现
- 分享:FIFO 同步、异步以及Verilog代码实现
- 快速傅里叶变换(FFT)的原理、实现及代码解析(附C#源码)