Embedded Memory User Guide: Agilex™ 3 FPGAs and SoCs

ID 849316
Date 5/22/2025
Public
Document Table of Contents

4.2.3.2.6. Instantiation Template

DCFIFO Verilog HDL Instantiation Template

//Quartus Prime Parameterizable Macro Template
//ASYNC FIFO
//Macro Location :
//$QUARTUS_ROOTDIR/libraries/megafunctions/async_fifo.v
 
async_fifo #( 
 .DATA_WIDTH_A                         (8),
 .ADDR_WIDTH_A                         (11),
 .DATA_WIDTH_B                         (8),
 .ADDR_WIDTH_B                         (11),
 .RDSYNC_DELAYPIPE                     (2),
 .WRSYNC_DELAYPIPE                     (2),
 .ENABLE_SHOWAHEAD                     ("OFF"),
 .UNDERFLOW_CHECKING                   ("ON"),
 .OVERFLOW_CHECKING                    ("ON"),
 .ADD_USEDW_MSB_BIT                    ("OFF"),
 .WRITE_ACLR_SYNCH                     ("OFF"),
 .READ_ACLR_SYNCH                      ("OFF"),
 .ADD_RAM_OUTPUT_REGISTER              ("OFF"),
 .MAXIMUM_DEPTH                        (2048),
 .BYTE_EN_WIDTH                        (1),
 .BYTE_SIZE                            (8)

) <instance_name> ( 
 .data        (_connected_to_data_),
 .rdclk       (_connected_to_rdclk_),
 .wrclk       (_connected_to_wrclk_),
 .aclr        (_connected_to_aclr_),
 .rdreq       (_connected_to_rdreq_),
 .wrreq       (_connected_to_wrreq_),
 .byteena     (_connected_to_byteena_),
 .rdfull      (_connected_to_rdfull_),
 .wrfull      (_connected_to_wrfull_),
 .rdempty     (_connected_to_rdempty_),
 .wrempty     (_connected_to_wrempty_),
 .rdusedw     (_connected_to_rdusedw_),
 .wrusedw     (_connected_to_wrusedw_),
 .q           (_connected_to_q_)
);
   

DCFIFO VHDL Instantiation Template

-- Macro Location :
-- $QUARTUS_ROOTDIR/eda/sim_lib/altera_lnsim_components.vhd
-- Add the library and use clauses before the design unit declaration
library altera_lnsim; 
use altera_lnsim.altera_lnsim_components.all; 
-- Instantiating ASYNC_FIFO 
 <instance_name> : ASYNC_FIFO 
 generic map ( 
   DATA_WIDTH_A =>                              8, 
   ADDR_WIDTH_A =>                              11, 
   DATA_WIDTH_B =>                              8, 
   ADDR_WIDTH_B =>                              11, 
   RDSYNC_DELAYPIPE =>                          2, 
   WRSYNC_DELAYPIPE =>                          2, 
   ENABLE_SHOWAHEAD =>                          "OFF", 
   UNDERFLOW_CHECKING =>                        "ON", 
   OVERFLOW_CHECKING =>                         "ON", 
   ADD_USEDW_MSB_BIT =>                         "OFF", 
   WRITE_ACLR_SYNCH =>                          "OFF", 
   READ_ACLR_SYNCH =>                           "OFF", 
   ADD_RAM_OUTPUT_REGISTER =>                   "OFF",
   MAXIMUM_DEPTH =>                             2048, 
   BYTE_EN_WIDTH =>                             1, 
   BYTE_SIZE =>                                 8 
) 
 port map (  
   data =>    _connected_to_data_,    -- input, width = DATA_WIDTH_A
   rdclk =>   _connected_to_rdclk_,   -- input, width = 1		   
   wrclk =>   _connected_to_wrclk_,   -- input, width = 1		   
   aclr =>    _connected_to_aclr_,    -- input, width = 1		   
   rdreq =>   _connected_to_rdreq_,   -- input, width = 1		   
   wrreq =>   _connected_to_wrreq_,   -- input, width = 1		   
   byteena => _connected_to_byteena_, -- input, width = BYTE_EN_WIDTH
   rdfull =>  _connected_to_rdfull_,  -- output, width = 1		   
   wrfull =>  _connected_to_wrfull_,  -- output, width = 1		   
   rdempty => _connected_to_rdempty_, -- output, width = 1		   
   wrempty => _connected_to_wrempty_, -- output, width = 1		   
   rdusedw => _connected_to_rdusedw_, -- output, width = ADDR_WIDTH_B 
   wrusedw => _connected_to_wrusedw_, -- output, width = ADDR_WIDTH_A 
   q =>       _connected_to_q_        -- output, width = DATA_WIDTH_B
};
   

