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!

Showing results for 
Search instead for 
Did you mean: 
Observer legoman
Registered: ‎06-14-2012

XDC port direction?

I defined my top level I/O ports with Vivado I/O planning project and got following output:


set_property DIRECTION OUT [get_ports spi_en]
set_property IOSTANDARD LVCMOS18 [get_ports spi_en]
set_property DRIVE 12 [get_ports spi_en]
set_property SLEW SLOW [get_ports spi_en]


After this I created simple Vivado block design with MicroBlaze and AXI-Quad SPI interface, and instantiated it inside my top level HDL-wrapper.


Now after implemetation I'm getting following errors on Vivado:


"Command failed: Cannot change direction of connected port 'spi_en'"
"Command failed: Cannot change direction of connected port 'spi_clk'"
"Command failed: Cannot change direction of connected port 'spi_din'"
"Command failed: Cannot change direction of connected port 'spi_dot'"


If I remove the "set_property DIRECTION OUT [get_ports spi_en]" from the xdc-file I get rid of the errors and the pins are showing correctly in the schema with INBUF and OBUF instances. So is the block design taking already care of the port directions and I don't actually have to define those in the xdc-file at all?

0 Kudos
2 Replies
Xilinx Employee
Xilinx Employee
Registered: ‎08-01-2008

Re: XDC port direction?

check this ARs
Thanks and Regards
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution.
0 Kudos
Xilinx Employee
Xilinx Employee
Registered: ‎09-20-2012

Re: XDC port direction?

Hi @legoman


Yes, your understanding is correct.

set_property DIRECTION constraints are typically used in IO Planning projects. In full projects, where the IO directions have been defined in top level RTL, the constraints are no longer necessary.
Simply remove the constraints to resolve the errors.


Google your question before posting. If someone's post answers your question, mark the post as answer with "Accept as solution". If you see a particularly good and informative post, consider giving it Kudos (the star on the left)
0 Kudos