03-02-2012 04:40 AM
I am making a processor in verilog that supports Digital Signal Processing(DSP) Applications. It works fine if the data which is to be processed is present in its register file. But now I want that there should be a separate memory controller that places data in register file from some external memory in parallel with the actual processing of data to avoid much overhead of getting data into the register file and storing back the results.
Please suggest how can I achieve data loading/storing efficiency in my processor
Thanks in advance
Solved! Go to Solution.
03-02-2012 05:12 AM
Are you using a commercial development board that has external memory fitted? Refer to its reference manual to see what sort of memory it is. If it's supported by the Xilinx Memory Interface Generator (MIG), you could interface that to your processor. If not, you can look at the specifications of the memory and write your own memory controller.
If you're building your own circuit board, you can select whatever sort of external memory you like, but using a device supported by MIG will give you a high performance solution for far less effort than doing it all yourself.
03-02-2012 06:29 AM
can you give me some directions regarding how can I write my own controller and how complicated it will be?
According to my application I only need to read data from some block memory into a register file of my module.
03-02-2012 06:35 AM
Not really - it depends entirely on exactly what you want the controller to do, and what it's controlling. An external SRAM may be fairly straightforward to talk to, but a DDR3 chip has its own command protocol, calibration sequences, and more.
If you meant that you wanted to use the FPGA's internal block memory, just use the block memory generator.