Intel® Quartus® Prime Pro Edition用户指南: 设计建议

ID 683082
日期 9/28/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

1.6.4.2. Verilog HDL状态机

为确保Verilog HDL状态机的正确识别和推断,请遵循以下额外的Verilog HDL准则。

有关特定的编码建议,请参考综合工具文档。如果综合工具无法识别和推断状态机,那么此工具会将状态机实现为常规逻辑门和寄存器,并且状态机不会在 Intel® Quartus® Prime Compilation Report的Analysis & Synthesis部分中显示为一个状态机。在这种情况下, Intel® Quartus® Prime综合不执行任何特定于状态机的优化。

  • 如果使用SystemVerilog标准,那么请使用枚举类型来描述状态机。
  • 在Verilog-1995和Verilog-2001中用参数数据类型表示状态机中的状态,并使用这些参数进行状态分配。此参数实现使状态机更易于读取,并减少了编码期间出错的风险。
  • 不要将整数值直接用于状态变量,例如next_state <= 0。然而,使用整数并不会防止在 Intel® Quartus® Prime软件中推断。
  • 如果状态转换逻辑使用类似于以下示例的算法,那么 Intel® Quartus® Prime软件不会推断状态机:
    case (state)
    	0: begin
    		if (ena) next_state <= state + 2;
    		else next_state <= state + 1;
    		end
    	1: begin
    	...
    endcase
  • 如果状态变量是一个输出,那么 Intel® Quartus® Prime软件不会推断状态机。
  • Intel® Quartus® Prime软件不会对有符号变量推断状态机。