Hi everyone,
I’ve installed ISE on a Linux desktop with a parallel port in order to use the Sparkfun FPGA parallel programmer with my recently purchased Spartan 3E Dev Board.
Due to yet-to-be-resolved driver issues with ISE and Linux, I’ve been trying the python script. The process of using the script is horribly underdocumented (it’s in the source code, if you can read shell scripts and python!), but after 8 hours of hacking I’ve just about gotten it.
I can use xilprg to load a test “blinky” program into the FPGA without a problem - I only have a problem with the Python script where it puts the code into the PROM so that it retains the program through a reset.
To help out anyone working on the same issues, here’s what I’ve done to get where I’m at: Install the python-serial package and xilprg (from sourceforge) to be able to use the included script. Make sure xilprg is in $PATH or it won’t work.
I attempted this, but I get a “DONE bit didn’t go high!” error at the end of the xilprg execution. When it moves on to the python script, it just sits there waiting for a response because the FPGA code wasn’t properly loaded.
The next thing, which I didn’t realize until I read through the python code, was that the script loads something into the FPGA first. Then the FPGA reads data in from the serial port on the dev board and sends that data to the PROM via SPI. That’s kind of important but not mentioned anywhere - maybe I didn’t read the right readme file? If you’re using anything other than /dev/ttyS0, you’ll have to change the Python script to point to your port (usually /dev/ttyUSB0 for adapters).
So then I tried the “spi_prom_loader_dev” package instead. Results were exactly the same. To compile this, I installed srecord and gputils. I’m sure there are other packages utilized, but I do a lot of compiling so I probably already had them installed. I don’t notice any errors in the output, so I assume it’s building correctly.
After that, I got desperate and tried importing the verilog code into ISE and compiling. It seems to compile and generate a programming file OK, but it doesn’t work when I try to load it from the python script. I’m pretty sure I’m missing some file or not importing the PIC code bitstream properly. The top_rp.bit filesize is about 260K instead of the about 165K top_rp.bit that is created using the script compilation.
Sorry that was long! I’m hoping to help others out with what I’ve found. Please help if you’ve gotten this to work!
Thanks,
Brad