完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
脉冲检测计数应用也是蛮重要的,原理也是挺简单的,直接上代码
`timescale 1ns / 1ps module PD_up( clk , //系统时钟 50MHz ; rest_n , //系统复位信号 低电平有效 ; signal_in , //待检测信号输入 ; rising_flag //上升沿标 ; ); input clk ; input signal_in ; input rest_n ; output rising_flag ; /**************************************************************** signal_in 0 0 0 1 1 0 ~signal_in 1 1 1 0 0 1 signal_in_d 0 0 0 1 1 0 ----------------------------- rising_flag 0 0 0 0 1 signal_in_d & ~signal_in 下降沿检测 1 1 0 1 1 0 0 1 0 0 ~[signal_in_d | ~signal_in] 上升沿检测 ***************************************************************/ reg signal ; //待检测信号输入寄存器; reg rising_flag ; //上升沿标寄存器,值为 1 被检信号上升沿到来; reg signal_in_d ; //signal_in_d 比 signal_in延迟一个时钟周期; always@(posedge clk or negedge rest_n)begin if(!rest_n)begin signal <= 0; end else begin signal <= signal_in; end end always@(posedge clk or negedge rest_n)begin if(!rest_n)begin signal_in_d <= 0; end else begin signal_in_d <= signal; end end always@(*)begin //上升沿检测; rising_flag = ~((~signal) | signal_in_d); end endmodule
|
|
相关推荐
8个回答
|
|
测试代码:
module tb_PD_up; // Inputs reg clk; reg rest_n; reg signal_in; // Outputs wire rising_flag; // Instantiate the Unit Under Test (UUT) PD_up uut ( .clk(clk), .rest_n(rest_n), .signal_in(signal_in), .rising_flag(rising_flag) ); initial begin // Initialize Inputs clk = 0; // Wait 100 ns for global reset to finish #100; forever #10 clk = ~clk; // Add stimulus here end initial begin rest_n = 0; #100; rest_n = 1; end initial begin signal_in = 0; #100; #200 signal_in = 0; #50 signal_in = 1; #100 signal_in = 0; #300 signal_in = 1; #50 signal_in = 0; end endmodule |
|
|
|
|
|
|
|
|
|
|
|
加载代码缩进怎么跟我写程序不一样啊。这里面~signal_in是signal的取反。signal_in_d比signal_in滞后一个时钟周期 这里是上升沿检测的原理说明:下降沿跟上升沿检测稍微有点区别。
|
|
|
|
待会儿写下降沿检测,如有错误还望,各位大神批评指正!!
|
|
|
|
下降沿检测verilog代码
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1533 浏览 1 评论
1313 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1523 浏览 0 评论
925 浏览 0 评论
2317 浏览 0 评论
1458 浏览 35 评论
5671 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 13:05 , Processed in 0.676919 second(s), Total 87, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号