compile FPGA firmware with ISE Design Software

  • 3 Replies
  • 6926 Views
compile FPGA firmware with ISE Design Software
« on: February 19, 2017, 06:42:54 PM »
Hi,

awesome project!

you state that in order to compile the FGPA firmware one needs the ISE Design Software from Xilinx.

Is it sufficient to use the ISE Webpack licensed version of the software?

And is there a special programming setup necessary for writing the firmware into the Spartan6? Or can the FPGA be programmed in the circuit?


Thanks.

*

Dejan

  • *****
  • 141
    • View Profile
Re: compile FPGA firmware with ISE Design Software
« Reply #1 on: February 20, 2017, 11:28:15 AM »
Hi,

The ISE Webpack license is sufficient to compile the FPGA firmware "fpga.bin".

FPGA can be programmed via the JTAG port (in-circuit) without special setup, but it is simpler to use the oscilloscope software and program it via USB. When you run the software and connect to hardware, the software first searches for a FX2 device and uploads the firmware image "fx2.hex" to FX2 internal RAM. After the upload, the FX2 device is reset and configured (the process is called re-numeration), and the file "fpga.bin" is sent to FX2 to program the FPGA.

---
Regards,
Dejan

Re: compile FPGA firmware with ISE Design Software
« Reply #2 on: May 18, 2018, 01:19:32 PM »
It is interesting provide with the code firmware package (and other software packages needed) in already synthetized FPGA code.
I think a part of the users may be not familiar with FPGA (and the compiler are usually a heavy software).
So this users could focus to contribute with others expertises (debugging the PC software, relating issues, ...)

Re: compile FPGA firmware with ISE Design Software
« Reply #3 on: July 30, 2018, 02:19:47 PM »
When using another FPGA firmware, you need to change the firmware image "fx2.hex"?

In "fw.c":
             GPIFTCB2 = 0x05;
             SYNCDELAY;
             GPIFTCB1 = 0x32; // setup transaction count 340603 (fpga.bin size = 340604 bytes in ISE 12.1)
             SYNCDELAY;
             GPIFTCB0 = 0x7B; // TRcount is checked in IDLE state