用一个快时钟的边沿触发一个状态机,检测另一个慢信号的边沿来计数,比如计数到10的时候,状态机从1状态跳到2状态。像这样有两个沿触发的状态机写的思路是什么呢?谢谢各位指导哈
process(rst,bclk)
begin
if(rst='1')then
pr_state<=idle;
elsif(rising_edge(bclk))then
pr_state<=nx_state;
end if;
end process;
process(pr_state)
case pr_state is
when idle=>
***(*&*(&)&*)
when one=>
if(rising_edge(信号A))then
nx_state<=two;
else
nx_state<=three;
when two=>
*(&&(0-
end case;
end process;
这个程序是不能综合的,其中明显的错误 if(rising_edge(信号A))then 只是想解释一下我刚才的想法。对于只能通过判断 信号A 的边沿这种情况,在状态机里怎么处理? 如果有两个这样的边沿 (信号A, 信号B )。处理方法是不是相同的? |