The AUTOPIPELINE_INCLUDE property specifies the name of another AUTOPIPELINE_GROUP to include when applying the AUTOPIPELINE_LIMIT. The normal usage scenario is in the forward and response shakehands protocal paths, one direction is defined as a “forward” group using AUTOPIPELINE_GROUP, and the other direction is defined as a primary “response” group using AUTOPIPELINE_GROUP, while adding reference to the forward group, so the round-trip path would share the maximum limit as defined.
Architecture Support
UltraScale, UltraScale+, Versal ACAP.
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 signals with a same auto-pipeline include group name must receive an equal number of auto-inserted pipeline flip-flops.
Syntax
VHDL Example Syntax
attribute autopipeline_include : string;
attribute autopipeline_group : string;
attribute autopipeline_limit : integer;
signal mywire: std_logic_vector(2 downto 1);
signal mybus: std_logic_vector(2 downto 1);
attribute autopipeline_group of mywire: signal is "sub_group";
attribute autopipeline_group of mybus: signal is "primary_group";
attribute autopipeline_include of mybus: signal is "sub_group";
attribute autopipeline_limit of mybus: signal is "12”;
Verilog Example Syntax
(* autopipeline_group="sub_group”*) wire mywire;
(* autopipeline_group="primary_group", autopipeline_limite= 12, autopipeline_include="sub_group"*) wire mybus;
XDC Example Syntax
set_property AUTOPIPELINE_GROUP primary_group [get_nets mywire]
set_property AUTOPIPELINE_INCLUDE sub_group [get_nets mywire]
The sub_group is included in the primary_group, and shares the maximum limit of 12 stages.
Affected Steps
•Place Design
•Phys Opt Design