基于FPGA的嵌入式_第1页
基于FPGA的嵌入式_第2页
基于FPGA的嵌入式_第3页
基于FPGA的嵌入式_第4页
基于FPGA的嵌入式_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

基于FPGA的

嵌入式系统设计第1章嵌入式系统概述1.1嵌入式系统的产生和发展1.2嵌入式系统的概念1.1嵌入式系统的产生和发展

嵌入式系统的全面发展是从20世纪90年代开始的,主要受到了分布式控制、数字化通信、信息家电、网络应用等强烈的应用需求所牵引。现在,人们可以随处发现嵌入式系统的应用,如手机、MP3播放器、数码相机、VCD、机顶盒、路由器、交换机等。嵌入式系统在软、硬件技术方面迅速发展,首先是面向不同应用领域、功能更加强大、集成度更高、种类繁多、价格低廉、低功耗的32位微处理器逐渐占领统治地位,DSP器件向高速、高精度、低功耗发展,而且可以和其他的嵌入式微处理器相集成。

其次,随着微处理器性能的提高,嵌入式软件的规模也成指数型增长,所体现出的嵌入式应用具备了更加复杂和高度智能的功能,软件在系统中体现出来的重要程度越来越大,嵌入式操作系统在嵌入式软件中的使用越来越多,所占的比例逐渐提高,同时,嵌入式操作系统的功能不断丰富,在内核基础上发展成为包括图形接口、文件、网络、嵌入式Java、嵌入式CORBA、分布式处理等完备功能的集合;最后,嵌入式开发工具更加丰富,已经覆盖了嵌入式系统开发过程的各个阶段,现在主要向着集成开发环境和友好人机界面等方向发展。

1.2嵌入式系统的概念

1.2.1嵌入式系统的定义

嵌入式计算系统,简称为嵌入式系统。那么究竟什么是嵌入式系统呢?在WayneWolf著的一本有关嵌入式系统设计的教科书《嵌入式计算系统设计原理》里这样定义:“不严格地说:它是任意包含一个可编程计算机的设备,但是这个设备不是作为通用计算机而设计的。因此,一台个人电脑并不能称之为嵌入式计算系统,尽管个人电脑经常被用于搭建嵌入式计算系统。”

IEEE(国际电气和电子工程师协会)的定义是:“Deviceusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants”。微机学会的定义是:“嵌入式系统是以嵌入式应用为目的的计算机系统”,并分为系统级、板级、片级,系统级包括各类工控器、PC104模块等;板级包括各类带CPU的主板和OEM产品;片级包括各种以单片机、DSP、微处理器为核心的产品。目前被大多数人接受的一般性定义是:“嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。”

1.2.2几个相关基本概念(1)嵌入式系统—EmbeddedSystem通俗的说,嵌入式系统就是内嵌到对象体系中的微型专用计算机。它具有比通用计算机更简洁、更个性化的功能,可运行操作系统,又兼有单片机体积小、低功耗等特点,是当前最热门的概念和应用最广泛的技术之一。嵌入式系统包括硬件和软件两部分。嵌入式处理器是嵌入式系统的核心,有硬核和软核之分。

由于嵌入式系统的概念从外延上很难统一,其应用形式多种多样,因此定义嵌入式系统非常困难。不过,通过对上述定义分析后不难发现,从嵌入式系统概念的内涵上讲,它的共性是一种软、硬件紧密结合的专用计算机系统。通常我们所说的嵌入式系统,硬件以嵌入式微处理器为核心,集成存储系统和各种专用输入/输出设备;软件包含系统启动程序、驱动程序、嵌入式操作系统、应用程序等,这些软件有机结合,构成系统特定的一体化软件。这种专用计算机系统必然在可靠性、实时性、功耗、可裁减等方面具有一系列特点。如果我们关注一下嵌入式系统的特性,也许能够对嵌入式系统的概念获得更深入的理解。

