VirtexII-Pro: Full Readback via ICAP/SelectMAP

Hi *,

I've been playing around with the internal SelectMAP-port (ICAP) of a

2VP7 hooked up to the internal PPC (using info and code from xapp661). Reading and writing of registers (like ID code register and such) and single frames works fine, so the interface itself seems to be doing what it should.

I then tried to do a full readback (just the CLB data, no BlockRAM-contents and such), using the information from xapp138 and the .rba-file, but readback stops somewhere in the middle, as I get no more data from the ICAP-interface.

Now, as I understand it, a 2VP7 has 1320 frames consisting of 424 Bytes each, so that should be 559680 Bytes for the configuration data alone plus the 4 padding bytes that proceed every frame, plus one padding frame at the beginning. That means a full readback should give me 565384 Bytes of data, which then would have to be stripped of the padding data and masked with the .msk-file before being compared to the data in the .rbt-file for verification.

Yet after about 365000 Bytes or so I get no more data from the ICAP and the transfer stops, even though I issue a command to the ICAP to send me

0x222fa 32bit-data words, exactly as it's done in the .rba-file.

I'm sure I'm missing something obvious here... has someone else done this, maybe via the external SelectMAP-port?

This is what I send to the ICAP to initiate the transfer:

/* This should initiate a full readback: */ static char cmd_fullReadback[44] = {

0xFF, 0xFF, 0xFF, 0xFF, /* Dummy Word */ 0xAA, 0x99, 0x55, 0x66, /* Sync Word */ 0x30, 0x01, 0xC0, 0x01, /* Write ID Code Register with next word */ 0x01, 0x24, 0xA0, 0x93, /* XC2VP7 Product Code written to ID Register */ 0x30, 0x00, 0x80, 0x01, /* Write to CMD Register */ 0x00, 0x00, 0x00, 0x04, /* Command RCFG - Read Configuration Data */ 0x30, 0x00, 0x20, 0x01, /* Write to Frame Address Register(FAR)*/ 0x00, 0x00, 0x00, 0x00, /* Frame Address of Interest: 0x0 (beginning)*/ 0x28, 0x00, 0x60, 0x00, /* Read from Frame Data Output Register(FDRO) */ 0x48, 0x02, 0x22, 0xFA, /* Read 0x222fa 32bit-data words in command, as is done in .rba-file */ 0x00, 0x00, 0x00, 0x00 /* Pad */ };

I then start reading single bytes and putting them into external RAM.

Any pointers as to what I'm missing would be greatly appreciated...

Sean Durkin
Fraunhofer Institute for Integrated Circuits (IIS)
 Click to see the full signature
Reply to
Sean Durkin
Loading thread data ...

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.