Leep
Junior Member level 3
- Joined
- Oct 20, 2011
- Messages
- 27
- Helped
- 1
- Reputation
- 2
- Reaction score
- 1
- Trophy points
- 1,283
- Activity points
- 1,678
I'm trying to learn how to write and read the cellular ram (PSRam) on the Nexys 3 board. I've read the Nexys 3 Reference Manual, did a TON of Google searching (learned what PSRam was and probably about 7 or 8 other new terms), and finally managed to find some sample Verilog code and tweaked/modified it to get it to work. It does asynchronous writes/reads. Unfortunately, according to the ref manual, it (the PSRam on the Nexys 3) requires "read and write cycle times of 70ns" when operating in asynchronous mode which comes out to around 14MHz. Since I'm learning this so I can continue learning how to make a video controller and I want to read pixel data from RAM at 25.175MHz, it's a bit too slow.
Fortunately, the ref manual also states that in synchronous mode, "continuous transfers of up to 80MHz are possible". Unfortunately, I can't figure out how to do synchronous write/reads. I'm finding it very difficult to find many examples of how to access PSRam at all, much less synchronously and in Verilog. VHDL confuses the mess out of me... I need to learn it so I have access to more examples, but it's on a long list of "things to learn".
Can anyone throw some pointers my way on how to do synchronous PSRam access? BTW, I tried to cheat until I learned RAM access and just give myself an array of 640*480 8-bit registers... too large for the device (something about not enough SLICEM's).
-----
Lee
Fortunately, the ref manual also states that in synchronous mode, "continuous transfers of up to 80MHz are possible". Unfortunately, I can't figure out how to do synchronous write/reads. I'm finding it very difficult to find many examples of how to access PSRam at all, much less synchronously and in Verilog. VHDL confuses the mess out of me... I need to learn it so I have access to more examples, but it's on a long list of "things to learn".
Can anyone throw some pointers my way on how to do synchronous PSRam access? BTW, I tried to cheat until I learned RAM access and just give myself an array of 640*480 8-bit registers... too large for the device (something about not enough SLICEM's).
-----
Lee