(2)片上系统SOC—SystemOnChip片上系统又称为集成电路(IntegratedSystem),简称IS。有人认为,IS与IC的关系和当时的集成电路与分离元件的关系类似。IS或SOC是一个复杂的系统。它一般将一个完整产品的各功能集成在一个芯片上或芯片组上。(3)可编程片上系统SOPC—SystemOnProgrammableChipSOC是专业集成系统,设计周期长,设计成本高;而SOPC是一种通用器件,是基于FPGA的可重构SOC,其设计周期短,设计成本低。SOPC集成了硬核或软核CPU、DSP、存储器、外围I/O及可编程逻辑,是更加灵活、高效的SOC解决方案。(4)集成电路IP(知识产权)—IntellectualPropertyIP是知识产权的简称。集成电路IP的定义是:经过预先设计、预先验证,符合产业界普遍认同的设计规范和设计标准,具有相对独立功能的电路模块或子系统,可以复用于SOC、SOPC或复杂ASIC设计中。这种IP库与传统的单元库不同,它的知识含量更高,规模更大,可重用性好,被公认为是芯片面积小、运行速度快、功耗低、工艺容差大的设计。在工业界,IP又称为SIP(SiliconIP)或虚拟单元VC(VirtualComponent)。第2章

SOPCBuilder开发工具

2.1简介2.2SOPCBuilder设计流程2.3SOPCBuilder用户界面

2.1简介2.1.1SOPC技术简介 SOPC(SystemOnaProgrammableChip)是指用可编程逻辑技术把整个系统放到一块硅片上。它是一种特殊的嵌入式系统。一方面,它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;另一方面,它是可编程系统,具有灵活的设计方式,可裁减、扩充、升级,并具备软硬件在系统可编程的功能。这项技术将EDA、计算机设计、嵌入式系统、工业自动控制系统、DSP及数字通信系统等技术融为一体。

SOC技术已经成为半导体行业的技术主流,在SOPC出现之前,业界广泛采用ASIC技术实现SOC。ASIC和FPGA不同的技术特征造就了他们应用于不同的市场。ALTERA公司于2000年提出了SOPC概念,在可编程逻辑器件上实现SOC技术,同时推出了相应的开发软件QuartusⅡ。SOPC结合了SOC和可编程逻辑器件各自的优点,一般具备以下基本特征:(1)至少包含一个嵌入式处理器内核(2)具有小容量片内高速RAM资源(3)丰富的IPCore资源可供选择(4)足够的片上可编程逻辑资源(5)处理器调试接口和FPGA编程接口(6)包含部分可编程模拟电路(7)单芯片、低功耗、小封装

随着EDA技术的发展和大规模可编程器件性能的不断提高,SOPC技术已被广泛应用于许多领域。首先,SOPC在极大提高了许多电子系统性能价格比的同时,还开辟了许多新的应用领域,如高端的数字信号处理、通信系统、软件无线电系统的设计、微处理器及大型计算机处理器的设计等等;同时,由于SOPC具有基于EDA技术标准的设计语言与系统测试手段、规范的设计流程与多层次的仿真功能以及高效率的软硬件开发与实现技术,使得SOPC及其实现技术无可争议地成为现代电子技术最具时代特征的典型代表。与基于ASIC的SOC相比,SOPC具有更多的特点与吸引力:开发软件成本低,硬件实现风险低,产品上市效率高,系统结构可重构及硬件可升级等,它还具有设计者易学易用、高附加值、产品设计成本低等优势。

2.1.2SOPCBuilder简介

SOPCBuilder是Altera公司推出的一种可加快在PLD内实现嵌入式处理器相关设计的工具。它是一个革命性的系统级开发工具,其功能与PC应用程序中的“引导模板”类似,旨在提高设计者的效率。设计者可确定所需要的处理器模块和参数,并据此创建一个处理器的完整存储器映射。设计者还可以选择所需的IP外围电路,如存储器控制器、I/O控制器和定时器等模块。

SOPC

