cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
5,803 Views
Registered: ‎10-15-2010

Custom IP is very slow (pass data from ISE module to XPS PPC)

Hi,

 

I'm actually running an application with a PPC440 on a virtex5.

On a first time, i sent data from a static buffer (in c code) from the PPC on a network line using LWIP and it's working pretty well.

Now instead of using a static coded buffer, i want to get data from my VHDL code (module coded in ISE). In order to do that i built a custom IP with FIFO.

 

The PPC is running at 400Mhz, and my VHDL code in ISE is running at 100Mhz.

My problem is i feed the fifo by 32bits data every 10ns BUT when i use the "CUSTOM_IP_TCP_FIFO_mReadFromFIFO(XPAR_CUSTOM_IP_TCP_FIFO_0_BASEADDR, 0)" method to read the fifo from the PPC it seems to get a lot of time so the fifo become full after few moment.

 

I don't know if this fifo stuff is the best way to pass data from sub module to PPC or if someone knows a best way ?

Or maybe i'm doing something wrong with my custom IP (on a PLB bus)?

 

Thank you for your help cause i'm really lost and my dead line project is comming soon

 

david

Tags (4)
0 Kudos
Reply
6 Replies
Anonymous
Not applicable
5,788 Views

Hi,

While it will take a bit of time to set up; but you can actually run a subset of your code and the design in ModelSim and determine exactly what is happening.

 

Your read from FIFO macro may actually have quite a few instructions behind it, causing you to see the speed problems.

 

It will always be quicker to use DMA to transfer between your IP and memory..

 

Lachlan.

 

 

0 Kudos
Reply
5,782 Views
Registered: ‎10-15-2010

Thanks for your answer.

 

Is it possible to simulate the PPC with modelsim ? and so to simulate with C code instructions ?

 

Can you tell me more about the DMA. I red some things about it but i don't understand how to use and setup it. If you know a tutorial about that it could be perfect.

 

Thanks

0 Kudos
Reply
Anonymous
Not applicable
5,757 Views

Hi,
Yes, we simulate sub systems all the time with the PPC405 + MPMC + Modelsim. Its a bit too complex to explain in text, but you can run your code in memory, the only problem is you can't step through code.

Just look for the central DMA IP core in XPS and connect the slave port to the PLB, and connect a master port to a new PLB port on your mem controller. There is lots of example code in the driver for the Central DMA.

Lachlan.
0 Kudos
Reply
5,754 Views
Registered: ‎10-15-2010

Hi,

 

oh it's cool if can simulate PPC with modelsim cause actually it takes me 40min of compilation every changes so it s really unconfortable for debugging.

Can you just tell me the main step in order to simulate please (I'm quite familiar with modelsim so...). Are you launching it from XPS, ISE or start a modelsim scrach app first of all ?

 

About DMA, i found a lot of stuff but unfortunatly it's a bit difficult for me to understand (not enough skill maybe).

Do you think it's possible to achieve data from VHDL module to PPC using fifo (if i try harder) or it's impossible to reach 100Mhz speed using this kind of stuff ? or maybe you have a easier idea other than DMA that can do the job ?

 

Thanks

0 Kudos
Reply
5,709 Views
Registered: ‎10-15-2010

answer me please

 

I red more about DMA, btu it seems that this feature is good to write from IP to memory but after in my case i have to read back the memory to put it on the LAN communication so it will go back to the same problem no ?

or :

Custom IP -> PPC (a buffer variable) : take long time

Custom IP -> Memory -> PPC (a buffer variable): take short time

 

?

0 Kudos
Reply
Anonymous
Not applicable
5,677 Views

Hi,
Here are the steps.
1. Create a project, make sure you have the DDR signals exported just as you would do in normal hardware.
2. Set project options -> simulation to Verilog
3. Compile simulation HDL
4. Connect your DDR memory up
5. Create your application software (and even a bootloader if you have interrupts)
6. Load your .ELF into the DDR memory
7. Create a go.do file based on the contents of the /simulation/behav directory that XPS made
8. Run in modelsim.

That is the basics, we have a software tool we use here that automates the entire process, takes about 10 seconds to go from XPS project to full working simulation model. Am happy to answer any specifics you need to know, but can't give the tool out.

Cheers
Lachlan.
0 Kudos
Reply