sharing SDRAM  - Page 1
Forum section: electronics / general

author: javad2040
author_rank: Contributor
timestamp: March 29, 2018, 07:17:50 am
content: hello guys.I currently work on my project that contain ARM MCU, FPGA and SDRAM components. to save cost and reduce the complexity of PCB, I decided to share the SDRAM between ARM and FPGA. can everybody offer ideas for implement it?

author: Jeroen3
author_rank: Super Contributor
timestamp: March 29, 2018, 07:32:11 am
content: Quote from: javad2040 on March 29, 2018, 07:17:50 amI don't think you save costs and reduce complexity of a PCB and software by using a non-standard method of interfacing with memory.You can however use the FPGA on the MCU memory interface.

author: technix
author_rank: Super Contributor
timestamp: March 29, 2018, 11:22:38 am
content: The best way is actually not sharing that SDRAM on the board directly. Instead it might be better to hook the SDRAM solely to the FPGA, implement a bus matrix and SDRAM controller in the FPGA, and expose one of the bus matrix slaves to the ARM core.Or just bump up to a Zynq, which allows FPGA matrix access the memories attached to the ARM side over the AXI port.

author: Scrts
author_rank: Frequent Contributor
timestamp: March 29, 2018, 02:17:53 pm
content: Quote from: javad2040 on March 29, 2018, 07:17:50 amYou cannot share SDRAM. The only option I see here is to hook up SDRAM to FPGA, initiate memory controller in the FPGA and interface FPGA to your ARM as if it would be SRAM interface.

author: asmi
author_rank: Super Contributor
timestamp: March 29, 2018, 05:52:27 pm
content: Quote from: javad2040 on March 29, 2018, 07:17:50 amThat's not going to work (assuming that by SDRAM you mean DDR3) for many reasons. If you need a high bandwidth channel FPGA <-> ARM, consider using Zynq instead of FPGA.

author: technix
author_rank: Super Contributor
timestamp: March 29, 2018, 06:29:43 pm
content: Quote from: asmi on March 29, 2018, 05:52:27 pmZynq or Cyclone V SoC might be the best for this purpose, or if you have the gates to spare and the time to negotiate with an ARM rep to grab that free license of ARM Cortex-M0 (or if your company have Chinese operation the free license of Cortex-M3 too.) However if you want to stick to older technology the FPGA + ARM structure isn't that bad (for example AT91SAM9260 + EP4CE22E22C5N which can be BGA-free.)

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: March 30, 2018, 01:28:55 pm
content: Following, Guys I think the OP meant general SDRAM not DDR SDRAM, since he mentioned ARM MCU, the MCU Speeds are Not high enough for DDR SDRAM

author: DC1MC
author_rank: Super Contributor
timestamp: March 30, 2018, 01:55:30 pm
content: Quote from: technix on March 29, 2018, 11:22:38 am+1 for @technix solution, if you have an external ARM MCU and a separate FPGA and (S)DRAM, is the best way to do it, one can even map the FPGA registers as memory and be done with it. It's a hassle on the digital design side, but is doable.If this is no academic project, then for all the practical applications the modern FPGA with embedded ARM cores are a much better way to do it, and you have them in all speed and strength grades. And of course, if ARM core isn't a must have, there are the strange animals being developed by ALTERA-Intel matrimony, but for the moment are not mature or supported enough.Best of luck,DC1MC