Builder可以快速地开发定制新方案,重建已经存在的方案,并为其添加新的功能,提高系统的性能。通过自动集成系统组件,SOPCBuilder允许用户将工作的重点集中到系统级的需求上,而不是从事把一系列的组件装配在一起这种普通的、手工的工作。所有版本的AlteraQuartus Ⅱ的设计软件都已经包含了SOPCBuilder。设计者采用SOPCBuilder,能够在一个工具内定义一个从硬件到软件的完整系统,而花费的时间仅仅是传统SOC设计的几分之一。

SOPC

Builder提供了一个强大的平台,用于组建一个在模块级和组件级定义的系统。SOPC

Builder的组件库包含了从简单的固定逻辑的功能块到复杂的、参数化的、可以动态生成的子系统等一系列的组件。这些组件可以是从Altera或其他合作伙伴处购买来的IP核,其中一些IP核是可以免费下载用来做评估的;用户还可简单地创建他们自己定制的SOPCBuilder组件。SOPCBuilder内建的IP核库是OpenCorePlus版的业界领先的Nios/Nios Ⅱ嵌入式软核处理器。所有的Quartus Ⅱ用户都能够把一个基于Nios/Nios Ⅱ处理器的系统经过生成、仿真和编译进而下载到AlteraFPGA中,进行实时评估和验证。

SOPCBuilder库中已有的组件包括:(1)处理器:包括片内处理器和片外处理器的接口。(2) IP及外设:包括通用的微控制器外设,通信外设,多种接口(存储器接口、桥接口、ASSP、ASIC),数字信号处理(DSP)IP和硬件加速外设。2.1.3SOPCBuilder的功能特点1.具有直观的图形用户界面(GUI) 利用图形用户界面,用户可以快速方便地定义和连接复杂的系统。如图2.1所示,用户可从左边的库中添加所需的部件,然后在右边的表中配置它们。2.开放性 SOPCBuilder开放了硬件和软件接口,允许第三方像Altera一样有效地管理SOPC部件,用户可以根据需要将自己设计的部件添加到SOPCBuilder的列表中。图2.1SOPCBuilder的图形用户界面3.自动生成和集成软件与硬件

SOPCBuilder会生成每个硬件部件以及连接部件的片内总线结构,仲裁和中断逻辑。它也会产生系统可仿真的RTL描述以及为特定硬件配置设计的测试平台,能够把硬件系统综合到单个网表中。

另外,SOPCBuilder还能够生成C和汇编头文件,这些头文件定义了存储器映射、中断优先级和每个外设寄存器空间的数据结构。这样的自动生成过程可以帮助软件设计者处理硬件潜在的变化性。如果硬件改变了,SOPCBuilder会自动更新这些头文件。SOPCBuilder也会为系统中现有的每个外设生成定制的C和汇编函数库。例如,如果系统包括一个UART,SOPCBuilder就会访问UART的寄存器并定义一个C结构,生成通过UART发送和接收数据的C和汇编例程。2.2SOPCBuilder设计流程

如图2.2所示,SOPCBuilder的设计流程包括两个阶段:配置(框图左边所示)和生成(框图右边所示)。它是利用ClassPTF和SystemPTF这两个文件来配置和生成系统流程的。

