UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 22468

7.1i EDK - PlatGen does not connect DSOCMRWCOMPLETE correctly

Description

Keywords: DSOCM, docm_cntrl_if

I created "my_docm_if", which is simply the modification of "docm_cntrl_if". I connected both of them to the DOCM bus. I tried to write to the first location in "my_docm_if" as shown below, but the program stops:

(*((Xuint32 *)XPAR_MY_DOCM_IF_0_BASEADDR) = 0xAAAAAAAA;

The above statement is never executed. After this line of code, nothing is printed to the terminal.The only thing that appears on the terminal is the following:
" -- Entering main( ) --"

Solution

This issue is caused by PlatGen not connecting the signal S_DSOCMRWCOMPLETE from the DOCM controller (my_docm_if) to the PPC. Instead, PlatGen is connecting S_DSOCMRWCOMPLETE(0) (which is the output of docm_cntrl_if). This means that only the latter DOCM peripheral acknowledges the transaction.

The correct configuration is S_DSOCMRWCOMPLETE(0) and S_DSOCMRWCOMPLETE(1) connected to DOCM bus. The output of DOCM bus (i.e. DSOCMRWCOMPLETE) is then connected to the DSOCMRWCOMPLETE input of the PPC.

To work around this issue, manually wire the DSOCMRWCOMPLETE signal by adding the following line to the PPC section of the MHS file:

PORT DSOCMRWCOMPLETE = dsocmrwcomplete

Then, add the same line to the DOCM bus instantiation in the MHS:

PORT DSOCMRWCOMPLETE = dsocmrwcomplete

This issue will be corrected a future release of EDK.
AR# 22468
Date Created 11/29/2005
Last Updated 04/17/2007
Status Archive
Type General Article