- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
First off, I'm fairly new to FPGA programming, so I apologise in advance for any obvious questions, and thank you for your patience. So I'm currently trying to design a processor that makes extensive use of a cache that interfaces with some form of main memory, my choice for this memory is the SSRAM on the perscribed DE2-70 board via their pins. I'm aware that interfacing with main memory can result in significant delay, and I was wondering if there's anyway to generate a flag that gets set when the write/read operation finishes? Or is there a set read delay and write delay associated with the chip, in which case I can just stall until that specific number of cycles have passed? I've been looking for a while, but I couldn't find any information pertaining to this problem. Thanks- Tags:
- Memory
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What entity is going to look at the flag you're intending to raise? A Nios processor? Or some other internal logic?
Accessing external SSRAM won't incur any 'significant' delay. Unless you're hoping to operate your logic/Nios at a very high clock frequency (which will be tricky with Cyclone II), the SSRAM on that board will operate at the same frequency as your logic. SSRAMs offer single (or double) clock cycle accesses. So any flag you raise is only going to be high for 1 or 2 clock cycles. I accept burst accesses are slightly longer, but arguably still not significant. However, if you're using Nios, it will handle these accesses without the need for a flag. If you're writing your own logic then you will design your SSRAM controller in such a way that the logic always knows where in the SSRAM access cycle it is, and when it's finished. Cheers, Alex- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- What entity is going to look at the flag you're intending to raise? A Nios processor? Or some other internal logic? Accessing external SSRAM won't incur any 'significant' delay. Unless you're hoping to operate your logic/Nios at a very high clock frequency (which will be tricky with Cyclone II), the SSRAM on that board will operate at the same frequency as your logic. SSRAMs offer single (or double) clock cycle accesses. So any flag you raise is only going to be high for 1 or 2 clock cycles. I accept burst accesses are slightly longer, but arguably still not significant. However, if you're using Nios, it will handle these accesses without the need for a flag. If you're writing your own logic then you will design your SSRAM controller in such a way that the logic always knows where in the SSRAM access cycle it is, and when it's finished. Cheers, Alex --- Quote End --- Given that this is for a processor design course, I'll probably have to handle this with my own controller, using the SRAM input/output pins. Is there a specific document that identifies how many clock cycles it takes to read and write (specifically using the 50MHz clock), or will I need to develop a cycle by cycle verification of the process? Additionally, do you know if there's an SRAM content viewer/editor built into Quartus II to make verification of data input/output easier?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Do you have the datasheet for the SSRAM part on this board? I believe this is the one: http://www.issi.com/ww/pdf/61vps_lps-51236a_102418a.pdf
It is a 5ns minimum clock cycle synchronous SRAM, so everything will happen coincident to the clock you provide the device, as the timing diagrams illustrate.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quartus has an "in-system memory content editor (http://quartushelp.altera.com/16.1/index.htm#program/red/red_com_editor.htm)" built in - see the Tools menu in Quartus. However, it'll only let you monitor/change memory internal to the FPGA, via JTAG.
It is worth playing around with. You should be able to setup an internal RAM to mirror a portion of external SSRAM. It requires more code and, rather fundamentally, a working interface to your external memory. However, it can be a useful debugging tool. Cheers, Alex
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page