SOPCBuilderGUI引导用户完成两部分的配置:部件配置和系统配置。部件配置需要汇总参数,ClassPTF文件标准包括了为这一要求定义GUI的格式。当需要时,SOPCBuilder读取该格式,产生相应的部件向导(ComponentWizard),收集所需的用户数据。然后SOPCBuilder把收集的参数值存放在SystemPTF文件中。系统配置是指把用户提供的有关处理器的配置、外设连接等数据写入SystemPTF中。 当这两部分配置都完成后,SOPCBuilder进入到生成阶段,生成设计的输出文件。SOPCBuilder查阅每个ClassPTF文件,允许相关的部件生成程序,它们会正确地输出特定系统配置的硬件和/或软件文件。 简单的部件生成程序可能每次都会输出相同的文件,更多的可配置部件则会根据用户输入生成完全不同的结构。例如,Nios处理器中包括的UART可以配置为软件控制波特率,以更多门换取更大的灵活性。这种配置选项由用户在部件配置阶段进行设置,根据这个设计,UART生成程序产生所需UART的硬件描述。在生成阶段的最后一步,SOPCBuilder创建适合于系统部件的总线结构,把所有的部件连接在一起。图2.2系统生成流程2.3SOPCBuilder用户界面 2.3.1系统元件页 用户在系统元件页中定义所需的系统(如图2.3所示)。在它的模块池中包括了用户可获得的所有元件列表。在模块表中列出的是用户已经添加到系统中的模块。当用户用SOPCBuilder生成系统时,它就生成了一个系统模块,这个模块包含了用户所定义的所有元件和接口以及自动生成的总线(互联)逻辑。图2.3系统元件页1.模块池在模块池中列出了根据总线类型和逻辑类别来分类的所有可用的库元件。每个元件名前面都有一个带颜色的圆点,不同的颜色代表不同的含义。(1)绿圆点:用户可以添加到用户系统中的元件是完全许可的。(2)黄圆点:元件在系统设计中的应用受到某种形式的限制,主要限制有使用时间有所限制和功能有所减少。(3)白圆点:元件目前还没有安装到用户的系统上,用户可以从网上下载这些元件。用户可以使用模块池选择器来列出可用的元件,安装元件,从网上获取元件以及通过网络升级元件。如果用户有Internet链接,就可以查看来自Altera和AMPPsm最新的可用元件。要查看新元件,可点击Check按钮,最新的可获得的元件就会显示在升级页中;接着点击元件名和Add就可以将元件下载到本地。用右键点击元件就可以看到一个菜单,它包括了元件的详细信息,并且可以链接到相关的文件并升级元件。如果右键点击的已安装的元件是可以获得升级的,在弹出的菜单中就包含一个子菜单(以元件的版本号作标题),点击这个菜单就可以对元件进行升级。2.模块表模块表中列出的是用户添加到用户所设计的系统中的模块,包括桥、总线接口、CPU、存储器接口、外围设备等。此外,用户可以用模块表来描述以下一些项目:

连接的主、从性;·

系统地址映射;

系统中断请求分配;控制共享从元件的优先权。3.添加元件到模块表在模块池中点击要添加的元件名,然后点击Add,会出现以下两种情况中的一种:(1)对于可用的、已安装上的并有设置向导的元件,会出现一个对话框,让用户设定各种选项,设定完选项后再点击Finish,就可将元件添加到模块表中。如果元件没有选项对话框,它会被自动加到模块表中。(2)对于可用的但没有安装的元件,也会出现一个对话框,通过该对话框可链接到网上下载元件或从厂商处获取元件。安装元件后,用户就可以将它添加到用户所设计的系统中了。如果点击View菜单并选中ShowMasterConnections选项,则在模块表的左边就会出现主、从元件的互联示意图。任何一个元件都可以有一个或多个主或从的接口。如果主元件和从元件使用同一个总线协议,则任何一个主元件都可以和任何一个从元件相连。如果使用的是不同的总线协议,则用户可以通过使用一个桥元件来把主、从元件连接起来,比如可使用AMBA-AHB-to-Avalon桥。当两个或多个主元件共享同一个从元件时,SOPCBuilder会自动插入一个判优器来控制对从元件的访问。当对一个从元件有多个请求同时发生时,判优器可以决定由哪个主元件来访问这个从元件。要查看仲裁优先权,可在View菜单里选中ShowArbitrationPriorities选项。4.附加设置系统元件页还包括以下一些附加选项:(1)器件系列(DeviceFamily):由用户从器件列表中选择用户的目标器件。这项设置非常重要,因为SOPCBuilder是利用所选器件系列的结构优势来产生系统的逻辑的。注意:Quartus Ⅱ软件不使用这个器件设置,用户还必须在Quartus Ⅱ软件中确定器件。(2)系统时钟频率(SystemClockFrequency):外围设备利用系统时钟来产生时钟分频或波特率等。SOPCBuilder的built-intestbench发生器还利用这项设置来产生用户所要求的频率。2.3.2系统设置页当用户向所设计的系统中添加元件时,比如一个Nios嵌入式处理器,在SOPCBuilder中就会出现一个系统设置(More“CPU”Setting)的附加页。这个附加页可以让用户用来设置一些附加的参数或者与系统中其他元件的相连关系。比如,用户可以定义CPU和存储器元件之间的相连关系来指明哪一个是用来作程序存储器的,哪一个是用来作数据存储器的。对于用到系统设置页的元件,SOPCBuilder会对用户添加到用户系统中的这个元件的每种情况都生成一个单独的系统设置页。2.3.3系统生成页系统生成页是用来生成用户系统的。它包含一些选项,用户可以通过设置来控制生成过程,比如器件支持和仿真控制。在系统生成过程中,这一页会报告系统生成过程中的各种消息。图2.4所示即为系统生成页。图2.4系统生成页1.SDK(SoftwareDevelopmentKid,软件开发工具包) 用户选择了SDK选项,SOPCBuilder会在用户每一次生成系统的时候给用户系统中的每个CPU都生成一个专用的SDK。其中包含了对每个系统元件的各种软件文件(驱动、库和实用程序),这些文件在它们的库定义中给系统元件提供了软件支持。

