UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor chao_xilinx
Visitor
167 Views
Registered: ‎01-23-2019

Kintex-7 parameterized macros, unimacros and design elements design entry

Jump to solution

I was reading throught the FPGA libraries.

I notice there are 3 groups of cells, parameterized macros, unimacros and design elements (primitives).

Q1. If I want to use the 3 groups of cells, do I just need to instantiate them in the verilog code?

Q2. Design elements(primitives) are simply the basic elements. What is the differences between parameterized macros and unimacros?

Thanks!

0 Kudos
1 Solution

Accepted Solutions
Explorer
Explorer
119 Views
Registered: ‎07-18-2018

Re: Kintex-7 parameterized macros, unimacros and design elements design entry

Jump to solution

Hi chao_xilinx,

1. A Design Element is suppose to be the Actual Primitive synthesis will use. It's what your HDL code will be transformed to from synthesis. So if you want to make a memory, you would find a FIFO, a BRAM, and URAM primitive defined with all it's ports. It's upto the user to know how to connect them up.

2. A Unsim Macro is suppose to make this a little easier and more flexible. Instead of a specific RAM primitive, you can choose the functionality, and then via parameters customize it. More like setting up an IP. So the same code might remain more readable, easier to change, and easier to share between devices, but still give you the control over trying to infer the primitives in HDL.

3. The XPM is a more robust version of item 2. You get more control over the Primitive from a single XPM definition. It also is intended to be more similar to having used an IP, and I believe for Ultrascale, you have to use XPMs over their UNIMACRO variants. So XPMs are really the successor.

0 Kudos
1 Reply
Explorer
Explorer
120 Views
Registered: ‎07-18-2018

Re: Kintex-7 parameterized macros, unimacros and design elements design entry

Jump to solution

Hi chao_xilinx,

1. A Design Element is suppose to be the Actual Primitive synthesis will use. It's what your HDL code will be transformed to from synthesis. So if you want to make a memory, you would find a FIFO, a BRAM, and URAM primitive defined with all it's ports. It's upto the user to know how to connect them up.

2. A Unsim Macro is suppose to make this a little easier and more flexible. Instead of a specific RAM primitive, you can choose the functionality, and then via parameters customize it. More like setting up an IP. So the same code might remain more readable, easier to change, and easier to share between devices, but still give you the control over trying to infer the primitives in HDL.

3. The XPM is a more robust version of item 2. You get more control over the Primitive from a single XPM definition. It also is intended to be more similar to having used an IP, and I believe for Ultrascale, you have to use XPMs over their UNIMACRO variants. So XPMs are really the successor.

0 Kudos