描述
本答复记录描述了Vivado综合属性keep,keep_hierarchy,ram_style,rom_style,并为它们提供了编码示例。编码示例附在此答复记录中。 AR还包含与已知问题和良好编码实践相关的信息。
注意 :每个编码示例都可用于直接创建Vivado项目。请参阅每个源文件中的标题,了解每个示例中涵盖的Synthesis属性。
解
保持
KEEP属性用于防止信号被优化或吸收到逻辑块中的优化。该属性指示综合工具保持其所处的信号,并将该信号放入网表中。
KEEP通常与时序约束结合使用。如果通常优化的信号存在时序约束,KEEP将阻止这种情况并允许使用正确的时序规则。
在其他属性与KEEP冲突的情况下,KEEP属性通常优先于它们:
- 如果信号上有MAX_FANOUT属性,第一个信号驱动第二个信号上的KEEP,则第二个信号上的KEEP将不允许扇出复制。
- 对于RAM_STYLE =“block”,当寄存器上存在需要成为RAM一部分的KEEP时,KEEP属性会阻止块RAM被推断。
可接受的值是:
-
true:保持信号。
-
false:允许Vivado Synthesis在必要时进行优化。 False不会强制工具移除信号。默认值为false。
备注 :
-
KEEP属性不强制布局布线工具保持信号。相反,这是使用DONT_TOUCH属性完成的。
-
模块或实体的端口不支持KEEP属性。如果需要保留特定端口,请使用flatten_hierarchy = none设置,或者在模块或实体本身上放置DONT_TOUCH。
-
请注意稍后在RTL中未使用的信号的KEEP属性。综合保留了这些信号,但它们不会驱动任何东西。这可能会导致流程中的问题。
-
建议仅在RTL中设置此属性。由于需要保留的信号通常在读取XDC文件之前进行优化,因此在RTL中设置此属性可确保使用该属性。
Verilog示例
(* keep =“true”*)wire sig1;
VHDL示例
signal sig1:std_logic;
属性keep:string;
属性keep sig1:signal是“true”;
已知的问题:
N / A
KEEP_HIERARCHY
KEEP_HIERARCHY属性用于防止沿层次结构边界进行优化。 Vivado综合工具试图保持RTL中指定的相同通用层次结构,但它可以出于QoR原因展平或修改它们。
如果将KEEP_HIERARCHY置于实例上,则综合工具将该级别的边界保持为静态。这可能会影响QoR,也不应该用于描述3态输出和I / O缓冲器的控制逻辑的模块。
KEEP_HIERARCHY属性可以放在模块,体系结构级别或实例中。
可接受的值是:
-
yes:保留指定级别的层次结构。
-
no:将分层块合并到顶级模块中。
Verilog示例
在模块上:
(* keep_hierarchy =“yes”*)模块底部(in1,in2,in3,in4,out1,out2);
在实例上:
(* keep_hierarchy =“yes”*)bottom u0(.in1(in1),. in2(in2),. out1(temp1));
VHDL示例
在模块上:
属性keep_hierarchy:string;
属性keep_hierarchy beh:architecture是“yes”;
在实例上:
属性keep_hierarchy:string;
u0:label的属性keep_hierarchy是“是”;
已知的问题:
N / A
RAM_STYLE
RAM风格控制Vivado综合工具如何推断内存。可接受的值是:
- block:指示工具推断RAMB类型组件。
- distributed:指示工具推断LUT RAM。
默认情况下,该工具将根据启发式选择要推断的RAM,以便为大多数设计提供最佳结果。将此属性放在为RAM声明的数组上。
Verilog示例
(* ram_style =“distributed”*)reg [data_size-1:0] myram [2 ** addr_size-1:0];
VHDL示例
属性ram_style:string;
属性ram_style of myram:signal是“distributed”;
已知的问题:
N / A
ROM_STYLE
ROM样式控制Vivado综合工具如何推断ROM内存。可接受的值是:
- block:指示工具推断RAMB类型组件。
- distributed:指示工具推断LUT ROM。
默认情况下,该工具将根据启发式选择要推断的ROM,以便为大多数设计提供最佳结果。
Verilog示例
(* rom_style =“distributed”*)reg [data_size-1:0] myrom [2 ** addr_size-1:0];
VHDL示例
文件名 | 属性示例 |
---|---|
keep.zip | 保持 |
keep_hierarchy.zip | KEEP_HIERARCHY |
ram_style.zip | RAM_STYLE |
rom_style.zip | ROM_STYLE |
附件
相关附件
名称 | 文件大小 | 文件类型 |
---|---|---|
keep.zip | 1 KB | 压缩 |
keep_hierarchy.zip | 1 KB | 压缩 |
ram_style.zip | 1 KB | 压缩 |
rom_style.zip | 1 KB | 压缩 |
没有回复内容