cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Adventurer
Adventurer
858 Views
Registered: ‎05-18-2018

What is the difference between modules and IP blocks in Vivado 2018.3?

Jump to solution

I am trying to port a Vivado design originally built around a ZYNQ 7010 to a ZYNQ UltraScale+ XAZU2EG-SFVA625.

In the original ZYNQ design, there is an IOBUF module.

IOBUF does not show up in my 7010 or UltraScale+ IP catalogs, but it does show up in my Add Module list for the 7010 only.

 

Since Vivado shows the vendor as Xilinx, why is IOBUF not available for my UltraScale+ design? Do I need to include it manually in my design somehow, or is there an UltraScale+ equivalent IP block I should use instead?

 

Thanks.

 

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
836 Views
Registered: ‎01-22-2015

Hi Joel,

IBUF, OBUF, and IOBUF are called primitives (and not IP).  Usually, these primitives are automatically placed in our design by the Vivado tools. 

However, if you want, you can manually instantiate these primitives into your design just as you'd instantiate any VHDL/Verilog component.  When instantiating the primitive in VHDL, you don’t need to declare the primitive.  Instantiation templates for the UltraScale IOBUF are described on about page 371 of UG974.  If you are using VHDL, then you also need to include the UNISIM library as follows:

library UNISIM;
use UNISIM.vcomponents.all;

Also, you might find UG1026 helpful when migrating your design to an UltraScale device.

Cheers,
Mark

View solution in original post

3 Replies
Highlighted
837 Views
Registered: ‎01-22-2015

Hi Joel,

IBUF, OBUF, and IOBUF are called primitives (and not IP).  Usually, these primitives are automatically placed in our design by the Vivado tools. 

However, if you want, you can manually instantiate these primitives into your design just as you'd instantiate any VHDL/Verilog component.  When instantiating the primitive in VHDL, you don’t need to declare the primitive.  Instantiation templates for the UltraScale IOBUF are described on about page 371 of UG974.  If you are using VHDL, then you also need to include the UNISIM library as follows:

library UNISIM;
use UNISIM.vcomponents.all;

Also, you might find UG1026 helpful when migrating your design to an UltraScale device.

Cheers,
Mark

View solution in original post

Highlighted
Xilinx Employee
Xilinx Employee
827 Views
Registered: ‎05-22-2018

Hi @joelschad ,

An addition to markg@prosensing.com  post, you can find there instantiation in Language Template:

iobufCapture.JPG

Thanks,

Raj

Highlighted
Adventurer
Adventurer
804 Views
Registered: ‎05-18-2018
Minor correction: IOBUF instantiation is on page 249 of UG974 (v2016.1).

Otherwise, thanks for the help!
0 Kudos