基于NIOSⅡ内核的嵌入式SOPC开发板的实现

时间:2022-07-18 12:13:53

基于NIOSⅡ内核的嵌入式SOPC开发板的实现

摘要:随着计算机体系结构理论的完善以及微电子工艺技术的革新,嵌入式技术不断取得新进展,其研究和应用已成为当前的热门技术。SOPC是Ahera公司提出的一种灵活,高效的片上系统设计方案。重点介绍基于NiosⅡ内核处理器的嵌入式SOPC开发板的设计。

关键词:嵌入式系统;NiosⅡ内核;SOPC;Cyclone II

中图分类号:TP3 文献标识码:A 文章编号:(2008)04-0088-04

一、引言

当前,嵌入式系统正处在一个飞速发展和激烈竞争的时代。嵌入式系统是一个面向应用、技术密集、资金密集、高度分散、不可垄断的产业,随着各个领域应用需求的多样化,嵌入式设计技术和芯片技术也经历着一次又一次的革新。就嵌入式系统的技术和市场来说,国外发展速度极快,技术日趋成熟,市场格局基本形成。就国内而言,嵌入式系统正蓬勃兴起,市场潜力很大。在国外,嵌入式系统硬件,特别是嵌入式CPU的处理能力提升较快,由8位、16位升级到32位,采用嵌入式系统的掌上电脑、PDA、智能手机、智能汽车等新产品层出不穷,嵌入式系统得到越来越广泛的应用。

随着微电子技术飞速发展,促使集成电路向高速、高集成度、低功耗的系统集成方向发展,SOPC(System 0n Programmable Chip片上可编程系统)是现代电子技术和电子系统的会聚点和发展方向。SOPC设计包括以Nios II软核处理器为核心的嵌入式系统的硬件配置、硬件设计、IDE环境的软核设计、软件设计等。Quartus II用于完成Nios II系统的分析综合、硬件优化、配置文件编程下载等;SOPC Builder是Nios II软核处理器的开发包,用于实现Nios II系统配置、生成以及与Nios II系统相关的软件调试平台的生成。Nios II IDE用于完成基于Nios II系统的软件开发和调试。

二、嵌入式系统

嵌入式系统(Embedded System)是当今最热门的概念之一。嵌入式系统,是“嵌入式计算机系统”的简称,它是相对于通用计算机系统而言的。嵌入式系统由软件和硬件两大部分组成,软件包括联系紧密的系统软件和应用软件。硬件包括处理器(cPU)、存储器、输入输出接口和外部设备等。嵌入式处理器有硬核和软核之分,常用的嵌入式处理器硬核有ARM、PowerPC、INTELX86等,其中INTEL XSCALE和EIA嵌入式架构为嵌入式硬核的代表,普遍具有高性能、低功耗等特点和强大的多媒体处理、网络通信能力。其嵌入式操作系统Windows CE和Embeded Linux高效稳定,具有多任务、多用户的图形操作环境,已经得到广泛的应用。

三、Nios II软核处理器的特点

嵌入式处理器软核以Altera公司开发的第一代Nios及第二代Nios II为先进代表。Nios II嵌入式处理器是一种采用流水线技术、单指令流的RISC(Reduced Instruction Set Computing),其大部分指令可以在一个时钟周期内完成。Nios和NiosII处理器软核均为可配置的通用处理器。可与用户自定义逻辑(user defined logic)结合构成一个基于FPGA的片上系统。32位Nios II软核结合外部闪存以及大容量存储器,可构成一个功能强大的32位嵌入式处理器系统。

它的主要特点如下:

可配置的指令和数据Cache;32个通用寄存器;32个外部中断源;单指令的32×32乘除法,产生32位结果;单指令Barrel Shifter;可以访问多种片上外设,可以和片外存储器外设接口;具有硬件协助的调试模块,可以使处理器在软件调试时做各种调试,如开始停止单步和跟踪等等;具有超过200DMIPS的性能。

