在综合有限状态机(FSM)时,您可能会在Quartus®II软件分析和综合过程中收到此警告。这是Quartus II软件6.0 SP1显示的无效警告。从Quartus II软件6.1开始,不会显示错误的警告消息。
将推断的FSM的状态变量分配给输出端口时会发生此警告。在以下示例中, arbiter_state
是size [1:0]
的输出, mystate
是指定的值,它用于4个可能选项的case语句中:
assign arbiter_state = mystate;
endcase
当Quartus II Analysis and Synthesis推断FSM时,它使用单热编码对状态变量进行编码。在这种情况下,mystate有4个状态,因此有4位。在此示例中,当您将mystate
分配给名为arbiter_state
的信号时,软件mystate
在实现分配之前对状态变量mystate
进行编码。但是,软件在编码值之前而不是之后检查位截断。因此,软件将赋值的右侧解释为4位而不是2位,并发出警告消息。截断警告对设计功能没有影响。
为消除Quartus II软件6.0及更早版本中的警告消息,您可以将目标输出信号的大小(上arbiter_state
中的arbiter_state
)更改为4位,并仅使用低两位,最不重要的位。
没有回复内容