Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Testing MPMC IP in Xilinx XPS

Status
Not open for further replies.

alejandrocristo

Newbie level 1
Joined
Jan 5, 2011
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,305
Hello everybody,

I have added and configured the MPMC IP in XPS (EDK) using the Xilinx Design Suite 12.2 version and I have compiled the hardware correctly. But I do not know how to do to access to the DDR2 memory, using the MPMC, via software (using the PowerPc) processor. I have been looking for it in the functions explained in the API documentation, but the most similar way to access to it that I have found is by using the functions XMpmc_WriteReg and XMpmc_ReadReg. After configuring and initializing correctly the IP, I try to call these functions but the application gets frozen... I have seen the source code for the XMpmc_SelfTest function, and it makes use of both functions to read and write values in the registers, but it seems that those registers are part of the device and they are not for accessing to the DDR2 memory really...

My source code is the following, I just want to insert a value in the DDR2 memory and then read it:

int main (void) {
XMpmc *mpmc_0;
XMpmc_Config *ConfigPtr;
int status;
int value;

print("-- Entering main() --\r\n");
ConfigPtr=XMpmc_LookupConfig (XPAR_MPMC_0_DEVICE_ID);
if (ConfigPtr==NULL) {
print("Lookup Config failed\r\n");
return XST_FAILURE;
}
else{
xil_printf ("\r\n cfgptr= %d \r\n", ConfigPtr);
}
status=XMpmc_CfgInitialize (mpmc_0, ConfigPtr, ConfigPtr->BaseAddress);
if (status==XST_FAILURE) {
print ("Init. MPMC failed\r\n");
return XST_FAILURE;
}
xil_printf ("OK, let's test\r\n"); // This is the last line showed in TeraTerm

/*status=XMpmc_SelfTest (mpmc_0);
if (status==XST_FAILURE) {
print("FAILED!\r\n");
}
else {
print("OK! :)\r\n"); // If I run the test then it is OK
}*/

XMpmc_WriteReg (mpmc_0->ConfigPtr.BaseAddress, 0xC, 0x7); // Here it gets frozen
value=XMpmc_ReadReg (mpmc_0->ConfigPtr.BaseAddress, 0xC);
xil_printf ("Value: %d\r\n", value);

print("-- Exiting main() --\r\n");
return 0;
}

How could I write and read in the DDR memory correctly, please?? How could I continue testing? Can you help me? Is there any tutorial about this?? Because I have been looking for the way to do this in the Internet and it seems there is no documentation...

Thanks in advance!

PS: My board is a Xilinx Virtex-5 XC5VFX70T. I have also configured the MIG in Coregen according to the DDR memory MT4HTF3264HY-667F1.
 

Hi,

I'm too working with Virtex XC5VFX70T and I want to reconfigure my FPGA through PPC440

Have you any idea!

f.lahrach@gmail.com

regards
 

PPC440 is soft/hard IP in FPGA or an external PPC, you are talking about.
 

The PPC440 is a hard processor embeded in the FPGA, so I try to use it
regards
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top