SOPC实验手册new.doc_第1页
SOPC实验手册new.doc_第2页
SOPC实验手册new.doc_第3页
SOPC实验手册new.doc_第4页
SOPC实验手册new.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SOPC实验指导书SOPC实验指导书钮文良 韩玺 编著北京联合大学信息学院2007年 12月 6日目 录第1章SOPC实验系统介绍21.1 系统硬件平台设计31.2 系统软件实验开发71.3SOPC系统实验介绍8第2章 SOPC基本概念与基本原理102.1 SOPC技术102.2 基于FPGA嵌入IP软核的SOPC系统112.3 SOPC设计13第3章 SOPC设计开发案例143.1 Nios控制LED实验143.2 构建比较复杂的Nios II系统实验333.3 SOPC下C/OS II操作系统移植实验423.4 Nios II控制下的UART串行接口通信实验463.5 底板88点阵LED图形实验523.6 VGA&SVGA接口显示器彩条信号发生器实验623.7 按键控制数码管计数器实验713.8 信号发生器设计实验783.9 底板键盘控制SOPC实验板数码管实验883.10 4位按键控制下的LED、数码管SOPC计数实验943.11 基于SOPC的128*64 LCD显示实验1063.12 基于SOPC的20*2 LCD显示实验1183.13 基于SOPC的步进电机实验1273.14 SOPC/MCU/ARM联机设计实验之SOPC部分135第1章 SOPC实验系统介绍多功能数字实验系统采用模块化设计,分为SOPC、ARM、MCU、DSP四个部分,整个实验系统涵盖了绝大多数本科教学实验的内容,各个模块之间可以自由组合,通过使能信号分时使用底板资源,使得该实验系统具有很高的灵活性和通用性。本文主要介绍SOPC(片上可编程系统)模块部分。SOPC模块的核心芯片采用Altera公司Cyclone系列EP1C6Q240C8,此型号FPGA包含5980个逻辑单元,相当于10万门级,片内有80K RAM,2个增强型锁相环。本模块的外围电路资源丰富,并留有A、B、C三条总线接口可以连接并使用项目底板上的资源,同时也可以作为用户扩展之用。同时,以此硬件平台为基础,可以进行现有的大多数数字电路的设计、仿真与验证,包括IP软核的设计与验证,本模块也能进行基于Nios II处理器的SOPC系统的设计。对于本科阶段,甚至研究生阶段的学生,本模块都能很好的支持比较复杂的SOPC系统的学习、实践与自行设计。用户可以利用Altera公司提供的Quartus II软件,使用VHDL或Verilog HDL等硬件描述语言,原理图输入等多种方式,进行数字电路的设计,也可以结合Nios II IDE软件进行SOPC系统的软硬件协同设计。本模块配套给出了跑马灯程序实验,uC/OS 操作系统移植实验,串口通信实验,底板点阵LED动态绘图实验, SVGA&VGA接口显示器彩条信号发生器实验,按键控制数码管实验,信号发生器实验,底板键盘控制数码管显示实验等几个SOPC系统设计的实例,可以作为学生入门SOPC系统设计的指导,学生也可以在此基础上设计更加复杂、更加综合的SOPC系统。本模块所设计的SOPC系统是基于Nios II 32位嵌入式处理器软核。Nios II是一个用户可配置的通用RISC嵌入式处理器软核,使用32位的指令集结构(ISA),完全与二进制代码兼容,它是建立在第一代16位Nios处理器的基础上的,定位于广泛的嵌入式应用。Nios II处理器系列包括了三种内核快速的(Nios II/f)、经济的(Nios II/e)和标准的(Nios II/s),每种都是针对不同的性能范围和成本而设计。在主芯片上所使用的Nios II软核中,经济型占用约600个LE,标准型占用约1200-1400个LE。用户可以从三种处理器以及超过60个的IP核中根据系统要求选择合适的组件,Nios II 系统为用户提供了最基本的多功能性,可以以此来创建一个最适合需求的嵌入式系统。使用Nios II 处理器是现代IT业的流行,它所具备的优点和特性可以使用户根据需要来调整嵌入式系统的特性及成本,使得产品快速推向市场,扩展产品的生命周期,并且避免处理器的更新换代。1.1 系统硬件平台设计本模块的外围电路有电源管理电路、4位按键、4位LED显示、串行通信接口电路、USB接口电路、VGA接口电路、时钟电路、复位电路、SDRAM、网口等,此外还预留了部分IO接至A、B、C三条总线接口上,可以使用底板资源,也可以作为进一步的系统扩展之用。本模块的基本布局图如图1-1所示。具体说明如下:主芯片:采用Altera公司Cyclone系列的FPGA:EP1C6Q240C8芯片,该芯片逻辑资源包含5980个逻辑单元(LE),2个增强型PLL,80Kbit 片内RAM。内部的锁相环电路具有时钟合成功能,内部实际运行的时钟可以不同于输入的时钟频率,EP1C6还可以通过内建的专用接口与单数据速率和双数据速率SDRAM连接,支持多种串行总线和网络接口。 下载调试电路:本模块支持两种下载模式JTAG和AS,其中AS模式要求使用配置芯片,本实验开发平台选用Altera公司的EPCS1配置芯片。串行配置器件EPCS1提供1Mb的存储容量。该配置器件在保证低成本的同时还具备在系统编程(ISP)能力和多次编程能力,且具有包括ISP和FLASH存储器访问接口等特性,8引脚小外形封装,价格低、面积小。图1-1 SOPC模块布局图在硬件开发平台中,FPGA(EP1C6)应用它的内部SRAM单元来存储配置数据,PC通过下载线将配置数据传输给FPGA。对于FPGA而言,有三种配置方式,AS(Active serial)模式、PS(Passive serial)模式和基于JTAG的配置模式。本开发平台提供AS和JTAG两种下载配置模式。下载流程图如图1-2所示。AS模式是通过配置芯片EPCS1来向FPGA加载数据的,EPCS1提供一个串行接口来接收配置数据。对FPGA进行配置时,FPGA通过串行口读取配置数据,对内部SRAM进行编程。在AS模式下,Quartus II软件生成的.pof文件可以通过USB-Blaster或Byte-Blaster II下载器下载到配置芯片中。用户也可以用JTAG电路来传输配置数据到FPGA上。在JTAG模式下,Quartus II软件生成的.sof文件可以通过USB-Blaster或Byte-Blaster II下载器下载到配置芯片中。Cyclone系列的器件,在所有的器件操作模式中,JTAG指令拥有最高的优先权。因此,JTAG模式不需要等待其他配置的完成(例如AS模式下),便可以执行配置指令。如果用户在非JTAG模式下试图使用JTAG来配置FPGA,非JTAG的将会被终止而开始JTAG配置。SRAM部分:SRAM是嵌入式系统常用的静态存储器,接入高速SRAM,其作用类似于PC机系统的内存,用于存放正在执行的程序和数据。本模块选择了ISSI公司的IS61C6416芯片,是一款64K words的高速SRAM,与TTL标准电平兼容,无需时钟或刷新,CMOS低功耗运行。SDRAM部分:FPGA芯片内部虽然有80Kbit的存储空间,但对复杂的程序是远远不够的,而且用SOPC Builder工具生成的Nios II系统也要占用一部分M4K块,故此,需要外加存储器。本模块选用了ISSI公司的IS42S16400B SDRAM芯片,存储空间8MB,工作时钟频率可达143MHz,这个时钟频率可由FPGA的内部锁相环对外部时钟进行倍频得到,能够满足系统的需求。图1-2 下载流程图FLASH部分:FLASH的加入类似于PC机系统接入了硬盘,用于存放程序和数据,并在掉电时仍然保持数据。本模块选用了AMD公司的Am29LV160D,是一款3V供电的16Mbit CMOS低功耗FLASH,0.23m工艺制作,支持全芯片擦写,兼容标准CFI接口,同时兼容JEDEC标准。 电源部分:本模块可通过A、B、C三条总线接口直接由项目底板供电,也可以外接电源单独工作。底板提供5V和3.3V电源,但本模块还需要1.5V电源,因此设计了5V到1.5V的电压转换电路,实现这一功能的芯片是AS1117-1.5电源转换芯片; 时钟电路部分:为了满足不同工作速度的需要,本模块设计了时钟电路。采用了PERICOM公司的PI6C106时钟芯片,该芯片使用14.318MHz无源晶振供给芯片的内部振荡器,能够输出14.318MHz、33.3MHz、48MHz、66.6MHz、100MHz等频率的时钟信号以供给目标系统的使用,时钟的使用可以根据需要通过跳线来选择。 复位电路部分:系统在调试和运行阶段,经常要求对系统进行复位,恢复到系统的初始状态。本模块低电平复位有效,所以使用了TI公司的7705ACD复位芯片,通过复位按键控制,并通过底板总线可以对底板进行复位。 底板总线部分:本模块可以单独工作,也可以通过自定义的A、B、C三个总线接口访问底板上更加丰富的资源。同时,本模块与底板连接时,可以通过总线使用底板供电,而不用再外接电源。此外,A、B、C总线接口也可以作为扩展接口,外接用户自定制功能的电路。 串行总线接口部分:Nios II系统通过串口与外部其他RS232设备(如PC机)相连,除了需要有UART外设外,还需要遵循RS232C标准中定义的电平规范,不能直接使用FPGA I/O端口的LVTTL(3.3V)电平,这是因为RS-232C规定了自己的电气标准,而此标准并不能满足TTL电平传递要求,因此当RS-232C电平与TTL电平接口时,必须进行电平转换。本模块采用MAX3243接口芯片。MAX3243芯片内含3个驱动器、5个接收器和双电荷泵电路,并带有管脚15kV ESD保护,工作电压为3V到5V,最大传输数据速率250kbit/s,最大输出斜率30V/s。本模块采用标准的DB9接口,与外部CPU进行通信。 USB接口部分:USB设备由于“即插即用”的优点和灵活性,而被广泛应用于各种电子产品。USB(通用串行总线)是一种电缆总线,用于在主机和各式各样的即插即用的外设之间进行数据传输。由主机预定的标准的协议使各种设备分享USB带宽,当其它设备和主机在运行时,总线允许添加、设置、使用以及拆除外设。本模块使用USB1T11A接口芯片,可以通过跳线选择工作模式和传输速度(低速1.5Mbit/s和全速12Mbit/s)。USB1T11A是一片通用USB收发器芯片,遵循USB1.1协议,使用标准逻辑与USB的物理层接口。 VGA接口部分:VGA接口是常见的显示器接口,用于静止图像和视频图像的显示,多采用标准15针VGA接口。控制VGA显示器显示较为精细的图像是具有挑战性的,因为标准VGA的画面大小是640*480,每秒60帧左右,像素时钟高达25.175MHz。通常情况下必须使用VGA控制器专用芯片才能解决VGA的显示问题,但却会带来设计复杂、成本高和体积大等问题。如果用SOPC技术就能很好地解决上述所有问题,而且可以把Nios II CPU和VGA控制器放在同一片FPGA中。 网口部分:由于Altera公司只给出了LAN91C111和CS8900两种网络控制器的IP核,为出于简化设计和节约成本的考虑,本模块选用CS8900A 10M网络控制器进行网络部分的设计。此芯片采用直连ISA总线接口,符合IEEE 802.3协议,5V供电,最大电流55mA,核心工作电压3V,发送和接收数据均可编程。CS8900内部还包括片内RAM,10BASE-T发送和接收滤波器。 I2C总线部分:I2C是由Philips公司发明的一种串行数据通信协议,仅使用两根信号线:Serial Clock(简称SCL)和Serial Data(简称SDA)。I2C是总线结构,一个主端(Master),一个或多个从端(Slave),从设备中以7位地址区分,地址后面再跟一位读写位,表示读(1)或写(0)。本模块的I2C信号接到B总线接口,可以与底板进行I2C协议的通信,也可以作为其它扩展I2C设备的接口。本模块使用了Atmel公司的AT24C16芯片,该芯片是一片16K比特的EEPROM,本模块的I2C总线工作模式为快速的EEPROM模式(400Kbps)。 4位LED、八段数码管及4位按键:本模块的LED、八段数码管及按键作为基本的输出和输入设备直接连接在FPGA的IO口,作为SOPC系统的IO终端,也可以作为验证一般数字电路设计的设备。1.2 系统软件实验开发本实验系统的软件开发环境为Altera公司的Quartus II软件和Nios II IDE(集成开发环境),此外也需要Modelsim软件。Quartus II设计软件提供了完整的多平台设计环境,能够直接满足特定设计需要,为SOPC设计提供了最全面的设计环境,是SOPC设计的基础。用户可以通过使用Quartus II软件方便的进行系统级设计和可编程逻辑器件的设计。在FPGA设计阶段Quartus II包括了所需要的设计输入、逻辑综合、布局布线、时序分析、仿真和编程下载的全部解决方案。完成Quartus II下SOPC的硬件设计后,可以在Nios II IDE下进行软件系统的设计,也可以在设计硬件之初就开始软件的设计,完成软硬件设计后,再协同仿真、调试、运行。基于Nios II的SOPC开发流程如图1-3所示:图1-3 基于Nios II的SOPC开发流程图此外,Quartus II软件为设计流程的每个阶段提供Quartus II图形用户界面、EDA工具界面以及命令行界面。可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同界面。Nios II IDE是Nios II系列嵌入式处理器的基本软件开发工具。所有的开发任务都可以在Nios II IDE下完成,包括编辑、编译和调试程序。Nios II IDE提供了一个统一的开发平台,用于所有的Nios II处理器系统。在此开发实验系统中通过一台PC机,SOPC主板以及一根JTAG下载电缆就能够往Nios II处理系统写入程序以及和Nios II处理器系统进行通讯。本实验系统当开发比较大的项目实验时,需要第三方的仿真软件Modelsim来解决仿真问题,实现协同仿真。1.3 SOPC系统实验介绍为使得学生能够由浅入深的学习SOPC系统的设计,本系统设计了十四个SOPC实验,从简单到复杂安排,以期让学生通过实验学习逐步得到创新开发设计的能力。实验一NiosII控制四位LED实验,从软硬件两方面使学生迅速熟悉开发环境Quartus II,为后续实验做好准备。学习使用SOPC Builder工具搭建Nios II系统,将生成的Nios II系统在Quartus II中使用。掌握运用Nios II IDE开发环境,学生通过此实验可以学习如何进行SOPC软硬件两部分的设计。通过一个简单的跑马灯例子来迅速了解SOPC的基本开发流程。实验二构建比较复杂的Nios II系统,通过在系统中添加SDRAM及PLL宏功能模块来强化IP核构建系统的设计思想,了解SDRAM及PLL在系统中的作用,增强学生对SOPC系统的理解,进一步掌握SOPC软硬件协同设计的方法。实验三是SOPC所使用的操作系统的调试与应用实验(uC/OS II操作系统移植实验)。熟悉和了解SOPC下的uC/OS-II嵌入式实时操作系统的原理,在Nios II IDE中移植uC/OS-II嵌入式实时操作系统的流程和方法。本实验主要使用了uC/OS II操作系统多任务调度这一特性,除能在Console栏里看到的5个任务外,还有初始化和打印状态信息两个任务。实验四是NiosII控制下的UART串行接口通信实验,学习基于NiosII的串口IP核使用及编程。了解异步串行通信的原理,熟悉Nios II中UART模块的使用,并最后学习在超级终端里查看实验运行结果。实验五88点阵LED动态图形绘制实验。了解LED点阵显示的基本原理,学习应用本模块控制底板的方法。本实验给出的是底板上实现第一块点阵LED上循环的绘制心形图案及第二块点阵LED上绘制笑脸图案的程序。本实验还要求学生在此基础上进行扩展开发实验。实验六VGA&SVGA接口彩条信号发生器实验。要求学生掌握应用Verilog HDL语言进行数字电路设计的FPGA应用,熟悉VGA和SVGA显示时序的工作原理;通过VGA显示时序,熟悉较复杂时序逻辑的硬件设计。实验七按键控制数码管计数器实验。了解数码管显示原理,熟练掌握利用quartus II软件进行FPGA设计的流程。要求学生运用现有的宏功能模块进行设计,并熟练掌握自行设计功能模块的方法。实验八信号发生器设计实验。以正弦波信号发生器为例,要求学生熟悉利用quartus II软件开发数字电路的基本流程,掌握quartusII软件的相关操作,达到能够运用VHDL语言进行的基本FPGA设计实验,并掌握实验原理图的设计方法,了解如何定制IP模块。实验九是底板键盘控制SOPC实验板数码管显示实验。要求学生掌握键盘的工作原理,熟悉数码管显示的基本原理和实现方法。学习基于Nios II的SOPC系统,如何通过寄存器访问外围设备的方法,并通过实验加深对SOPC的了解和认识。 实验十是四位按键控制下的LED、数码管SOPC计数实验。该实验主要要求学生掌握按键的读取方法,在SOPC系统中,如何设置按键中断,并在软件编程中如何读取和控制,该实验功能通过按下不同的键实现不同的工作方式,在等待状态,将判断有无按键按下,是哪一个键按下,将结果显示在Console栏里,在计数状态,通过按不同的键,可以只令LED计数、只令数码管计数、令LED和数码管同时计数、令LED和数码管均熄灭停止计数。实验十一是基于SOPC技术的128*64LCD显示实验。该实验要求学生在SOPC系统下,掌握128*64LCD的显示方法,可以显示文字、图形等。实验十二是基于SOPC技术的20*2LCD显示实验。该实验要求学生在SOPC系统下,掌握20*2LCD的显示方法,可以显示字符等。实验十三是基于SOPC的步进电机实验。该实验要求学生掌握Nios II处理器控制步进电机细分的方法,掌握通过底板总线方式控制步进电机的方法。实验十四是SOPC/ARM/MCU联机设计实验之SOPC部分。此部分是通过A、B、C总线将多功能数字实验系统的四个模块中的SOPC/ARM/MCU模块连接并通过串口进行通信,在此实验中,学生要熟悉SOPC、MCU及ARM的基础知识,了解数字信号处理的工作原理,运用C语言程序对信号进行处理编程,熟悉异步串行通信的原理,进一步熟悉NiosII中的UART模块的使用,及串口通信的具体应用。以上实验均给出了验证无误的源代码,以供参考,并配套有详细的实验手册,初学者可以通过实验手册尽快掌握SOPC系统设计的基本方法,高级用户也可以将实验手册作为参考,基于本实验板进行SOPC系统的开发。第2章 SOPC基本概念与基本原理本章对SOPC技术应用所需要的基本概念进行讨论,提供了完成实验的基本理论基础。SOPC(System On Programmable Chip)即可编程的片上系统,或者说是基于大规模FPGA的单片系统。SOPC的设计技术是现代计算机辅助设计技术、EDA技术和大规模集成电路技术高度发展的产物。SOPC技术的目标就是试图将尽可能大而完整的电子系统,包括嵌入式处理器系统、接口系统、硬件协处理器或加速器系统、DSP系统、数字通信系统、存储电路以及普通数字系统等,在单一的FPGA中实现,使得所设计的电路系统在其规模、可靠性、体积、功耗、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面实现最优化。SOPC技术是一门全新的综合性电子设计技术,涉及面广,本实验指导书只是将其最基础、最接近实际应用中的一小部分呈现给读者。2.1 SOPC技术微电子技术近期发展的成果,为SOC的实现提供了多种途径。对于经过了验证而又具有批量需求的系统芯片,可以做成专用集成电路ASIC而大量生产。而对于一些仅为小批量应用或处于开发阶段SOC,若马上投入流片生产,需要较多的资金,承担较大的试制风险。那么,最近发展起来的SOPC技术则提供了另一种有效的解决方案,即用大规模可编程器件的FPGA来实现SOC的功能。可编程逻辑器件产生于20世纪70年代。其出现的最初目的是为了用较少的PLD品种替代种类繁多的各式中小规模逻辑电路。在30多年的发展过程中,PLD的结构、工艺、功耗、逻辑规模和工作速度等都得到了重大的进步。尤其是在20世纪90年代,出现了大规模集成度的FPGA,单片的集成度由原来的数千门,发展到数十万甚至数百万。芯片的I/O口也由数十个发展至上千个端口。有的制造商还推出了含有硬核嵌入式系统的IP。因此,完全可能将一个电子系统集成到一片FPGA中,即SOPC,为SOC的实现提供了一种简单易行又成本低廉的开发手段,极大促进了SOC的发展。SOPC是Altera公司提出的一种灵活、高效的片上系统设计方案。其实质是利用FPGA或CPLD器件的可编程性来进行SOC设计。SOPC其实也是一种特殊的嵌入式系统:首先它是片上系统,即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,具备软硬件在系统可编程的能力。SOPC技术是基于FPGA解决方案的SOC,与ASIC的SOC解决方案相比,SOPC系统及其开发技术具有更多的特色:至少包含一个嵌入式处理器内核。具有小容量片内高速RAM资源。丰富的IP核资源可供选择。足够的片上可编程逻辑资源。处理器调试接口和FPGA编程接口。可能包含部分可编程模拟电路。单芯片、低功耗、微封装。SOPC设计技术涵盖了嵌入式系统设计技术的全部内容,除了以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以PCB和信号完整性分析为基础的高速电路设计技术以外,SOPC还涉及目前引起普遍关注的软硬件协同设计技术。以往的SOC设计依赖于固定的ASIC。其设计方法通常采用全定制或半定制电路设计方法,设计完成后如果不能满足要求,需要重新设计再进行验证,其结果是导致设计开发周期变长,产品上市时间难以保证,开发费用大大增加。而当需要对原始设计进行修改时,固定的ASIC意味着昂贵的重复设计。与ASIC比较起来,可编程逻辑器件设计起来十分灵活、便捷,可以缩短上市时间,再加上可编程逻辑器件是按标准器件生产出来的,规模效应使得成本十分低廉,故在半导体领域中可编程逻辑器件呈现出增长态势,越来越多地成为系统级芯片设计的首选。SOPC取代ASIC成为SOC设计的新趋势,除了上面讲的方便、低成本之外,还得益于以下几点重要原因:1近年来可编程逻辑器件密度的提高,芯片规模的扩大和性能的提升为SOPC提供了物质基础。先进的EDA开发工具,如AItera公司的QuartusII以及SOPC Builder等,极大地提高了开发人员的工作效率。2知识产权得到重视,越来越多的设计人员以“设计重用”的方式对现有的IP核加以充分利用,从而提高他们的设计效率并缩短上市时间。3由于连接延迟时间的缩短,SOPC可以提供强大的性能,而且由于封装体积的减小,产品尺寸也减小了。2.2 基于FPGA嵌入IP软核的SOPC系统随着半导体工艺的迅速发展,单个芯片上的逻辑门数显著增加,同时EDA技术的推广和VLSI设计的普及化,采用SOC技术可以把整个系统集成到一个芯片上。然而,在上市时间的压力下,必须要求缩短SOC产品的设计与生产时间。构成SOPC的方案也有多种途径,包括基于FPGA嵌入式IP硬核的SOPC系统、基于FPGA嵌入IP软核的SOPC系统和基于Hard Copy技术的SOPC系统等。本教学实验系统采用的是基于FPGA嵌入IP软核的SOPC系统的解决方案。之所以选择IP软核是由于将IP硬核直接插入FPGA的解决方案存在以下几种不够完美之处:一、由于此类硬核多来自第三方公司,FPGA厂商通常无法直接控制其知识产权费用,从而导致FPGA器件价格相对偏高。二、由于硬核是预先植入的,设计者无法根据实际需要改变处理器的结构,如总线规模、接口方式,乃至指令形式,更不可能将FPGA逻辑资源构成的硬件模块以指令的形式形成内置嵌入式系统的硬件加速模块(如DSP模块),以适应更多的电路功能要求。三、无法根据实际设计需求在同一FPGA中使用多个处理器核。四、无法裁减处理器硬件资源以降低FPGA成本。五、只能在特定的FPGA中使用硬核嵌入式系统,如只能使用Excalibur系列FPGA中的ARM核,Virtex-II Pro系列中的PowerPC核。如果利用软核嵌入式系统处理器就能有效地克服上述不利因素。目前最具有代表性的软核嵌入式系统处理器分别是Altera的Nios和Nios II核,及Xilinx的MicroBlaze核。特别是前者,使上述五方面的问题都得到了很好的解决。Altera公司的Nios核是用户可随意配置和构建的32位/16位总线(用户可选)指令集和数据通道的嵌入式系统微处理器IP核,采用Avalon总线结构通信接口,带有增强的内存、调试和软件功能(具有C或汇编程序优化开发功能);含有First Silicon Solutions(FS2)开发的基于JTAG的片内设备(OCI)内核(这为开发者提供了强大的软硬件调试实时代码,OCI调试功能可根据FPGA的JTAG端口上接收的命令,直接监视和控制片内处理器的工作情况)。此外,基于Quartus II平台的用户可编辑的Nios核含有许多可配置的接口模块核,包括:可配置高速缓存模块(包括由片内ESB、外部SRAM或SDRAM、100MB以上单周期访问速度),可配置RS232通信接口、SDRAM控制器、标准以太网协议接口、DMA、定时器、协处理器等。在植入(配置前)FPGA前,用户可根据设计要求,利用Quartus II和SOPC Builder,对Nios及其外围系统进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面满足用户系统设计的要求。Nios核在同一FPGA中被植入的数量没有限制,只要FPGA的资源允许。此外,Nios可植入的Altera FPGA的系列几乎没有限制,在这方面,Nios显然优于Xilinx的 MicroBlaze。另外,在开发工具的完备性方面、对常用的嵌入式操作系统支持方面,Nios都优于MicroBlaze。就成本而言,由于Nios是由Altera直接推出而非第三方产品,故用户通常无需支付知识产权费用,Nios的使用费仅仅是其占用的FPGA逻辑资源费。因此,选用的FPGA越便宜,则Nios的使用费越便宜。为了形成对ASIC市场的直接竞争,Altera推出了Hard Copy技术和Hard Copy II技术。Hard Copy就是利用原有的FPGA开发工具,将成功实现FPGA器件上SOPC系统通过特定的技术直接向ASIC转化的功能,从而克服传统了ASIC设计中普遍存在的问题。如果利用Hard Copy技术设计ASIC,开发软件费用低廉,SOC级规模的设计周期不超过20周,转化的ASIC与用户设计习惯的掩模层只有两层,且一次性投片的成功率近乎100%,即所谓的FPGA向ASIC的无缝转化。而且用ASIC实现后的系统性能将比原来在Hard Copy FPGA上的验证模型提高近50%,而功耗则降低40%。一次性成功率的大幅度提高即意味着设计成本的大幅降低和产品上市速度的大幅度提高。本教学实验系统采用的是Nios II嵌入式处理器IP软核,Nios II是一个用户可配置的通用RISC嵌入式处理器,下面引用了Altera公司关于Nios II的官方介绍:Altera推出Nios II系列的嵌入式处理器扩展了目前世界上最流行的软核嵌入式处理器的性能,把Nios II嵌入到Altera的所有FPGA中,例如Stratix II、Stratix、Cyclone II, Cyclone、APEX, ACEX和Hard Copy系列器件中,用户可以获得超过200 DMIPS的性能,用户可以从三种处理器以及超过60个的IP核中选择所需要的组件,Nios II系统为用户提供了最基本的多功能性,设计师可以以此来创建一个最适合他们需求的嵌入式系统。Nios II处理器的优点和特性 :使用Nios II处理器的用户可以根据他们的需要来调整嵌入式系统的特性、性能以及成本,快速将产品推向市场,延长产品的生命周期,并且避免处理器的更新换代。 一、提高系统性能 1. 一系列的处理器核可供选择,其中包括了超过200 DMIPS性能的核; 2. 实现任何数量的处理器或将不同的处理器核组合在一起;3. 增加了已有的处理器,在FPGA中添加一个或更多的Nios II软核处理器。 二、更低的系统成本 1. 通过将处理器、外设、存储器和I/O接口集成到一个单一的FPGA中,从而降低了系统成本、复杂性和功耗; 2. 通过将Nios II处理器嵌入到低成本的FPGA中只需花费35美分或者更低。三、应对产品的生命周期 1. 提供易用的设计工具从而快速将产品推向市场;2. 提供永久的,免费的许可从而使基于Nios II处理器的产品避免了处理器的更新换代所带来的损失。 四、功能强大、易用的开发工具 1. 通过使用Nios II集成开发环境(IDE),从而加速了软件的开发 2. 利用Altera的强大的SOPC Builder系统开发工具和Quartus II设计软件可以在短时间内设计一个系统 五、使用完全功能的开发包 1. 使用易用的Nios II 开发包开始一个设计 2. 可以选择具有低成本特性的Cyclone FPGA开发套件,或高性能的Stratix FPGA开发套件简单说来,Nios是一个处理器的IP核,系统设计者可以将它放入FPGA中,它只占芯片内部很少的一部分逻辑单元,成本很低。Nios软核处理器是一个基于流水线的精简指令集通用微处理器。方便设计者设计研发。2.3 SOPC设计SOPC是Altera公司提出的一种灵活、高效的片上系统设计方案。它的实质是SOC设计技术,它利用FPGA或CPLD器件的可编程性来进行SOC设计。SOPC Builder是把所有和处理器子系统相关的底层详细资料集中到此。它考虑了两个方面:第一,具有直观的图形用户接口GUI(Graphic User Interface),便于设计者准确地添加和配置系统所需的外设包括存储器、定制外设和IP模块。第二,自动完成系统集成工作,不必拘泥于定义存储器映射,中断控制和总线控制这样的“制造商工作”。通过GUI,用户可以从Altera提供的IP库中选取一些组件,如处理器、SDRAM,Flash.、各种I/O口等,并可通过选择配置相应的参数。如果用户有特殊功能要求,但IP库中没有,则用户可以加入自定义的逻辑来实现。在选择并配置好系统所需的各种IP后,点击GUI中的“Generate”按钮就可以自动生成系统了。当用户点击“Generate”按钮时,SOPC Builder会生成每个硬件部件以及连接的片内总线结构、仲裁和中断逻辑。SOPC Builder也会产生系统可仿真的RTL描述,以及为特定硬件配置设计的测试平台,能够(可选)把硬件系统综合到单个网表中。拥有了这些合适的部件,硬件设计人员对自动硬件生成过程基本满意,但是还需要满足软件设计者的要求。利用设计过程中采集的信息,SOPC Builder能够生成C和汇编头文件,这些头文件定义了存储器映射、中断优先级和每个外设寄存器空间的数据结构。这样的自动生成过程帮助软件设计者处理硬件潜在的变化性。如果硬件改变了,SOPC Builder会自动更新这些头文件。SOPC Builder也会为系统中现有的每个外设生成定制的C和汇编函数库。例如,如果系统包括一个UART,然后SOPC Builder就会为访问UART的寄存器定义一个C结构,生成通过UART发送和接受数据的C和汇编例程。在SOPC Builder的GUI中,通过Component Wizards来选择系统所需的组件,然后生成组件,再由组件组成系统。其中,组件的信息来自Class PTF文件,Class PTF包含SOPC Builder配置和生成部件所需的详细信息。在整个设计过程中,每一步都会于System PTF文件进行交互来交换组件及系统的信息,该文件是系统的配方,它定义了SOPC Builder生成完整系统必需的详细信息。在组件生成及系统生成过程中,会产生输出文件及相关的库,其中包括HDL文件、软件文件、模拟文件及用户自定义文件。在进行SOPC设计时,用户需要先通过SOPC Builder选择IP组件,然后用SOPC Builder产生所选择的系统组件的VHDL或者Verilog源文件。之后,用Quartus II编译整个系统。编译成功后,把编译文件下载到开发板上进行验证。第3章 SOPC设计开发实例3.1 Nios II控制LED实验Nios II开发分硬件开发和软件开发两个流程,硬件开发过程主要由用户定制系统硬件,然后由SOPC Builder等工具完成系统硬件和对应的开发软件生成。Nios II IDE是进行SOPC软件设计的工具。Nios II IDE也是一个图形化的软件集成开发环境,如果喜欢命令行模式下的操作,也可以使用Nios II SDK Shell,本实验为熟悉SOPC设计的开发环境Quartus II及软件开发环境Nios II IDE而设计的,学生通过此实验熟悉SOPC的基础设计。实验目的:1. 熟悉SOPC开发环境Quartus II,为后续实验做好准备;2. 学习使用SOPC Builder工具搭建Nios系统。3. 通过具体实验熟悉Nios II IDE软件开发流程,熟悉软件调试方法。实验内容:应用Quartus II 软件建立工程,应用SOPC Builder 生成最小Nios系统,并在Quartus II中使用。创建跑马灯程序,在Nios II IDE下编译,调试,运行。 实验设备:SOPC核心板、USB-Blaster下载线、电源、PC。实验步骤:1:建立项目。双击桌面的Quartus II 6.0软件图标或者单击开始-程序-Altera-Quartus II 6.0-Quartus II 6.0,启动Quartus II 6.0软件,建立一个工程目录。选择File - New Project Wizard,如图3-1-1所示:图3-1-1 新建工程向导1单击下一步,在Directory, Name, Top-Level Entity中指定工程路径、工程名和顶层设计实体名,可类比如下填写,工程路径也可存放在其他盘,如图3-1-2所示:图3-1-2 新建工程向导2单击下一步,在Add Files中可以添加已有的文件到项目中,也可以后添加,如图3-1-3填写:图3-1-3 新建工程向导3单击下一步,在Family & Device Settings中选择器件类型,如图3-1-4填写:图3-1-4 新建工程向导4单击下一步,在EDA Tools Setting中也可类比如图3-1-5填写:图3-1-5 新建工程向导5单击下一步,选择Finish。图3-1-6 新建工程向导62:生成一个可调试的Nios II最小系统选择 Tools - Sopc Builder,启动Altera SOPC Builder;启动Altera SOPC Builder后,SOPC Builder会立刻弹出以下对话框在System Name框中填入System Name,比如nios_small;对于HDL Language ,可选择verilog,根据需要设定,如图3-1-7:图3-1-7 SOPC Builder生成系统对于Board Target 的设置,选择Unspecified Board;在Target Device Family选择Cyclone;在Clock时钟设置中,填入所需要的时钟,比如填入50,如下图3-1-8:图3-1-8 生成系统的基本设置(1)添加Nios II到项目中:双击左栏(System Contents栏)中Avalon Components下的Nios II Processor -Altera Corporation,会弹出Altera Nios II对话框,在Nios II core配置选项中,点击Nios II/e区域,选择Nios II/e嵌入式处理器,如图3-1-9。以下设置采用系统默认,连续三次单击Next,进入下一步:图3-1-9 处理器类型选择页面在JTAG Debug Module配置选项中,选择Level 1,如图3-1-10。然后单击Next,进入下一步。图3-1-10 JTAG级别选择页面在Custom Instructions配置选项中,由于无需增加任何定制指令,所以为空,如图3-1-11:图3-1-11 定值指令界面最后选择Finish,项目中会增加一个Nios II 处理器,名字为 cpu_0,为了简便起见,将它重命名为cpu,重命名方法为选择cpu_0,单击鼠标右键选择Rename,输入cpu,回车完成重命名,(本项目中只需要一个cpu,需要多个CPU时,可以以序号的方式对不同CPU命名)。用户也可以为该处理器修改成其他名字。如图3-1-12: 图3-1-12 添加完成CPU界面(2)添加片上寄存器:在左边选项框中找到 Avalon Components - Memory - On-Chip Memory(RAM or ROM),双击,为系统添加片内RAM,Memory Type选择RAM;Memory Width选择32bits,Total Memory Size 可以选择2K bytes,如图3-1-13。图3-1-13 添加片内存储器界面然后单击Finish按钮,系统中会添加名字为onchip_memory_0的ram,将它改名为onchip_memory。用户也可以为其取其他名字。(3)在Avalon Components - Other- Parallel I/O目录下,双击PIO,为系统添加输出接口。Width 选择4 bits,点击 Finish完成设置,如图3-1-14:图3-1-14 添加PIO界面系统中会添加名称为pio_0的PIO,将它改名为pio。用户也可以为其取其他名字添加Communication下的JTAG_UART软核,以作调试下载之用,JTAG IP核的设置按默认设置即可;(4)选择System -Auto-Assign Base Addresses,让系统自动分配基地址。选择Sysetm-Auto-Assign IRQs,让系统自动分配中断。此时,系统设计如图3-1-15所示:图3-1-15 最小系统SOPC Builder界面点击Nios II More cpu settings选项卡,进行处理器设定。在该例中,无需做任何更改;Reset Address、Excepting Address、Break Location采用默认值,如图3-1-16所示:图3-1-16 Nios II “cpu” 设置点击System Generation选项,进行最后的设定并生成系统。选中HDL Generate system module logic in Verilog,如果需要仿真,也请选中Simulation Create simulator project files,然后点击Generate,进行系统生成的任务。如图3-1-17:图3-1-17 生成系统页面等待系统生成(等待时间视系统性能而定)。一般没有问题的话,可以看到系统提示:SUCCESS: SYSTEM GENERATION COMPLETED。如果看到此信息,系统正确生成。如果失败,请返回并检查、修改。如图3-1-18:图3-1-18 系统成功生成界面3:在Quartus II中使用上述Nios II系统在SOPC Builder正确运行完毕后,可以在Quartus II中,打开SOPC Builder生成的nios_small.bsf文件,打开方法为在Quartus II界面下选择File-Open,在弹出的对话框中找到本工程所在的路径,比如H:ProjectSoftwaredemo1,文件类型选择Other Source Files,找到nios_small.bsf文件,选中后,单击打开。检查一下引脚,看看设计是否有误,如图3-1-19,niosII_small有两个输入(input)分别是:clk,reset_n,一个输出(output)为:out_port_from_the_pio3.0。检查完成无误后,就可以关闭这个文件了。图3-1-19 生成系统的符号可以使用上述的nios2_small来构造系统。如图3-1-20,创建nios_small.bdf,来使用该nios2_small。在Quartus II中新建原理图文件,选择File New,选中Block Diagram/Schematic File,点击OK,如图3-1-20所示:图3-1-20 新建原理图选择File -Save As,保存为nios2_small.bdf,在空白区域单击鼠标右键,选择Insert -Symbol,在libraries中的Project里选中刚才生成的Nios II系统,nios_small,单击OK,将电路符号插入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论