Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16556 Discussions

Qartus command prompt flashing is unsuccessful throwing "Can't access JTAG chain" error message

Meenak
Employee
1,787 Views

We are from XPIV team covering automation for the PM and MSS. We were using the Quartus tool to flash the CPLD and we have the scripts in which the CPLD flashing is automated. While using the quartus_pgm tool for flashing we are getting the some error as posted below, Please support us in this regard.

The same flashing works fine if use the Quartus GUI

 

Quartus Pro 18.1 is used also Quartus Standard 20.1 tried both were throwing the same results

 

CLI Command used for flashing .pof

 

quartus_pgm.exe -c "USB-BlasterII" --mode=JTAG --operation="p;C:\SvShare\CPLD_Firmware\CPLD_WC_Main\pfr.pof"

 

Console Logs

 

Device: 10M16SAU324

Warning (210120): MAX 10 information is incomplete. The ISP clamp functionality will be disabled.

Info: *******************************************************************

Info: Running Quartus Prime Programmer

    Info: Version 18.1.0 Build 222 09/21/2018 SJ Pro Edition

    Info: Copyright (C) 2018  Intel Corporation. All rights reserved.

    Info: Your use of Intel Corporation's design tools, logic functions

    Info: and other software and tools, and its AMPP partner logic

    Info: functions, and any output files from any of the foregoing

    Info: (including device programming or simulation files), and any

    Info: associated documentation or information are expressly subject

    Info: to the terms and conditions of the Intel Program License

    Info: Subscription Agreement, the Intel Quartus Prime License Agreement,

    Info: the Intel FPGA IP License Agreement, or other applicable license

    Info: agreement, including, without limitation, that your use is for

    Info: the sole purpose of programming logic devices manufactured by

    Info: Intel and sold by Intel or its authorized distributors.  Please

    Info: refer to the applicable agreement for further details.

    Info: Processing started: Tue Jan  5 10:51:09 2021

Info: Command: quartus_pgm -c USB-BlasterII --mode=JTAG --operation=p;C:\SvShare\CPLD_Firmware\CPLD_WC_Main\pfr.pof

Info (213045): Using programming cable "USB-BlasterII [USB-1]"

Info (213011): Using programming file C:/SvShare/CPLD_Firmware/CPLD_WC_Main/pfr.pof with checksum 0x04B5BC4C for device 10M16SAU324@1

Info (209060): Started Programmer operation at Tue Jan  5 10:51:10 2021

Info (209017): Device 1 contains JTAG ID code 0x031830DD

Info (209060): Started Programmer operation at Tue Jan  5 10:51:11 2021

Error (209040): Can't access JTAG chain

Error (209012): Operation failed

Info (209061): Ended Programmer operation at Tue Jan  5 10:51:12 2021

Error (209012): Operation failed

Info (209061): Ended Programmer operation at Tue Jan  5 10:51:12 2021

Error: Quartus Prime Programmer was unsuccessful. 3 errors, 1 warning

    Error: Peak virtual memory: 4635 megabytes

    Error: Processing ended: Tue Jan  5 10:51:12 2021

    Error: Elapsed time: 00:00:03

0 Kudos
10 Replies
YuanLi_S_Intel
Employee
1,772 Views

Hi,


From the error message, it seems like the device part number is not the same between physical device and device selected in quartus. Can you please check on it?


Also, can you try to reduce the TCK frequency of USB Blaster II to 6MHz?


Thank You.


Regards,

Bruce


0 Kudos
tsramakx
Employee
1,762 Views

Hello Bruce,

I believe an intermediate FLASH device is programmed, which in turn programs the main device. (I am not sure about this, please feel free to correct me about the flow, based on what I am summarizing below)

We put the target platform in S5 state.

1) In GUI mode, by default, we select the primary device. Attachments: 1_Default_device_detection.png and 2_Initial_device_chain.PNG

2) We then select the required firmware (.pof) file, upon which we can see another device in the chain. 

3) We then select the required options and then start programming the device.Attachment: 3_Additonal_device_in_chain.PNG 

As you can see from "3_Additonal_device_in_chain.PNG", the 10M16SAU324 device is checked as the device (where TDI is fed) . This device ID appears to be the same as the device ID which is programmed from the logs which Meenak shared earlier.

We notice that with the above sequence, the device can be programmed successfully using the GUI.

I saved the associated cdf file as a reference (attachment: Chain1.txt -extension renamed to allow being attached here) , and then tried re-programming the device using the cdf file on the CLI.

Command: quartus_pgm -c "USB-BlasterII" Chain1.cdf   //Chain1.cdf copied to quartus_pgm directory

 This too failed with the same error as Meenak specified before. 

Note: Going through the cdf file, we can see the primary device being programmed is 10M16SAU324. (Please correct me if I am wrong).

Note: I noticed that my target platform goes down and cannot be recovered using a reboot, when the attempted CLI based flashing fails. This also causes the JTAG chain to break, so that the CPLD firmware can be re-programmed to recover the platform.

I will try to recover the platform and try setting the TCK to 6 MHz and try programming via GUI first and then CLI.

0 Kudos
Meenak
Employee
1,755 Views

Ram's Observation

 

Providing the data here, instead of posting on the community.

We reduced the JTAG programming clock frequency to 6 MHz and tried flashing the CPLD firmware. The issue still persists.

 

  1. Command to set clock frequency to 6 Mhz: jtagconfig --setparam "USB-BlasterII" JtagClock 6M  (Attachment: 6Mhz.PNG)
  2. GUI based CPLD firmware flashing passed, platform booted fine. I saved the associated cdf as “Chain1_6M.cdf” (Attachment: Chain1_6M.cdf.txt)
  3. I then tried flashing the firmware using this CDF file, which failed, with the similar issue as before. (Attachments: CLI_Error.PNG and CLI_Error.txt)

 

Command that I used to try and flash the firmware: quartus_pgm -c "USB-BlasterII" Chain1_6M.cdf

Please let me know if I might be missing anything here.

0 Kudos
YuanLi_S_Intel
Employee
1,739 Views

Hi Team,


Can you remove the unwanted device in the programmer and leave the programming device only? Also, have you try to program a SOF file instead of POF file? is it ok?


Thank You.


0 Kudos
tsramakx
Employee
1,726 Views

Hello Yuanli, we have access to only the .pof file. Is there any tool/way to convert the .pof file to a .sof format?

0 Kudos
YuanLi_S_Intel
Employee
1,715 Views

Hi,


We cant convert from POF to SOF. The SOF should be generated and allocated in output_file folder after assembly is compiled in the Quartus Prime.


Thank You.


Regards,

Bruce


0 Kudos
YuanLi_S_Intel
Employee
1,703 Views

Hi, is there any update on this? is it working fine now?



0 Kudos
tsramakx
Employee
1,701 Views

Hello YuanLi,

Unfortunately we do not have access to the HDL so that we may build it in .sof format. We might be looking at alternative solutions for this.

--

Ram

0 Kudos
YuanLi_S_Intel
Employee
1,696 Views

Got it. Please let us know if there is another issue. I am closing this thread.


0 Kudos
Meenak
Employee
1,693 Views

If it is .sof/.pof file issue then how come .pof file is getting flashed using the Quartus GUI. For command prompt do we always need .SOF file?

0 Kudos
Reply