syn_peri_port

You apply the syn_peri_port attribute to top-module ports in your RTL. This option allows you control how inference is done on each I/O port. In the default inference flow, synthesis infers I/O registers or I/O buffers on any I/O port if it is possible. The tool prioritizes inferring I/O registers over I/O buffers (i.e., if an EFX_IBUF or EFX_IREG can be inferred for a given input port, an EFX_IREG will be inferred).

Notice: Refer to the Trion®, Topaz, and Titanium Quantum primitives user guides for primitive defintions.

The attribute has the following settings:

  • 0—Do not infer any interface blocks
  • 1—Infer buffers only (EFX_IBUF, EFX_OBUF, EFX_IO_BUF)
  • 2—Infer registers only (EFX_IREG, EFX_OREG)
  • 3—Infer buffers and registers (default value in inference flow)

This attribute is supported in the Efinity software v2024.2 and higher.

Verilog HDL:
module iregtst_port_attr (clk,i1,o1,i2,o2,i3,o3,i4,o4,i5,o5);
    (* syn_peri_port = 0 *) input clk;
    (* syn_peri_port = 0 *) input i1; 
    (* syn_peri_port = 3 *) output o1; 
    (* syn_peri_port = 2 *) input i2; 
VHDL:
entity top is
port (
   pll_resetn : out std_logic;
   pll_lock : in std_logic;
   clk : in std_logic;
   clk50 : in std_logic; 
);
ATTRIBUTE syn_peri_port : INTEGER;
ATTRIBUTE syn_peri_port OF pll_resetn : SIGNAL IS 0;
ATTRIBUTE syn_peri_port OF pll_lock : SIGNAL IS 0;
ATTRIBUTE syn_peri_port OF clk : SIGNAL IS 0;
ATTRIBUTE syn_peri_port OF clk50 : SIGNAL IS 0;