注意:SDK只在Nios处理器系统中产生,若使用Nios Ⅱ处理器,则在生成选项中没有这一项。2.HDL当用户选择了HDL选项时,SOPCBuilder就会以VerilogHDL或VHDL语言的形式生成系统级的硬件描述语言(HDL)文件。使用VerilogHDL还是VHDL,由用户在SOPCBuilder里建立系统时指定。3.仿真如果选择了Simulation选项,在系统生成过程中,SOPCBuilder会创建一个ModelSim的工程目录。2.3.4生成系统建立系统并进行生成选项设置后,用户就可以点击Generate按钮来生成所设计的系统。这个按钮可在任何一个SOPCBuilder的用户界面中使用。点击Generate按钮后,SOPCBuilder会创建以下一些项目:

SDK(针对Nios系统);

系统中每一个元件的HDL文件;

一个对于顶层系统模块的符号文件(.bsf);

ModelSim文件;一个Tcl脚本文件,它建立了所有Quartus Ⅱ编辑所需的文件。在生成进行的过程中,SOPCBuilder会在系统生成过程信息栏中显示一些消息。系统生成完成后,SOPCBuilder会显示信息“GenerationComplete”,并在用户所创建的项目的根目录下生成一个日志(log)文件。第3章NiosⅡ嵌入式处理器设计

3.1NiosⅡ嵌入式处理器简介3.2NiosⅡ嵌入式处理器软、硬件开发流程简介

3.3NiosⅡ嵌入式处理器系统的开发

3.1NiosⅡ嵌入式处理器简介3.1.1第一代Nios嵌入式处理器20世纪90年代末,可编程逻辑器件(PLD)的复杂度已经能够在单个可编程器件内实现整个系统,即在一个芯片中实现用户定义的系统,它通常包括片内存储器和外设的微处理器。2000年,Altera发布了Nios处理器,这是AlteraExcalibur嵌入式处理器计划中的第一个产品,是第一款用于可编程逻辑器件的可配置的软核处理器。

Altera公司的Nios是基于RISC技术的通用嵌入式处理器芯片软内核,它特别为可编程逻辑进行了优化设计,也为可编程单芯片系统(SOPC)设计了一套综合解决方案。第一代Nios嵌入式处理器性能高达50MIPs,采用16位指令集,16/32位数据通道,5级流水线技术,可在一个时钟周期内完成一条指令的处理。它可以与各种各样的外设、定制指令和硬件加速单元相结合,构成一个定制的SOPC。在Nios之后,Altera公司于2003年3月又推出了Nios的升级版Nios3.0版,它有16位和32位两个版本。两个版本均使用16位的RISC指令集,其差别主要在于系统总线带宽。它能在高性能的Stratix或低成本的Cyclone芯片上实现。

