《895191542基于FPGA的嵌入式系统设计论文.doc》由会员分享,可在线阅读,更多相关《895191542基于FPGA的嵌入式系统设计论文.doc(48页珍藏版)》请在三一办公上搜索。
1、基于FPGA的嵌入式系统设计 摘 要本文设计完成的是基于FPGA的嵌入式系统开发板,它可以完成FPGA、嵌入式系统和SOPC等的设计和开发。开发板以Altera公司的Cyclone系列FPGAEP1C6为核心,在其外围扩展FLASH、SRAM、A/D、D/A、键盘、LED显示、LCD显示、串口通信、VGA接口、PS2接口和USB接口等器件,使其成为一个完整的嵌入式开发系统,系统采用模块化设计,各个模块之间可以自由组合,使得该开发板的灵活性和可扩展性大大提高。同时开发板所提供的丰富的接口模块,供人机交互和器件间通信使用,方便了开发者的设计和系统的嵌入,可以满足普通高等院校、科研人员等的需求。开发
2、者可以使用VHDL语言、Verilog HDL语言、原理图输入等多种方式进行逻辑电路和功能模块设计,也可以利用Altera公司提供的IP资源和Nios 16/32位处理器开发嵌入式系统,借助QuartusII和Nios SDK Shell软件进行编译、下载,并通过本嵌入式系统开发板进行调式和结果验证。关键词:嵌入式系统,Nios嵌入式处理器,SOPC,FPGA ABSTRACTThe thesis completes a design of an embedded system development board based on FPGA.The development board can
3、complete the design of FPGA,embeded system,SOPC and so on.The development board is based on Altera Cyclone deviceEP1C6,the board extends several peripheral devices such as,FLASH,SRAM,A/D,D/A,LED,LCD,keyboard,serial port,VGA interface,PS2 interface,USB interface and so on.All the devices constitute a
4、n integrated embeded development system. The development board offers us plenty of interfaces to meet the need of the device communication and the intercommunion between human and computer,which makes the design and the embedding of the system more easier.The Nios Development Board can meet the need
5、 of scientific researchers and other college researchers.The developers can use VHDL,Verilog HDL,schematic input mode and so on to design logic circuit and function block,they can alse use the IP core and Nios microprocessor which are offered by Altera to develop embedded systems. The developers can
6、 utilize Quartus and Nios SDK Shell to compile and download,then they can use this development board to debug and validate the result. KEY WORDS: embeded system, Nios embeded CPU,SOPC,FPGA目 录摘 要IIABSTRACTIII目 录IV前 言8第1章 绪 论91.1嵌入式系统概述91.1.1嵌入式系统的特点91.1.2 片上系统和可编程片上系统101.2 Nios嵌入式处理器101.2.1 Nios嵌入式处理
7、器特性101.2.2 Nios嵌入式处理器系统组件121.2.3 Avalon交换结构总线12第2章 Nios嵌入式系统开发板整体分析152.1 系统设计目标152.2 系统设计原理152.3 开发板组件与理论分析162.4 开发板电路设计原理图与PCB布线图18第3章 Nios嵌入式系统开发板硬件开发203.1 硬件开发环境概述203.2 FPGA:EP1C6QC240C8的特性和电路设计203.2.1 特性和封装203.2.2 引脚说明203.2.3 工作条件213.3 串行配置器件:EPCS1的特性和电路设计213.3.1 Cyclone FPGA的配置213.3.2串行配置器件: EP
8、CS1/EPCS4223.3.3 EPCS1的电路设计233.4 SRAM:IDT71V016的特性和电路设计233.4.1 器件特性243.4.2 IDT71V016工作方式243.4.3 IDT71V016的电路设计253.5 FLASH:AM29LV800B的特性和电路设计263.5.1 器件特性263.5.2 器件工作方式描述273.5.3 AM29LV800总线操作283.5.4 AM29LV800的电路设计28第4章 Nios嵌入式系统开发板调试304.1 片内RAM、ROM调试304.2 GERMS监控调试354.3 扩展SRAM调试394.4 扩展FLASH调试41第5章 利用
9、Nios嵌入式系统开发板完成DDS的设计445.1 理论分析445.2 利用开发板实现的优点455.3系统设计与实现465.3.1 参数选取465.3.2 系统设计465.3.3 系统实现46第6章 总 结486.1 主要工作总结486.2 结论486.3 改进意见48 前 言FPGA的特点及其发展趋势:嵌入式系统,是一个面向应用、技术密集、资金密集、不可垄断的产业,随着各个领域应用需求的多样化,嵌入式设计技术和芯片技术也经历着一次又一次的革新。虽然ASIC的成本很低,但设计周期长、投入费用高、风险较大,而可编程逻辑器件(Programmable Logical Device,PLD)设计灵活
10、、功能强大,尤其是高密度现场可编程逻辑器件(Field Programmable Gate Array,FPGA)其设计性能已完全能够与ASIC媲美,而且由于FPGA的逐步普及,其性能价格比已足以与ASIC抗衡。因此,FPGA在嵌入式系统设计领域已占据着越来越重要的地位。可编程片上系统(SOPC)是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。SOPC结合了SOC和FPGA各自的优点,一般具备以下基本特征: l 至少包含一个嵌入式处理器内核 l 具有小容
11、量片内高速SRAM资源 l 丰富的IP Core资源可供选择 l 足够的片上可编程逻辑资源 l 处理器调试接口和FPGA编程接口 l 可能包含部分可编程模拟电路 l 单芯片、低功耗、微封装本文设计完成的是基于FPGA的嵌入式系统开发板,它可以完成FPGA、嵌入式系统、SOPC的设计和开发。 第1章 绪 论1.1嵌入式系统概述嵌入式系统是嵌入到对象体系中的专用计算机系统,包括硬件和软件两大部分。硬件包括处理器、存储器、输入输出接口和外部设备等,软件包括系统软件和应用软件,嵌入式系统的系统软件和应用软件紧密结合。嵌入式处理器是嵌入式系统的核心,有硬核和软核之分。常用的嵌入式处理器硬核有ARM、MI
12、PS、PowerPC、Intel x86和Motorola 68000等;Altera公司开发的Nios是16/32位嵌入式处理器软核。和硬核相比,软核的使用灵活方便。Nios嵌入式处理器是可配置的通用RISC处理器,可以很容易地与用户逻辑相结合,集成到Altera FPGA器件中。Nios具有16位指令系统,用户可选择16位或32位数据宽度和可灵活配置的标准外围设备及软件库。Nios系统将处理器、存储器、输入输出接口和其他IP核灵活地集成到SOPC设计中。1.1.1嵌入式系统的特点嵌入式系统是以应用为中心,以计算机技术为基础,硬件和软件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严
13、格要求的专用计算机系统。可以从以下几个方面来理解嵌入式系统的含义:l 嵌入式系统面向用户、面向产品和面向应用,必须与具体应用相结合才会具有生命力,才更具有优势。嵌入式系统与应用紧密结合,具有很强的专用性。l 嵌入式系统将先进的半导体技术、计算机技术和电子技术以及各个行业的具体应用相结合,是一个技术密集、资金密集和不断创新的知识集成系统。l 嵌入式系统必须根据应用需求对硬件和软件进行裁剪,以满足应用系统的功能、可靠性、成本、体积和功耗等要求。比较好的发展模式是:首先建立相对通用的硬件和软件基础,然后开发出适应各种需要的嵌入式系统。同时还应该看到,嵌入式系统是一个外延极广的概念。凡是与产品结合在一
14、起的具有嵌入式特点的系统都可以称为嵌入式系统。一般而言,嵌入式系统和通用计算机系统类似,由处理器、存储器、输入输出接口和设备以及软件等部分组成。但作为专用计算机系统的嵌入式系统与通用计算机系统相比,具有以下几个重要特征。l 系统简练。由于嵌入式系统一般应用于小型电子装置,系统资源相对有限,所以系统内核与传统的系统相比要小得多。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求功能的设计和实现过于复杂,这既有利于控制系统成本,同时也有利于保障系统安全。l 专用性强。嵌入式系统的个性化很强,软件和硬件的结合非常紧密,一般要针对硬件进行软件的设计,即使在同一品牌、同一系列的产品中也需要根据硬件的
15、变化和增减对软件不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载也要同系统相结合。l 实时操作系统支持。嵌入式系统的应用程序可以不需要操作系统的支持直接运行,但为了合理地调度多任务,充分利用系统资源,用户必须自行选配实时操作系统(Real-Time Operating System,RTOS)开发平台,这样才能保证程序执行的实时性和可靠性,减少开发时间,保障软件质量。l 专门开发工具支持。嵌入式系统本身不具备自主开发能力,即使在设计完成以后用户通常也不能对程序功能进行修改,必须有一套开发工具和环境才能进行开发。开发工具和环境一般基于通用计算机的软硬件设备、逻辑分析仪
16、和示波器等。在嵌入式系统的软件开发过程中,采用C语言将是最佳的选择。由于汇编语言是非结构化的语言,不能胜任大型的结构化程序设计,必须采用更高级的C语言进行设计。1.1.2 片上系统和可编程片上系统随着半导体技术的不断发展,片上系统(System on a Chip,SOC)成为嵌入式应用领域的热门方向之一。SOC最大的特点是成功实现了软硬件的无缝结合,直接在处理器芯片内嵌入操作系统的代码模块。此外,SOC有极高的综合性,在一个芯片内部运用VHDL等硬件描述语言可以实现复杂的系统。用户使用SOC,不需要再像传统的系统设计一样绘制庞大复杂的电路板,而只需要使用相应的开发工具,将处理器、存储器和接口
17、逻辑集成在一起,并开发相应的软件,编译仿真之后就可以直接交付芯片厂商进行生产。SOC通常是专用集成电路(ASIC),所以不为用户所熟知,而且其开发周期长,生产成本高,产品不能进行修改。随着可编程逻辑器件(Programmable Logic Device,PLD)的广泛应用,可编程片上系统(System on a Programmable Chip,SOPC)越来越多地受到人们的关注。SOPC是在PLD上实现SOC,PLD的可编程性使SOPC的设计和实现非常方便。用户可以灵活地进行系统硬件和软件设计,还可以在现场进行系统修改。PLD性能的不断提高,也使SOPC的性能越来越高。Altera是PL
18、D的大型生产商,生产的PLD有CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)和FPGA(Field Programmable Gate Array,现场可编程门阵列)两大系列。CPLD和FPGA的结构有所不同,但功能差别不大,作为新产品的FPGA要比早期的CPLD性能强大。Altera的SOPC嵌入式处理器(Embedded Processor)解决方案有两种:嵌入ARM922T硬核的Excalibur器件和用于FPGA的可配置Nios嵌入式处理器软核。1.2 Nios嵌入式处理器1.2.1 Nios嵌入式处理器特性Nios嵌入式处理器是用户
19、可配置的通用RISC嵌入式处理器,它是一个非常灵活和强大的处理器。Nios处理器的易用和灵活已经使它成为世界上最流行的嵌入式处理器。嵌入式设计者利用SOPC Builder系统开发工具能够很容易地创建自己的处理器系统。SOPC Builder可用于集成一个或多个可配置的带有许多标准外围设备的Nios CPU,并利用自动形成的Avalon交换结构总线将这些系统连接在一起。可配置Nios CPU是Nios处理器系统的核心,它能够被灵活配置而适用于各种各样的应用。例如一个16位Nios CPU,在片内ROM中运行一个小程序,可以制作成一个实际的序列发生器或控制器,并且能够代替固定编码的状态机。又如一
20、个32位Nios CPU,与外围设备、硬件加速单位和自定义指令一起,构成一个功能强大的32位嵌入式处理器系统。Nios嵌入式处理器的独特性(例如自定义指令和并行的多控制器Avalon交换结构总线)使它不同于市场上其他的处理器软核。这些特性允许Nios用户通过用简单的而非传统的方法加速和优化自己的设计。32位和16位Nios嵌入式处理器典型配置的比较如表1-1所示。表1-1 Nios嵌入式处理器典型配置比较特 性32位Nios CPU16位Nios CPU数据总线宽度/bit3216算术逻辑单元(ALU)宽度/bit3216内部寄存器宽度/bit3216地址总线宽度/bit3216指令长度/bi
21、t1616逻辑单元数(LEs)(典型值)1500125MHz125MHz注:其具体数值与器件结构有关Nios嵌入式处理器指令系统结构的设计具有以下特性:(1) 在Altera FPGA中有效实现。l 使用最少的逻辑单元。l 使用最少的存储单元。l 最大的时钟速度。(2) 用SOPC Builder容易进行系统集成。l 简单的存储器接口。l 标准的可配置外围设备库。l 在CPU、外围设备和存储器之间自动形成Avalon交换结构接口逻辑电路。(3) 为编译嵌入式软件优化指令系统结构。l 灵活的寻址方式。l 大容量内部寄存器组的有效利用。l 快速的中断处理。(4) 硬件加速模块。l 有效算法实现。l
22、 MSTEP指令:单步乘法单元。l MUL指令:快速整数乘法单元。Nios嵌入式处理器支持Altera主流FPGA的全部系列,器件支持如表1-2所示。表1-2 Nios嵌入式处理器器件支持器 件说 明Stratix II最高的性能,最高的密度,大量的存储资源,特性丰富的平台Stratix GX最高的性能结构,高速串行收发器Cyclone低成本,替代ASIC,适用于价格敏感的应用APEX II高密度,高性能,支持高速差分I/O标准Mercury高性能,高带宽,中密度,包括时钟数据恢复支持Excalibur高性能,处理器硬核解决方案APEX 20K/KE/KC高性能,中到高密度FLEX 10K/K
23、E低成本,低到中密度ACEX 1K低成本,低到中密度HardCopy高密度,大批量ASIC替换器件随着超过1万个Nios开发套件的交付使用,Nios嵌入式处理器已经成为嵌入式处理器软核的标准。Nios嵌入式处理器的系统组件、开发工具和开发平台如表1-3所示。表1-3 Nios嵌入式处理器系统组件、开发工具和开发平台系 统 组 件开 发 工 具开 发 平 台CPUSOPC Builder开发套件Avalon交换结构总线Quartus II设计软件软件授权外围设备GNUPro嵌入式软件开发工具片内调试模块第三方工具1.2.2 Nios嵌入式处理器系统组件Nios嵌入式处理器系统包括一个或多个Nio
24、s CPU、Avalon交换结构总线和其他组件。Altera的SOPC Builder系统开发工具可以自动生成这些组件以及连接它们的总线。下列组件可用于生成基于Nios处理器的嵌入式系统:l Nios CPU。 l Avalon总线。l 外围设备和存储器接口。l 片内调试模块。设计者能够使用SOPC Builder设计Nios处理器系统,如图1-1所示。图1-1 Nios处理器系统Nios处理器系统包含带指令和数据高速缓存的Nios CPU、片内调试模块、直接存储器存取(DMA)控制器、常用外围设备(PIO、UART、以太网端口和存储器接口等)和并行多控制器Avalon交换结构总线。1.2.3
25、 Avalon交换结构总线 Avalon交换结构总线是Altera开发的用于Nios嵌入式处理器的参数化接口总线,由一组预定义的信号组成,用户用这些信号可以连接一个或多个IP模块。Altera的SOPC Builder系统开发工具自动地产生Avalon交换结构总线逻辑。Avalon交换结构总线需要极小的FPGA资源,提供完全的同步操作,它的重要特性有:l 简单的基于向导的配置。l 并行的多控制器。l 多达4GB的地址空间。l 同步接口。l 嵌入的地址译码。l 带延迟的读写操作。l 数据流处理。l 动态的外围设备接口大小。(1)简单的基于向导的配置Altera的SOPC Builder系统开发工
26、具中易于使用的图形用户界面引导用户进行增加外围设备、指定控制器和从属设备关系以及定义存储地址等操作。Avalon交换结构总线按照用户从向导界面的输入自动形成。(2)并行的多控制器Nios开发者可以按照自己的特殊操作需要创建自定义的系统总线结构,优化自己的系统数据流。Avalon交换结构总线支持所有总线控制器的并行事务处理,并自动地为共享外围设备和存储器接口进行仲裁。另外,直接存储器存取(DMA)设备能被用于与其从属设备一起提供总线控制能力。在传统的总线中,单个仲裁器控制一个或多个总线控制器跟总线从属设备进行通信,由于每次只能有一个控制器可以存取系统总线而形成带宽瓶颈,如图1-2所示。图1-2
27、传统总线结构Avalon交换结构总线使用从属设备侧仲裁技术,使并行多控制器操作最大限度地提高系统性能。如果多个控制器同时存取从属设备,则由从属设备侧仲裁决定哪一个控制器得到从属设备的存取权,如图1-3所示。图1-3 并行多控制器Avalon交换总线结构在这样的系统中,快速以太网等高速外围设备可以在不暂停CPU的情况下直接存取数据存储器。通过允许独立于CPU的存储器存取,Avalon交换结构总线优化了数据处理过程,提高了系统吞吐量。(3)多达4GB的地址空间存储器和外围设备可以映射到32位地址空间的任何地方。换句话说,CPU(或其他的总线控制器)有多达4GB的可寻址存储器范围。(4)同步接口所有
28、的Avalon信号和Avalon总线时钟同步,这使相应的Avalon交换结构总线时间性能简单化,便于高速外围设备的集成。(5)嵌入的地址译码SOPC Builder创建的Avalon交换结构总线自动地为所有外围设备(甚至用户自定义外围设备)形成片选信号,这可极大地简化基于Nios处理器系统的设计。分离的地址和数据通路为片内用户逻辑提供了一个极其容易的连接,用户自定义外围设备不需要数据和地址总线周期译码。(6)带延迟的读写传输Avalon交换结构总线可以完成带延迟的读写操作,这种延迟传输是很有用的。这是因为,控制器可以先发出读写请求,在执行一个无关的任务后接收数据。这项特性对发送多个读写请求到一
29、个已知延迟的从属设备也非常有用。例如,这对在连续的地址内同时进行取指令操作和DMA传输非常有好处。在这种情况下,CPU或DMA控制器可以预取预定的数据,以减少同步存储器的平均存取延迟。(7)数据流处理带Avalon交换矩阵的数据流处理在数据流控制器和数据流从属设备之间建立一个开放的通道,以完成连续的数据传送。这些通道允许数据在控制器和从属设备对之间流动。控制器不必连续地读取从属设备中的状态寄存器来决定从属设备是否可以发送或接收数据。数据流处理在控制器和从属设备对之间获得最大的数据吞吐量,并避免在从属设备上出现数据溢出。这对DMA传输尤其有用。(8)动态的外围设备接口大小动态的总线大小允许Nio
30、s开发者使用低成本的窄的存储器件,这些存储器件可以和Nios CPU的总线大小不匹配。例如,32位数据总线的系统可以容易地集成8位闪速存储器器件。在这样的系统中,如果必要的话,动态的总线大小调整逻辑自动地执行多总线周期,以便从窄的外围设备中取出宽的数据值。SOPC Builder自动地添加完成大小调整和定位调整所需要的专用逻辑。第2章 Nios嵌入式系统开发板整体分析2.1 系统设计目标以Altera公司的Cyclone系列的FPGAEP1C6为核心,在其外围扩展FLASH、SRAM、A/D、D/A、键盘、LED显示、LCD显示、串口通信、VGA接口、PS2接口、USB接口等器件,使其成为一个
31、完整的嵌入式开发系统,系统要尽量采用模块化设计,各个模块之间可以自由组合。2.2 系统设计原理系统设计原理框图如下图2-1所示。图2-1 系统设计原理框图当开发板加电时,开发板上的配置逻辑使用保存在串行配置器件EPCS1中的硬件配置数据配置Cyclone,器件配置完成后Cyclone中的Nios处理器开始工作,执行Flash中的启动代码程序,然后Flash中的用户程序加载到SRAM中执行。系统提供3.3V、1.5V稳定电压,支持JTAG下载口配置FPGA,通过两个欧式396插座引出剩余用户I/O口、FPGA锁相环输出、3.3V稳定电源和多个接地引脚等。系统设计时,在器件的每一电源引脚上都并接0
32、.1u,0.01u,0.001u三个滤波电容,不仅滤除低频干扰信号,而且有效的消除了高频干扰,保证了系统能够稳定可靠的工作。 系统布线时充分考虑到PCB布局对信号传输的影响,尽量使所有的地址线到达FPGA的距离接近,避免高频信号传输过程中的相位变化引起误判,数据线的布局也遵循同样的原则。最终,用两层板实现了一般四层板的功能,不仅面积合适、工作稳定,而且降低了开发板成本。与主开发板配套使用的,还有另一块底板,底板可以看作是一个载体,在其上不仅留出了主开发板的接口,而且留出了A/D、D/A、LCD和键盘等模块的接口,这些模快即插即用,配合主开发板工作,使其能够完成复杂的EDA设计。主板和底板的配合
33、使用见图2-2所示。图2-2 开发板组合结构图2.3 开发板组件与理论分析Nios嵌入式系统开发板为开发嵌入式系统提供硬件平台,本毕设这次使用的FPGA为Cyclone系列的EP1C6Q240C8,其具有5980个逻辑单元和234kbits的片内存储器。另外,开发板上有Cyclone器件专用的串行配置器件(EPCS1)及其JTAG插座。默认参考设计提供从主计算机向开发板下载新的用户定义硬件和软件配置数据的功能,下载可以使用串行电缆、JTAG电缆等。GERMS监控程序(Altera提供的Nios处理器监控程序)通过RS-232串行口进行控制。Nios开发板具有如下组件:l Cyclone EP1
34、C6Q240C8器件l 8MBit Flashl 256kByte SRAMl 两个RS-232 DB9串行口l 两个3.3V扩展插座,一共包括92个Cyclone用户I/O引脚l 八个连接到Cyclone用户I/O引脚的发光二极管l 四个连接到Cyclone用户I/O引脚的按钮开关l EPCS1串行配置器件l 用Altera下载电缆连接Cyclone器件的JTAG插座l 50MHz振荡器和零偏移时钟分配电路l 加电复位电路当开发板加电时,开发板上的配置逻辑使用保存在串行配置器件EPCS1中的硬件配置数据配置Cyclone,器件配置完成后Cyclone中的Nios处理器开始工作,执行Flash
35、中的启动代码程序。Nios开发板的组件简单介绍如下。(1)Cyclone EP1C6Q240C8器件本Nios开发板上的FPGA是240脚FBGA封装的Cyclone EP1C6Q240C8器件,其特性如下表2-1所示。表2-1 Cyclone EP1C6Q240C8器件特性特性数目逻辑单元数5980M4K RAM块数20总RAM位数92160锁相环个数2用户I/O引脚数185Cyclone器件有两种配置方法:l 使用运行在主机算计上的Quartus软件,通过连接到JTAG插座的Altera下载电缆直接配置Cyclone器件l 通过主动串行配置器件EPCS1/EPCS4配置Cyclone器件(
36、2)Flash存储器件Nios上用的Flash为8MBit的存储器件AM29LV800B,它用于两个目的:l 在FPGA器件上实现的Nios嵌入式处理器可以使用Flash存储器作为通用只读存储器和非易失性存储器l Flash存储器可以保存FPGA配置数据,配置数据在加电时通过配置控制器装入FPGA器件Nios参考设计的硬件配置数据预存在Flash存储器中,参考设计的硬件配置数据装入后,其中的监控程序可以将文件下载到Flash存储器,Nios嵌入式处理器软件包括擦写Flash存储器的程序。Flash存储器与SRAM共用地址和数据总线。(3)双SRAM器件Nios开发板上有两个64k16位的异步S
37、RAM器件IDT71V016S,它们和FPGA器件相连作为Nios嵌入式处理器的通用存储器使用,两个16位器件可以构成32位存储器,预装的Nios参考设计把SRAM器件作为连续的128k16位零等待主存储器。SRAM和Flash存储器共用地址和数据总线。(4)RS-232串行口插座Nios开发板上有两个标准的9针串行口插座,用连接到串行口的标准9针串行电缆实现与主计算机的串行通信。开发板上的两个串行口一个用来调试,另一个用来提供给用户使用,两个串行口以相同的方式连接到FPGA,Nios处理器系统可以将任何一个串行口用于任何目的,不受原理图上标记的限制。两个FPGA逻辑端口能够传送所有的RS-2
38、32信号,设计时可以只使用需要的信号,例如RXD(接收数据)和TXD(发送数据)。当发送或接收数据时RXD和TXD信号的发光二极管给出相应的指示。(5)扩展插座在Nios开发板上有两个96针的欧式插座396作为FPGA用户I/O引脚的扩展插座。两个插座包含以下引脚:l 96个用户I/O引脚,全部连接到FPGA器件的用户I/O引脚,每个信号与扩展插座之间有一个33欧姆以实现隔离和电平保护l 经过缓冲的零偏移FPGA锁相环PLL输出l 3.3V电源引脚l 5V电源引脚l 多个地引脚(6)发光二极管Nios开发板上有八个发光二极管LED1LED8,其直接连接到FPGA的I/O引脚上,当FPGA引脚输
39、出高电平时对应的发光二极管亮。(7)按钮开关Nios开发板上有五个按钮开关,其中四个为普通按键开关,每个开关一端通过下拉电阻接地,同时这一端还要通过带史密特触发的反向器连接到FPGA的通用I/O引脚,以实现消抖功能,另一端直接接3.3V电源,当开关按下时FPGA引脚输入高电平。另一个位是复位开关,用于系统的全局复位,按下时输入低电平。(8)串行配置器件串行配置器件是具有串行接口的Flash存储器件,可以存储Cyclone器件的配置数据并在上电或重新配置时将配置数据重新装入到Cyclone器件。利用Cyclone器件新的数据压缩特性,设计者可以使用较小的串行配置器件配置大的Cyclone器件,串
40、行配置器件不能级连。SOPC Builder主动串行存储器接口组件允许微处理器系统访问串行配置存储器。(9)电源电路Nios开发板可以用5V未稳压的电压源,板上电源电路产生3.3V、1.5V稳定电源。3.3V电源用于所有Cyclone器件I/O引脚的电源,也用于FLASH和SRAM等3.3V供电的器件。1.5V电源只用做Cyclone器件核心的电源,不用于任何插座。(10)JTAG连接JTAG插座直接与Cyclone器件的专用JTAG引脚相联(TCK、TDI、TDO和TMS),Quartus软件可以通过ByteBlaster下载电缆用新的硬件映像直接配置Cyclone器件,Nios嵌入式处理器
41、调试程序也可以通过连接到插座的电缆访问Nios片内调试模块OCI。2.4 开发板电路设计原理图与PCB布线图原理图如下图2-3所示。图2-3 Nios嵌入式开发板原理图印制电路板PCB图如下图2-4所示。图2-4 印制电路板PCB图第3章 Nios嵌入式系统开发板硬件开发3.1 硬件开发环境概述Nios开发板为开发嵌入式系统提供硬件平台,Nios开发板具有如下组件:Cyclone EP1C6Q240C8器件、8MBit Flash、256kByte SRAM、两个RS-232 DB9串行口、两个3.3V扩展插座,一共包括92个Cyclone用户I/O引脚、八个连接到Cyclone用户I/O引脚
42、的发光二极管、四个连接到Cyclone用户I/O引脚的按钮开关、EPCS1串行配置器件、用Altera下载电缆连接Cyclone器件的JTAG插座、50MHz振荡器和零偏移时钟分配电路和加电复位电路等。下面详细的介绍主要组件。3.2 FPGA:EP1C6QC240C8的特性和电路设计Cyclone器件是基于1.5V、0.13um、全铜SRAM工序,多达20060个逻辑单元(LE)和288KB SRAM的FPGA器件,具有时钟锁相环路(PLL)、连接DDR SDRAM的双数据速率(DDR)接口和快速环路RAM(FCRAM)内存需求,支持不同的I/O标准,包含数据速率达311Mb/s的LVDS和6
43、6MHz 32位外设组件互连(PCI)接口。3.2.1 特性和封装Cyclone器件具有如下特性,如表3-1所示。l 291020060个逻辑单元(LE)l 多达294912位RAM(36864B)l 支持低成本串行配置器件(EPCS1或EPCS4)配置l 支持LVTTL、LVCMOS、SSTL-2和SSTL-3I/O标准l 支持66MHz 32位PCI标准和高速(311Mb/s)LVDSl 两个PLL提供时钟倍频和相移l 多达八个全局时钟线,每个逻辑块阵列(LAB)可用六个时钟源l 支持DDR SDRAM(133MHz)、FCRAM和单数据速率(SDR)SDRAMl 支持知识产权(IP)核,
44、包含Altera MegaCore函数和AMPP mega函数表3-1 Cyclone器件特性特性EP1C3EP1C6EP1C12EP1C20逻辑单元(LE)291059801206020060M4K RAM块(12836位)13205264总RAM位5990492160239616294912锁相环(PLL)1222最大用户I/O引脚1041852493013.2.2 引脚说明240引脚PQFP封装的引脚功能见附3。各引脚的定义见附3。3.2.3 工作条件Cyclone器件有民用和工业两个等级,工业级器件可能有速度等级可用性限制。Cyclone器件的绝对最大额度定值见附3。Cyclone器件
45、推荐工作条件见附3。Cyclone器件的直流工作条件见附3。3.3 串行配置器件:EPCS1的特性和电路设计3.3.1 Cyclone FPGA的配置Cyclone器件可以用以用多种配置方式,这些配置方式包括主动串行配置、被动串行配置、基于JTAG口的配置,其中主动串行配置是用一种新的低成本的串行配置器件。除此之外,Cyclone器件还可以接收压缩数据流,并且实时的解压缩这些数据以减少配置所需空间的大小,缩短配置所需的时间。Cyclone器件用SRAM单元来存储配置数据,因为SRAM存储器是不稳定的,所以配置数据在每次系统上电时都需要下载到Cyclone器件中,配置数据可以通过主动串行方式、被
46、动串行方式和JTAG等方式下载,如表3-2所示。表3-2 Cyclone配置方式配置方式配置需求描述主动串行方式串行配置器件(EPCS1或者EPCS4)被动串行方式增强型的配置器件(EPC4、EPC8或者EPC16)EPC2、EPC1串行配置器件智能主机(微处理器)下载电缆JTAG接口方式下载电缆智能主机(微处理器)标准的测试和编程Jam语言(STAPL)可以通过MSEL1和MSEL0两个引脚的电平高低来选择Cyclone器件的配置方式,见表3-3。如果系统设计只要求用到一种配置方式,那么两个MSEL脚就可以接到VCC或者GND上,如果设计要求多于一种配置方式,那么MSEL脚在Cyclone器件配置完成以后可以转换。在用户模式下把这两个脚固定起来并不会影响器件操作。尽管如此,MSEL脚在开始重新配置时必须有效。表3-3 配置数据源MSEL1.0配置电路数据源00主动串行(AS)低成本串行配置器件EPCS1或EPCS401被动串行(PS)