Forum Discussion

Alkesh_shah's avatar
Alkesh_shah
Icon for New Contributor rankNew Contributor
1 month ago

Hard Reset Required After Each Boundary Scan Operation

Hello there,

I am working on a project involving JTAG operations (specifically boundary scan on the data register) using Quartus Prime Standard (v24) and a USB-Blaster cable.

Issue:  
After every scan operation, I need to perform a hard reset on the device connected to the cable. If I skip the hard reset, the next scan returns incorrect TDO values. I have tried performing a soft reset after each operation, but this does not resolve the issue. Only a hard reset consistently allows me to get the correct TDO results.

Sequence being used (via my Python library executing TCL commands):

open_device -hardware_name {USB-Blaster [USB-0]} -device_name {@1: JTAG_DEVICE (0x12345678)}
device_lock -timeout 10000
device_ir_shift -ir_value 0x00000000
puts "TDO is: 0x[device_dr_shift -length 48 -value_in_hex]"
device_unlock
close_device

Notes:
- The Python library manages TCL sessions in a dedicated terminal.
- I observe the same issue when performing these operations using Quartus directly.

My question:  
Is there a Quartus or TCL command or procedure that can help avoid the need for a hard reset after each boundary scan operation? Or is there a way to reliably ensure the correct TDO value is returned every time without hard resetting the device?

Thank you for your assistance.

10 Replies

  • AqidAyman_Altera's avatar
    AqidAyman_Altera
    Icon for Regular Contributor rankRegular Contributor

    Hello,

     

    Could you share:

    1. The exact device at @1 (family & part number)?
    2. The BSDL snippets for INSTRUCTION_OPCODE (SAMPLE/EXTEST/BYPASS/IDCODE) and BOUNDARY_LENGTH.
    3. Whether there are other devices in the chain (what does get_device_names / jtagconfig show)?

    • Alkesh_shah's avatar
      Alkesh_shah
      Icon for New Contributor rankNew Contributor

      Please find the response as below:

      1. It is a customized JTAG board.
      2. 0x00000000 is the EXTEST code and the boundary length is 48bits
      3. No, It is the only device connected (soo far) in the chain.

       

      • AqidAyman_Altera's avatar
        AqidAyman_Altera
        Icon for Regular Contributor rankRegular Contributor

        Sorry, as I do not quite understand what you mean on the customized JTAG board. What FPGA device are you using in this case?

  • AqidAyman_Altera's avatar
    AqidAyman_Altera
    Icon for Regular Contributor rankRegular Contributor

    Dear Customer,

    I will continue to monitor this post for the next 5 days. If there are no further inquiries during this period, I will step back and allow the community to assist with any future follow-up questions.

    Thank you for engaging with us!

    Best regards,
    Altera Technical Support

    • Alkesh_shah's avatar
      Alkesh_shah
      Icon for New Contributor rankNew Contributor

      Wait for few more days to get the better clarity and the right solution.