Altera_Forum
Honored Contributor
13 years agohow to efficiently drive async SRAM?
What's a good way to use async SRAM?
I'm working on a Nios II system for a legacy hardware (Cyclone II) which has fast external asychronous SRAM. In fact two IS61LV51216 chips (512k*16, 8ns) in parallel for a 32 bit bus. Another component will connect to this bus, too. The SRAM has zero hold times, so it can be almost driven synchronously, except for the write pulse. The latter can be synchronous too, if back-to-back writes are prevented with an intermediate wait cycle. (Well, at least this is my theory, have no experience.) My Nios runs with ~80-90 MHz, so I was expecting this to match quite well. In SOPC Builder, I'm using a tristate bridge, and behind that a "Legacy IDT71V416 SRAM with SDK". It's the closest I could find. I'm getting the impression async SRAMS are almost not supported? Just very few RAMs which happened to be on some Altera boards, no generic IP core? Running with that IP gives me 2(!) waitstates on read, writing not checked yet. Looking behind the scenes I think there is rather no SRAM controller? Instead, the generic timing is configured so that an SRAM can directly connect to the bus lines, however inefficient. Using Component Editor, I tried to create my own tristate slave. But again I have no access to the Avalon waitrequest signal, can only specify upfront waitstates. Do I have to go further and write my own tristate bridge? Please comment, tell me if I'm on the wrong road and SRAMs can be efficiently interfaced easier. I hope so! Thanks, Jörg PS: I'm new to this, it's my first post, hope I've hit the right section.