Nios II处理器体系结构框图如图1所示。它包含以下用户可见的模块:通用寄存器和控制寄存器、算术逻辑单元(ALU)、中断控制器、异常控制器、指令总线、数据总线、指令和数据缓冲存储器、指令和数据紧耦合存储器接口、用户逻辑接口、JTAG调试模块等。数据处理主要算术逻辑单元完成。Nios II把外部硬件的中断事件(如I/O事件,定时器中断,UART中断等)由中断控制器管理,内核异常事件(如软件自陷,未定义指令,预取指终止等)由异常控制器管理。用户逻辑接口用来连接用户定制的逻辑电路与Nios II内核。

体系结构支持固定大小的寄存器文件,包括32个32位通用寄存器和6个32位控制寄存器。该结构支持管理模式、用户模式和调试模式,这使得系统代码可以保护控制寄存器,避免恶意程序的影响。ALU对通用寄存器中的数据进行操作,取出一到两个操作数,运算并将结果存回寄存器。ALU支持的数据操作有:算术运算、关系运算、逻辑运算、移位运算。如果要实现其他运算,在软件上可以执行上述几种运算的组合。

四、基本SOPC系统及SOPC技术

1 基本SOPC系统

一个基本的SOPC系统,大致分为FPGA、存储器和外部接口3个部分。图2所示为基本的SOPC系统。利用SOPC Builder,用户可以很方便地将处理器、存储器和其他外设模块连接起来,形成一个完整的系统。

其中Avalon总线是专为SOPC系统开发所设计的。一个SOPC系统包括一些主外设和从外设,比如微处理器、存储器、UART、定时器等等,系统会自动为这些外设分配地址空间,Avalon总线用来将处理器和周边设备集成到系统中,并规定主设备和设备的端口连接方式和时序关系。Avalon总线由一组预定义的信号组成,用这些信号可以连接一个或多个IP模块,包括处理器和周边设备。Altera的SOPC Builder系统开发工具自动地产生Avalon交换结构总线逻辑,由PLD内部的逻辑单元和连接线组成,其实现只需要极少的FPGA资源,提供完全同步的操作。

SOPC Builder中已包含了Nios处理器以及其他一些常用的外设IP模块。用户也可以设计自己的外设IP。SOPC Builder会根据用户选择的IP生成相应的HDL描述文件(系统模块文件),这些文件与用户逻辑区域内的设计描述文件一起由Quartus软件综合,然后下载到FPGA内,这样就构成了系统的硬件基础。FPGA部分是建立在FPGA芯片内的,核心是Nios处理器Core,在SOPC Builder中需要设计的就是FPGA部分。同一般的嵌入式系统开发不同,在一般的嵌入式系统开发中,需要新的外设时往往需要在CPU外加入相应的外设芯片或者换用更高档次的CPU,而SOPC设计可以在CPU Core

外,但还在同一个FPGA芯片内加入相应的外设模块核,并通过在片上的Avalon总线与Nios Core相连,因而可以不需要在PCB这个层面上作很多修改。需要设计的就是FPGA部分,即图2所示的实线框部分。

2 SOPC技术的实现

SOPC技术是Ahera公司提出的一种灵活、高效的片上系统SOC设计方案,其工作环境是Altera的OuartusⅡ中的SOPC Builder。与其他SOC设计相比,其优点在于可编程性,利用FPGA的可编程性进行SOC设计。通过采用SOPC Builder工具,用户可以很方便地将处理器、存储器和其他外设联接起来,组成一个完整的嵌入式系统。SOPC从内部的角度来说,主要包含2个部分:图形用户界面(GUI)和系统生成程序。图形用户界面内每个组件也可以提供自己的配置图形用户界面,GUI创建系统PTF文件对系统进行描述,生成程序创建针对目标器件的系统HDL描述。在进行SOPC设计时,首先需要通过SOPC Builder选择合适的IP核,在HDLLanguage选择系统组件时选择VHDL或Verilog源文件。当完成设计活动之后,将由系统生成一系列设计文件,如HDL文件、DK目录和模拟工程文件等。在QuartusⅡ中编译整个系统,若编译成功,就可以把编译文件下载到开发板上进行验证。

