DSP_FOLDING
DSP_FOLDING属性控制Vivado合成是否折叠两个MAC结构通过加法器连接到一个DSP基元中。
DSP__FOLDING的值为:
•是:该工具转换MAC结构。
•否:该工具不转换MAC结构。
仅RTL支持DSP_FOLDING。它应该放在模块/实体/体系结构上包含MAC结构的逻辑的一部分。
DSP_FLODING Verilog示例
DSP_VOLDING_FASTCLOCK属性告诉工具哪个端口应该成为新端口使用DSP折叠时更快的时钟。
DSP_FILEDING_FASTCLOCK的值为:
•是:该工具使用此端口连接到新时钟。
•否:该工具不使用此端口。
仅RTL支持DSP_FOLDING_FASTCLOCK。仅将此属性放置在端口或端号上。DSP_FILEDING_FASTCLOCK Verilog示例
EXTRACT_ENABLE控制寄存器是否推断启用。通常,Vivado工具提取或不提取基于启发法的功能,这些启发法通常有利于最大数量的设计。在里面如果Vivado的行为不符合要求,则该属性将覆盖默认行为工具的。
如果触发器的CE引脚有一个不需要的使能,此属性可以强制它D输入逻辑。相反,如果工具没有推断RTL中指定的启用,则属性可以告诉工具将该使能移动到触发器的CE引脚。EXTRACT_ENABLE放置在寄存器上,并且在RTL和XDC中受支持。可能需要的布尔值:yes和no。
EXTRACT_ENABLE Verilog示例
EXTRACT_RESET控制寄存器是否推断重置。通常,Vivado工具提取或不提取基于启发法提取重置,这通常有利于大多数设计。在Vivado没有以所需的方式运行,此属性将覆盖工具的默认行为。如果不希望的同步复位进入触发器,这个属性可以迫使它进入D输入逻辑。相反,如果工具没有推断RTL中指定的重置,则此属性可以命令工具将重置移动到触发器的专用重置。此属性只能与一起使用同步复位;不支持异步重置。EXTRACT_RESET放置在寄存器上,并在RTL和XDC中受支持。它可能需要布尔值:是或否。值为否表示重置不会转到的R引脚寄存器,但通过逻辑路由到寄存器的D引脚。值为yes表示复位直接进入寄存器的R引脚。
FSM_ENCODING控制状态机上的编码。通常,Vivado工具选择基于启发式的状态机编码协议,对大多数设计都做得最好。某些设计类型可以更好地与特定的编码协议配合使用。FSM_ENCODING可以放置在状态机寄存器上。这方面的法律价值是one_hot、sequential、johnson、gray、user_encoding和none。自动值是默认值,并允许该工具确定最佳编码。user_encoding值告诉工具仍然推断状态机,但使用用户在RTL中给出的编码。FSM_ENCODING属性可以在RTL或XDC中设置。
FSM_ENCODING Verilog示例
FSM_SAFE_STATE指示Vivado合成将逻辑插入检测的状态机存在非法状态,在下一个时钟周期将其置于已知的良好状态。例如,如果有一个状态机具有“one_hot”编码,并且它位于“0101”中state(这对于“one_hot”来说是非法的),则状态机将能够恢复。放置状态机寄存器上的FSM_SAFE_STATE属性。您可以在中设置此属性RTL或XDC中。
FSM_SAFE_STATE的合法值为:
•auto_safe_state:使用Hamming-3编码对一位/翻转进行自动校正。
•reset_state:使用Hamming-2编码强制状态机进入重置状态检测一个比特/翻转。
•power_on_state:使用Hamming-2强制状态机进入开机状态一比特/翻转的编码检测。
•default_state:强制状态机进入RTL中指定的默认状态:
在Veri中case语句的默认分支中指定
FULL_CASE(仅限Verilog)
FULL_CASE表示在CASE、casex或casez中指定所有可能的大小写值
陈述如果指定了大小写值,Vivado不会为大小写值创建额外的逻辑合成此属性位于case语句上。
重要!因为此属性会影响编译器,并且可以更改的逻辑行为设计,它只能在RTL中设置。