VHDL中状态机中为什么不能有边沿检测语句1
发布网友
发布时间:2023-11-21 07:45
我来回答
共1个回答
热心网友
时间:2024-01-18 02:35
状态机应当在clock的有效边沿触发下按照不同的条件进行状态转换,而不是在不同条件下让clock的边沿是否有效。
所以,应当是将clock的边沿检测放在最外层,而条件判断放在内层:
process(clock)
begin
if clock'event and clock='1'then
case current_state is
when s0 =>
next_state<=s1;
.........
end case;
end if;
end process;追问我的设计要求就是在状态s0下,若是出现clock跳变,进行状态转移,否则停留在S0,您说的我也明白,但是您说的肯定执行成了另外的情况
追答你应当这样描述状态机:
每当clock的有效边沿出现时,检测当前状态是否为s0,若是s0则发生状态转移,否则状态不变。
你先画一下状态机的状态图就可以直到问题所在。