FPGA边沿检测电路及verilog代码
程序员文章站
2022-03-11 16:18:25
文章目录前言一、上升沿检测电路原理1.上升沿检测电路2.读入数据总结前言所谓边沿检测,就是检测输入信号的上升沿和下降沿。在设计数字系统时,边沿检测是一种很重要的思想,实际编程时用的最多的时序电路应该就是边沿检测电路和分频电路了。所谓边沿检测就是,若是由1变为0,能够检测到下降沿,则被称为下降沿检测电路(negedge edge dttection circuit),能够同时检测上升沿与下降沿的电路称为双沿检测电路(double edge detection)一、上升沿检测电路原理对前一个cl...
文章目录
前言
所谓边沿检测,就是检测输入信号的上升沿和下降沿。在设计数字系统时,边沿检测是一种很重要的思想,实际编程时用的最多的时序电路应该就是边沿检测电路和分频电路了。 所谓边沿检测就是若是由0变为1,能够检测到上升沿,则被称为上升沿检测电路;若是由1变为0,能够检测到下降沿,则被称为下降沿检测电路,能够同时检测上升沿与下降沿的电路称为双沿检测电路(double edge detection)一、上升沿检测电路
对前一个clock状态和目前clock状态的比较,如果是由0变为1,能够检测到上升沿,则称为上升沿检测电路。
1.上升沿检测电路时序图
clk:时钟信号,i_a:输入信号,r_a:打一拍的输入信号,i_a&~r_a:i_a的上升沿生成一个周期的高电平,且在i_a上升沿后的一个后的一个周期的高电平。
1.上升沿检测verilog代码
代码如下(示例):
module POS(
input i_rst, //复位
input clk, //时钟
input i_a, //输入信号
output o_pos //输出上升沿检测信号
);
//signal=======================================
reg r_a;
//output=======================================
assign o_pos=i_a&~r_a;
//logic========================================
always @ (posedge clk) begin
r_a<=i_a;
end
二、下升沿检测电路
1.下降沿检测时序图
2.下降沿检测电路verilog代码
代码如下(示例):
module NEG(
input i_rst, //复位
input clk, //时钟
input i_a, //输入信号
output o_neg //输出下升沿检测信号
);
//signal=======================================
reg r_a;
//output=======================================
assign o_neg=~i_a&r_a;
//logic========================================
always @ (posedge clk) begin
r_a<=i_a;
end
三、双升沿检测电路
1.双降沿检测时序图
2.双沿检测verilog代码
代码如下(示例):
module DUAL(
input i_rst, //复位
input clk, //时钟
input i_a, //输入信号
output o_dual //输出双升沿检测信号
);
//signal=======================================
reg r_a;
//output=======================================
assign o_dual=i_a!=r_a;
//logic========================================
always @ (posedge clk) begin
r_a<=i_a;
end
这里是引用
总结
提示:这里对文章进行总结:
以上介绍了上升沿检测电路时序图、下降沿检测电路时序图及双沿检测电路时序图及其代码,引入的问题是i_a和时钟clk属于异步信号,需要进行异步转同步处理,之后再做介绍。
本文地址:https://blog.csdn.net/weixin_50992209/article/details/108837995