04-03-2017 01:05 AM
Hello David,
I'm sorry for updating you late. I have gone through lot of research and implementation i found a solution for my problem but i didn't understand how it is came.
Problem: I need to store large data and access it simultaneous. I'm having 7975 FPGA module which has limited BRAM which is not sufficient to me. Then i thought of DRAM which is outside FPGA and onboard 7975 modue. Initially i was not able to stream data but after analyzing and some trial and error methods and your valuable suggestions finally i have done it. But the problem is i didn't understand how its possible. If i don't understand i cant apply this for other modules.
What i have done for simultaneous access of DRAM:
7975 DRAM has 512 bit width hence i can store 16 samples of 32 bit width each. what i have done is for every 15 cycles i'm writing into 1 address location waiting for 15 cycles then writing into 2nd location and it continues..... After writing into 1st location before next write i have 15 cycles to request/read. Initially i was trying to read after 5 cycles of write but it is given some data loss. Then after i tried reading after 12 cycles then i got correct data. Then again i checked with different lengths but 12, 13, 14 and 15 cycles after requesting data i'm getting correct data without any loss. Now the question is why i'm not getting for remaining lengths???
The same logic i have implemented for VST 5646 DRAM which has 128 bit width hence i can store 4 samples of 32 bit width each. So now i can write for every 4 cycles and can read within 3 cycles. But i'm not getting correct data. i'm not getting the reason why same logic is not working for me.
Is there any theoretical reason behind it???
* I have understood that its a single port DRAM which has only 1 data line and address line hence only one operation is possible at a time.
* I am not interested in utilizing its full bandwidth hence i can run it with any clock other than DRAM clock/167 MHz. The code which is working for 7975 module i tested with 40 MHz, 100 MHz, and 125 MHz.
I hope you understood complete above mentioned scenario. If not please let me know..
Thanks for helping me david....