Hello
I have a Xilinx XCR3064 CPLD with its JTAG pins hooked up to some digital I/O pins on a uC. I intend to configure the CPLD from a binary file held in uC flash by bit-banging the uC pins. So far I've implemented the TAP state machine and managed to correctly read the 32 bit ID code, so a start has been made.
But what to do now? The documentation seems sparse or overwhelming but undetailed.
What I've found so far is:
<quote>
CoolRunner Programming Algorithm
Enter the device into ISP mode Erase the entire device Program all addresses Verify all addresses Exit the ISP mode and return to normal functional mode. </quote>
Which all seems fair enough but insufficient. Do I use the commands isp-write, then clock in the bitstream followed by isp-program? Is there some sort of flag which will tell me when an erase or write has finished?
How do I make the bitstream from an ascii .jed file? Do I just ignore the various markers and bundle the 0's and 1's into a binary file?
These svf and xsvfs files look a bit unnecessary. Is the bitstream loaded in one lump? Is the erase just one command? I saw a reference to blocks, whassat then?
All these questions and more; I know many people must have done this but can't find anything clear. I've not used JTAG before, so it's all a bit confusing. I did it years ago with a RAM-based FPGA but that was an easy non-JTAG port method, 'slave serial mode' IIRC.
There are good technical reasons for not using an FPGA for this which I can't go into.
Help?
TVM