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: 
Highlighted
Contributor
Contributor
7,152 Views
Registered: ‎02-27-2016

MPSoC EMIO SPI wired incorrectly?

I am looking at how SPI from the MPSoC is wired out via EMIO, and it appears to be wired differently than the Zynq-7000 device before it.

 

If you create two designs, one with an MPSoC and one with Zynq-7000, for both wire SPI0 out via EMIO, and then generate the top level HDL wrapper, you will notice that instead of the more common MSIO and MOSI port names, the names on the HDL wrapper are SCLK, SS, IO0, and IO1.

 

For Zynq-7000 devices, the IO1 input signal is wired to EMIOSPI0MI (SPI 0, Master, MISO) on the PS7 IP block (you can view this via schematic from a synthesized design).  For MPSoC designs, it appears that IO1 input is wired to EMIOSPI0SI (SPI 0, Slave, MOSI) on the PS8 IP block.

 

Can anyone from confirm this?  Is this a bug?

DornerWorks
https://goo.gl/8wtknW
Tags (4)
0 Kudos
7 Replies
Adventurer
Adventurer
2,404 Views
Registered: ‎12-02-2014

Re: MPSoC EMIO SPI wired incorrectly?

BUMP for zombie thread!  We saw the same issue in 2017.1 / 2017.2.  Looks to be some kind of lack of coherency between different components.

0 Kudos
Visitor mamunjo
Visitor
1,966 Views
Registered: ‎09-26-2017

Re: MPSoC EMIO SPI wired incorrectly?

I think I have the same problem in Vivado 2017.3. I have not checked the schematics but the symptoms are that SPI transfers seems to be internally loopbacked, read data = write data.

 

Also the signal renaming from IPI schematics to HDL is confusing. spi_emio_m* and spi_emio_s* becomes spi_io0* and spi_io1* with no obvious indication which is miso or mosi.

0 Kudos
Observer martin.hecht
Observer
1,787 Views
Registered: ‎07-31-2012

Re: MPSoC EMIO SPI wired incorrectly?

Hi, Also in Vivado 2017.4 it seems MISO will not be connected to the PSU-SPI. I can see MISO comes from the pin when monitoring with System-ILA. But the PSU-MISO mirrors PSU-MOSI!

 

Remembering on the naming is not too complicated: SPI-Io0 means MOSI (m0si), SPI-Io1 means MISO (m1so).

0 Kudos
Moderator
Moderator
1,778 Views
Registered: ‎07-31-2012

Re: MPSoC EMIO SPI wired incorrectly?

Hi,

 

EMIO SPI_0 under the signal do not have all use, you only need to use the following four signal lines can be (see below):

 

emio_spi0_m_o  ->MOSI

emio_spi0_m_i -> MISO

emio_spi0_sclk_o -> CLK

emio_spi0_ss_o_n -> SS

 

Regards

Praveen


-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Observer martin.hecht
Observer
1,775 Views
Registered: ‎07-31-2012

Re: MPSoC EMIO SPI wired incorrectly?

Hi Praveen,

 

I will test it. Is there an official AR#? Normally when working with Interfaces Vivado should route them correctly. Please see my SR#10428503 and pelase check whether there has an CR# been filed.

 

Best regards,

MArtin

 

0 Kudos
Visitor zblack
Visitor
1,247 Views
Registered: ‎07-02-2018

Re: MPSoC EMIO SPI wired incorrectly?

It is still not clear to me how spi_0_io0 and spi_0_io1 in the HDL wrapper map to emio_spi0_m_o and emio_spi0_m_i in the block diagram.  Can someone explain how this is mapped?  Also, why are the signals in the HDL wrapper not matching the signals in the Vivado block diagram?

 

I am using a Zynq UltraScale+ MPSoC XCZU15EG-FFVB1156 in Vivado 2018.1

 

Thank you,

Zach

0 Kudos
Visitor baetzs
Visitor
1,110 Views
Registered: ‎04-07-2015

Re: MPSoC EMIO SPI wired incorrectly?

Don't create a port of the "full" SPI Interface, use only the required ports as pvenugo mentioned.

ultrascale_spi.png

0 Kudos