Jump to content
  • 0

Add External Ram To Cmod A7 35T


smarano

Question

Hi,
I found a problem with my design implemented on Cmod A7 35T board. I need to have more SRAM. 
The board has 256kb BRAM and 512Kb SRAM, but my application has a lot of malloc and calloc so i need about 15Mb of heap and stack. 
There is a solution for this problem? Can i add an extrernal SRAM? I realy don't know how i can solve it. 

 

Regards Stefano

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

There are lots of solutions to this problem--most of them, though, are highly application dependent:

  1. Can you rewrite your algorithm more efficiently?  (Getting 15MB down to 512kB may be difficult through efficiency improvements alone)
  2. Can you compress your memory?  The FPGA fabric can help ... sometimes ...
  3. Can you use flash (ROM) instead of just the RAMs?  This should buy you a couple MB at least--but only if your data doesn't change ...
  4. Can you offload it to a PC?   faster?
  5. Moving off chip, would an SD card work?  These tend to be easier to wire up than full blown memories  ...
  6. Given the number of wires necessary to wire up most modern memories, and worse the timing requirements associated with them, is there another board that will accomplish your purpose?  Arty?  Nexys4 DDR?

Dan

Link to comment
Share on other sites

thank for the answer but there are a lot of problem in my design. 

1) i can't modify the algorithm because it isn't mine.n nit uses a number of large and complex matrices and i can't modify this.
2) what does you mean ? 

3) i can't use flash (ROM) because the data change at runtime.
4) unfortunately  i have to discard this solution too

5) to use SD Card with my board i need to use a PMOD-SD adapter and i think that putting the heap and the stack here cut off my performances.

6) this is my last chance but i need to find a very compact board, like cmod a7, with a very big SRAM.

i know that my problem isn't easy but i was hoping for a solution more feasible.

Regards Stefano

Link to comment
Share on other sites

Good answers.

To clarify what I mean regarding compression, well, it depends on what you are doing.  When I needed to drive a VGA screen from a Basys3 board, I found there wasn't enough memory.  I created static images of what I wished to display (think power point images) using primarily a run length encoder, and then decompressed them on the fly.  This worked for that application, but will not work for all applications.

If you are working with sampled data, matrices, multiplies, etc., you might find that dropping the number of bits per value helps.  A 32-bit word can store one 32-bit floating point value, or 8x4-bit integer values.  Which you choose and use is again ... application dependent.  Will a 4-bit sample be sufficient for you?  I was surprised to discover in one application I worked with that 1-bit samples were sufficient.  My team kept trying to upgrade the project to a 2- or 3-bits/sample system, but the performance never increased.  Does this apply to you? Only you know.

If what you need is a very compact board with lots of memory, have you thought of Xess.com's XuLA2-LX25?  It's in a similar form factor to the A7, contains a USB-JTAG control channel, 32MB SDRAM (16-bits can transfer every 12.5ns), and an integrated SD-Card holder.  With it's Spartan 6/LX25 it is not as powerful as the A7, but it does have 32MB memory and the cost is very reasonable.  I have built a SoC for that board that might help get you off the ground ... SDRAM driver, flash driver, GPIO driver, ZipCPU, etc.

Dan

Link to comment
Share on other sites

Do you mean the Artix-7 chip?

No, I don't know of such a board.  I've tried to convince some folks I've known to build, manufacture, and market such a board having:

  1. A PIC32 controller, instead of the proprietary FTDI, with at least 18 I/O pins between it and the FPGA.  This should allow faster/better/cheaper interaction between any host PC and the FPGA.
  2. A 256MW DDR3 SDRAM
  3. A 16MB QSPI flash
  4. And an integrated micro SD card, with full SDIO interface pins--This could become the "Hard Disk" for any O/S placed on the board.
  5. One LED controlled by each of the PIC32 and the FPGA (more is okay, a couple buttons would be okay, etc.)  If the board is I/O rich, like the CMod's or the XuLA2, then this should be sufficient--you can get other LED's by just wiring them up.
  6. All in a form factor similar to the CMod S6, A7, or even the XuLA2 boards

So far, no one's bit on that opportunity (that I know of).  If you know of someone willing to make such a board, or someone who has made something similar, then I'd put my two cents into it and even buy the first one (provided the price was reasonable ...)

Dan

Link to comment
Share on other sites

Do you have enough pins to run the chip?  Will it run at the speed you want?  Before assigning pins, you might wish to build a controller.  For example, if it is an SDRAM chip and you wish to use Xilinx'es Memory Interface Generator, you'll want to have an "approved" MIG design and pin choice before starting.  You might also wish to be aware, I don't think you can change the voltage standard on the external I/O pins (such as you would connect to) from 3.3V LVCMOS to any other voltage standard.  So make sure you watch for that.

Beyond that, I do have one suggestion, but you probably won't find it that helpful: don't weld the new chip to anything.  Consider soldering it instead.  B)

Dan

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...