欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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.上升沿检测电路时序图

FPGA边沿检测电路及verilog代码
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.下降沿检测时序图

FPGA边沿检测电路及verilog代码

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.双降沿检测时序图

FPGA边沿检测电路及verilog代码

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

相关标签: FPGA verilog