FSM_ENCODING可以控制状态机的编码方式,属性放置于状态寄存器的前面,可设置的值有one_hot,sequential,johnson,gray,user_encoding,none,auto,默认值为auto,设置为auto时由综合工具决定编码方式,user_encoding则表示让综合工具综合出状态机,但是使用RTL中由用户设定的编码方式。FSM_ENCODING可以使用在RTL和XDC中。 使用格式...
如果将-fsm_extraction设定为one_hot,则最终结果如下图所示(在综合log文件中搜索Synth 8-3354即可找到),可见最终状态机采用了one_hot的编码方式。这印证了-fsm_extraction优先级高于RTL代码指定的编码方式。 对于状态机,还有一个综合属性FSM_ENCODING,其值可以是one_hot, sequential, johnson, gray, auto和none。其...
当-flatten_hierarchy为none时消耗的寄存器最多,建议其设定为默认值rebuilt。 -fsm_extraction 用于设定状态机的编码方式,默认值为auto。 -fsm_encoding 功能同上,优先级高于-fsm_extraction,但如果代码本身已经定义了编码方式,该设定将无效。 one-hot:任意状态只有一个比特位置一。 -keep_equivalent_registers equivalent...
-fsm_extraction :控制综合如何提取和映射有限状态机。 FSM_ENCODING更详细地描述了这些选项。 FSM_ENCODING可以放在状态机寄存器上。合法的值是“ one_hot”,“ sequential”,“johnson”,“ gray”,“ auto”和“ none”。“ auto”值是默认值,并允许该工具确定最佳编码。可以在RTL或XDC中设置此属性。 -keep_e...
-fsm_encoding 功能同上,优先级高于-fsm_extraction,但如果代码本身已经定义了编码方式,该设定将无效。 one-hot:任意状态只有一个比特位置一。 -keep_equivalent_registers equivalent registers,等效寄存器,即共享输入数据的寄存器。 勾选时,等效寄存器不合并; ...
状态机的实现有很多方式,如auto,one_hot,sequential,如下图中Synthesis中-fsm_extraction的配置项,但此处作用范围为全局,如果要对部分状态机指定实现方式,则可通过在RTL代码中设置FSM_ENCODING属性。 二、FSM_ENCODING 2.1 属性介绍 FSM_ENCODING可以控制状态机的编码方式,属性放置于状态寄存器的前面,可设置的值有one_...
对于状态机,还有一个综合属性FSM_ENCODING,其值可以是one_hot, sequential, johnson, gray, auto和none。其优先级则高于-fsm_extraction设定的编码方式。如果使用了FSM_ENCODING,在综合报告中会显示工具检查到FSM_ENCODING设定的编码方式,如下图所示。 结论 ...
FSM_ENCODING 属性用于设置状态机寄存器,控制状态机的编码方式,可选参数有独热码(one_hot)、顺序编码(sequential)、johnson编码(johnson)、格雷码(gray)、自动(auto)和无(none)。默认为auto,Vivado会自动选择最佳的编码方式。可以在RTL或XDC中设置。 (* fsm_encoding = “one_hot” *) reg [7:0] state_r; ...
FSM_ENCODING可以放在状态机寄存器上。合法的值是“ one_hot”,“ sequential”,“johnson”,“ gray”,“ auto”和“ none”。“ auto”值是默认值,并允许该工具确定最佳编码。可以在RTL或XDC中设置此属性。 -keep_equivalent_registers :防止合并具有相同输入逻辑的寄存器。
9.FSM_ENCODING 该属性用于设置状态机寄存器,控制状态机的编码方式,可选参数有独热码(one_hot)、顺序编码(sequential)、johnson编码(johnson)、格雷码(gray)、自动(auto)和无(none)。默认为auto,Vivado会自动选择最佳的编码方式。可以在RTL或XDC中设置,示例如下: ...