The AUTOPIPELINE_GROUP property (see AUTOPIPELINE_MODULE, AUTOPIPELINE_INCLUDE, AUTOPIPELINE_LIMIT) is used to define a group of nets as the objects of auto-pipelining optimization. When this optimization feature is triggered, it will insert and place the additional pipeline stages based on setup timing slack and SLR distance. See “Auto-Pipelining” in Vivado Design Suite User Guide: Implementation (UG904) [Ref 20] for more information.
Architecture Support
UltraScale, UltraScale+, Versal™ ACAP architectures.
Applicable Objects
•Nets (get_nets)
•Cells (get_cells)
Each single net should be directly driven by a flip-flop, and the fanout load can only be 1.
Value
<group_name>: This is a unique string value that can be assigned to one or more nets. The placer will take the specified objects as one whole group to implement the auto-pipeline insertion. The signals with a same auto-pipeline group name must receive an equal number of auto-inserted pipeline flip-flops.
Syntax
VHDL Example Syntax
attribute autopipeline_group : string;
signal mywire: std_logic_vector(2 downto 1);
attribute autopipeline_group of mywire: signal is "group_name";
Verilog Example Syntax
(* autopipeline_group="group_name"*) wire mywire;
XDC Example Syntax
set_property AUTOPIPELINE_GROUP group_name [get_nets mywire]
Affected Steps
•Place Design
•Phys Opt Design