Author Topic: SVF execution error : Output value 0001 does not match the tdo option value  (Read 2166 times)

AhmedShaaban

  • Active Member
  • *
  • Posts: 10
Hello everyone,

I am using TE0745 (XC7Z045-1FBG676C) module with no code on it's Micron Flash,TEB0745 kit and XUP USB-JTAG Programming Cable (from digilent). Also I am using Vivado 2018.1.

I am trying to create and run SVF file for a simple PL (No need for PS side now) example  (GPIO-LED each connected to one of TEB0745 pin headers pins).
 
First I generated the Bit file and then downloaded it to target through Digilent Jtag and every thing is fine. Then an SVF file is generated successfully using "Create SVF File" Vivado option . But when I tried to run the svf file using "exec_hw_svf " command the following error is received :
"xilinx [labtools 27-2255] output value 0001 does not match the tdo option value"

and I don't know how to solve it, So i need your help to solve this issue!.

Note:
I have also a Xilinx ZC706 kit and I tried the same example on it using the same steps as above and everything is ok.

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Hello,
can you send me the whole article name. We have different assembly option (not only FPGA can be changed), so TE0745 (XC7Z045-1FBG676C) must be not unique.

Why did you not use the TE0790 JTAG programmer which was delivered with TEB0745 carrier?


With TEB0745 you can Boot from SD or QSPI. So put your Boot.bin on SD  and start from SD(set BOOT Mode Pin to SD) or Program Flash(Set Boot Mode Pin to QSPI) .


We have an example design online, which includes prebuilt Boot.bin and image.ub to test HW (newest Version is for 19.2):
https://wiki.trenz-electronic.de/display/PD/TE0745+Test+Board

We never work with sfv .  How did you try to generate sfv and how did you try to program? Can you send me the whole log?

 ""xilinx [labtools 27-2255] output value 0001 does not match the tdo option value"" sound that either something is wrong with your svf or it read back other value as expected.  Can you reduce JTAG speed one time and try again.

br
John

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Hi,
how did you generate your svf, I found only:
https://www.xilinx.com/html_docs/xilinx2018_1/SDK_Doc/xsct/use_cases/xsct_play_svf_file.html

--> so it seems its a record file from an running system or?

br
John

AhmedShaaban

  • Active Member
  • *
  • Posts: 10
Hello John,

I appreciate your fast response.

"can you send me the whole article name. We have different assembly option (not only FPGA can be changed), so TE0745 (XC7Z045-1FBG676C) must be not unique."

Module: TE0745-02-91C11-A ; Link:https://shop.trenz-electronic.de/en/TE0745-02-91C11-A-SoM-with-Xilinx-Zynq-XC7Z045-1FBG676C-1-GByte-DDR3L-SDRAM-5.2-x-7.6-cm

"Why did you not use the TE0790 JTAG programmer which was delivered with TEB0745 carrier?"
I don't have one now


With TEB0745 you can Boot from SD or QSPI. So put your Boot.bin on SD  and start from SD(set BOOT Mode Pin to SD) or Program Flash(Set Boot Mode Pin to QSPI) .


We have an example design online, which includes prebuilt Boot.bin and image.ub to test HW (newest Version is for 19.2):
https://wiki.trenz-electronic.de/display/PD/TE0745+Test+Board



I know the example designs and the available boot modes, but to be more clear, my final target is to program TE0745 using microcontroller, external flash and Xilinx XAPP058(provided by xilinx) through the JTAG pins connected to TE0745.


"We never work with sfv .  How did you try to generate sfv and how did you try to program? Can you send me the whole log?"

I started by creating a FPGA only application (ButtonLed_PLSide). It’s a simple application just illuminate led when button is pressed. Button is connected to J23 pin 43 (on TEB0745) and Led is connected to J23 pin 42 (on TEB0745).
As I mentioned before, I downloaded bit file to FPGA using Vivado 2018.1 and Digilent XUP JTAG programming cable (the only one I have currently) and everything is ok.
The detailed steps to generate the SVF file are:
1-   Open hardware manager from vivado.
2-   Go to Tools and select “Create SVF Target”
3-   Select name for the target; for example: TE0745_SVF
4-   At device chain window press + button to add device then select “Add Xilinx part”
5-   Select device “xc7z045fbg676-1”
6-   Select the fpga from the generated chain, right click and select “add program device operation”
7-   Select your bit file and press ok
8-   Press “Export SVF” button and select where to save the generated svf
And that’s it.

