在上一章中,第一个工程实例里并未创建一个完整的最终可供下载运行的嵌入式系统。缺什么?存储器。不是已经有一个on-chip memory了么?没有错,在on-chip memory上的系统也的的确确跑起来了。但是你有没有注意,那不过只是一个RAM而已哦,RAM的特性是下电即丢失数据。虽然我们的系统在线烧录后跑得很HIGH,估计都把你兴奋的不行了,但是下电试试,再上电的时候估计你发现怎么什么都没有了,空忙活一场!
呵呵,不用操心,这章特权同学就和你一起解决这个棘手的问题。我们可以复习一下第一章说概念的时候提到的嵌入式系统都应该有哪些基本组件。CPU肯定是要有的,就是我们这里的NIOS2了;电源,这个集成在FPGA的硬件结构上了,不需要我们的SOPC系统中考虑,先pass;时钟,在我们的第一个系统中就直接使用了与FPGA连接的外部25MHz的晶振;复位,一般也要有,系统初上电的时候需要初始化到一个固定的状态,第一个系统里也使用了FPGA外部的输入复位引脚,为了让这个复位能够更加稳定可靠一些,在FPGA内部逻辑也把外部输入复位信号做了一些简单的同步处理;ROM,相当于PC机的硬盘,所有的运行程序在断电后依然需要保存,那么就只有靠ROM了,我们的第一个系统里缺的就是它,没有它,再好的系统也只能停留在调试阶段,因为无法对程序进行固化,每次断电后都需要重新加载一次(那就意味着不能离开PC机了),而有了ROM,程序在上电后就从ROM搬运出来后用于执行;RAM,相当于PC机的内存条,它的一个特性是下电就丢失数据,那为什么还要用它呢?因为它的另一个特性是速度比ROM快,并且是快得多,因此执行程序的地方一般是RAM而非ROM,还有就是它的读写控制逻辑要比ROM简单,很适合于一些经常读写的变量的暂存。因此,一个系统中,通常是ROM和RAM都不可或缺。另外,还要有一些调试的接口,如JTAG UART等,因为不是本章的重点,所以也pass。下面我们要专心来谈存储系统,即ROM和RAM。
第一个系统里使用了FPGA的片内RAM做程序和数据存储器,虽然也能够跑起来,而且性能也绝对够好。但是FPGA的片内存储器是很昂贵的,性价比也是很低的,并且最主要的是我们所能够用得起的FPGA,它的片内存储器资源都是相对有限的。因此,在一个嵌入式系统中,我们通常不会选择用这种昂贵的方案来实现我们的程序存储和运行。当然了,片内存储器有更便利的用途,通常用他来配置一些FPGA器件内或者FPGA器件与外部器件数据交互的一个“桥梁”,如双口RAM或者异步FIFO等。这个用途也极大的发挥了用FPGA搭建系统的灵活性。作为存储系统,选择SDRAM和FLASH是比较常见的,既然说到这里了,特权同学觉得有义务让大家对目前比较盛行的一些系统存储的搭配与程序存储运行的基本原理有一些了解。
下文的“嵌入式存储系统”和“基于FPGA的嵌入式存储解决方案”内容主要参考numonyx公司的文档《EmbeddedCodeStorage_web.pdf》和altera公司的文档《edh_ed_handbook32.pdf》。特权同学对各个知识点进行重新组织和描述,希望能够对大家快速消化这部分内容有所帮助。)
嵌入式存储系统>>>>
基于FPGA的嵌入式存储解决方案>>>>
第二个系统准备工作>>>>
SDRAM控制器组件添加与配置>>>>
EPCS控制器组件添加与配置>>>>
PLL组件添加与配置>>>>
其它SOPC Builder配置>>>>
编辑顶层文件与管脚分配>>>>
软件工程调试与下载>>>>
更多内容请下载.pdf>>>>
用户465116 2015-8-13 09:18
用户1316439 2012-11-14 22:09
zhanghaokm_428385128 2011-7-10 20:24
ilove314_323192455 2011-3-9 21:55
用户1606089 2011-3-8 22:55
用户1638247 2011-3-8 22:41
用户183270 2011-1-13 23:04
ilove314_323192455 2011-1-13 11:12
用户183270 2011-1-12 11:37
ilove314_323192455 2010-12-31 17:12