AR# 66982

Vivado IP Flows - The Customization GUI of IP offer connection(s) to board components that have already been used in a project


In a project that uses the board flow, I can drag and drop components from the Board Tab on to the canvas. This instantiates the IP and then connects its interface to the right component on the board.

If I instantiate another instance of an IP that can connect to the same component on the board, the IP customization GUI will still show these components as valid options.

For example:

I have a project with a MicroBlaze design for the KCU105 board. This design uses the following components on the board:

  • the 300 MHz differential clock
  • the Reset
  • the LEDs
  • the UART

A MIG and a GPIO core are also present in the Board Design (BD). All of these components are hooked up using the board interface tab. 

However, I can still instantiate another instance of these IPs and by double clicking on the IP, I can re-use the already used interfaces.

Is this expected behavior? I cannot drag and drop an interface from the BI tab multiple times, so I would not expect to be allowed to do this through the IP customization window either.


Once an interface is used, ideally, the IP customization GUI would not offer it as a valid choice anymore.

A request has been made to enhance this option in a future Vivado release, so that when IP cores are added to a block design and those IP are customized on the canvas, the IP customization GUIs will not allow a connection to an already used resource.

When running validate_design, if multiple IP use the same resource, you should see a critical warning like the following:

CRITICAL WARNING: [BD 41-1077] Two separate IP interfaces "/axi_gpio_2/GPIO" and "/axi_gpio_0" should not be associated to common board_part interface "led_8bit.

AR# 66982
Date 12/18/2017
Status Active
Type General Article
Tools More Less