You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quartus电梯FSM状态转换冲突Error(154039)解决求助

Quartus电梯有限状态机(FSM)编译错误排查与解决

编译错误信息

Error (154039): State S1 contains multiple transitions, but more than one transition equation are TRUE when ~R2 & R1 & R3 | R2 & ~R1 & R3 | R2 & R1. As a result, the next state cannot be decided.

Error (154039):State S2 contains multiple transitions, but more than one transition equation are TRUE when ~R2 & R3 & R1 | R2 & ~R3 & R1 | R2 & R3. As a result, the next state cannot be decided.

Error (154039): State S3 contains multiple transitions, but more than one transition equation are TRUE when ~R3 & R2 & R1 | R3 & ~R2 & R1 | R3 & R2. As a result, the next state cannot be decided.

现有配置

输入端口配置

输入端口受控信号
clockClock
resetReset
R1No
R2No
R3No

输出端口配置

输出端口已注册输出状态
U1Yes当前时钟周期
U2Yes当前时钟周期
D1Yes当前时钟周期
D2Yes当前时钟周期
NOGONo当前时钟周期

状态转换配置(原冲突版本)

源状态目标状态条件
S1S2R2
S1S1R1
S1S3R3
S2S2R2
S2S3R3
S2S1R1
S3S3R3
S3S2R2
S3S1R1

输出动作配置

#输出端口输出值当前状态附加条件
1U1R2S1当前时钟周期
2U1R3S2当前时钟周期
3U2R3S1当前时钟周期
4D1R1S2当前时钟周期
5D1R2S3当前时钟周期
6D2R1S3当前时钟周期
7NOGOR1S1当前时钟周期
8NOGOR2S2当前时钟周期
9NOGOR3S3当前时钟周期

错误原因

当前状态转换条件未做互斥处理,当多个请求信号(如R1和R2同时为1)时,同一个源状态下会触发多个转换条件,导致Quartus无法确定下一个状态。比如在S1状态,若R1和R2同时有效,既满足R1(留S1)又满足R2(转S2),产生逻辑冲突。

解决方案

方案1:修改状态转换条件为互斥逻辑

给请求信号设定优先级(比如高层请求优先,或低层优先,根据电梯需求确定),确保每个输入组合仅对应一个状态转换。以下是高层优先的修改示例:

修改后的状态转换表

源状态目标状态条件
S1S3R3
S1S2R2 & ~R3
S1S1R1 & ~R2 & ~R3
S1S1~R1 & ~R2 & ~R3

|

S2S3R3// 优先去3楼
S2S1R1 & ~R3// 仅R1有效时去1楼
S2S2R2 & ~R1 & ~R3// 仅R2有效时留2楼
S2S2~R1 & ~R2 & ~R3// 无请求时保持原状态
S3S1R1// 优先去1楼(可根据需求调整为低层/高层优先)
S3S2R2 & ~R1// 仅R2有效时去2楼
S3S3R3 & ~R1 & ~R2// 仅R3有效时留3楼
S3S3~R1 & ~R2 & ~R3// 无请求时保持原状态

方案2:添加输入仲裁模块

在FSM外部增加一个仲裁逻辑,对R1/R2/R3的请求进行优先级判断,输出唯一的目标楼层信号(比如target,取值1/2/3),再将该信号输入FSM。这样FSM的状态转换条件仅基于target,避免多输入冲突。

方案3:适配NOGO逻辑

原NOGO配置是在当前楼层有请求时输出有效,修改状态转换条件后,需确保NOGO逻辑与新规则一致:只有当无更高/更低请求、仅当前楼层请求有效时,NOGO才输出有效。

内容的提问来源于stack exchange,提问作者Gr_10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 15:43:14