|
本帖最后由 fpgaw 于 2010-11-18 16:00 编辑
Quartus II中状态机的编写规则
昨天写了个动态数码管显示,在MAX+PlusII下是可以的但在QuartusII下却发现状态好像不能转移,于是在网上查了查,并结合QuartusII帮助文档算是发现原因了。现将帮助文档中关于VHDL在QuartusII中编写状态机的条件翻译一下,水平有限,各位批评指正。
编译器识别状态机的条件:
1.表现状态机的信号或变量必须为枚举类型。
2.状态转移必须由clk触发,并且是用IF语句检测的上升沿进行转移。
3.状态转移到下一个状态由CASE语句判断
4.所有信号,变量赋值都要放在状态机进程里进行。
5.状态机的状态必须多于两个状态。
原文如下:
The Compiler recognizes state machines and reports them as such in the
State Machines section of the Report window only if all of the following
conditions are met:
1.The type of the signal or variable that represents the state machine
must be an enumerated type.
2.The Process Statement that describes the state machine must be
clocked, and must contain an If Statement that checks for a positive
edge of the clk control signal.
3.The state machine behavior, that is, the next-state logic, is defined
with Case Statements at the top level.
4.All assignments to the signal or variable that represents the state
machine are within the process.
5.The state machine must have more than two states. |
|