LUTNM属性允许您将两个特定且兼容的LUT图元分组为
通过分配相同的<group_name>将其放入单个物理LUT中。
当LUT可用性较低时,Vivado放置器可能会自动组合LUT实例
将其配对到单个LUT上,以成功地适应设计。您还可以使用DISABLED值
用于特定LUT上的LUTNM属性,以防止Vivado砂矿合并
它们与其他LUT。例如,这有助于防止LUT组合用于调试ILA
以及VIO内核,使探头可用于ECO流中的后续修改。请参阅此
Vivado设计套件用户指南:编程和调试(UG908)中的链接[参考23]
有关ECO流程的更多信息。
HLUTNM和LUTNM之间的区别
提示:HLUTNM属性和LUTNM属性的用途相似,应进行分配
在同一层次结构中使用不同的值。Vivado砂锅将结合LUT
具有相同的LUTNM和HLUTNM值或返回与冲突值相关的警告。
•使用LUTNM对设计中任何位置存在的两个LUT组件进行分组,包括
在等级制度的不同层次。
•当您使用HLUTNM将LUT组件分组到单个分层模块中时
期望在设计中使用该模块的多个实例。
°HLUTNM在每个层次结构中都是不可查询的。
架构支持
所有架构。
适用对象
•CLB LUT单元(get_cell)
价值观
•<group_name>:一个唯一的组名,用于将指定的LUT打包到同一个LUT6站点中。
•禁用:防止放置器将指定的LUT与另一个LUT分组
在安置期间。
Syntax
Verilog Syntax
Place the Verilog attribute immediately before the instantiation of a LUT. The Verilog
attribute must be used in pairs in the same logical hierarchy.
(* LUTNM = "group_name" *)
Verilog Syntax Example
// Designates state0_inst to be placed in same LUT6 as state1_inst
// LUT5: 5-input Look-Up Table with general output (Mapped to a LUT6)
(* LUTNM = "LUT_group1" *) LUT5 #(
.INIT(32'ha2a2aea2) // Specify LUT Contents
) state0_inst (
.O(state_out[0]), // LUT general outpu
.I0(state_in[0]), // LUT input
.I1(state_in[1]), // LUT input
.I2(state_in[2]), // LUT input
.I3(state_in[3]), // LUT input
.I4(state_in[4]) // LUT input
);
// End of state0_inst instantiation
// LUT5: 5-input Look-Up Table with general output (Mapped to a LUT6)
// Virtex-7
// Xilinx HDL Language Template, version 2014.1
(* LUTNM = "LUT_group1" *) LUT5 #(
.INIT(32'h00330073) // Specify LUT Contents
) state1_inst (
.O(state_out[1]), // LUT general output
.I0(state_in[0]), // LUT input
.I1(state_in[1]), // LUT input
.I2(state_in[2]), // LUT input
.I3(state_in[3]), // LUT input
.I4(state_in[4]) // LUT input
);
// End of state1_inst instantiation
VHDL Syntax
Declare the VHDL attribute as follows:
attribute LUTNM : string;
For an instantiated instance, specify the VHDL attribute as follows:
attribute LUTNM of instance_name : label is "group_name";
Where:
•
instance_name
is a CLB LUT instance.
•
group_name
is the name to assign to the LUTNM property.
The VHDL attribute must be used in pairs in the same logical hierarchy.
VHDL Syntax Example
-- Designates state0_inst to be placed in same LUT6 as state1_inst
attribute LUTNM : string;
attribute LUTNM of state0_inst : label is "LUT_group1";
attribute LUTNM of state1_inst : label is "LUT_group1";
begin
-- LUT5: 5-input Look-Up Table with general output (Mapped to SLICEM LUT6)
state0_inst : LUT5
generic map (
INIT => X"a2a2aea2") -- Specify LUT Contents
port map (
O => state_out(0), -- LUT general output
I0 => state_in(0), -- LUT input
I1 => state_in(1), -- LUT input
I2 => state_in(2), -- LUT input
I3 => state_in(3), -- LUT input
I4 => state_in(4) -- LUT input
);
-- End of state0_inst instantiation
-- LUT5: 5-input Look-Up Table with general output (Mapped to SLICEM LUT6)
-- Virtex-7
-- Xilinx HDL Language Template, version 2014.1
State1_inst : LUT5
generic map (
INIT => X"00330073") -- Specify LUT Contents
port map (
O => state_out(1), -- LUT general output
I0 => state_in(0), -- LUT input
I1 => state_in(1), -- LUT input
I2 => state_in(2), -- LUT input
I3 => state_in(3), -- LUT input
I4 => state_in(4) -- LUT input
);
-- End of state1_inst instantiation
XDC Syntax
set_property LUTNM group_name [get_cells instance_name]
Where:
•
group_name
is the name to assign to the LUTNM property.
•
instance_name
is a CLB LUT instance.
XDC Syntax Example
# Designates state0_inst LUT5 to be placed in same LUT6 as state1_inst
set_property LUTNM LUT_group1 [get_cells U1/state0_inst]
set_property LUTNM LUT_group1 [get_cells U2/state1_inst]
Disabled XDC Example
set_property LUTNM "DISABLED" [get_cells -of \
[get_pins -leaf -filter DIRECTION==IN -of [get_pins ila_0/probe*]]]