About Xilinx Parameterized Macros
This section describes Xilinx Parameterized Macros that can be used with UltraScale™ architecture-based devices. The macros are organized alphabetically.The following information is provided for each macro, where applicable:
- Name, description, macro group, macro subgroup, and family
- Schematic symbol
- Introduction
- Logic diagram (if any)
- Port descriptions
- Design Entry Method
- Available attributes
- Example instantiation templates
- Links to additional information
Enabling Xilinx Parameterized Macros
- Ensure Vivado can identify the XPMs.
- When using the IDE and/or the project flow, the tools will parse the files added to the project and setup Vivado to recognize the XPMs.
- When using the non-project flow, you must issue the auto_detect_xpm command.
- Select the XPM template that you wish to use from below.
- Copy the contents of the template and paste into your own source file.
- Set parameters/generics, and wire ports according to the documentation provided as code comments.
Testbench
A testbench for XPM CDC macros is available in the XPM CDC Testbench File .
A testbench for XPM FIFO macros is available in the XPM FIFO Testbench File .
Instantiation Templates
Instantiation templates for library elements are also available in AMD Vivado™ , as well as in a downloadable ZIP file. Because PDF includes headers and footers if you copy text that spans pages, you should copy templates from Vivado or the downloaded ZIP file whenever possible.
Instantiation templates can be found on the Web in the Instantiation Templates for Xilinx Parameterized Macros (XPM_Library_Guide_2024.2_HDL_Templates.zip) file.
List of Xilinx Parameterized Macros
XPM_CDC_ARRAY_SINGLE | Parameterized Macro: Single-bit Array Synchronizer | CDC |
XPM_CDC_ASYNC_RST | Parameterized Macro: Asynchronous Reset Synchronizer | CDC |
XPM_CDC_GRAY | Parameterized Macro: Synchronizer via Gray Encoding | CDC |
XPM_CDC_HANDSHAKE | Parameterized Macro: Bus Synchronizer with Full Handshake | CDC |
XPM_CDC_PULSE | Parameterized Macro: Pulse Transfer | CDC |
XPM_CDC_SINGLE | Parameterized Macro: Single-bit Synchronizer | CDC |
XPM_CDC_SYNC_RST | Parameterized Macro: Synchronous Reset Synchronizer | CDC |
XPM_FIFO_ASYNC | Parameterized Macro: Asynchronous FIFO | FIFO |
XPM_FIFO_AXIF | Parameterized Macro: AXI-Full FIFO | FIFO |
XPM_FIFO_AXIL | Parameterized Macro: AXI-Lite FIFO | FIFO |
XPM_FIFO_AXIS | Parameterized Macro: AXI Stream FIFO | FIFO |
XPM_FIFO_SYNC | Parameterized Macro: Synchronous FIFO | FIFO |
XPM_MEMORY_DPDISTRAM | Parameterized Macro: Dual Port Distributed RAM | Memory |
XPM_MEMORY_DPROM | Parameterized Macro: Dual Port ROM | Memory |
XPM_MEMORY_SDPRAM | Parameterized Macro: Simple Dual Port RAM | Memory |
XPM_MEMORY_SPRAM | Parameterized Macro: Single Port RAM | Memory |
XPM_MEMORY_SPROM | Parameterized Macro: Single Port ROM | Memory |
XPM_MEMORY_TDPRAM | Parameterized Macro: True Dual Port RAM | Memory |