1. Verilog捕获信号上升沿

(1)verilog代码

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/11/08 15:36:43
// Design Name:
// Module Name: pedge_nedge
// Project Name:
// Target Devices:
// Tool Versions:
// Description: 捕获信号上升沿
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module pedge_nedge(input  wire  clk,         //时钟输入input  wire  rst,         //复位input  wire  signal_in,   //信号输入output wire  signal_pedge //信号上升沿);//*********信号输入打两拍,消除亚稳态***********reg signal_1;
reg signal_2;always@(posedge clk)begin{signal_2,signal_1} <= {signal_1,signal_in};
end//******************************************//****************捕获上升沿******************reg pedge;
reg level_h;always@(posedge clk or negedge rst)beginif(rst == 1'b0)pedge <= signal_2;elsepedge <= signal_2;
endalways@(posedge clk or negedge rst)beginif(rst == 1'b0)level_h <= 1'b0;else if((signal_2 == 1'b1)&&(pedge == 1'b0))level_h <= 1'b1;elselevel_h <= 1'b0;
end
//******************************************assign signal_pedge = level_h;endmodule

(2)仿真代码

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/11/08 17:23:19
// Design Name:
// Module Name: tb_pedge_nedge
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module tb_pedge_nedge();reg  clk;        //时钟输入
reg  rst;         //复位
reg  signal_in;   //信号输入wire  signal_pedge; //信号上升沿initial beginclk  = 1'b0;rst <= 1'b0;#10rst <= 1'b1;
endalways #5 clk = ~clk;initial beginsignal_in <= 1'b0;#17signal_in <= 1'b1;#10signal_in <= 1'b0;#25signal_in <= 1'b1;#6signal_in <= 1'b0;
endpedge_nedge pedge_nedge_inst(.clk(clk),         //时钟输入.rst(rst),         //复位.signal_in(signal_in),   //信号输入.signal_pedge(signal_pedge) //信号上升沿);endmodule

(3)仿真结果

2. Verilog捕获信号下降沿

(1)verilog代码

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/11/08 15:36:43
// Design Name:
// Module Name: pedge_nedge
// Project Name:
// Target Devices:
// Tool Versions:
// Description: 捕获信号下降沿
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module pedge_nedge(input  wire  clk,         //时钟输入input  wire  rst,         //复位input  wire  signal_in,   //信号输入output wire  signal_nedge //信号下降沿);//*********信号输入打两拍,消除亚稳态***********reg signal_1;
reg signal_2;always@(posedge clk)begin{signal_2,signal_1} <= {signal_1,signal_in};
end//******************************************//****************捕获下降沿******************reg nedge;
reg level_l;always@(posedge clk or negedge rst)beginif(rst == 1'b0)nedge <= signal_2;elsenedge <= signal_2;
endalways@(posedge clk or negedge rst)beginif(rst == 1'b0)level_l <= 1'b0;else if((signal_2 == 1'b0)&&(nedge == 1'b1))//和捕获上升沿在此处区别level_l <= 1'b1;elselevel_l <= 1'b0;
end
//******************************************assign signal_nedge = level_l;endmodule

(2)仿真代码

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/11/08 17:23:19
// Design Name:
// Module Name: tb_pedge_nedge
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module tb_pedge_nedge();reg  clk;        //时钟输入
reg  rst;         //复位
reg  signal_in;   //信号输入wire  signal_nedge; //信号下降沿initial beginclk  = 1'b0;rst <= 1'b0;#10rst <= 1'b1;
endalways #5 clk = ~clk;initial beginsignal_in <= 1'b0;#17signal_in <= 1'b1;#10signal_in <= 1'b0;#25signal_in <= 1'b1;#6signal_in <= 1'b0;
endpedge_nedge pedge_nedge_inst(.clk(clk),         //时钟输入.rst(rst),         //复位.signal_in(signal_in),   //信号输入.signal_nedge(signal_nedge) //信号上升沿);endmodule

(3)仿真结果

Verilog捕获信号上升沿和下降沿相关推荐

  1. FPGA学习——verilog捕捉信号上升沿下降沿

    在FPGA使用中,常常需要进行信号的边沿检测,如在串口通信中,需要检测接收信号的下降沿来判断串口的的起始位. 常用的方法就是:设计两个一位的寄存器,用来接收被检测的信号,系统时钟来一次记一次输入信号, ...

  2. Verilog信号上升沿检测

    在FPGA开发的面试中可能会碰到检测上升沿和下降沿的题目.以上升沿为例进行分析. 上升沿是信号从低电平变化为高电平的时候,因此我们可以将信号的上一个状态和下一个状态进行采样保存,然后来判断是都是从0变 ...

  3. 信号仿真之方波加上上升沿和下降沿

    理想脉冲信号总是理想的方波,但实际的物理系统由于器件特性和耦合电容的存在,总会存在上升沿和下降沿.因此,仿真中有时需要考虑这种特性的影响.本文的目的是实现给理想方波加上可调的上升沿和下降沿. 1. 理 ...

  4. [C#小技巧]如何捕捉上升沿和下降沿

    上升沿和下降沿在我们开发上位机时使用率非常高,常见于消息触发.脉冲归档等.但是在C#中没有类似PLC中的上升沿.下降沿那样的指令,需要我们自己编码来实现. 首先我们创建一个用于生成上升沿和下降沿的类, ...

  5. FPGA实现边沿检测电路(上升沿、下降沿)

    1.什么是边沿检测 边沿检测用于检测信号的上升沿或下降沿,通常用于使能信号的捕捉等场景. 2.采用1级触发器的边沿检测电路设计(以下降沿为例) 2.1.设计方法 设计波形图如下所示: 各信号说明如下: ...

  6. FPGA逻辑设计回顾(3)多比特信号上升沿检测的设计方式与陷阱?

    前言 注:本文首发自FPGA逻辑设计回顾(3)多比特信号上升沿检测的设计方式与陷阱? 在总结本文最后的多比特上升沿检测之前,我们先把备用知识讲清楚,摊开来,以免造成模糊不清的默许! 逻辑运算符与位元运 ...

  7. 上升沿_输入输出的上升沿和下降沿是怎么来的,一起看看

    高电平.低电平.上升沿和下降沿的区别 数字电路中,电平从低电平(逻辑信号为0)变为高电平(逻辑信号为1)的那一瞬间叫作上升沿,电平从高电平(逻辑信号为1)变为低电平(逻辑信号为0)的那一瞬间叫作下降沿 ...

  8. 问:关于上升沿和下降沿触发的讨论

    问:关于上升沿和下降沿触发的讨论 答:发现一些同仁提出上升沿和下降沿计数的问题,工作中也碰到一些同事问及此问题.现在我把我多年 来一直采用的办法奉上,但愿对初学者有所帮助.  以一个最简单的计数器为例 ...

  9. PHP实现上升沿,可编程控制器(PLC)编程如何使用ST语言实现上升沿和下降沿触发...

    上升沿,下降沿在工业自动化中的应用非常广泛,在梯形图时代,它的实现非常容易,只需一个简单的符号就可以实现. 梯形图实现上升沿 如上图所示,PLC采集到变量A的上升沿的时候,变量B有输出.说到边沿触发, ...

最新文章

  1. activiti5/6 系列之--BpmnModel使用
  2. 剑指offerpython_剑指offer系列python实现 日更(一)
  3. linux为用户配置java环境变量
  4. c++ primer学习笔记(2)-c++基本数据类型
  5. visual studio C语言指针提示:使用未初始化的内存xx
  6. 分布式事务:两段式提交(最终一致性)
  7. php投票系统报告,投票系统设计
  8. [APIO2015]巴厘岛的雕塑[按位贪心+dp]
  9. ECCV2018 Oral论文集
  10. 如何在云服务器上使用Docker部署easy-mock
  11. SoapUI简易教程-接口模拟
  12. app提示已到期_安装软件时,显示软件证书过期,怎么回事?
  13. CCNP-冗余链路中的广播风暴、多帧复制、地址表的不稳定
  14. 2020ICPC上海 E.The Journey of Geor Autumn
  15. VS2008 断点不起作用 失效
  16. 应用排行榜第一名脸萌仅仅是刹那的烟火
  17. VA_LIST可变参数列表的使用方法与原理
  18. XSuperNEST套料引擎
  19. 你知道CAD软件将圆弧与直线转换成多段线的方法吗?
  20. 图像传感器binning_图像传感器的两种缩放模式

热门文章

  1. 计算数组中每个数左边/右边第一个比其大/小的值
  2. 腾讯AI足球队夺冠Kaggle竞赛,绝悟强化学习方案迁移至足球队
  3. 【TDA2x学习】Vision SDK 编译Linux+RTOS的配置
  4. eclipse安装完adt插件后只有一个小图标 还打不开怎么回事
  5. 游戏开发的主流编程语言
  6. vs2022 strlen需要引用的头文件
  7. android语音识别技术
  8. 怎样通过heic图片转换器,将heic图片转换jpg方法
  9. android 时间间隔 calendar,android:在某些特定时间间隔内报警remian停止
  10. elastalert 告警配置说明