怎样在VHDL中同时捕捉两路信号的上升沿?

2024-12-02 11:11:49
推荐回答(4个)
回答1:

VHDL不支持同时用两个上升沿采样的。如果想做到类似的效果可以这样做:
1 用时钟信号上升沿采样
2 对insigal信号进行1周期延迟,与原信号异或后制造一个时钟周期的脉冲
3 时钟信号采样该脉冲信号获得其上升沿

写法是
process(clk)
if(clk'event and clk='1')then
insignal_d<=insignal;
end if;
end process;

insignal_t<='1' WHEN insignal='1' AND insignal_d='0' ELSE '0' ;

process(clk)
if(clk'event and clk='1')then
if(insignal_t='1')then
--这里是你想要做的处理
end if;
end if;
end process;
-------------------------
你后面的问题似乎没什么问题啊 计数器1和计数器2是无关的话 分别用两个process处理就ok了,计数器1跟insignal无关的话就直接计数,计数器2的处理程序可以这么写

process(clk)
if(clk'event and clk='1')then
if(insignal_t='1')then
cnt2<=(OTHERS=>'0');
ELSE
cnt2<=cnt2+'1';
end if;
end if;
end process;

回答2:

同意 arabotrip说法

回答3:

采用双进程

回答4:

酒后驾车?