搜索
bottom↓
回复: 48

用FPGA+SDRAM来模拟SRAM给STM32使用可行吗?

[复制链接]

出0入0汤圆

发表于 2011-1-7 16:28:18 | 显示全部楼层 |阅读模式
主要是读模拟SRAM时,碰到SDRAM刚开始刷新怎么办,可以停止刷新的吗?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-1-7 16:31:27 | 显示全部楼层
你如果是FPGA一点问题都没有,你可用FIFO缓冲,如果是CPLD等仔细规划.我没做过CPLD的

出0入0汤圆

发表于 2011-1-7 16:36:36 | 显示全部楼层
不过你用随机写的方式,比用SRAM慢不少

出0入0汤圆

发表于 2011-1-7 16:38:44 | 显示全部楼层
建议厂访问的还是用片内RAM,大的工作记录你可考虑全页突发访问SDRAM

出0入0汤圆

 楼主| 发表于 2011-1-7 16:51:06 | 显示全部楼层
回复【1楼】888888888888
-----------------------------------------------------------------------
FIFO是个好主意,但是STM32等不了这么长的时间吧?比如说:
STM32第一个读动作发往FPGA时,FPGA刚开始刷新,在133MHz下要等9个时钟(67.5nS)才可以开始读SDRAM,要读出数据又要3+3=6个时钟,一共112.5nS,这时STM32的等待时间应该过了吧?

出0入0汤圆

 楼主| 发表于 2011-1-7 16:56:18 | 显示全部楼层
回复【3楼】888888888888
建议厂访问的还是用片内ram,大的工作记录你可考虑全页突发访问sdram
-----------------------------------------------------------------------
主要是想模拟大的SRAM,片内RAM好小阿,比如说模拟一个128MB的SRAM

出0入0汤圆

发表于 2011-1-7 17:03:35 | 显示全部楼层
回复【4楼】qianhng
回复【1楼】888888888888  
-----------------------------------------------------------------------
fifo是个好主意,但是stm32等不了这么长的时间吧?比如说:
stm32第一个读动作发往fpga时,fpga刚开始刷新,在133mhz下要等9个时钟(67.5ns)才可以开始读sdram,要读出数据又要3+3=6个时钟,一共112.5ns,这时stm32的等待时间应该过了吧?

-----------------------------------------------------------------------

确实用问题,STM线告诉FPGA要访问,下次再来取,要连出两次READ,解决时如果你确定要访问一个区域,先让FPGA把整页读出来,然后STM再从中取

出0入0汤圆

 楼主| 发表于 2011-1-7 17:04:06 | 显示全部楼层
看HYB39S256[40/80/16]0D的datasheet,有这么一项,Self Refresh Exit Time:1 CLK,是不是说SDRAM的自刷新可以随时中断?

出0入0汤圆

发表于 2011-1-7 17:04:22 | 显示全部楼层
不同存储应当用不同机制控制

出0入0汤圆

 楼主| 发表于 2011-1-7 17:09:09 | 显示全部楼层
先谢谢“888888888888”了,看来要用好SDRAM还真不容易阿。

出0入0汤圆

发表于 2011-1-7 17:10:01 | 显示全部楼层
如果用2倍cpu频率会不会好些?

出0入0汤圆

 楼主| 发表于 2011-1-7 17:14:52 | 显示全部楼层
回复【10楼】lryylryy 性博士
如果用2倍cpu频率会不会好些?
-----------------------------------------------------------------------

好处是什么呢?

出0入0汤圆

 楼主| 发表于 2011-1-12 21:01:04 | 显示全部楼层
