05-17-2010 06:11 PM
In the spartan 3E user guide it is explained:
The Spartan-3E Starter Kit board supports a variety of FPGA configuration options:
First method is:
• Download FPGA designs directly to the Spartan-3E FPGA via JTAG, using the onboard
USB interface. The on-board USB-JTAG logic also provides in-system
programming for the on-board Platform Flash PROM and the Xilinx XC2C64A CPLD.
SPI serial Flash and StrataFlash programming are performed separately.
Question1 : if this is the case then why do we have to use DB9 connection to program or download a project? I'm sure I'm missing something here because I was told JTAG connection is only for debugging (although I'm not sure how yet).
Question2 : what does it mean from "in-system programming?" can somebody make it more clear?
also, does that program both Flash and the CPLD device?
Thanks in advance.
05-23-2010 09:05 AM
In what way are you using a DB9? I haven't come across a need or desire to touch a DB9 in my Spartan 3E starter kit yet. If you're in a university setting with very old tools, a serial programmer may have been the way to interface with old boards but that programmer would be between the DB9 and the header on the target system board. If you're using the starter kit explicitly, the USB programmer is effectively built into the board already and can be used in place of any very old stand-alone equipment.
"In system programming" is different from the way things were long, long ago. There was a time when FGPA configuration memories and CPLDs were programmed in a device that accepts raw, unsoldered parts and configured them with the programming files before the device is transferred to the target system, either soldered or socketed. These devices can now typically be configured while soldered in a powered target system through JTAG or some other programming interface. For now look at "in system programming" as simply meaning you can program your device in place, no need for a socket or worse.
In many systems - the Spartan 3E Starter kit included - the JTAG chain is hooked up in series allowing multiple devices to be accessed for programming either all at once before the system initializes or independently as needed. If you get your system hooked up through the USB cable and go through the IMPACT tool, you'll find the chain includes a few elements to include the S3E, the CPLD, and configuration memory (or memories) for the S3E. If you want to just test a program, load the S3E directly. If you want to make the change permanent enough that it comes back the next time the power is cycled, program the appropriate configuration memory.
05-24-2010 09:46 PM
Thanks for your time and answering my question. However, when I purchased the board it came up with a usb connection and when I said I would be using to download the code on board everybody was saying its usage is only for debuggign (jtag - honestly I have no idea to debug it yet) and truly it didin't work the way I was expecting
Now, regarding your questions that ""In what way are you using a DB9?
I use it to get output on a terminal i.e. Tera Term or etc
I have a feeling there is a misunderstanding here. See the way I"m using the board is that there is on cable for power, one cable connection USB type B to USB port on my PC (jtag - correct me please if I'm wrong) and the 3rd cable (RS232) which allows me to see some output on tera term or any other terminal.
Once again thank you for your help.
05-24-2010 11:55 PM
the things mentioned in the S3E-Starter Kit documentation are meant for the chips on the Board (FPGA, SPI-FLASH, etc.).
So, the integrated USB-JTAG interface can be used for programming (write bitstreams to the FPGA or Promfiles to the PROMs) e.g. with the Impact software, and afterwards for debugging purposes, using other Xilinx or third Party tools.
What is mentioned about "in system prorogramming" is based on the fact, that in the old times PROM-like Devices were programmed before soldewring to the PCB. The actual technologies (EEPROM, FLASH) do not require this anymore. They got built in programming interfaces that make it possible to change their contents while alredy soldered to a PCB.
Just a guess:
May it be that you are not actually designing digital circuits with some HDL, but instead using the board as some embedded system (e.g. with Microblaze) with a predefined functionality that's stored in the PROM. So you are downloading your software projects via the serial port into the system?
In that case the programming of the FPGA happens through the PROM and the JTAG interface (in this context) may be seen as a debug only interface.
Have a nice synthesis