基于SOPC的Flash数据烧写(1)
2015-01-29 01:04
导读:计算机应用论文论文,基于SOPC的Flash数据烧写(1)论文样本,在线游览或下载,科教论文网海量论文供你参考:
作者;王晓雁,黄孜理,汪一鸣 摘要: 随着EDA技术的发展和可编程
作者;王晓雁,黄孜理,汪一鸣 摘要: 随着EDA技术的发展和可编程逻辑器件性能的不断提高,可编程片上系统技术为系统设计提供了一种简单、灵活、高效的途径,而Nios II嵌入式处理器是Altera公司新近开发的可编程片上系统解决方案。本文简单介绍了基于Nios II的可编程片上系统的系统设计,并以Flash数据烧写为实例,讨论了在应用过程中遇到的一些问题和解决方案。
关键词: 可编程片上系统;嵌入式处理器;Flash烧写;同步动态随机存储器
引言
随着微电子技术的飞速发展,集成电路设计和工艺技术水平有了很大的提高,从而使得由许多IC组成的电子系统集成在一个单片硅片上已成为可能,构成所谓的片上系统(System On Chip, SOC)。对于一些仅为小批量应用或处于开发阶段的SOC,若马上投入生产,风险较大,SOPC(System On a Programmable Chip)技术的出现为此提供了有效的解决方案。SOPC是以大规模FPGA为物理载体进行的系统芯片的设计,是基于FPGA解决方案的SOC,简单易行而且成本低廉。
构成SOPC的方案有多种途径,其中将IP软核嵌入FPGA的SOPC系统被广泛使用,目前最具有代表性的软核嵌入式处理器是Altera的Nios和Nios II核。Nios嵌入式CPU是一种专门为SOPC设计应用而优化的CPU软核,Nios II是继之推出的第二代Nios嵌入式处理器,处理性能更高。
随着现代设计越来越复杂化,FPGA中片内存储器的资源早已不能满足用户的需要,往往需要使用外部存储器来解决问题。其中,Flash烧写就提供了一个有效手段。一般地,烧写Flash最常用的方法是用编程器把程序或数据写入Flash,但如果要把Flash存储器和芯片(比如FPGA芯片)连接起来使用,那么就需要用硬件来做成一个接口模块,而现在很多FPGA开发板本身就带有Flash存储器,这就为FPGA芯片和Flash通信提供了方便,而且Nios II IDE为此提供了一个方便的Flash编程方法,任何连接到FPGA的兼容通用闪存接口(CFI)的Flash器件都可以通过Nios II IDE闪存编程器(Flash Programmer)来烧录。
虽然Nios II IDE闪存编程器(Flash Programmer)为FPGA开发板提供了一种Flash烧写方法,但是使用它更多地是为了将程序烧入Flash,避免每次上电时需要下载程序的麻烦。
如果仅仅想把大量数据写入Flash存储器,作为系统的输入信息使用,则可以采用一种更为简单、方便的方法。本文提出的即是一种基于SOPC开发的Flash数据烧写方法。它利用SOPC开发过程,把Flash作为普通的外设来对待,待数据写入Flash后,SOPC系统所占的资源就可以释放,所以它为Flash数据烧写提供了一种简单、方便并且能够节省FPGA资源的有效方法。
1 基于Nios II的SOPC开发
与传统嵌入式系统设计不同,Nios系统的开发分硬件开发和软件开发两个流程。硬件开发过程主要由用户定制系统硬件,软件开发在Nios II IDE中完成,Nios II使用Nios II IDE集成开发环境来完成整个
软件工程的编辑、编译、调试和下载。图1所示的是基于Nios II的SOPC系统开发流程。
设计规划
将硬件程序下
载至开发板上
将软件程序下
载至开发板上
SOPC系统实现
硬件设计
定义Nios II处理器系统(SOPC Builder)
(SOPC Builder)
分配引脚、编译硬件
(Quartus II)
生成系统模块
(SOPC Builder)
软件设计
根据硬件系统生成HAL(Nios II IDE)
编写应用程序
(Nios II IDE)
编译、连接、调试
(Nios II IDE)
图1 基于Nios II的SOPC系统开发流程
Nios II的硬件设计是为了定制合适的CPU和外设,利用SOPC Builder的图形用户界面,可以快速方便地定义和连接复杂的系统。系统定义过程中,可对CPU和各外设模块的特性、大小及在系统中地址分配等进行设定。接着让SOPC Builder帮助Nios II开发者生成SOPC系统,实际上,它是用生成的.ptf文件来描述Nios II处理器系统。同时,也生成了用于Quartus II编译的HDL文件。在完成上述操作之后,使用Quatus II软件对Nios II系统上的各种I/O口进行引脚分配,并且进行硬件编译。在编译的过程中,Quatrus II从HDL源文件综合生成一个适合目标器件的网表。最后,将生成的配置文件下载到开发板上。