微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 上升沿检测问题

上升沿检测问题

时间:10-02 整理:3721RD 点击:
写了个上升沿检测的程序如下:module dlc(
                                CLK_50M,
                                key,
                                LEDOUT
                                );   //抓取key按键的上升沿
input CLK_50M;
input key;
output reg LEDOUT;

reg key_s1;
reg key_s2;   
always@(CLK_50M)
begin
        if(CLK_50M==1)
                begin
                        key_s1<=key;
                        key_s2<=key_s1;
                if((key_s1==0)&&(key_s2==0)&&(key==1))
                        begin
                                LEDOUT<=1;
                        end
                end


end

endmodule

发现程序进不去if循环,不知道错在哪

if(CLK_50M==1) 你这是想干什么?

if 里面的判断逻辑是错的吧。我也是刚学,要不试着写成 if(CLK_50M)

沿采沿啦,采不到的。新手通病!

always@(CLK_50M) 改成时序电路 always@(posedge CLK_50M)再把if(CLK_50M == 1)去掉

时钟能这么写的还是第一次见

先看懂上升沿的原理图。

多看看例程就懂了

always@(CLK_50M)不是时钟触沿触发吧,网上有很多上升检测的例子你可以去找下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top