光是CACHE部分(32*32bit READ CACHE,4*16bit WRITE CACHE):
; Flow Summary                                                                  ;
+------------------------------------+------------------------------------------+
; Flow Status                        ; Flow Failed - Wed Jan 12 20:33:14 2011   ;
; Quartus II Version                 ; 5.1 Build 176 10/26/2005 SJ Full Version ;
; Revision Name                      ; SDRAM_CACHE                              ;
; Top-level Entity Name              ; SDRAM_CACHE                              ;
; Family                             ; Cyclone II                               ;
; Device                             ; EP2C5Q208C8                              ;
; Timing Models                      ; Preliminary                              ;
; Met timing requirements            ; N/A                                      ;
; Total combinational functions      ; 957                                      ;
; Total registers                    ; 1208                                     ;
; Total pins                         ; 196 / 142 ( 138 % )                      ;
; Total virtual pins                 ; 0                                        ;
; Total memory bits                  ; 1,280 / 119,808 ( 1 % )                  ;
; Embedded Multiplier 9-bit elements ; 0 / 26 ( 0 % )                           ;
; Total PLLs                         ; 0 / 2 ( 0 % )                            ;

出0入0汤圆

 楼主| 发表于 2011-2-7 10:17:33 | 显示全部楼层
杯具,要推倒重来:
首先,模拟SRAM不现实,最后决定模拟PSRAM因为PSRAM有个nWAIT信号让STM32的FSMC等待数据的到来
其次,要增加单字节访问的能力
最后,要处理好“要读的数据既存放在读缓存也存放在写缓存里的问题”

出0入0汤圆

发表于 2011-2-7 10:28:59 | 显示全部楼层
有没有开发板呢?

出0入0汤圆

发表于 2011-2-7 10:30:31 | 显示全部楼层
另外STM32不是有支持SDRAM的型号吗?

出0入0汤圆

 楼主| 发表于 2011-2-7 11:03:21 | 显示全部楼层
回复【16楼】windowsce
另外stm32不是有支持sdram的型号吗?
-----------------------------------------------------------------------

什么型号支持SDRAM,我看了下,STM103、105、107、205、207、215、217都不支持阿

出0入0汤圆

发表于 2011-2-7 11:39:22 | 显示全部楼层
从技术角度来说是可行的:)
从工程角度来说,建议楼主仔细考虑考虑这样做值不值?要用大容量存储器的话,有替换STM32的方案。

出0入0汤圆

 楼主| 发表于 2011-2-7 16:32:19 | 显示全部楼层
回复【18楼】yzhu
从技术角度来说是可行的:)
从工程角度来说,建议楼主仔细考虑考虑这样做值不值?要用大容量存储器的话,有替换stm32的方案。
-----------------------------------------------------------------------
其实这个做法的起因并不是主要为STM32准备大量的存储器,起因是要高速处理大量数据,arm的速度已经不能满足需要,要用到FPGA,FPGA本身高速处理大量数据要用到大量的存储器,处理过的大量数据要交给STM继续处理,以其用ARM9、ARM11带SDRAM/DDR再和FPGA进行高速、大量的数据交换,还不如用FPGA直接模拟PSRAM给STM的FSMC访问。

出0入0汤圆

发表于 2011-2-7 17:17:19 | 显示全部楼层
是我记错啦,我查了查是没有支持SDRAM的。
FSMC支持等待信号和同步模式,可以考虑写个接口,把FSMC接入到AVALON,引FSMC_CLK为FPGA的全局时钟。性能应该说得过去。

出0入0汤圆

发表于 2011-2-7 17:19:23 | 显示全部楼层
回复【19楼】qianhng  
回复【18楼】yzhu
从技术角度来说是可行的:)
从工程角度来说,建议楼主仔细考虑考虑这样做值不值?要用大容量存储器的话,有替换stm32的方案。
-----------------------------------------------------------------------
其实这个做法的起因并不是主要为stm32准备大量的存储器,起因是要高速处理大量数据,arm的速度已经不能满足需要,要用到fpga,fpga本身高速处理大量数据要用到大量的存储器,处理过的大量数据要交给stm继续处理,以其用arm9、arm11带sdram/ddr再和fpga进行高速、大量的数据交换,还不如用fpga直接模拟psram给stm的fsmc访问。
-----------------------------------------------------------------------

