Jump to content
  • 0

Programming multiple FPGA in remote production machine


Aditya Gaddam

Question

Hi,

I am working on a unit that has Spartan 6 XC6SLX9 (TGFP144) devices. Each board has 1 Spartan 6 on it and each board is just a copy of the other (briefly, the unit is a 4 channel transmitter and I have each board handling 1 channel - so they are identical copies). 

I'm trying to find the best way to program these boards in the field remotely (so I can't rely on removing / attaching cables, pushing buttons etc.)

One possible solution is to use this: http://store.digilentinc.com/jtag-smt2-nc-surface-mount-programming-module/ on my motherboard and daisy chain JTAG lines as per Xilinx docs. 

QUESTION: Can I use the JTAG-SMT2-NC with a full speed USB port (as opposed to a high speed USB port)? The USB hub we use on our motherboard is full speed only. I am not looking for any specific JTAG programming speeds.

Second solution I have is to have an SPI flash for each FPGA and have them all on the same "shared" bus (the SPI flashes would be programmed by my uC on the motherboard). Since the FPGAs take control of the SPI bus on configuration, I'd be "de-coupling" the "shared" bus from the per-board bus with a buffer as shown below:

http://imgur.com/a/jpsjx

So when PROGRAM_B is raised to HIGH, the buffer tri-states its outputs (so the shared bus from other FPGAs is no longer in contention).

QUESTION: Thoughts? Does this seem reasonable? 

I'm slightly leaning towards the first option - it seems more robust since JTAG was made to do the daisy chaining stuff -- but depends on whether full speed will work.

Thanks,
Aditya

 

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

Hi Aditya,

Your solution 1 will work. The JTAG-SMT2-NC will work in full speed. Your solution 2 might be problamatic. Based on your description it sounds like you would have a shared bus between the different boards for the flash except the chip select. At turn on all the different boards flashes would be sending data at the same time causing issues.

cheers,

Jon

 

Link to comment
Share on other sites

@Aditya Gaddam,

Sounds like it's a little late to make any adjustments to your circuit boards, but ... why not design them with the JTAG built in?  Then updating the FPGA could be just as simple as telling the board to program itself, and giving it the file.  This approach then has the added advantage that you can then post hardware updates to your customers, should anything go wrong with your initial firmware load.

Dan

Link to comment
Share on other sites

@jpeyron

Thanks for confirming the JTAG-SMT2-NC will work in full speed USB. 

5 minutes ago, D@n said:

@Aditya Gaddam,

Sounds like it's a little late to make any adjustments to your circuit boards, but ... why not design them with the JTAG built in?  Then updating the FPGA could be just as simple as telling the board to program itself, and giving it the file.  This approach then has the added advantage that you can then post hardware updates to your customers, should anything go wrong with your initial firmware load.

Dan

I am still in the design phase for the boards which is why I'm looking at the SMT JTAG module. I'm hoping to just stick that thing on the motherboard so we can remotely program the FPGAs on each of the transmitter boards (the transmitter boards will be daisy changed on JTAG).

 

 

Link to comment
Share on other sites

Daisy chaining the transmitter boards on JTAG will work and then you can program them all using the SMT JTAG module.

I can see cost being a consideration for not including the JTAG module on each board, but I would think it would be better to use a larger FPGA and fewer boards if you wanted to reduce the cost.

Just out of curiosity, how are you communicating with the Spartan FPGAs?

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...