Vivado综合设计助手 – 帮助综合HDL属性支持 –  fsm_encoding,fsm_safe_state,srl_style-Xilinx-AMD社区-FPGA CPLD-ChipDebug

Vivado综合设计助手 – 帮助综合HDL属性支持 – fsm_encoding,fsm_safe_state,srl_style

描述

此答复记录描述了Vivado综合属性fsm_encoding,fsm_safe_state,srl_style,并且还提供了它们的编码示例。

编码示例附在此答复记录中。

答案记录还包含与已知问题和良好编码实践相关的信息。


注意
:每个编码示例都可用于直接创建Vivado项目。
请参阅每个源文件中的标题,了解每个示例中涵盖的Synthesis属性。

FSM_ENCODING:

fsm_encoding属性指示Vivado Synthesis使用哪种编码样式与有限状态机一起使用。
“auto”的值是默认值,允许Vivado Synthesis根据编码样式选择最佳FSM编码。
首先必须推断FSM以使用fsm_encoding。

可接受的值是:one_hot,sequential,johnson,gray,none和auto。

Verilog示例:

(* fsm_encoding =“gray”*)reg [2:0]状态;

VHDL示例:

属性fsm_encoding:string;
属性fsm_encoding:信号为“灰色”;


FSM_SAFE_STATE:

应用“fsm_safe_state”属性将指示Vivado Synthesis将逻辑插入到状态机中,该状态机指定在非法状态的情况下应该发生什么。

处于非法状态的FSM可能导致不可预测的输出,这可以通过安全状态来避免。

可接受的值包括:auto_safe_state,reset_state,power_on_state,default_state

  • auto_safe_state:使用Hamming-3编码进行一位/翻转的自动校正。
  • reset_state:使用汉明-2编码检测强制一位/翻转状态机进入复位状态。

将fsm_safe_state设置为值“reset_state”将使编码状态机在找到无效状态的情况下使用重置条件。

复位条件是复位时对状态分配的任何状态分配。以下是一个例子:

if(reset =’1’)然后
州<= s1;

  • “power_on_state”使用汉明-2编码检测一位/翻转强制状态机进入通电状态。

fsm_safe_state属性的“power_on_state”值将具有与“reset_state”相同的功能。

这可以在RTL中没有定义复位条件的情况下使用,并且意图使用状态寄存器的初始INIT值作为安全状态。

  • “default_state”强制状态机进入RTL中使用默认状态指定的状态,即使该状态不可达,也使用汉明-2编码检测一位/翻转。

对于Verilog,“default”关键字可以与fsm_safe_state属性一起使用,以指定应将默认值用于安全状态。

对于VHDL,“when others”关键字具有相同的效果。

使用为fsm_safe_state属性设置的default_state,应用于默认情况下的状态寄存器或case语句的“when others”部分的值将用作安全状态。

Verilog示例:

(* fsm_safe_state =“reset_state”*)reg [2:0]状态;

VHDL示例:

属性fsm_safe_state:string;
属性fsm_safe_state:signal是“reset_state”;


SRL_STYLE:

srl_style属性指示Vivado Synthesis是否应该推断SRL原语,以及是否要在SRL之前,SRL之后或两者之间放置寄存器。

例如,将srl_style属性设置为值“reg_srl”,将推断具有驱动SRL输入的寄存器的SRL。

可接受的值包括:register,srl,srl_reg,reg_srl,reg_srl_reg

Verilog示例:

(* srl_style =“srl_reg”*)reg [clock_cycles-1:0] shift_reg = {clock_cycles {1’b0}};

VHDL示例:

attribute srl_style:string;
shift_reg的属性srl_style:signal是“srl_reg”;

有关fsm_safe_state和srl_style属性的可接受值的任何其他详细信息,请参阅以下内容和(UG901):

属性名称 HDL文件
fsm_encoding.zip
  • fsm_encoding.v
  • fsm_encoding.vhd
fsm_safe_state.zip
  • fsm_safe_state.v
  • fsm_safe_state.vhd
srl_style.zip
  • srl_style.v
  • srl_style.vhd

附件

相关附件

名称 文件大小 文件类型
fsm_encoding.zip 1 KB 压缩
fsm_safe_state.zip 1 KB 压缩
srl_style.zip 1 KB 压缩
请登录后发表评论

    没有回复内容