02-24-2012 04:20 AM
I am making a processor in verilog that implements wavelet algorithms. It works fine but there is a lot of load/store over head that the ALU has to do regarding fetching data and storing results. so I want add DMA capability to avoid ALU processing for loading and storing of data.
Please suggest how can I add DMA capability to my processor.
02-24-2012 07:07 AM
Can you give more information? Are you using Microblaze? AXI?
I would guess you have streaming data for your wavelets. At first glance, you may want to look at AXI DMA pcore. You can just drag-drop it into your EDK project and hook it up to your AXI Stream peripheral
02-24-2012 11:19 PM
I mean how can I write data to register file while processing some that from register file in parallel.
I do not understand the meaning of your post. Are you asking:
How can I both read from and write to a single register file, concurrently?
If this is the true meaning of your question, the answer is to use a dual-port memory. A dual-port memory allows both reads and writes, concurrently, with independent addresses. Use the LogiCore Block Memory Generator to create a customised dual-port memory. See this page for documents describing this IP.
-- Bob Elkind