五、基于Cyclone II器件的SOPC开发板设计实例

目前Altera公司的FPGA大部分均支持Nios IICPU,Cyclone系列器件是当前世界上成本最低的FPGA,因此SOPC开发板选择Altera公司Cyclone II系列器件EP2C35,该器件采用90nm工艺制造,延续了Cyclone的低成本定位,在逻辑容量、PLL、乘法器和I/O数量上较Cyclone有很大的提高。EP2C35提供一个全局时钟网络且有4个锁相环。Cvclone II内嵌存储器是由多列M4K存储器块组成的,本设计选择的EP2C35器件中M4K存储器容量达到483K位。器件内包含大约35000个逻辑单元(LE),最大可用I/O管脚475个。内嵌35个乘法器块,每个乘法器块能实现2个9x9的乘法器,或者一个18*18的乘法器。Cyclone II器件的IOE包含一个双向的I/O缓冲器和3个寄存器,用于控制完全内嵌的双向单数率传送。

1 SOPC硬件系统开发

开发板主要包括以下几部分:FPGA、SDRAM、FLASH、LED、RS232、USB接口、电源电路和50MHz有源晶振等,下载电路包括JTAG方式和As方式,采用EPCS16作为串行配置器件。硬件原理框图如图3所示。

NiosII系统的硬件设计就是定植合适的CPU和外设,并在SOPC Builder和Quartus II中实现的过程。在硬件设计过程中,使用soPc Builder工具可以灵活地定制Nios II CPU的许多特性。可以使用Ahem公司提供的IP核来加快设计者开发Nios II外设的速度,提高外设的性能;也可以使用第三方的IP核,或者使用VHDL,Verilog来自己定制外设。

首先在Quartus II中建立自己的工程,然后启动SOPC Builder添加模块集组件库或用户自定义模块,添加各模块的时候,即可对Nios II CPU和各外设模块的特性,例如存储器的大小,SDRAM的时序参数等,以及各IP模块在系统中的映射地址分配等进行设定。设定复位地址和异常地址后,启动SOPC Builder中的Generate,使之生成用于综合和仿真的文件。然后使用Quartus II软件中的Assignment―>pins对各模块端口引脚锁定,对生成的NiosII系统进行仿真、综合、适配和下载。

2 SOPC软件开发

Nios II内核具体由软件实现,即实现了Nios II软核化03t。Nios II软核主要在FPGA中完成,因此,在开发板的设计中需要对其进行软件配置电路设计。Cyclone II有3种配置电路来加载器件的配置数据:主动模式(AS)、被动模式(PS)、JTAG。而JTAG模式优先级最高,因此当JTAG配置开始时,其他2种模式都被迫停止。采用低成本的串行配置器件EPCSl或者EPCS4是属于主动串行模式,在每次系统上电时自动配置Cyclone II器件。通过连接每个器件的配置允许(nCE)和配置允许输出(nCEO)引脚可以配置多个Cyclone器件。JTAG调试口则支持在线调试(IsP)。

使用SOPC Builder开发了平台的硬件系统,完成在目标板上的基本Nios II处理器硬件原型设计之后,将设计下载到FPGA,然后就可以建立在硬件上运行的软件原型。随着Altera公司推出Nios II集成开发环境Nios II IDE,软件开发变得非常容易。Nios II IDE已经成为主要嵌入式工具提供商选用的平台。Nios II IDE是基于开放和可扩展的Eclipse平台,将通用用户界面和顶级开放相结合,与第三方工具无缝地集成在一起。所有软件开发任务都可在Nios II IDE下完成,包括编辑、编译和调试程序。

六、结语

Nios II处理器的优点和特性使得用户可以根据他们的需要来调整嵌入式系统的特性、性能以及成本,并使得产品快速推向市场,且易于升级改进。本文提出的基于Nios II内核的嵌入式SOPC开发板的设计给Nios II的应用提供一个有效的硬件平台,具有广泛的实际应用价值。

上一篇:论契约自由原则在近代中国民法中的确立 下一篇:社会工作在司法领域的影响