The next step is to verify that the generated SVF (named: TE0745_SVF.svf) is correct by running it on the TE0745 as follows (Note: Jtag must be connected and the board is powered on):
1-   Open hardware manager from vivado.
2-   Select “Open target”
3-   Select “Auto connect”
4-   At TCL console type
“execute_hw_svf %path to your svf file%  and press enter

Wait till loading is done, and If everything is ok (which is not the case here; but it’s the case for ZC706 kit as I mentioned before), you should notice that TE0745 red led is off and your code is loaded successfully (Led is on while button is pressed).
But I receive the error “xilinx [labtools 27-2255] output value 0001 does not match the tdo option value”.


"Can you reduce JTAG speed one time and try again."
I will try to reduce the JTAG speed as you mentioned and let you know the result, but I think it will not make a difference and also I used the JTAG without changing its speed to download the bit file to the TE0745 using the “Program Device” option of the Vivado Hardware manager and it works fine.


"how did you generate your svf, I found only:
https://www.xilinx.com/html_docs/xilinx2018_1/SDK_Doc/xsct/use_cases/xsct_play_svf_file.html

--> so it seems its a record file from an running system or?"


Yes that's right, these steps to generate SVF file for PS-side application (ELF) not for PL side and also I will use these steps later just after I finish the current scenario of SVF for PL side.


For now I will try to reduce the JTAG speed then I will try and If you figured out anything, please let me know.

Note: I attached the whole project with the SVF file.

Thanks,
Best regards.

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Hi,
thanks for detailed description.
Quote
Wait till loading is done, and If everything is ok (which is not the case here; but it%u2019s the case for ZC706 kit as I mentioned before), you should notice that TE0745 red led is off and your code is loaded successfully (Led is on while button is pressed).
But I receive the error %u201Cxilinx [labtools 27-2255] output value 0001 does not match the tdo option value%u201D.
So it seems to work but you get still this error which not appears on ZC706.
I'm out of office at the moment, but I will try it out during the next week.
In the meantime you can you check following:

  • Which Boot Mode is set on ZC706? JTAG only or other one? --> TE0745 has default only QSPI or SD with JTAG in cascade (I can send you JTAG only CPLD firmware in case this is necessary).
  • Maybe PS is initialised on ZC706? Check that PS was not initialised by maybe an older demo design on the board(in case you has boot mode unequal JTAG).

br
John

AhmedShaaban

  • Active Member
  • *
  • Posts: 10
Hi John,

thanks for detailed description. So it seems to work but you get still this error which not appears on ZC706.
I'm out of office at the moment, but I will try it out during the next week.

No it's not working on TE0745 because of that error (when I said If everything is ok, I meant that svf is loaded successfully without errors which is the case in ZC706 kit).

Quote
Which Boot Mode is set on ZC706? JTAG only or other one?

I tried on the JTAG mode and everything works fine.

Quote
I can send you JTAG only CPLD firmware in case this is necessary

I will appreciate that If you don't mind.

Quote
I'm out of office at the moment, but I will try it out during the next week.

I will wait your response.

Thanks,
Best regards.

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Hi,
Quote
No it's not working on TE0745 because of that error (when I said If everything is ok, I meant that svf is loaded successfully without errors which is the case in ZC706 kit).

But you wrote:
Quote
), you should notice that TE0745 red led is off and your code is loaded successfully (Led is on while button is pressed).
RED LED is  inverted done LED, which indicates PL part is programmed.
https://wiki.trenz-electronic.de/display/PD/TE0745+TRM#TE0745TRM-LEDs

--> So it programmed PL(FPGA) part but returns error. Or do I still misunderstand you?

On your ZC706:
Quote
I tried on the JTAG mode and everything works fine.
Can you set the same boot mode there like you has set on TE0745 to see if you can also reproduce the error message with ZC706 -->  In case you can, issue depends on the Boot mode settings

br
John



AhmedShaaban

  • Active Member
  • *
  • Posts: 10
Hi John,

Quote
you should notice that TE0745 red led is off and your code is loaded successfully (Led is on while button is pressed).

I meant if a happy scenario happens like the case on ZC706 (Sorry if I confused you).

Quote
So it programmed PL(FPGA) part but returns error. Or do I still misunderstand you?

No, It's not Programmed and returns error all the time.

Quote
Can you set the same boot mode there like you has set on TE0745 to see if you can also reproduce the error message with ZC706 -->  In case you can, issue depends on the Boot mode settings

I'll try and let you know.


