关闭

关闭

关闭

封号提示

内容

首页 基于FPGA的嵌入式系统设计.pdf

基于FPGA的嵌入式系统设计.pdf

基于FPGA的嵌入式系统设计.pdf

上传者: xl46512 2012-05-08 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《基于FPGA的嵌入式系统设计pdf》,可适用于IT/计算机领域,主题内容包含分类弓:一UDC:工学硕士学位论文Y密级:编号:基于FPGA的嵌入式系统设计硕士研究生:指导教师:学位级别:学科、专业:所在单位:论文提交日期:论文符等。

分类弓:一UDC:工学硕士学位论文Y密级:编号:基于FPGA的嵌入式系统设计硕士研究生:指导教师:学位级别:学科、专业:所在单位:论文提交日期:论文答辩日期:学位授予单位:王磊顾国昌教授工学硕士计算机应用技术计算机科学与技术学院年月年月哈尔滨工程大学哈尔滨工程大学硕士学位论文摘要随着集成电路制造技术的快速发展系统芯片soc(systemon一矿chip)逐渐成为现实。soc将一个完整的系统集成在单个芯片上从而缩小了系统的体积SOC减少了SOB(SystemonBoard)系统中芯片与芯片之间互连延时从而提高了系统的性能:SOC采用基于核的设计方法从而缩短了设计周期降低了芯片成本。应用Soc设计系统是未来嵌入式系统的发展趋势。高性能FPGA(FieldProgr锄ableGateArray)的设计性能无论从密度、速度、功耗和价格等多方面己完全能够与AsIc(Applicationspecificintegratedcircuit)媲美因此应用FPGA进行Sc设计己成为未来发展的趋势。本文首先研究与FPGA相关的电路设计技术主要对低功耗电路的设计方法进行研究其次研究soc上的IP(IntellectualProperty)核集成技术最后进行Cbus(InterICbus)IP核的设计实现。设计完成的IP核满足C总线的功能要求主设备通过该IP核可以完成往从设备中写入或者读取数据。为了满足复用该IP核采用wIsHBoNE总线接口。用Modelsim进行功能仿真用synplifyPro进行电路综合在IsE软件中实现布局布线最后生成FPGA的编程文件。关键词:嵌入式系统FPGAIP核c总线低功耗堕璺堡三矍查兰堡主堂焦笙壅AbstractWiⅡltllefastdevelopmentofICm锄【ufacturingtechIliquesSOCisgradu枷ybecomingmle.FirstlySOCimegratesa、ⅣholesystcmonasinglechipsoitreducestllescaleofmesystemSecondlySOCgreatlyimproVesmeperfbrIIlanceofthesystembyreducingtedelaybe抑eenchipsinSOBKrdlySOCusescorcbaSeddesignmetllOdology、vhichshOnensthcdesignperiodandlowerstllecostofchips.UsingmeSOCtecllnologyisthef矶】retcndencyofembeddedsystemdevelopmem.Hi曲perfb加anceFPGAitsperfomlanceincludingmedensit”te印eed、mepo、Ⅳerandtllepricecallcompare埘mASIC.Itwillbemenm】retendencyofsystemdevelopmenttouFPGAdesigIlingSOC.FirstlyⅡisp印erstudieslogiccircuitdesi印ingtechnyofFPGAmailllyputs也eresearchonthelowpowercircuitdesignSeconmys砌iestheIPiIltegrationmetllodsonSOCFinallyimplememsCbusIPcore.AlreadyrealizedtlleIPcoreofbasicfh删on。也emaindevicecanreadandwritedata丘omnleslavedevicetllrou出thisIPcore血isIPcorcusestlleWISHBONEbusinterfaceinordcrtoreuseeaSily.Alreadycompletedthe血nctionsirIlmationinModelsimobcainedtllehardwarecircllitinsynpl母PmaJldcompletedplacingandrou血唱intheISEsofc、vareproduced廿eFPGApmgrammingfile.KeyWord:EmbeddedSystemFPGAIPCoreCbusLowPowerDesign哈尔滨工程大学学位论文原创性声明本人郑重声明:本论文的所有工作是在导师的指导下由作者本人独立完成的。有关观点、方法、数据和文献的引用已在文中指出并与参考文献相对应。除文中已注明引用的内容外本论文不包含任何其他个人或集体己经公开发表的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。作者(签字):.己鑫日期:。o’年月曰哈尔滨工程大学硕士学位论文第章绪论.嵌入式系统设计的现状嵌入式系统是以嵌入式计算机为技术核心面向应用、软硬件可裁减对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。嵌入式系统主要由嵌入式处理器、外围硬件设备、嵌入式操作系统以及应用程序等四部分组成是集软硬件于一体可独立工作的“器件”。其主要特点是高可靠性和实时性。嵌入式系统的概念的提出由来已久早期的嵌入式系统只是为了实现特定的控制功能。随着微处理器设计技术和半导体技术的飞速发展以及各个领域应用需求的多样化嵌入式设计技术和芯片技术也经历着一次又一次的革新。在当今数字信息技术和网络技术高速发展的后PC时代嵌入式系统己经被广泛应用于移动计算平台(PDA、掌上计算机)、信息家电(数字电视、机顶盒、网络设备)、无线通信设备(手机、股票接收设备)、工业商业控制(智能工控设备、POS/ATM机)、电子商务平台、航空航天、以及军事应用等诸多领域“。随着集成电路工艺技术的不断发展和集成度的大幅度提高嵌入式系统也由板级向芯片级过渡即片上系统一SOCsC通常是指在单一芯片上实现的数字计算系统其核心技术是重用技术和嵌入式技术。硬件上在单一芯片内包含一个或多个处理器、基于总线的体系结构、大容量的存储器、外设、协处理器和输入输出接口等多种资源软件上包含嵌入式实时操作系统和应用软件用一个芯片构成整个系统。应用SoC设计的系统具有可靠性好、功耗低、体积小等优点是未来嵌入式系统的发展趋势。目前国内嵌入式系统的应用与研究主要还在板级系统国外研究的重点已转向sOc技术。虽然ASIc的成本很低但设计周期长、投入费用高、风险较大功能固定而可编程逻辑器件(Progr锄ableLogicalDevice)设计灵活、功能强大尤其是高密度现场可编程逻辑器件(FieldPrograⅢmableGateArray)其设计性能无论从密度、速度、功耗和价格等多方面己完全能够与AsIc媲美应哈尔滨工程大学硕士学位论文用FPGA进行设计其一次性投入低设计周期短是AsIc无法比拟的。xilinx公司最新推出的SpartanIⅡ系列高性价比FPGA其批量成本已经达到美元/万门的程度其性能价格比已足以与AsIC抗衡。因此FPGA在嵌入式系统设计领域己占据着越来越重要的地位。应用FPGA进行SOPC(SystemonProgrammablechip)设计己成为未来发展的趋势。.嵌入式系统设计的发展趋势()设计是指将客观需求转化为满足该需求的技术系统(或技术过程)的活动。我们可以把设计看作一种变换其输入是一系列的需求而输出为可以实现这些需求的属性化的目标。为了满足应用的需求嵌入式系统设计的发展很快我们认为目前嵌入式系统设计中有几个突出的趋势:设计复杂性提高规模变大设计对象由单机走向系统。产品更新速度加快设计周期缩短。设计要求由单目标走向多目标(功耗、成本、实时性等)一般来说由于应用场合的约束嵌入式系统对于系统的体积、功耗等有较严格的限。嵌入式系统更多采用软硬件异构方式构造设计所涉及的领域由单一领域走向多个领域(软件、硬件、应用环境等)。嵌入式系统有两种基本的实现手段软件和硬件。软件手段是通过运行在微处理器上的程序实现系统功能而硬件手段是通过专用电路实现系统功能。一般来说软件比硬件更加灵活、成本低而专用硬件提供了更高的性能。这两种手段在功能性能上存在巨大的差异为了达到成本和性能的最佳结合兼顾速度和灵活性目前的嵌入式系统大部分采用软硬件异构的构成方式。实现上集成化程度提高设计更加强调设计重用。随着半导体技术的不断发展单芯片上晶体管数量已经接近亿集成在芯片上的功能在不断增加。系统级芯片Soc(SystemonaChip)是在单芯片上实现全电子系统目前已经成为集成电路业界的发展重点。系统级芯片规模大设计复杂需提高设计复用的层次更多地采用IP复用技术设计再利用建立在IP核的基础上。由于单片系统级芯片设计在速度、功耗、成本上与多芯片系统相比占有较大的优势符合嵌入式系统的设计需求嵌入式系统采用系统级芯片哈尔滨工程大学硕士学位论文方式实现成为一种趋势n。嵌入式微处理器重要性增加近二十年来微处理器性能借助微电子工艺和体系结构模型的进步获得飞速地发展平均每年增%微处理器的迅速发展推动了其在嵌入式领域的应用目前几乎所有的嵌入式系统都将嵌入式微处理器作为核心部件。在传统设计中微处理器以芯片的形式使用本身是不能更改的。随着嵌入式系统采用系统级芯片技术嵌入式微处理器更多的以微处理器核的方式存在于Soc芯片中n。嵌入式系统复杂性的提高导致设计过程由传统的个人设计为主转变为有组织的团队设计协同工作。()在嵌入式系统设计迅速发展趋势下传统的嵌入式系统设计方法暴露出了很多方面的不足:软硬件的开发过程割裂缺乏沟通。目前的嵌入式系统在设计早期就分开进行由于异构型系统的软硬件的复杂性这种设计过程使软硬件不能得到协调优化导致了低效的设计。设计自动化层次低系统级设计依赖设计人员手工进行大规模的设计超出了设计人员的思维能力导致设计效率较低。设计过程串行化增加了设计周期。目前的设计流程主要采用先硬件后软件的开发模式一般是在实现了硬件的物理原型之后才开始进行软件的开发。这种串行设计不能充分及时地进行全系统验证导致了设计失误增加设计过程拖延。目前的设计方法将微处理器作为固定的模块不包含对于定制微处理器的支持。缺乏对于设计重用的支持。日益复杂的IP模块、嵌入式软件称为传统方法的沉重负担。目前设计生产率的提高速度赶不上设计复杂度增加的速度目前的设计方法和开发工具成为制约嵌入式系统发展的瓶颈。嵌入式系统设计技术期待革新。()针对嵌入式系统设计面临的问题研究者们开始探索新的设计方法软硬件协同设计(Hardware/softwarecodesign)是最为重要的一种。软硬件协同设计的研究始于年代初期第一届Internationalworkshopon哈尔滨工程大学硕士学位论文Hardware/Softwarecodesign会议于年召开标志着软硬件协同设计领域的正式确立。目前对于软硬件协同设计还没有权威的定义但是大部分研究者都认为软硬件协同设计应该具备下面这些特征:在系统层设计中对软硬件部分使用统一描述和工具进行集成的开发并具有跨越软硬件界面进行系统优化的能力提供软硬件协同仿真的能力可开展全系统设计验证支持多领域专家进行协同开发。软硬件协同设计不仅是一种设计技术同时也是一种新的设计方法软硬件协同设计的核心问题是沟通软件设计和硬件设计避免系统中关系密切的两部分设计过早独立。同传统设计方法相比软硬件协同设计提高了设计抽象的层次并拓展了设计覆盖的范围采用软硬件协同设计技术可以使嵌入式系统设计更好和更快:软硬件协同设计采用统一的工具和表示可合理划分系统软硬件界面分配系统功能在性能、成本等方面进行折衷平衡得到更优化的设计。软硬件协同设计方法采用并行设计(concurrentdesign)和协作设计(cooperatedesign)的思想提高了设计效率缩短了设计周期。软硬件协同设计研究目前还处于发展阶段许多技术仍未成熟和实用化但是该技术将给嵌入式系统设计带来革命性的变化极大的提高设计生产力软硬件协同设计技术的研究意义重大“。.课题研究工作简介随着集成电路制造技术的快速发展系统芯片soc逐渐成为现实。SoC将一个完整的系统集成在单个芯片上从而缩小了系统的体积Sc减少了SoB系统中芯片与芯片之间互连延时。从而提高了系统的性能。高性能FPGA其设计性能无论从密度、速度、功耗和价格等多方面己完全能够与AsIc媲美因此应用FPGA进行SOC设计己成为未来发展的趋势。本文首先研究与FPGA相关的逻辑电路设计技术主要对低功耗电路的设计进行研究通过这些研究为后面的设计打下基础。其次研究SOc上的IP哈尔滨工程大学硕士学位论文核集成技术进行研究最后进行IC总线IP核的设计实现。预期要设计一个能够复用的IP核为以后的设计提供组件。.论文组织结构本论文分为五章按如下方式组织:第一章是论文的绪论部分介绍了嵌入式系统设计的现状和发展趋势并提出了论文的主要工作和论文结构。第二章是sOC技术及IP复用技术主要研究sOc的片上互连技术也就是片上总线并对IP核的复用技术进行研究第三章是FPGA的相关设计技术主要对逻辑电路的一些设计技术进行研究尤其是低功耗电路的设计技术。第四章是C总线的原理研究C总线的实现原理为下章的设计打下基础。第五章是c总线接口IP核的设计实现主要是编码实现该IP核并进行功能仿真综合出电路最后生成可以下载到FPGA中的编程文件。哈尔滨工程大学硕士学位论文.Soc概述第章Sc技术及lP复用技术以往的sOc设计依赖于固定的AsIc(ApplicationspecificIntegratedCircuit)其结果是导致设计开发周期变长产品上市时间难以保证开发费用大大增加。而当需要对原始设计进行修改时己固定的AsIc意味着昂贵的成本浪费。与ASIC相比较而言可编程逻辑器件PLD(ProgramableLogicDevices)设计起来十分灵活、便捷不仅性能、速度、连接都具有优势而且由于缩短上市时间再加上PLD是按照标准器件生产出来的规模效应使得PLD的成本相对十分低廉故而在半导体领域中PLD器件呈现出一枝独秀的增长态势越来越多地成为系统级芯片设计的首选。因此著名的可编程逻辑器件生产商美国Atera公司适时地提出了基于FPGA的soc设计方案一SOPC。随着处理器以IPcore的形式存在并且很容易地以硬核、半软核、软核形式嵌入到FPGA中未来的电路板上只有两部分电路:模拟部分(包括电源)和一块FPGA芯片最多还有一些大容量的存储器这些构成了SoPC的雏形。可编程片上系统(sPc)是一种特殊的嵌入式系统:首先它是片上系统(sC)即由单个芯片完成整个系统的主要逻辑功能:其次它是可编程系统具有灵活的设计方式可裁减、可扩充、可升级并具备软硬件系统在线可编程的功能。sPc设计技术实际上涵盖了嵌入式系统设计技术的全部内容除了以处理器和实时多任务操作系统为中心的软件设计技术、以PCB和信号完整性分析为基础的高速电路设计技术以外sOPc还涉及目前引起普遍关注的软硬件协同设计技术。由于SOPc的主要逻辑设计是在可编程逻辑器件内部进行传统的调试设备如逻辑分析仪、数字示波器等己很难进行直接测试分析因此必将对以仿真技术为基础的软硬件协同设计技术提出更高的要求。sOPc的发展很大程度上要依靠IPCore的发展这里就要明确一个IP哈尔滨工程大学硕士学位论文复用的概念n。.IPcore复用IP核是将一些在数字电路中常用但比较复杂的功能块如FIR滤波器、SDRAM控制器、PCI接口等等设计成可修改参数的模块让其它用户可以直接调用这些模块以避免重复劳动。随着cPLI)/FPGA的规模越来越大设计越来越复杂使用IP核是一个发展趋势。IP核复用技术是sOPc设计的关键。在sOPc设计中电子工程师将不是设计新的功能模块当然这也很重要但更多的精力会放到如何评估、验证和集成多个己经存在的软硬件模块也就是从以功能设计为基础的传统设计流程转变为以功能组装为基础的全新流程。微处理器、存储器乃至更多的数字电路都可作为或将可作为SOPc设计时用到的IP核。IP资源复用(IPReuse)是指在集成电路设计过程中通过继承、共享或购买所需的智力产权内核然后再利用EDA工具进行设计、综合和验证从而加速流片过程降低开发风险。IPReuse己逐渐成为现代集成电路设计的重要手段在日新月异的各种应用需求面前超大规模集成电路设计时代正步入一个IP整合的时代。IPReuse不仅仅应用于专用集成电路设计对基于FPGA的嵌入式系统设计领域而言更是具有举足轻重的地位。FPGA在采用IP内核方面走在了市场的前面因为FPGA具有极高的灵活性和面市时间短的特点使得设计可以在数小时而不是数周内完成。由于FPGA密度达到了百万门甚至是千万门越来越多的设计师倾向于使用IP内核保持和提高产品的产量可编程逻辑价格低廉可以作为最佳原型设计而且不需要昂贵的EDA设计上具大大降低了设计门槛m。现在流行的IPcore多是以软核、半软核、硬核形式存在软核是用户购买后可以随意更改、升级等其硬件描述代码是显式的而半软核购买后只能对核进行简单配置不能更改核的功能而硬核就如同前面所讲的Nios、PowerPC等是固化在FPGA产品内部的显然只提供给用户使用。这三种核各有优势、各有缺憾纯软核虽然给用户以很大的自由度但哈尔滨工程大学硕士学位论文是价格非常昂贵甚至某些核价格在上万美金而且在实际应用的时候的可靠度很大程度上要依赖设计人员的水平半软核要便宜很多甚至某些核可以随开发上具奉送使用时一般根据手册进行配置就没什么问题但这种核不通用只能在少数器件上实现硬核是完全免费的因为在购买可编程逻辑器件的时候硬核的价钱己经合在器件售价中了硬核显然是最为成熟的产品而且性能相对来说十分强劲同时也是最可靠的。IP核是sOPc设计的“积木”一个好的IP核应该包含以下特点:()可移植和可综合()灵活和参数化的()易于集成当一个SOPC设计上程师选择IP时应该根据以上几点考虑否则选用的IP将不能和外界的其他模块或电路很好地配合这时如果设计人员仍希望能很好地利用它们就必须对这些IP核而且未必能够修改这个过程可能会使设计的上作量大到无法忍受的程度这就完全违背了IP复用的初衷了”【B】【l】..soc片上总线..片上总线概述随着以IP为基础的Sc设计时代的到来出现了专门从事IP核开发和研究的设计公司。这些不同的IP公司会根据市场需求结合自己的技术优势有效地配置和优化各种资源提供更多更好性能优化的IP核。不同的厂商独立设计不同功能的IP模块需求方根据自己设计的需要购买特定功能的IP核例如微处理器核、DSP核、存储器核、MPEG核、接口类的PcIusBscI核等然后将它们集成在一个系统芯片上实现整个系统功能。不同厂商设计者互相独立地设计IP核采用的接口协议各不相同当集成在一个芯片上的时候会遇到众多IP核互联的问题如果没有统一的接口标准IP核的需求者就要根据自己实际设计需要设计必要的附属接口逻辑。这种情况一方面会浪费Sc设计者宝贵的时间另一方面会因IP核的使用不便而影响IP核的商业交易甚至大大抵消了IP核复用和soc设计方法的优哈尔滨工程大学硕士学位论文势。因此急需一种标准的互联协议就像计算机主板PcIvME和IsA总线那样的只需板卡按照这个总线标准设计生产不同厂商的产品也可以实现即插即用。片上总线(OcB)技术就是在这样一个背景下产生的。目前形成较有影响力的三种总线标准为IBM公司的coreconnectARM公司的AMBA和silicorecorp公司的wIsHBONE三种总线技术的最大区别在于提供技术的特性和规范的完整性。coreconnect和AMBA都给设计者提供了一种系统总线的选择。当系统集成设计者需要连接不同设计的IP核时在建立全面完整的系统时需要建立连接桥。而在wIsHBONE中所有的核都连接在同一准接口上系统设计者可以选择在一个微处理器核上实现两个接口一个给高速低延迟设备一个给低速低性能设备m。..WlSHBONE总线wIsHBONE总线简单、灵活、可移植性好己被OPENcRE联盟采用。本文从结构、接口信号、总线操作及数据组织几个方面对wISHBoNE总线做全面介绍。()结构及连接方式wISHBONE采用MASTER/SLAVE结构由MASTER发起每次与SLAvE之间的数据传输。wIsHoBoNF提供了四种不同的互联方式供用户选择:点对点、数据流、共享总线和交叉开关。点对点是最简单的互联方式允许一个MASTER与一个SLAVE直接连接(图.)。疆【s翔姗X¥旺S疆姗麟娼嗽sI烈咒图.点对点连接哈尔滨工程大学硕士学位论文数据流互连用于数据连续传送方式。每一个IP核既是MAsTER又是S乙AVE。数据从一个IP核流向另一个IP核实现数据流水操作(图.)。IPREAIpa。邓B’Ip。RE’e’酣ln(酣lN酣iL\jHq图.数据流互连共享总线方式用于多个MAsTER与多个sLAvE相连由仲裁器通过优先级或轮询方式决定哪个MAsTER取得总线控制权。这种方式简洁节省逻辑门和布线面积不过由于多个MASTER要求占用总线时有的MASTER要等待所以数据传输率低(图.)。图.共享总线互连交叉开关也可连接多个MAsTER和多个sLAVE不过它允许多个MASTER哈尔滨工程大学硕士学位论文分别与多个SLAVE同时互连(图.)。显然交叉开关的数据传输率高同时逻辑与布线的代价也增大。N铘:D加mL蟠IMOIEOⅫi眦强【E囱崮豳()接口信号图.交叉开关互连RSTI已K勰O()EATI()璧|:唧c)考吡。酋一重毋U()gS隔OACKICYCO图.wIsHBoNE总线端口信号wISHBONE总线端口连接如图.所示。后缀I为输入端O为输出端各信号具体含义在下面的数据传输方式中再详细介绍。()数据传输方式afj:吒.I目露H墨芝菇攀鬈嚣哈尔滨工程大学硕士学位论文wIsHBONE总线的数据传输方式也有三种:单读写、块读写和RMw(ReadModifiedWrite)。单读写操作单读写操作就是读或写单个操作数是最基本的wIsHBONE总线操作。单读周期如图.所示。a最IADROC)D撑I()DTO()张Os皿IgIBOAcI(ICYCO图.单读写周期时钟上升沿OMAsTER置ADROSTBO和CYCO为高wEO为低。sLAVE检测到sTBO为高对地址译码将有效的数据放到DATo上。sLAvE将ACKO置高表示已经把有效的数据放在数据线上。MAST腿在时钟上升沿检测到AcKI为高(点对点方式MAsTER的ACKI与sLAvE的AcK直接连接)得知sLAvE己经把数据准备好。询蚓印留酗圈【sli譬哈尔滨工程大学硕士学位论文^lAsTER锁存数据端口DATI上的数据将sTB置低。从上面单读出过程可以看出wISHBoNE总线采用握手协议每次数据传输开始由MASTER将sTBO置高告知sLAVE要进行传输。作为应答sLAvE可以置AcK一为高表示已经准备好:也可以置RTY』为高表示sLAvE现在忙以后再试还可以置ERRO为高表示出错。这二种方式都可以结束读或写周期。单写操作与单读类似只是wEO要置高眦sTER在sTBO置高之后将有效数据放在数据线上供SLAvE在时钟上升沿锁存。块读写操作块读写操作可以看作为多个单读写操作连续进行。块读写操作期间CYCO始终为高MASTER一直占用SLAVE。RMwR删操作可以理解为一个单读操作后面紧跟一个单写操作构成一个块操作。在RMw操作过程中CYcO始终为高表示时钟把握SLAVE的控制权“】【ja.本章小结本章主要研究IP核的复用方法和Soc的片上总线。IP核不仅仅应用于专用集成电路设计对基于FPGA的嵌入式系统设计领域而言更是具有举足轻重的地位FPGA在采用IP内核方面走在了市场的前面。一个好的IP核应该满足:可移植和可综合灵活和参数化的易于集成。IP核要方便的在soc中使用就必须满足即插即用的要求这就需要各个IP核要有统一的对外接口wIsHBoNE就是适应这种需要产生的协议简单高效采用该协议的IP核可以方便在不同的设计中使用。堕堡堡三堡奎堂堡主堂垡鲨塞第章FPGA设计技术.FPGA发展与应用前景..FPGA的发展概况FPGA器件起源于美国Xilinx公司的创造xilinx公司于年推出世界上第一个FPGA器件。时至今日FPGA己经历了十几年的发展历史。在这十几年的发展过程中以FPGA为代表的数字系统现场集成技术取得了惊人的发展现场可编程逻辑器件从最初的个可利用门发展到年代的万个可利用门乃至到本世纪初国际上现场可编程逻辑器件的著名厂商Atera公司、xilinx公司又陆续推出了数百万门至上千万门的单片FPGA芯片将现场可编程器件的集成度提高到一个新的水平n”。..FPGA的优点及应用前景FPGA一现场可编程门阵列器件顾名思义是一种可由用户根据所设计的数字系统的要求在现场由自己配置定义的高密度专用数字集成电路。FPGA将现代的vLsI逻辑集成的优点和可编程器件设计灵活制作及上市快速的长处相结合使设计者在FPGA开发系统软件的支持下现场直接根据系统要求定义和修改其逻辑功能。使一个包含数千个逻辑门的数字系统设计实现采用FPGA技术即可几天内完成。通常归纳FPGA主要优点如下:()FPGA的用户现场可编程的特性大大缩短了设计实现周期可以在很短的时间由设计工程师现场提供样机使产品的上市时间大大缩短适于现代的市场竞争需求。同时FPGA可以反复编程重复使用没有前期投资风险且可以在开发系统中自接进行系统仿真故也没有工艺实现的损耗以致在小批量的产品应用场合成本远低于门阵列和全定制AsIC。而且FPGA芯片在出厂之前都做过百分之百的测试不需要设计人员承担风险设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设哈尔滨工程大学硕士学位论文计所以它可做全定制或半定制AsIc电路的中的样片。FPGA是设计周期最短、开发费用最低、风险最小的器件之一。()FPGA可以提供比PLD和EPLD器件更大的有效逻辑容量密度不仅大大减少印刷电路板的空间大大降低系统功耗同时大大提高了系统设计的上艺可实现性和产品的可取性。它所能实现的功能也越来越强同时也可以实现系统集成。()FPGA内部有丰富的触发器和I/引脚而且FPGA采用高速cHMoS上艺功耗低可以与CMOS、TTL电平兼容。()FPGA开发软件包中有各种输入工具和仿真工具及版图设计工具和编程器等全线产品电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真只至最后芯片的制作。当电路有少量改动时更能显示出FPGA的优势。电路设计人员使用FPGA进行电路设计时不需要具备专门的Ic深层次的知识FPGA软件易学易用可以使设计人员更能集中精力进行电路设计快速将产品推向市场。正是由于FPGA的各方面相得益彰的优点和长处使之近年来在通讯、航天、电脑应用、程序控制等多方面获得较好的应用。特别是通信、网络产品和专业图像处理设备FPGA都发挥着非常重要的作用。随着FPGA性能的高速发展和设计人员自身能力的提高FPGA将进一步扩大可编程芯片的领地将复杂专用芯片挤向高端和超复杂应用。目前FPGA的发展趋势主要体现在以下几个方面:()继续向更高密度、更大容量的千万门系统级方向迈进大容量FPGA是市场发展的焦点。()向低成本、低电压、微功耗、微封装和绿色化发展采用深亚微米的半导体工艺后器件在性能提高的同时价格也在逐步降低。由于便携式应用产品的发展对现场可编程器件的低压、低功耗的要求日益迫切。()IP资源复用理念将得到普遍认同并成为主要设计方式IP内核得到进一步发展由于通讯系统越来越复杂FPGA的设计也更加庞大这促进了设计人员对IP核的需求。各大厂家继续开发新的IP’并将提供“硬件”IP即一些功能在出厂时就固化在芯片中。()MCU、DSP、MPU等嵌入式处理器IP将成为FPGA应用的核心SOPC哈尔滨工程大学硕士学位论文时代将会到来用户根据应用选择处理器和I/O然后就可以编程自己的SOPC。由此SOPC就进入了DSP/MCU的应用领域成为普及的产品。随着FPGA规模不断变大cPUDSP'更大规模的存储器都己经或即将嵌入FpGA内sOPc的时代可能己经离我们不远了n”。.FPGA的实现原理..查找表(LookupTabIe)的原理与结构查找表LUT本质上就是一个RAM。目前FPGA中多使用输入的LUT所以每一个LUT可以看成一个有位地址线的x的RA卜。当用户通过描述了一个逻辑电路以后PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果并把结果事先写入RAM这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表找出地址对应的内容然后输出即可。图.是一个输入与门的例子。实际逻辑电路LUT的实现方式l仁)i:吕二£卜一“d一abcd输入逻辑输出地址RAM中存储的内容l图.四输入与门哈尔滨工程大学硕士学位论文..基于查找表(LuT)的FPGA的结构我们看一看川nSpartanII的内部结构如图.。Spar七anII主要包括CLBsI/O块RAM块和可编程连线(未表示出)。在SpartanII中一个CLB包括个SIices每个SIices包括两个LUT两个触发器和相关逻辑。如图.所示SIices可以看成是SpartanII实现逻辑的最基本结构(xi|in其他系列如SpartanXLVirtex的结构与此稍有不同)。虱圆胃圈瓣醐爵戮图xilill)(Span趾一II芯片内部结构图.Sices结构甜徼m洲吖gH瑚铭阳洲烈雌哈尔滨工程大学硕士学位论文..查找表结构的FPGA的实现原理我们还是以图.的电路为例:A日eDCLK图.四输入与门ABCD由FPGA芯片的管脚输入后进入可编程连线然后作为地址线连到LUTLuT中已经事先写入了所有可能的逻辑结果通过地址查找到相应的数据然后输出这样组合逻辑就实现了。该电路中D触发器是直接利用LuT后面D触发器来实现。时钟信号CLK由I/脚输入后进入芯片内部的时钟专用通道直接连接到触发器的时钟端。触发器的输出与I/O脚相连把结果输出到芯片管脚。这样PLD就完成了图.所示电路的功能(以上这些步骤都是由软件自动完成的不需要人为干预)。这个电路是一个很简单的例子只需要一个LuT加上一个触发器就可以完成。对于一个LuT无法完成的的电路就需要通过进位逻辑将多个单元相连这样FPGA就可以实现复杂的逻辑。由于LUT主要适合SRAM工艺生产所以目前大部分FPGA都是基于SRAM工艺的而SRAM工艺的芯片在掉电后信息就会丢失一定需要外加一片专用配置芯片在上电的时候由这个专用配置芯片把数据加载到FPGA中然后FPGA就可以正常工作由于配置时间很短不会影响系统正常工作。也有少数FPGA采用反熔丝或Flash工艺对这种FPGA就不需要外加专用的配置芯片。哈尔滨工程大学硕士学位论文.FPGA设计的相关问题..有限字长的影响任何一个数值都是用有限字长的二进制数表示的所以在FPGA设计时必须考虑有限字长的影响。有限字长的影响主要带来三方面的误差:输入量化误差、系数量化误差和运算量化误差。模拟量值在进入FPGA器件之前需要A/D变换A/D采样时所得到的数值只能以有限字长的二进制代码表示与真实值之间存在偏差这就是输入量化误差。提高A/D器件的采样精度可以减小输入量化误差。在用FPGA器件设计数字滤波器时数字滤波器系数必须用二进制代码表示并按规定位数进行量化。由于量化处理引起量化误差滤波器实际系数偏离理论计算值从而使滤波性能变差其原因就是系数量化误差的影响。在数据处理电路中经常需要进行算术运算例如将两个N位字长的二进制数做乘法运算乘法器的结果输出一般用N位字长表示这就需要舍位处理然后再进行下一步运算否则最终结果的数据宽度是难以想象的。但是舍位就引入了误差这种误差属于运算量化误差也称为运算噪声。为了得到精确结果一方面可以选用合适的运算结构尽量减少有限字长效应另一方面可以采用合适的字长以降低运算噪声。FPGA器件的字长可以根据需要任意指定字长越大量化误差就越小但与此同时电路占用的片内资源就越多编译、仿真时间和系统成本也会因之而上升。图.给出了利用FLExlOK器件实现、、和x位乘法器所分别占用的LE和EAB的数目。xxx缸图.乘法器所占用的资源堕玺堡三堡查堂堡主鲎垡望塞..时钟问题无论是用离散逻辑、可编程逻辑还是用全定制器件实现任何数字电路设计不良的时钟在极限温度、电压或制造工艺存在偏差的情况下将导致系统错误的行为所以可靠的时钟设计是非常关键的。在FPGA设计时通常采用以下四种时钟:全局时钟、门控时钟、多级逻辑时钟和波动式时钟多时钟系统是这四种时钟类型的任意组合。()全局时钟对于一个设计项目来说全局时钟(或同步时钟)是最简单和最可预测的时钟。在FPGA设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动单个主时钟去控制设计项目中的每一个触发器。FPGA一般都具有专门的全局时钟引脚在设计项目时应尽量采用全局时钟它能够提供器件中晟短的时钟到输出的延时。图.给出全局时钟的一个实例定时波形显示出触发器的输入数据D..应遵守建立时间和保持时间的约束条件。如果在应用中不能满足建立和保持时间的要求则必须用时钟同步输入信号。DlDDGb柏CLK图.全局时钟()门控时钟在许多应用中整个设计项目都采用外部的全局时钟是不可能或不实际的所以通常用阵列时钟构成门控时钟。门控时钟常常同微处理器接口有关例如用地址线去控制写脉冲。每当用组合逻辑来控制触发器时通常都存在着门控时钟。在使用门控哈尔滨工程大学硕士学位论文时钟时应仔细分析时钟函数以避免毛刺的影响。如果设计满足下述两个条件则可以保证时钟信号不出现危险的毛刺门控时钟就可以像全局时钟一样可靠工作:驱动时钟的逻辑必须只包含一个“与门”或一个“或门”如果采用任何附加逻辑就会在某些工作状态下出现由于逻辑竞争而产生的毛刺。逻辑门的一个输入作为实际的时钟而该逻辑门的所有其它输入必须当成地址或控制线它们遵守相对于时钟的建立和保持时间的约束。图.“与门”门控时钟图.和图.是可靠门控时钟的实例。在图.中用一个”与门”产生门控时钟在图.中用一个”或门”产生门控时钟。在这两个实例中将引脚nwR和nwE作为时钟引脚引脚ADD..是地址引脚两个触发器的数据是信号Dn..经组合逻辑产生的。图.和图.的波形图显示出有关的建立时间和保持时间的要求这两个设计项目的地址线必须在时钟保持有效的整个期间内保持稳定(nwR和nwE是低电平有效)。如果地址线在规定的时间内未保持稳定则在时钟上会出现毛刺造成触发器发生错误的状态变化。另一方面数据引脚Dn..只要求在nwR和nwE的有效边沿处满足标准的建立和保持时间的规定。鼍肌m嚣黧AAAAi帆删哈尔滨工程大学硕士学位论文图.“或门”门控时钟设计人员往往可以将门控时钟转换成全局时钟以改善设计项目的可靠性。图.给出如何用全局时钟重新设计图.所示的电路即让地址线去控制D触发器的输入使能。图.将“与门”门控时钟转化成全局时钟m跏|!啪州薹搦m跏m篇勰mmm瑚盟脚AAAA哈尔滨工程大学硕士学位论文许多FPGA设计软件如MAxPLusII软件都提供这种带使能端的D触发器。当ENA为高电平时D输入端的状态被时钟激励到触发器中当ENA为低电平时则维持现有状态。图.中重新设计的电路的定时波形表明地址线不需要在nwR有效的整个期间内保持稳定而只要求它们和数据引脚一样符合同样的建立和保持时间这样对地址线的要求就少很多。图.给出了一个不可靠的门控时钟的例子。位同步加法计数器的RcO输出用来作为触发器的时钟端由于计数器的多个输出都起到了时钟的作用这就违反了可靠门控时钟所需的条件之一。在产生RcO信号的触发器中没有一个能考虑为实际的时钟这是因为所有触发器几乎在相同的时刻都发生翻转但是我们并不能保证在FPGA器件内部QA、QB、QC到D触发器的布线长短一致因此正如图.的时间波形所示在计数器从计到时RC线上会出现毛刺(假设QC到D触发器的路径较短即QC的输出先翻转)。DATAENABLECLX图.不可靠的门控时钟哈尔滨工程大学硕士学位论文图.l给出一种可靠的全局时钟控制电路它是图.的改进即用RCO来控制D触发器的使能输入。这个改进并不需要增加PLD的逻辑单元而且图.电路等效于图.电路但却可靠得多“”。ENABLECLK图.不可靠的门控时钟转换为全局时钟..建立和保持时间“建立时间”定义为在时钟跳变前数据必须保持稳定的时间。“保持时间”定义为在时钟跳变后数据必须保持稳定的时间如图.所示。每一种具有时钟和数据输入的同步数字电路都会在技术指标表中规定这两种时间。数据强函二=二j豳i建立时商保持时间}卜争叫对钟厂一图.建立时间和保持时间数据稳定传输必须满足建立和保持时间的要求否则输出数据就可能有错误或变得不稳定。在FPGA设计中应对信号的建立和保持时间做充分考虑尽量避免在数据建立时间内或其附近读取数据。对于级联的功能模块或者数字逻辑器件后一模块或器件的工作时钟一般取前一模块或器件工作时钟的反相信号这样就可以保证时钟的边沿位于数据的保持时间内。..冒险现象信号在FPGA器件内部通过连线和逻辑单元时都有一定的延时。延时的哈尔滨工程大学硕士学位论文大小与连线的长短和逻辑单元的数目有关同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素多路信号的电平值发生变化时在信号变化的瞬间组合逻辑的输出状态不确定往往会出现一些不正确的尖峰信号这些尖峰信号称为“毛刺”。如果一个组合逻辑电路中有“毛刺”出现就说明该电路存在“冒险”。图.给出了一个逻辑冒险的例子从图.的仿真波形可以看出“A、B、C、D”四个输入信号的高低电平变换不是同时发生的导致输出信号“oUT”出现了毛刺。由于信号路径长度的不同译码器、数值比较器以及状态计数器等器件本身容易出现冒险现象将这类器件直接连接到时钟输入端、清零或置位端口的设计方法是错误的它可能会导致严重的后果。图.存在逻辑冒险的电路示例日A。炉Bl}C遵D.谶UT图.图.所示电路的仿真波形冒险往往会影响到逻辑电路的稳定性时钟端口、清零和置位端口对毛刺信号十分敏感任何一点毛刺都可能会使系统出错因此判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须要考虑的问题。哈尔滨工程大学硕士学位论文判断一个逻辑电路在某些输入信号发生变化时是否会产生冒险可以从逻辑函数的卡诺图或逻辑函数表达式来进行判断。在数字电路设计中采用格雷码计数器、同步电路等可以大大减少毛刺但它并不能完全消除毛刺。消除毛刺信号的方法有很多通常使用“采样”的方法。一般说来冒险出现在信号发生电平转换的时刻也就是说在输出信号的建立时间内会发生冒险而在输出信号的保持时间内是不会有毛刺信号出现的。如果在输出信号的保持时间内对其进行“采样”就可以消除毛刺信号的影响。斟客丑广E埚筹J图.消除毛刺信号的方法之一》Al。目卜B曲一CI嗣卜DIi卜SAmLEO厂\。甜聊商OUT.厂毛刺信号的输出信号图.图.示电路的仿真波形有两种基本的采样方法:一种方法是在输出信号的保持时间内用一定宽度的高电平脉冲与输出信号做逻辑“与”运算由此获取输出信号的电平值。图.明了这种方法采样脉冲信号从输入引脚“sAMPLE”引入。从图.真波形上可以看出毛刺信号出现在“TEsT”引脚上而“oUT’引脚上的毛刺已被消除了。另一种方法是利用D触发器的D输入端对毛刺信号不敏感的特点在输ABcD掂m翥哈尔滨工程大学硕士学位论文出信号的保持时间内用触发器读取组合逻辑的输出信号。图.给出了这种方法的示范电路图.是仿真波形。冒器丑广U蛆氍r一图.消除毛刺信号方法之二‘A:l‘’一B一C厂..。....J一CLK厂厂厂.厂BT陌、采样时钟.黼UTI图.图.所示电路的仿真波形一j基图.利用RC滤波器滤除毛刺去除FPGA器件输出引脚上的毛刺还可以采用低通滤波的方法。由于毛刺信号的持续时间很短从频谱上分析毛刺信号相对于有用信号来讲它的能量分布在一个很宽的频带上所以在对输出波形的边沿要求不高的情况下在FPGA的输出引脚上串接一个RC电路构成一个低通滤波器能够滤除毛刺信号的大部分能量如图.所示。图中给出滤波前后“A”点和“A”点处的波形毛刺信号经过Rc低通滤波器后残余信号很小不会对后续电路带来危害o。啥尔滨工程大学硕士学位论文..清零和置位信号清零和置位信号对毛刺也是非常敏感的最好的清零和置位信号是从器件的输入引脚直接引入。给数字逻辑电路设置一个主复位“cLRN”引脚是常用的好方法该方法是通过主复位引脚给电路中每个功能单元馈送清零或置位信号。与全局时钟引脚类似几乎所有FPGA器件都有专门的全局清零引脚和全局置位引脚。如果必须从器件内产生清零或置位信号则要按照“门控时钟”的设计原则去建立这些信号确保输入信号中不会出现毛刺信号。若采用门控清零或者门控置位则单个引脚或者触发器作为清零或置位的源而将其它信号作为地址或控制线。在清零或置位的有效期间地址或控制线必须保持稳定决不能用多级逻辑或包含竞争状态的单级逻辑产生清零或置位信号。..信号的延时对FPGA来说由于路径必须通过电晶体开关因此连线延时一直是路径延时的主要部分。信号每通过一个逻辑单元就会产生一定的延时。延时的大小除了受路径长短的影响外还受器件内部结构特点、制造工艺、工作温度、工作电压等条件的影响。现有的FPGA设计软件都可以对内部延时进行比较准确的预测。器件内部延时越大器件的工作速度也就越低所以降低信号传输延时是提高处理速度的关键。而在某些情况下需要对信号进行一定的延时处理以完成特定的功能。

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/14
仅支持在线阅读

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部