We know little about Spartan and Xilinx. We are connecting our Spartan 3 starter kit board to a PC and using Xilinx ISE 8.1 to control it.
We want to find a way to load our program ( instructions) into the memory of the Spartan board. Could you tell me how? We will appreciate it if you could kindly show some light on this.
If you are talking about the EEPROM or any other non-volatile on-board memory, it should be detected by Impact. Just create an PROM file (.mcs) from the .bit file and load it into the memory. All of this can be done inside impact and should be detailed in the user manual for your board.
If, on the other hand, you have a picoBlaze or MicroBlaze for which you want to update the memory, the Spartan3E Starter Kit has that ready to go. Source code is available.
where, under the _Documentation_ heading you'll find the User Guide and the Reference Designs. The reference design includes a PicoBlaze with a memory loader that has both Verilog (or perhaps VHDL) source and an external utility to load the memory dynamically. The Picoblaze assembler will also generate a file that can be used as INITs in your BlockRAM instantiation. The JTAG related updates should be the same for Spartan3 as it is for the
3E.
There are other memory-only update tools from Xilinx that might be easier. Search the Xilinx site (or Answers Database) for "coe" which is the memory file formate used for post-compiled memory updates.
What I normally do is create a simple circuit that can read a hex file (either Intel format or Motorola S Record, but more often my own simplified format) from the serial port and then just use the "send text file" option in Hyperterminal on the PC. After that is finished I download the actual circuit to the board. Since this is SRAM the contents won't be lost while the FPGA is being programmed (in practice even DRAMs tend to keep their data long enough).
I don't have such a circuit ready for the Spartan 3 starter kit, but I tried following the instructions in
formatting link
worked just fine for me. Here you have a small monitor program in the block RAM which allows you to load stuff from the serial port, so the same design downloads to memory and then uses the content unlike what I suggested above.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.