3.1.2第二代Nios嵌入式处理器2004年6月,Altera公司在继全球范围内推出Cyclone Ⅱ和Stratix Ⅱ器件系列后又推出了支持这些新款FPGA系列的Nios Ⅱ嵌入式处理器。Nios Ⅱ嵌入式处理器和Cyclone ⅡFPGA组合,在器件中只占用0.35美元的逻辑资源。Nios Ⅱ嵌入式处理器在Cyclone ⅡFPGA中也具有超过100DMIP的性能,允许设计者在很短的时间内构建一个完整的可编程芯片系统,风险和成本比中小规模的ASIC小。它与2000年上市的原产品Nios相比,最大处理性能提高3倍,CPU内核部分的面积最大可缩小1/2。Nios Ⅱ系列嵌入式处理器使用32位的指令集结构(ISA),完全与二进制代码兼容,它是建立在第一代16位Nios处理器的基础上的,定位于广泛的嵌入式应用。Nios Ⅱ处理器系列包括了三种内核——快速的(Nios Ⅱ/f)、经济的(Nios Ⅱ/e)和标准的(Nios Ⅱ/s)内核,每种都针对不同的性能范围和成本。使用Altera的Quartus Ⅱ软件、SOPCBuilder工具以及Nios Ⅱ集成开发环境(IDE),用户可以轻松地将Nios Ⅱ处理器嵌入到他们的系统中。表3.1NiosⅡ嵌入式处理器的特性

表3.2NiosⅡ系列处理器成员表3.3Nios Ⅱ嵌入式处理器支持的FPGA

一个典型的Nios Ⅱ处理器系统如下图所示。Nios Ⅱ是一个可灵活配置的软内核处理器。3.1.3可配置的软核嵌入式处理器的优势1.合理的性能组合使用AlteraNios Ⅱ处理器和FPGA,用户可以实现在处理器、外设、存储器和I/O接口方面的合理组合。(1)三种处理器内核。Nios Ⅱ开发人员可以选择一个或任意以下三种内核的组合:快速的内核(Nios Ⅱ/f)具备高性能,经济的内核(Nios Ⅱ/e)具备低成本,标准的内核(Nios Ⅱ/s)用于性能和尺寸的平衡。(2)超过60种SOPCBuilder配备的内核。用户可以创建一组适合于自己应用的外设、存储器和I/O接口。现成的嵌入式处理器可以快速嵌入Altera的FPGA中。(3)无限的DMA通道组合。直接存储器存取(DMA)可以连接到任何外设从而提高系统的性能。

(4)可配置的硬件及软件调试特性。软件开发人员具有多个调试选择,包括基本的JTAG的运行控制(运行、停止、单步、存储器等)、硬件断点、数据触发、片内和片外跟踪、嵌入式逻辑分析仪。这些调试工具可以在开发阶段使用,一旦调试通过后就可以去掉。2.提升系统的性能设计人员通常都会选择一个比实际所需的性能要高的处理器(意味着更高的成本),从而为设计保留一个安全的性能上的余量。Nios Ⅱ系统的性能是可以根据应用来裁减的,与固定的处理器相比,在较低的时钟速率下具备更高的性能。Nios Ⅱ的以下特性可以提升系统的性能。3.降低系统成本嵌入式系统设计人员总是坚持不懈地寻找降低系统成本的方法。然而,选择一款处理器,在性能和特性上总是与成本存在着冲突,最终结果总是以增加系统成本为代价的。4.应付产品的生命周期开发人员希望快速将他们的产品推向市场,并保持一个较长的产品生命周期。3.2NiosⅡ嵌入式处理器软、硬件开发流程简介

Nios Ⅱ和Nios的开发流程是一样的,只是在软件开发上

温馨提示

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

评论

0/150

提交评论