VHDL检测上升沿后,怎么生成一个能维持2秒的高电平信号呢?

输入信号会产生尖锐信号(就是由低到高再到低,非常快,只能检测上升沿),输出信号为2秒的高电平,每一个尖锐信号生成一个定长的高电平,怎么弄,急啊,求救?

用一个触发器,外边沿触发使之为高,并激活一个2s计数器,待计数器从零积到两秒,就复位先前那个触发器,并复位自己,进入怠工。追问

您有现成的代码吗

追答

像白开水一样,自己找!
VHDL Example 作为Google搜索条目即可!

温馨提示:内容为网友见解,仅供参考
无其他回答

VHDL检测上升沿后,怎么生成一个能维持2秒的高电平信号呢?
用一个触发器,外边沿触发使之为高,并激活一个2s计数器,待计数器从零积到两秒,就复位先前那个触发器,并复位自己,进入怠工。

vhdl将一个信号处理成两个
这个就是用系统时钟来度量脉冲宽度,换句话说就是测频率。如果还有直白一点,就是用系统时钟测量脉冲的上升沿产生一个脉冲(脉宽一个系统时钟周期),测量脉冲的下降沿产生一个标准脉冲(脉宽一个系统时钟周期)。

使用VHDL怎样实现上升沿变成脉冲?就是上升沿输入,输出一个指定宽度的...
if clk'event and clk='1' then if count<5 then count<=count+1;clk_div<=1;else if count<10 then clk_div<=0;count<=count+1;else count<=0;end if;end if;大体就是这个意思吧

在vhdl语言中,输入信号上升沿后执行process process中要用clk来计时...
VHDL不支持在一个进程中检测多个信号的边沿,这在硬件中也是不可能实现的。你如果确定两个信号边沿的先后顺序,那么可以用后到的上升沿作为检测边沿。例如signal1的边沿先到、signal2的边沿后到。那么:PROCESS(signal2)BEGIN IF rising_edge(signal2) THEN IF signal1'='1' AND signal1'LAST='0' ...

帮帮忙,请问怎么样用VHDL设计一个分频器,信号是50MHz分成1Hz,谢谢...
可以利用加法器,每个上升沿+1,加到4999999输出反转一次就得到了

如何对同一个时钟的上升沿和下降沿同时计数(vhdl)
可以这样实现:1、调用lcell,然后将器件lcell输入和输出信号做 xor运算,就可以实现。2、这里lcell实现信号延时,当然如果信号频率不高的情况下可以用一高频率信号做指定时间延时以达到指定脉冲宽度。

VHDL中两个generate可以对同一个信号赋值吗
可以。可以利用时序的时差来对这信号赋值,比如说在上升沿对这一进程中信号赋值,在下降沿对另一进程中信号赋值,或者你把这个信号一分为二,在两进程中用不同的信号或变量来表示。vhdl是一种用于电路设计的高级语言。它出现在20世纪80年代的后期,最初是由美国国防部开发出来供美军用来提高设计的可靠性...

VHDL 延时1秒
有一个简单的方法:设计成时序电路就行了,在敏感列表中的时钟周期为2s(即频率为0.5Hz),每次时钟信号上升沿到来时,将信号a翻转即可。

vhdl 根据两信号上升沿先后顺序来给变量赋值
rising_edge(din);wait until (pout='1') ;对于这两个语句我也认为有问题,相当于同一进程用了两个时钟源;把wait until (pout='1') ;换成if pout='1' then 给你分析了下,因为pout<=din xor fin;综合的异或门有延时,所以有种特殊情况:如果其中有一个信号一直为低则比较不出结果 ...

在VHDL中,如何描述时钟信号上升沿和下降沿?
上升沿:process(i)begin if(i'event and i = '1') then DO SOMETHING;end if;end process;下降沿:i = '0'

相似回答