随着大规模集成电路技术的进步和制造工艺水平的提高,嵌入式系统的开发变得日益复杂。传统的嵌入式系统设计方法已经不能适应当前嵌入式系统设计的需要。单个芯片容量的增大、功能的增加、体积的减小使得设计变得更加便利,同时也为嵌入式系统设计开发开辟了新的天地即片上系统(System on Chip,SoC)技术。
根据IEEE的定义,嵌入式系统是控制、监视或者辅助设备、机器和车间运行的装置。因此,嵌入式系统是软件和硬件的综合体,以应用为中心,以计算机技术为基础,软硬件资源可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。一般而言嵌入式系统的开发主要包括4个部分:处理器、存储器、输入/输出(I/O)和软件,如图1所示。
嵌入式系统的核心部件是各种类型的嵌入式处理器。因此,我们着眼于嵌入式处理器的SoC开发。本节将对基于Nios II内核的嵌入式SOPC开发板设计进行详细的介绍。
2.1 Nios II 内核的设计
Nios II系列嵌入式处理器是一款采用流水线技术、单指令流的RISC CPU,广泛应用于嵌入式系统。Nios II包括3种内核,即快速的F(最高性能的优化)内核、经济的E(最小逻辑占用的优化)内核以及标准的S(平衡于性能和尺寸)内核,每种内核根据不同的性能而优化。考虑到性能和成本,通常采用Nios II标准内核设计。
Nios II嵌入式CPU支持32位指令集,32位数据线宽度,32个通用寄存器,32个外部中断源,2 GB寻址空间,包含高达256个用户自定义的CPU定制指令。其可选的片上JTAG调试模块是基于别界测试的调试逻辑,支持硬件断点、数据触发和片外片内的调试跟踪。Nios II标准内核设计框图如图2所示。
Nios CPU的所有数据、程序都是通过Avalon总线传输的,系统的FPGA片外PIO(外围IO)包括一个串行口、显示、键盘、存储器,片内PIO采用FIFO实现。并通过使用Altera的Quartus II软件以及SOPC builder工具可以轻松地将Nios II内核嵌入到系统里。
2.2 嵌入式S0PC的实现
片上系统SoC是追求产品系统最大包容的集成器件。SoC的出现使集成电路的发展成为集成系统,具有极高的综合性,在一块FPGA内部使用硬件编程语言,调用各种通用处理器的标准,然后仿真验证,下载到FPGA芯片中形成一个完整的SoC系统。
图2 Nios 1I标准内核设计框图
SOPC技术是Altera公司提出的一种灵活、高效的片上系统SoC设计方案,其工作环境是Altera的Quartus II中的SOPC builder。与其他SoC设计相比,其优点在于可编程性,利用FPGA的可编程性进行SoC设计。通过采用SOPC builder工具,用户可以很方便地将处理器、存储器和其他外设联接起来,组成一个完整的嵌入式系统。
SOPC从内部的角度来说,主要包含2个部分:图形用户界面(GUI)和系统生成程序。图形用户界面内每个组件也可以提供自己的配置图形用户界面,GUI创建系统PTF文件对系统进行描述;生成程序创建针对目标器件的系统HDL 描述。
在进行SOPC设计时,首先需要通过SOPC Builder选择合适的IP核,在HDL Language选择系统组件时选择VHDL 或Verilog源文件。当完成设计活动之后,将由系统生成一系列设计文件,如HDL文件、DK目录和模拟工程文件等。在Quartus II中编译整个系统,若编译成功,就可以把编译文件下载到开发板上进行验证。SOPC开发板设计流程如图3所示。
在实际的SOPC开发板设计中,选用Cyclone II器件的EP2C5Q208C。他是一款低成本、低功耗、高性能的FPGA,支持最低12 V输入电压,具有4608个可用逻辑单元,可用RAM 最多可达119808 b,13个嵌入式乘法模块,2个提供时钟倍频、相移功能的锁相环,最大可支持142个I/O脚,I/O脚支持66 MHz 32位PCI标准和高速(311 MHz)LVDS,并支持知识产权(IP)核,包含Altera MegaCore函数和AMPP mega函数。
3.1 开发板的硬件设计
开发板硬件主要包括如下几个部分:2个同步7段共阳数码管、8个LED、4×4键盘、1个8位拨位开关、1个有源时钟输入、1个RS 232通讯接口、PHY 100/10 M 网络接口。CF存储卡电源插座(输入+5 V),下载电路等。本设计的基本原理框图如图4所示。
3.2 开发板的软件配置
Nios II内核具体由软件实现,即实现了Nios II软核化设计。Nios II软核主要在FPGA中完成,因此,在开发板的设计中需要对其进行软件配置电路设计。Cyclone II有3种配置电路来加载器件的配置数据:主动模式(AS),被动模式(PS),JTAG。通过MSEL[1..0]拉高与接地来选择配置模式,MSEL [1..0]为“00”时为主动串行,“01”为被动串行。而JTAG模式优先级最高,因此当JTAG配置开始时,其他2种模式都被迫停止。采用低成本的串行配置器件EPCS1或者EPCS4是属于主动串行模式,在每次系统上电时自动配置Cyclone II器件。通过连接每个器件的配置允许(nCE)和配置允许输出(nCEO)引脚可以配置多个Cyclone器件。JTAG调试口则支持在线调试(ISP)。
通过如上设计的SOPC开发板,配置上相应的外设,即形成了具有特殊处理功能的专用计算机系统。
Nios II处理器的优点和特性使得用户可以根据他们的需要来调整嵌入式系统的特性、性能以及成本,并使得产品快速推向市场,且易于升级改进。本文提出的基于Nios II内核的嵌入式SOPC开发板的设计给Nios II的应用提供一个有效的硬件平台,具有广泛的实际应用价值。