当前位置: 首页 > article >正文

Verilog边沿检测

edge_check.v

module edge_check(
    input clk,
    input in,
    output neg_edge,
    output pos_edge
    );
    
    reg r1=1'd0;
    reg r2=1'd0;
    
    assign neg_edge=(~r1)&r2;
    assign pos_edge=r1&(~r2);
    
    always@(posedge clk)
    begin
        r1<=in;
        r2<=r1;
    end
    
endmodule

tb.v

`timescale 1ns/1ns

module tb;
//被测模块的输入信号必须在tb中必须是reg型
reg clk;
reg in;
	
wire neg_edge;
wire pos_edge;

edge_check u1(
    .clk(clk),
    .in(in),
    .neg_edge(neg_edge),
    .pos_edge(pos_edge)
 );
 
 //产生时钟激励
 initial  clk = 1; 
 always #10  clk = ~clk;
 
 //输入激励
 initial  begin 
    in=0;
    #20;
    in = 1;
    #20
    in=0;
    #20;
    in=1;
    #20;
    in=0;
    #20;
    in=1;
    #20;
    in=0;
    $stop;
 end
 
 endmodule 

仿真波形:


http://www.kler.cn/a/520100.html

相关文章:

  • 16.好数python解法——2024年省赛蓝桥杯真题
  • 谈谈对JavaScript 中的事件冒泡(Event Bubbling)和事件捕获(Event Capturing)的理解
  • 从63 秒到 0.482 秒:深入剖析 MySQL 分页查询优化
  • pipeline快速将数据存入redis
  • 【含代码】逆向获取 webpack chunk 下的__webpack_require__ 函数,获悉所有的模块以及模块下的函数
  • wordpress调用指定ID页面的链接
  • Maven下载与配置
  • SYN Flooding的攻击原理
  • 微服务网关鉴权之sa-token
  • 问题修复记录:Linux docker 部署 dify,无法调用宿主机本地服务
  • 计算机网络 (59)无线个人区域网WPAN
  • Stable Diffusion 3.5 介绍
  • 基于STM32单片机设计的宠物喂食监控系统
  • Linux系统编程:进程状态和进程优先级/nice
  • C++——动态管理
  • WinForm保持一个窗口在另一个全屏窗口的上面
  • Redis高阶5-布隆过滤器
  • MFC程序设计(四)窗口创建机制
  • 在php中怎么打开OpenSSL
  • 云服务器快速安装docker, mysql,redis教程