无论多少次看到STM32和FPGA组队都感到有点别扭,
如果和ARM9组的话还可以理解,
但STM32的性能和NIOS比起来实在是没啥决定性的区别

出0入0汤圆

发表于 2011-2-7 17:53:40 | 显示全部楼层
从技术角度上说,完全模拟是不可能的。
SRAM可以零翻转,SDRAM不可能。

另外,你这样搞还不如换片支持SDRAM的ARM芯片。
STM32好像是好多型号不支持,不过你可以用LM3S,就多数都是支持的,
都是M3的内核,用起来应该没多大区别。
STM32是要便宜点,不过你一片FPGA还加上自己的劳动,多余的都去了。

出0入0汤圆

 楼主| 发表于 2011-2-7 19:10:43 | 显示全部楼层
回复【21楼】syuanwang

但STM32的性能和NIOS比起来实在是没啥决定性的区别
-----------------------------------------------------------------------
还有程序空间的差别,假如用到外设(比如说USB)、I/O,区别就大了

出0入0汤圆

 楼主| 发表于 2011-2-7 19:12:22 | 显示全部楼层
回复【22楼】linuxpro
stm32是要便宜点,不过你一片fpga还加上自己的劳动,多余的都去了。
-----------------------------------------------------------------------
FPGA是必用的,不是FPGA+STM32就是FPGA+LM3S

出0入0汤圆

发表于 2011-2-7 19:18:36 | 显示全部楼层
psram内部就是SDRAM,再包装一下外部接口就成了SRAM接口。主要看LZ读取速度要求,应该没有问题。刷新等时序都是FPAG内部实现的。我记得LATTICE有个参考设计应该可以能帮你的忙,自己去找吧。好像是用CPLD实现的。

出0入0汤圆

 楼主| 发表于 2011-2-7 19:26:06 | 显示全部楼层
回复【25楼】lm78l05 JimoPanda
-----------------------------------------------------------------------

谢谢,关键是FPGA要和STM32共享数据,该数据可能同时被FPGA和STM32读写。

出0入0汤圆

发表于 2011-2-7 19:34:31 | 显示全部楼层
那就用双口RAM。

出0入0汤圆

 楼主| 发表于 2011-2-7 19:58:12 | 显示全部楼层
回复【27楼】lm78l05 JimoPanda
那就用双口ram。
-----------------------------------------------------------------------
别说几十MB的双口ram,就是2MB的双口ram也很贵阿......

出0入0汤圆

发表于 2011-2-7 20:02:48 | 显示全部楼层
psram+fpga+总线仲裁。只要速度不是问题的话。

出0入0汤圆

 楼主| 发表于 2011-2-7 20:16:31 | 显示全部楼层
回复【29楼】lm78l05 JimoPanda
psram+fpga+总线仲裁。只要速度不是问题的话。
-----------------------------------------------------------------------
不了解总线仲裁,也许可行,但假如用FPGA作总线仲裁的话,感觉和SDRAM+FPGA+STM32差不多了。

这个算不算一种简单的仲裁?
当写缓存没满,W_FULL为0,W_SYS_REQ、W_STM_REQ分别是FPGA自身模块和STM32模块的写请求,W_SYS_READY、W_STM_READY分别是对FPGA自身模块和STM32模块的允许信号。


(原文件名:写缓存READY.jpg)

出0入0汤圆

发表于 2011-2-7 20:49:28 | 显示全部楼层
用PSRAM可以不考虑SDRAM的那些讨厌的状态机,况且也便宜。 你只需用CPLD做一些简单的协调就可以了。 前提是对读写速度要求不高。

出0入0汤圆

发表于 2011-2-7 20:53:47 | 显示全部楼层
用Spartan-6挂DDR好了,硬核控制器,最多6个独立访问端口,用不着仲裁了

出0入0汤圆

