08-08-2019 09:33 AM
I am attempting to read back configuration data of a Spartan 7 device (programmed through JTAG, no dedicated memory device) through the HWICAP interface, but I'm having issues when it comes to reading out the frames. I am able to read all the configuration/status registers, and when I perform a read I see that the Read FIFO is filled with the appropriate number of words as dictated by the Size register. The problem is that every word that I read out from the device is 0xFFFFFFD9. I can't find any documentation on what this means, is it some kind of status from the iCAP interface itself?
08-13-2019 12:38 PM
08-14-2019 12:11 PM
When I say I can read the configuration registers, I mean the HWICAP registers (FIFOs, Status, Control, etc.), so I know that my communication to HWICAP is functional. I am unable to read any of the ICAP registers despite sending the commands listed in UG470. I'm attempting to read the STAT register so I send FFFFFFFF 000000BB 11220044 FFFFFFFF AA995566 20000000 2800E001 20000000 20000000 READ 30008001 0000000D 20000000 20000000. After each command I set the WRITE bit in the HWICAP CR register to 1, wait for the write FIFO to clear, then send the next command. I am flipping all the bytes as shown in UG470. For the READ command, I set the SIZE register to 1, set the READ bit in CR, then read one word from the read FIFO. The output (regardless of which register I attempt to read) is FFFFFFB9 (FFFFFF9D after accounting for byte flip). Is there some minor difference between SelectMAP and ICAP that I'm missing?