cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Voyager
Voyager
1,145 Views
Registered: ‎05-30-2018

Can't execute scan_ir_hw_jtag command in Tcl Console

Jump to solution

Hello,

When trying to execute the following command:

scan_ir_hw_jtag 6 -tdi 0x05

the following error message appears in Tcl Console:

ERROR: [Labtoolstcl 44-266] create a chain object using 'open_hw_target -jtag_mode true' before using this command

But target is already created ... I see it in hardware manager.

Anyway, executing open_hw_target before scan_ir_hw_jtag doesn't help.

Thanks

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
1,084 Views
Registered: ‎01-21-2013

Hi @pavel_47,

It is not a supported flow to have multiple instances of tools connected to the same target.

You should disconnect from the target in Vivado, to be able to connect to it in other tools.

So, run the script in Vivado, disconnect to the target, and then connect and run in XSCT.

Have I understood your flow correctly?

 

Thanks,
Wendy
Xilinx Technical Support
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

7 Replies
Highlighted
Voyager
Voyager
1,135 Views
Registered: ‎05-30-2018

.....
run_state_hw_jtag also doesn't work.

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
1,102 Views
Registered: ‎01-21-2013

Hi @pavel_47

The emphasis here is on the -jtag_mode true.

  1. Close the hw_target
  2. Reopen with the command: open_hw_target -jtag_mode 1
  3. Then try the scan_ir_hw_jtag command.
Thanks,
Wendy
Xilinx Technical Support
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
Voyager
Voyager
1,092 Views
Registered: ‎05-30-2018

Hi Wendy,

It works ! Thanks.

But new problem occurred: apparently I can't share JTAG between 2 consoles:

  • Tcl Console in Vivado
  • XSCT Console in SDK

While my script works in Tcl, in XSCT console commands hang.

My objectif is to compare the result of execution of the

fpga -config-status instruction in XSCT Console 

with

my custom Tcl script executed in Tcl Console in Vivado that is supposed to do the same job.

So if the Tcl script executed in Tcl Console in Vivado produces some result, the instruction fpga -config-status executed in XSCT Console in SDK merely hangs.

Any ideas ?

Thanks.

 

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
1,085 Views
Registered: ‎01-21-2013

Hi @pavel_47,

It is not a supported flow to have multiple instances of tools connected to the same target.

You should disconnect from the target in Vivado, to be able to connect to it in other tools.

So, run the script in Vivado, disconnect to the target, and then connect and run in XSCT.

Have I understood your flow correctly?

 

Thanks,
Wendy
Xilinx Technical Support
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

Highlighted
Voyager
Voyager
1,078 Views
Registered: ‎05-30-2018

Thanks Wendy,

Well, if can't use JTAG from two tools (SDK and Vivado) simultaneously it will be difficult to compare the two results:

  • fpga -config-status  ("golden case") in XSCT Console,which is part of SDK
  • custom script in Tcl console of Vivado

... because the conditions might not be the same (probably the same, but I'm not sure ?)

So, probably the only mean to debug custom script is to compare the JTAG waveforms (TCK, TDI, TDO, TMS) in both cases.

I've wired these signals (picked at Digilent JTAG module on my ZC706 board) to generic I/Os of ZC706 and can visualize them on ILA.

The only example that I found on this subject (handling JTAG from Tcl Console) is readback_capture.tcl in xapp1230.

But this example isn't directly applicable to my case: 1st the device isn't the same (Ultrascale instead of Zynq-7000 in my case) and 2nd ... the task isn't the same: configuration readback instead of reading of the configuration status register (in my case).

Nevertheless, I tried to concoct a script to read the configuration status register, drawing on the example of xapp1230.

For the moment it doesn't work: the sequences on JTAG lines are quite different in both cases.

Are you aware of some other examples that are more close to my case.

Thanks

 

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
1,068 Views
Registered: ‎01-21-2013

Hi @pavel_47

 

I think it would be best to start a new thread for this question.

 

Is my understanding correct that what you are trying to do is as below:

  1. Let’s say for example, configuration fails
  2. You want to check the configuration status register to look for errors.
  3. You want to check in SDK
  4. You want to also check using your script.
  5. You want to ensure both of the configuration status registers (from 3 & 4) match so you want to compare them both to validate your script.

 

If that is the case, if configuration has failed, it has stopped.

So you could connect using your script and check the output of the status register.

You could then disconnect and connect using SDK to check the output of the same register.

The outputs should match, as the configuration is in the same state i.e. it hasn’t changed, it has failed.

 

Maybe I have misunderstood what you are attempting to do?

Thanks,
Wendy
Xilinx Technical Support
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Voyager
Voyager
1,039 Views
Registered: ‎05-30-2018

Hi Wendy,

Well, the final goal isn't just check configuration status register, but rather mastering of the configuration staff handling (e.g. programming, redback) over JTAG.

I've selected "check configuration status register" because there is an instruction that can be executed in XSCT console:

fpga -config-status

This command serves as a "golden reference" to estimate that my custom script is working properly or not.

Once I understood how to handle the configuration staff with Tcl instructions, I could switch to more interesting applications, such as one-frame-read / one-frame-write.

I've already created several posts on this subjects but still didn't find a solution.

Sincerely,

Pavel.

0 Kudos