发表于 2011-2-7 20:58:18 | 显示全部楼层
回复【32楼】h2feo4 无机酸
用spartan-6挂ddr好了,硬核控制器,最多6个独立访问端口,用不着仲裁了
-----------------------------------------------------------------------

s6的DDR核是硬核了? 好爽。 需不需要license?

出0入0汤圆

 楼主| 发表于 2011-2-7 20:58:31 | 显示全部楼层
回复【32楼】h2feo4 无机酸
用spartan-6挂ddr好了,硬核控制器,最多6个独立访问端口,用不着仲裁了
-----------------------------------------------------------------------

东西是好,价格是个问题......

出0入0汤圆

发表于 2011-2-7 21:08:15 | 显示全部楼层
回复【33楼】lm78l05 JimoPanda
-----------------------------------------------------------------------

DDR/DDR2/DDR3硬核控制器,貌似无需授权

出0入0汤圆

发表于 2011-2-7 21:12:21 | 显示全部楼层
回复【35楼】h2feo4 无机酸
回复【33楼】lm78l05 jimopanda
-----------------------------------------------------------------------
ddr/ddr2/ddr3硬核控制器,貌似无需授权
-----------------------------------------------------------------------

s6的芯片现在好买吗?

出0入0汤圆

发表于 2011-2-7 21:18:43 | 显示全部楼层
回复【36楼】lm78l05 JimoPanda
-----------------------------------------------------------------------

貌似还不多

出0入0汤圆

发表于 2011-2-7 21:40:14 | 显示全部楼层
CYCLONE V也是包括了存储器控制器
趋势啊~~

出0入0汤圆

 楼主| 发表于 2011-2-9 17:03:47 | 显示全部楼层
光是写缓存(8*32bit)及其控制器就要那么多资源,看来EP2C5Q208要顶不住了。
; Total combinational functions      ; 1794                                     ;
; Total registers                    ; 520                                      ;

出0入0汤圆

发表于 2011-2-15 17:35:52 | 显示全部楼层
回复【37楼】h2feo4 无机酸
回复【36楼】lm78l05 jimopanda
-----------------------------------------------------------------------
貌似还不多
-----------------------------------------------------------------------

s6问题太多,快挂了!

出0入0汤圆

发表于 2011-5-22 16:45:43 | 显示全部楼层
这个我做过,其实可行,看你应用的需求了

出0入0汤圆

发表于 2011-5-22 17:34:41 | 显示全部楼层
回复【24楼】qianhng
-----------------------------------------------------------------------

我正在画STM32+SDRAM+CPLD,不知道楼主侧重什么

出0入0汤圆

发表于 2011-5-22 21:05:13 | 显示全部楼层
用TI LM3S系列的Cortex-M3核的ARM微控制器,其外部EPI总线可以直接连接SDRAM的。

出0入0汤圆

发表于 2011-7-10 01:02:36 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-8-26 09:40:08 | 显示全部楼层
楼主做到什么沉痼了,我也想使用这个方案,
我的方案是:FPGA有两个功能,一个是支持FSMC访问SDRAM;第二个功能是用用FPGA支持7吋TFT屏驱动;

希望能探讨.

出0入0汤圆

发表于 2012-5-15 16:12:44 | 显示全部楼层
mark,学习中。楼主应该再来更新下啊。

出0入0汤圆

发表于 2012-5-16 11:04:07 | 显示全部楼层
TI LM3S系列跟 stm32 区别大不?

楼主还有个选择,AVR32 的 UC3A 系列,性能跟 stm32 差不多,但是支持SDRAM。愚见。

出0入442汤圆

发表于 2012-5-16 22:03:26 | 显示全部楼层
哈,很老的贴子了,我也来说说吧,PSRAM并没有想象的那么恐怖,只是它的响应时间太慢,但是突发还是很快的,一般几个ns。目前PSRAM全Ban跳读的话是可以做到87MHz的,而连续读是可以达到200MHz的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 09:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表