FYI, I tried to reduce JTAG speed and try to run SVF again but It's still returns the same error.

Thanks,
Best regards.

AhmedShaaban

  • Active Member
  • *
  • Posts: 10
Hi John,

Last Update.

I had tried the following on ZC706 Kit:

1- Set Boot mode to JTAG , Running SVF of GPIO_LED application ; Everything is ok (No errors received , Led is on while button is pressed).
2- Set Boot mode to QSPI Flash, Flash Empty , Running SVF of GPIO_LED application ; Everything is ok (No errors received , Led is on while button is pressed).
3- Set Boot mode to QSPI Flash, Flash has dummy code which is loaded after power up, Running SVF of GPIO_LED application; Everything is ok (No errors received , Led is on while button is pressed).
4- Set Boot mode to SD card, SD card is not inserted, Running SVF of GPIO_LED application; Everything is ok (No errors received , Led is on while button is pressed).

So It seems that All Boot modes doesn't make any problems while downloading and executing the SVF file on ZC706 Kit.

Wait to hear from You.

Thanks,
Best regards.


AhmedShaaban

  • Active Member
  • *
  • Posts: 10
Hi John,

New Update, I succeeded to execute the SVF file on TE0745 using the following steps (workaround):

1- Flash dummy code on to TE0745 QSPI flash.
2- Set boot mode to QSPI (by adjusting TEB0745 Dip Switch BOOT MODE Pin),
3- Power on the board and wait till dummy code  is loaded from QSPI flash (You will notice that TE0745 Red led is off).
4- Open hardware manager
5- Select Open target and Auto Connect
6- At TCL console window execute "execute_hw_svf  %Svf file path%TE0745_SVF.svf" and press enter
   ---> Loading file process is started (You will notice that TE0745  Red Led is on)
7- After while you will get a message at TCL console states that file is executed successfully (You will notice that TE0745  Red Led is off again which means code is loaded)
8- Now the example is running on FPGA;i.e Led (which is connected to J23 pin 44 on TEB0745) is on while button (which is connected to  connected to J23 pin 43 on TEB0745) is pressed.

So I think that something wrong happens (to TE0745) when the following sequence is performed :

1- Setting the BOOT MODE to QSPI/SD card but there is no Image to be loaded (flash/sd card has no Image)
2- Then trying to execute the svf file
3- Receiving the error "xilinx [labtools 27-2255] output value 0001 does not match the tdo option value"


Finally I hope you can figure out why that happens.

For the time being, the workaround above works fine with me, but I will try to flash the CPLD with JTAG only firmware and test the SVF execution , so If you don't mind I need the JTAG only CPLD firmware. You can send me the Jed file on:  ashaban@ttctechltd.com

Thanks,
Best regards.

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1997
Hi,
on ZC706 and your condition:
2- Set Boot mode to QSPI Flash, Flash Empty , Running SVF of GPIO_LED application ; Everything is ok (No errors received , Led is on while button is pressed).
you are sure that the flash is really empty (you has erased whole flash with VIvado HW Manager). And did you generate svf when the boot mod was set to QSPI or to JTAG? Maybe this is the different either there was still something in the flash or your exported svf files  used boot mode jtag independend from setup, because it was generated with JTAG boot mode setup.....but that's all conjecture on my part.

I will send you an email for JTAG only CPLD firmware.

br
John

AhmedShaaban

  • Active Member
  • *
  • Posts: 10
Hi john,

Quote
on ZC706 and your condition:
2- Set Boot mode to QSPI Flash, Flash Empty , Running SVF of GPIO_LED application ; Everything is ok (No errors received , Led is on while button is pressed).
you are sure that the flash is really empty (you has erased whole flash with VIvado HW Manager)

Yes , I erased whole flash using HW manager.

Quote
And did you generate svf when the boot mod was set to QSPI or to JTAG? Maybe this is the different either there was still something in the flash or your exported svf files  used boot mode jtag independend from setup, because it was generated with JTAG boot mode setup.....but that's all conjecture on my part

I am not expert, but I think the generation of SVF file is independent of Boot mode. The steps I had followed to generate the svf file is totally done while the target (TE0745) is not connected to PC (SVF offline target creation). You can refer to xilinx UG908 Vivado Design Suite User
Guide Programming and Debugging; chapter 8 for more details.

Quote
I will send you an email for JTAG only CPLD firmware.

I have received it and I will try it as soon as I have the TE0790 JTAG.

Thanks,
Best regards.