hunningtu 发表于 2012-1-7 22:13:36

关于FPGA中flash的问题!

这个问题困扰了我好久,直到现在也不确定是不是这样子的,以下是我在《Nios设计从入门到精通》中找到的答案,如果不对还希望大侠们指正。
以前我一直将fpga的硬件配置文件和Nios软件文件都烧到并行Nor flash中,希望fpga上电后,像烧到EPCS中一样,从FLASH自动运行,但是从来没有成功过,在论坛上也找不到相应的答案,有的说是软件版本问题,我都换了n个了,都没有成功,下图是我在其中摘出的图片:
http://cache.amobbs.com/bbs_upload782111/files_50/ourdev_711152PEFHEF.JPG
(原文件名:配置方案.JPG)
也就是说,如果想实现上面的自启动,就必须要一块且协处理器,否则正确的处理应该是硬件配置文件放在EPCS中,软件工程放在FLASH中。见下图
http://cache.amobbs.com/bbs_upload782111/files_50/ourdev_711154B4PAK6.JPG
(原文件名:2.JPG)
这样的话在没有协处理器的状况下,想使用flash就必须在构建core时,同时添加flash和epcs,否则不可能自启动。如果core中只有SDRAM和flash,就算下载进去,硬件配置文件烧到了sdram中,软件烧到了FLASH中,一断电,当然不可能自启动,这也就解释了为什么论坛中的网友为什么掉电后,不能自动重启。
以上是我根据这篇文档找到的答案,至于为什么,还在继续研究当中,如果有错误,希望与人交流。文档附上
点击此处下载 ourdev_711155XCAE6M.pdf(文件大小:2.94M) (原文件名:NIOS设计从入门到精通.pdf)

smsalarm 发表于 2012-1-7 22:37:02

引用的文章基本上是正确的,但是你的理解确实有几个地方都不对。

首先,我认为第一种方式的缺点并不是EPCS器件容量小,价格高昂。64Mbits的串行存储器件也是有的,价格也不贵。使用这种方式时,一般都是把程序存储在片内RAM中,所以之所以限定了容量,主要是由于低成本的FPGA片内RAM大小不够导致。但是我还是喜欢用这种方式,我认为一般的nios工程,16k代码足以。
如果你要用操作系统,我不建议使用nios。

其次,使用Nor flash,确实需要一个控制器,这只是拿最便宜的CPLD做的一个控制器,并不是啥高深的协处理器,因为FPGA的并口是从,FLASH也是从,需要CPLD做双主转换一下而已。当然,也有更先进的做法,就是在EPCS中放置一个引导代码,FPGA启动后,自己实现对flash的读写接口,再把代码导入sram中执行,这样,就不再需要CPLD了。

多重配置,串行EPCS器件也可以实现,要在CYCLONE3 及以后版本中才行,你这本书基本上是对的,但是有些过时了。

hunningtu 发表于 2012-1-7 22:51:28

回复【1楼】smsalarm
-----------------------------------------------------------------------

   受教了,至于在EPCS中放一段代码来引导FPGA对flash的读写,这样应该可以行的通,不知您有没有相应的例子程序什么的,让我和其他网友来研究一下呢。
页: [1]
查看完整版本: 关于FPGA中flash的问题!