基于NIO处理器的SOPC应用系统研究与设计
张宏波 戴紫彬 孙万忠
信息工程大学电子技术学院,河南 郑州 450004
1.引言
随着微电子技术和半导体工业的不断创新和发展,集成电路的集成度和生产工艺水平得到不断提高,从而使在一个半导体芯片上完成系统级的集成已成为可能,数字技术已进入片上系统(system on a chip)时代。然而由于受生产工艺和实验条件的限制,工程师很难在实验室完成SoC设计。
可编程片上系统(System on aprogrammable chip)基于FPGA芯片,将处理器、存储器、I/O口等系统设计需要的模块集成到一起,完成整个系统的主要逻辑功能,具有设计灵活,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。受到广大电子设计工程师的青睐。
本文着重探讨了基于Altera公司FPGA的嵌入式处理器NIOS内核和SoPC软硬件设计技术,并在此基础上设计了基于PCI的NIOS开发系统。
2.嵌入式处理器NIOS的基本特性
Altera公司的NIOS是基于RISC技术的通用嵌入式处理器软内核,它专门为可编程逻辑进行了优化设计,也为可编程片上系统(SoPC)设计了一整套综合解决方案。NIOS处理器采用16位指令集,16/32位数据通道,5级流水线技术,平均一个时钟周期处理一条指令,性能高达50 M工PS。NIOS处理器内部结构如图1所示。NIOS V2.1处理器具有以下主要特征:
3.基于PCI接口的NIOS开发板卡的设计
3.1 FPGA的选择
NIOS CPU可以到A1tera公司的大部分FPGA器件中,如ACEXlK、APEX、Stratix及Cyclone等系列。Cyclone器件系列是目前世界上成本的FPGA。它在相对低的价格下把特性、容量和性能完美地融合在一起,采用专门设计的低成本全新体系结构,特别适合于对成本敏感和大批量应用的高端消费类。设计者可以充分利用可编程逻辑的灵活性、经济性和面市的时间优势定制出适合自己使用的片上系统。结合实际需求,本开发系统选用Cyclone系列的EPlCl2Q240C8。该芯片具有以下特征:
3.2开发系统硬件结构
NIOS开发系统由NIOS处理器模块、片外ROM、片外RAM、调试与信息交互模块、I/O设备模块等构成(如图2所示)。NIOS处理器预先到板上FPGA之中,FPGA内还包括片内启动ROM、总线控制逻辑、外部并行输入输出端口(PIO)等;开发板支持片内ROM启动和片外ROM启动模式,片内ROM直接调用ALTERA公司提供的库函数实现,片外ROM选用SST公司的SST39VFl60,该芯片容量为lM× 16bit,访问速度70ns,采用两片进行位扩展到32-bit;NIOS处理器可以通过其总线直接访问片外同步SRAM,SRAM选用了MICRON公司的MT58L256L32F,该芯片容量为256K × 32bit,支持同步猝发数据传输,访问速度7.5ns。
为便于调试,开发板与主机采用PCI接口方式进行通信。选用PCI 9054作为PCI总线桥接器,在FPGA内部构造寄存器堆,实现主机对NIOS的控制、NIOS处理器工作状态监视,在PCI9054局部总线与Avalon总线之间设置输入FIFO和输出FIFO,实现主机与NIOS系统的数据缓冲。输入输出PIFO选用IDT公司的IDT72V3650芯片,该芯片容量为2K× 32bit,支持同步数据传输,访问速度12ns。
4.基于NIOS内核的SOPC软硬件开发
采用NIOS处理器开发设计与采用传统的处理器开发设计不同,开发者必须先配置处理器结构、设置接口等内容。也就是说,开发者必须根据实际需求构建一个处理器,而传统的处理器具有固定接口、片内RAM和外部设备。具体步骤如下: STEPl定义处理器
STEP2构建处理器
当采用Quartus II V2.2开发软件和SoPC Builder软件产生一个处理器后(如STEPl所述),被当作处理器,还需要完成以下操作:
STEP3创建和编译应用程序
STEP4转换为自启动代码
一旦应用程序代码调试完毕,需要将可执行代码存储在开发板中,当NIOS CPU复位后,自动执行应用程序。存储的方式有:
详细的NIOS应用设计流程如图3所示。
5.结束语
本文提出的NIOS处理器开发系统已经设计完成并经过测试,该开发系统与ALTERA公司提供的开发系统相比较具有接口通用、显示直观且可以方便的实现与PC机之间的通信的特点。随着可编程逻辑器件工艺的不断进步,成本和价格已经不再成为制约FPGA发展的理由,利用SoPC进行片上系统设计是大势所趋,SoPC设计理念将会对我们的设计方式产生新的变革,NIOS也必将在通信、信号与信息处理等领域得到的广泛应用。
[1]. PCI datasheet https://www.dzsc.com/datasheet/PCI_1201469.html.
[2]. RISC datasheet https://www.dzsc.com/datasheet/RISC_1189725.html.
[3]. ROM datasheet https://www.dzsc.com/datasheet/ROM_1188413.html.
[4]. SST datasheet https://www.dzsc.com/datasheet/SST_1180824.html.
[5]. 70ns datasheet https://www.dzsc.com/datasheet/70ns_1809312.html.
[6]. PCI9054 datasheet https://www.dzsc.com/datasheet/PCI9054_1054563.html.
[7]. IDT72V3650 datasheet https://www.dzsc.com/datasheet/IDT72V3650_835307.html.
[8]. 12ns datasheet https://www.dzsc.com/datasheet/12ns_2105238.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。