Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
16 years ago

Flash two parallel flash IC by two usb-blaster controlled by one computer

Hello,

I have met a problem with my system. I hope who knows the root course can give me a favor.

There are two usb-blaster connected to my computer. And I want to flash the serial flash and parallel flash in our product by usb-blaster. So, two usb-blaster flash two products.

The command i use is as the following batch commands:

c:\altera\81\qprogrammer\bin\quartus_pgm --cable=USB-Blaster[USB-0] -m jtag -o p;mfdutility.sof

nios2-flash-programmer --cable='USB-Blaster [USB-0]' --epcs --base=0x04000000 --override=nios2-flash-override.txt --debug --erase-all --verify product.sflash

nios2-flash-programmer --base=0x0000 --cable='USB-Blaster [USB-0]' product.s09

And flash one product, computer spent 7 minutes.

Computer with two usb-blaster, work simultanously spent 14~15 minutes to finish two product's flashing.

Are there any one can tell me why two usb-blaster work simultanoulsy, the flashing time is double? And are there any method to realize decrease the flashing time to be 7 minutes for flashing two modules by two usb-blaster?

Thank you for your time reading and help.

Jenny

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I can't say for sure why the time doubles but here is a theory.

    1 - All programming through the USB-Blaster goes through the same jtag_server.exe instance.

    2 - Perhaps also due to the fact that the driver for both USB-Blasters is shared.

    14 minutes does seem excessively long.

    Jake
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I'm not familiar with the programming algorithm used by the nios2-flash-programmer respectively the mfdutility loader. But the only explanation for the observed behaviour is, that it's very low level, without any intelligence and data buffering for burst programming in the FPGA side loader. With the PFL IP, you have two versions, a basic and an enhanced one. The latter involves a data fifo and local execution of a complete burst programming cycle.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I don't think the question is "why is it taking so long?" but rather "why does it take twice as long to program two parts even though they are using separate USB-Blasters and separate processes?"

    One would naturally expect that if it takes 7 minutes to program one flash, it should take 7 minutes to program two flash in parallel.

    However, it appears that the programming is not truly being done in parallel. Something is blocking.

    Jake