Verilog边沿检测

edge_check.v

Matlab 复制代码
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

Matlab 复制代码
`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 

仿真波形:

相关推荐
s09071369 小时前
【FPGA实战】基于Verilog的MCP2515 CAN控制器SPI驱动详解 | 附完整代码
fpga开发·硬件设计·can通信·mcp2515
szxinmai主板定制专家10 小时前
基于 ARM+FPGA 数据机床实时工业控制设计--以雕刻机为例
arm开发·人工智能·嵌入式硬件·fpga开发
XMAIPC_Robot10 小时前
基于RK3588 ARM+FPGA电火花数控机床控制系统设计,兼顾ethercat软硬件实时
linux·arm开发·人工智能·嵌入式硬件·fpga开发
XMAIPC_Robot10 小时前
基于 ARM+FPGA 数据机床控制系统设计--以雕刻机为例
arm开发·fpga开发
GateWorld11 小时前
LCD显示技术完全指南:原理·制造·驱动·FPGA实现之点屏一
fpga开发·lcd显示·fpga点亮屏幕·minilvds·fpga点屏
風清掦1 天前
【STM32学习笔记-14】WDG看门狗 - 14.2 WWDG窗口看门狗
笔记·stm32·单片机·嵌入式硬件·学习·fpga开发
尤老师FPGA1 天前
HDMI数据的接收发送实验(十二)
fpga开发
坏孩子的诺亚方舟1 天前
FPGA神经网络数学基础0
人工智能·神经网络·线性代数·fpga开发
熠速1 天前
PolarBox高性能实时仿真系统
arm开发·fpga开发·嵌入式实时数据库·硬件在环半实物仿真
南檐巷上学1 天前
基于Zynq-7020的带有正弦波发生器的8051软核设计
单片机·嵌入式硬件·fpga开发·fpga