K
Keith
- Jan 1, 1970
- 0
<Previously posted to comp.arch.fpga with no luck so far.
Thought I'd try here.>
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
Thought I'd try here.>
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