SCFIFO Verilog HDL Instantiation Template

//Quartus Prime Parameterizable Macro Template
//SYNC FIFO
//Macro Location :
//$QUARTUS_ROOTDIR/libraries/megafunctions/sync_fifo.v

sync_fifo #( 
 .ADD_RAM_OUTPUT_REGISTER             ("OFF"),
 .ALMOST_EMPTY_VALUE                  (1),
 .ALMOST_FULL_VALUE                   (1),
 .ENABLE_SCLR                         ("OFF"),
 .ENABLE_ACLR                         ("OFF"),
 .ALLOW_RWCYCLE_WHEN_FULL             ("ON"),
 .ENABLE_SHOWAHEAD                    ("OFF"),
 .DATA_WIDTH                          (8),
 .ADDR_WIDTH                          (11),
 .OVERFLOW_CHECKING                   ("ON"),
 .UNDERFLOW_CHECKING                  ("ON"),
 .MAXIMUM_DEPTH                       (2048),
 .BYTE_SIZE                           (8),
 .BYTE_EN_WIDTH                       (1)

) <instance_name> ( 
 .clock        (_connected_to_clock_),        //input, width = 1 
 .data         (_connected_to_data_),         //input, width = DATA_WIDTH 
 .rdreq        (_connected_to_rdreq_),        //input, width = 1 
 .sclr         (_connected_to_sclr_),         //input, width = 1, synch reset 
 .aclr         (_connected_to_aclr_),         //input, width = 1, asynch reset 
 .wrreq        (_connected_to_wrreq_),        //input, width = 1 
 .byteena      (_connected_to_byteena_),      //input, width = BYTE_EN_WIDTH 
 .almost_empty (_connected_to_almost_empty_), //output, width = 1 
 .almost_full  (_connected_to_almost_full_),  //output, width = 1 
 .q            (_connected_to_q_),            //output, width = DATA_WIDTH 
 .usedw        (_connected_to_usedw_),        //output, width = ADDR_WIDTH 
 .empty        (_connected_to_empty_),        //output, width = 1 
 .full         (_connected_to_full_)          //output, width = 1 
);
   

SCFIFO VHDL Instantiation Template

-- Macro Location :
-- $QUARTUS_ROOTDIR/eda/sim_lib/altera_lnsim_components.vhd
-- Add the library and use clauses before the design unit declaration
library altera_lnsim;
use altera_lnsim.altera_lnsim_components.all;
-- Instantiating SYNC_FIFO

<instance_name> : SYNC_FIFO
 generic map ( 
 ADD_RAM_OUTPUT_REGISTER =>              "OFF",
 ALMOST_EMPTY_VALUE =>                   1,
 ALMOST_FULL_VALUE =>                    1,
 ENABLE_SCLR =>                          "OFF",
 ENABLE_ACLR =>                          "OFF",
 ALLOW_RWCYCLE_WHEN_FULL =>              "ON",
 ENABLE_SHOWAHEAD =>                     "OFF",
 DATA_WIDTH =>                           8,
 ADDR_WIDTH =>                           11,
 OVERFLOW_CHECKING =>                    "ON",
 UNDERFLOW_CHECKING =>                   "ON",
 MAXIMUM_DEPTH =>                        2048,
 BYTE_SIZE =>                            8,
 BYTE_EN_WIDTH =>                        1
)
port map (
 clock =>        _connected_to_clock_,        -- input, width = 1
 data =>         _connected_to_data_,         -- input, width = DATA_WIDTH
 rdreq =>        _connected_to_rdreq_,        -- input, width = 1
 sclr =>         _connected_to_sclr_,         -- input, width = 1
 aclr =>         _connected_to_aclr_,         -- input, width = 1
 wrreq =>        _connected_to_wrreq_,        -- input, width = 1
 byteena =>      _connected_to_byteena_,      -- input, width = BYTE_EN_WIDTH
 empty =>        _connected_to_empty_,        -- output, width = 1
 full =>         _connected_to_full_,         -- output, width = 1
 almost_empty => _connected_to_almost_empty_, -- output, width = 1
 almost_full =>  _connected_to_almost_full_,  -- output, width = 1
 q =>            _connected_to_q_,            -- output, width = DATA_WIDTH
 usedw =>        _connected_to_usedw_         -- output, width = ADDR_WIDTH
    );