using ICAP with the ML310

Hi there, I am trying to use the ICAP module of my Virtex II Pro. I built a project with EDK8.1, but when executing the application on the PowerPC, the ICAP has a strange behaviour. I can successfully call the XHwIcap_Initialize() function: here is the XHwIcap structure after initialization

BaseAdress : 0 IsReady : 11111111 DeviceIdCode : 127E093 DeviceId : 0 Rows : 50 Cols : 2E BramCols : 8 BytesPerFrame : 338 WordsPerFrame : CE ClbBlockFrames : 42C BramBlockFrames : 200 BramIntBlockFrames : B0

The problem comes when trying to read a frame: Status = XHwIcap_DeviceReadFrame(&hwicap, XHI_FAR_CLB_BLOCK, 22, 14); The value returned is 21, which is "DEVICE IS BUSY"

I read somewhere, there may be a conflict when using ICAP and JTAG. Do anybody have any information about this? I don't use Linux, but a standalone application.

Fabien

Reply to
fabien.goy
Loading thread data ...

That is correct. Read the "Important Note" paragraph on page 3 of

formatting link
(actual page number is 70):

"Important Note: The HWICAP core uses the ICAP found inside Virtex IITM and Virtex-II ProTM devices. The ICAP port interface is similar to the SelectMAP interface, but is accessible from general interconnects rather than the device pins. The JTAG or ?Boundary Scan? configuration mode pin setting (M2:M0 = 101) will disable the ICAP interface. Therefore, when using the HWICAP core, another mode pin setting must be used. If JTAG will be used as the primary configuration method, select another mode pin setting to avoid disabling the ICAP interface. JTAG configuration will still be available because it overrides other means of configuration, and the HWICAP core will function as intended."

"Besides being disabled with the Boundary Scan mode pin setting, the ICAP will be disabled if the persist bit in the device configuration logic?s control register is set. When using bitgen one must make sure that the Persist option is set to No, which is the default. This option is generally specified in the bitgen.ut file in the etc subdirectory of the EDK project."

Reply to
Neil Steiner

Thanks you Neil. I read that, but I am using the Slave Serial configuration mode, which shouldn't disable the ICAP. We are still investigating the board/FPGA configuration to see if it could be related to something else.

Fabien

of

formatting link

Reply to
fabien.goy

Here we are. The problem was that the ICAP wasn't configured well. For some reason, XPS didn't add the BASE and HIGH ADRESSES in the xparameters.h I did it by hand, editing that file and when running the app again, I could finally read and write a frame throught ICAP. "BaseAdress : 0" has now the right adress. Hope this can help somebody...

Fabien

of

formatting link

Reply to
fabien.goy

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.