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;
同意 arabotrip说法
采用双进程
酒后驾车?