2026/2/5 3:42:14
网站建设
项目流程
广宁县住房和城乡建设局网站,wordpress 邮箱变更,wordpress获取文章中的图片不显示,上海公司名字查询第一部分 基本知识第1章 FPGA开发概述第2章 FPGA板级电路设计第1章 FPGA开发概述本章导读本章从FPGA的一些基本概念入手#xff0c;将ASIC、ASSP、ARM、DSP与FPGA比对#xff0c;同时也论及FPGA开发语言及主要厂商#xff1b;接着对FPGA技术在嵌入式应用中的优势和局限性进行…第一部分 基本知识第1章 FPGA开发概述第2章 FPGA板级电路设计第1章 FPGA开发概述本章导读本章从FPGA的一些基本概念入手将ASIC、ASSP、ARM、DSP与FPGA比对同时也论及FPGA开发语言及主要厂商接着对FPGA技术在嵌入式应用中的优势和局限性进行讨论FPGA是一项综合性很强的技术门类因此我们在本章也会关注它所涉及的一些基本技能最后我们将论述FPGA的应用领域和开发流程。当然了如果你自认为已经入门FPGA对于本章可能会提及的一些基础概念耳熟能详那么不妨跳过本章。1.1 FPGA基础入门2015年伊始Intel欲出资百亿美金收购Altera的新闻在半导体业内引发一场不小的轰动。而时隔不到半年这则新闻居然成为现实并且最终的收购价格167亿美金也比传闻要高出许多如图1-1所示。在早些年里其实Intel与Altera已经或多或少有些合作了。Intel此举的动机非常明显不仅是希望在PC领域继续拓展服务器市场与数据中心的应用——Altera的可编程器件在这方面能够提供强劲的性能竞争力而且也是期望借助Altera来扩宽自身的多元化发展战略——Altera是目前唯一一家毛利率好于Intel的半导体公司并且其三分之二的收入来自于电信、无线、军事和太空等领域。无论如何Altera能够以其单一的FPGA产品线“傍上”Intel或多或少都证明了FPGA存在的价值。要说Intel谁人不晓基本上家家户户都或多或少有一些带着Intel烙印的家当而反观Altera别人可以不知道但是你要是不知道就要遭受各种鄙视了。身处电子行业没有玩过FPGA不稀奇但是没有听说过FPGA就有些难为情了。FPGAAltera什么情况好吧就当你真的什么都不知道吧下面先开始我们的“扫盲行动”。入过门的别嫌烦直接略过本节就好。1.FPGA是什么简单来说FPGA就是“可反复编程的逻辑器件”。如图1-2所示这是一个Altera公司最新的Cyclone V Soc FPGA器件从外观上看似乎和一般的CPU芯片没有太大差别。FPGA取自Field Programmable Gate Array这四个英文单词的首个字母译为“现场Field可编程Programmable逻辑阵列Gate Array”。至于FPGA到底是什么能够干什么又有什么过人之处下面我们就把它和它的“师兄师弟”摆在一起一一呈现这些问题的答案。2.FPGA、ASIC和ASSP抛开FPGA不提大家一定都很熟悉ASIC与ASSP。所谓ASIC即专用集成电路Application Specific Integrated Circuit的简称而ASSP即专用标准产品Application Specific Standard Parts的简称。电子产品中它们无所不在还真是比FPGA普及得多得多。但是ASIC以及ASSP的功能相对固定它是为了专一功能或专一应用领域而生希望对它进行任何的功能和性能的改善往往是无济于事的。打个浅显的比喻如图1-3所示如果说ASIC或ASSP是布满铅字的印刷品那么FPGA就是可以自由发挥的白纸一张。使用了FPGA器件的电子产品在产品发布后仍然可以对产品设计做出修改大大方便了产品的更新以及针对新的协议标准做出的相应改进从而可以加速产品的上市时间并降低产品的失败风险和维护成本。相对于无法对售后产品设计进行修改的ASIC和ASSP来说这是FPGA特有的一个优势。由于FPGA可编程的灵活性以及近年来电子技术领域的快速发展FPGA也正在向高集成、高性能、低功耗、低价格的方向发展并且逐渐具备了与ASIC和ASSP相当的性能使其被广泛地应用在各行各业的电子及通信设备中。3.FPGA、ARM和DSP与ASIC相比FPGA、ARM和DSP都具备与生俱来的可编程特性。或许身处开发第一线的底层工程师要说No了很多ASIC不是也开放了一些可配置选项实现“可编程”特性吗是的但与FPGA、ARM、DSP能够“为所欲为”的任意操控一整个系统而言ASIC的那点“可编程”性的确摆不上台面。当然换个角度来看FPGA、ARM和DSP都或多或少集成了一些ASIC功能正是这些ASIC功能加上“可编程”特性使得它们相互区别开了并且各自独霸一方。ARMAdvanced RISC Machines是微处理器行业的一家知名企业设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。由ARM公司设计的处理器风靡全球大有嵌入式系统无处不ARM的趋势。因此我们通常所说的ARM更多的是指ARM公司的处理器即ARM处理器如图1-4所示。ARM通常包含一颗强大的处理器内核并且为这颗处理器量身配套了很多成熟的软件工具以及高级编程语言这也是它备受青睐的原因之一。当然了ARM不只是一颗处理器而已因为在ARM内核处理器周边各种各样精于控制的外设比比皆是例如GPIO、PWM、AD/DA、UART、SPI、IIC……ARM的长处是控制和管理在很多工业自动化中大有用武之地。DSPdigital singnal processor如图1-5所示即数字信号处理器是一种独特的微处理器有自己的完整指令系统能够进行高速、高吞吐量的数字信号处理。它不像ARM那么“胡里花俏”它更“专”。它只专注一件事就是对各种语音、数据和视频做运算处理或者也可以这么说DSP是为各种数学运算量身打造的。相比之下套用近些年一句业内很火的广告词“All Programmable”来形容FPGA再合适不过了。ARM虽然有很多外设DSP虽然具备强大的信号运算能力但在FPGA眼里这些都不过是“小菜一碟”。或许说得有些过了但是毫不夸张地讲ARM能做的DSP能做的FPGA一定也都能做而FPGA可以做的ARM不一定行DSP也不一定行。在很多原型产品设计过程中时不时有人会提出基于FPGA的方案。在一些灵活性要求高、定制化程度高、性能要求也特别高的场合FPGA如图1-6所示再合适不过了甚至有时会是设计者别无选择的选择当然了客观来看FPGA固然强大它高高在上的成本、功耗和开发复杂性还是会让很多潜在的目标产品望而却步而在这些方面ARM和DSP正好弥补了FPGA所带来的缺憾。总而言之在嵌入式系统设计领域FPGA、ARM和DSP互有优劣各有所长。很多时候它们所实现的功能无法简单的相互替代否则我们就不会见到如TI的达芬奇系列ARM中有DSP、Xilinx的Zynq或Altera的Soc FPGA中有ARM的共生现象了。FPGA、ARM和DSP它们将在未来很长的一段时间内呈现三足鼎立的局面。4.Verilog与VHDL说到FPGA我们一定关心它的开发方式。FPGA开发本质上就是一些逻辑电路的实现而已因此早期的FPGA开发通过绘制原理图和现在的硬件工程师绘制原理图的方式大体相仿完成。而随着FPGA规模和复杂性的不断攀升这种落后的设计方式几乎已经被大家遗忘了取而代之的是能够实现更好的编辑性和可移植性的代码输入方式。说到FPGA的设计代码方式经过近三十年的发展只有Verilog和VHDL二者最终脱颖而出成为了公认的行业标准。对于这两种不同的语法它们的历史渊源、孰优孰劣这里就不提了。美国和中国台湾地区的逻辑设计公司大都以Verilog语言为主国内目前学习和使用Verilog的人数也在逐渐超过VHDL。从学习的角度来讲Verilog相对VHDL有着快速上手、易于使用的特点博得了更多工程师的青睐。即便是从来没有接触过Verilog的初学者只要凭着一点C语言的底子加上一些硬件基础三两个月很快就可以熟悉Verilog语法。当然了仅仅是入门还是远远不够的真正掌握Verilog必须花费很多时间和精力并通过一些项目的实践才会慢慢对可编程逻辑器件的设计有更深入的理解和认识。5.Altera、Xilinx和Lattice相比于互联网的那些“暴发户”半导体行业则更讲究历史底蕴“今天丑小鸭明天白天鹅”的故事要少得多因此两家历史最为久远的FPGA供应商Altera和Xilinx凭着一直以来的专注确保了它们在这个行业的统治地位。当然了很大程度上也是由于FPGA技术相对于一般的半导体产品有着更高的门槛从器件本身到一系列配套的工具链再到终端客户的技术支持——这一箩筐的麻烦事想想就头疼。不过提醒大家注意的是开篇我们提到的Intel大手笔新闻无论是不是空穴来风最终Altera是否能够嫁入豪门这都在预示着一个新的趋势——FPGA技术将迎来它的又一个繁茂复活的春天。唠叨一大气赶紧回到我们的主题上来。目前FPGA器件的主流厂商Altera公司和Xilinx公司它们的可编程逻辑器件占到了全球市场的60%以上。从明面上的“竞争对手”到今天暗地里还客气地互称“友商”不难看出两家公司走过历史长河虽然有“明争暗斗”但确也不经意间的彼此促进互相激励。的确翻看FPGA的发展史往往充斥着这两家公司不断上演的“你方唱罢我登场”的情节并且偶尔也会有第三者如Lattice小弟的“插足”戏份。不过这好在新千年过后各方重新定位Altera和Xilinx便牢牢把持住象征统治地位的中高端市场而Lattice也只能在低端市场找找“山中无老虎猴子称大王”的感觉了。不论是Altera、Xilinx还是Lattice甚至一些后来者如笔者接触过的国内FPGA厂商京微雅格它们的FPGA器件内部结构虽然略有差异但在开发流程、开发工具乃至原厂提供的各种支持上都是“换汤不换药”的。所以这对于用户而言绝对是一个福音只要好好掌握一套方法论任何厂商的器件都可以通吃。1.2 FPGA的优势与局限性若要准确评估FPGA技术能否满足开发产品的功能、性能以及其他各方面的需求深入理解FPGA技术是至关重要的。在产品的整个生命周期中如果产品功能可能会有较大的升级或变更那么使用FPGA技术来实现就会有很大的优势。在考虑是否使用FPGA技术来实现目标产品时我们需要重点从以下几个方面进行评估。·可升级性——产生在设计过程中甚至将来产品发布后是否有较大的功能升级需求是否应该选择具有易于更换的同等级、不同规模的FPGA器件·开发周期——产品开发周期是否非常紧迫若使用FPGA开发是否比其他方案具有更高的开发难度能否面对必须在最短的时间内开发出产品的挑战·产品性能——产品的数据速率、吞吐量或处理能力是否有特殊要求是否应该选择性能更好或速度等级更快的FPGA器件·实现成本——是否有基于其他ASIC、ARM或DSP的方案能够以更低的成本实现设计FPGA开发所需的工具、技术支持、培训等额外的成本有哪些通过开发可复用的设计是否可以将开发成本分摊到多个项目中是否有已经实现的参考设计或者IP核可供使用·可用性——器件的性能和尺寸的实现是否可以赶上量产是否有固定功能的器件可以代替在产品及其衍生品的开发过程中是否实现了固定功能·其他限制因素——产品是否要求低功耗设计电路板面积是否大大受限工程实现中是否还有其他的特殊限制基于以上的这些考虑因素我们可以从如下三大方面总结出在产品的开发或产品的生命周期中使用FPGA技术实现所能够带来的潜在优势。·灵活性可重编程可定制。易于维护方便移植、升级或扩展。降低NRE成本加速产品上市时间。支持丰富的外设接口可根据需求配置。·并行性更快的速度、更高的带宽。满足实时处理的要求。·集成性更多的接口和协议支持。可将各种端接匹配元件整合到器件内部有效降低BOM成本。单片解决方案可以替代很多数字芯片。减少板级走线有效降低布局布线难度。当然了在很多情况下FPGA不是万能的。FPGA技术也存在着一些固有的局限性。从以下这些方面看选择FPGA技术来实现产品的开发设计有时并不是明智的决定。·在某些性能上FPGA可能比不上专用芯片或者至少在稳定性方面FPGA可能要逊色一些。·如果设计不需要太多的灵活性FPGA的灵活性反而是一种浪费会潜在增加产品的成本。·相比特定功能、应用集中的ASIC使用FPGA实现相同功能可能产生更高的功耗。·在FPGA中除了实现专用标准器件ASSP所具有的复杂功能还要添加一些额外的功能实属一大挑战。FPGA的设计复杂性和难度可能会给产品的开发带来一场噩梦。1.3 FPGA开发所需的技能前面的文字已经做了很多铺垫相信读者在初学FPGA时也一定早有耳闻。的确FPGA是一门相对复杂的技术先不说设计本身单是器件的内部结构、烦琐的开发流程、开发过程中需要接触的各种EDA工具有时都会把工程师们折腾得晕头转向。相比于单一处理器的开发今天的FPGA开发却可能会涉及嵌入式系统设计的方方面面。如图1-7所示很多时候FPGA工程师需要具备的技能可能要比其他任何设计团队多得多如系统设计、功能分配、嵌入式处理器的实现、DSP算法的实现、HDL设计输入、仿真、设计优化和高速电路板的布局布线以及特定信号接口的实现等。至今在业内可能还有争论到底FPGA是属于纯粹软件的范畴还是纯粹硬件的范畴。从FPGA设计的方式和手段上看和软件有些相似但从FPGA设计的思想和实现方面看更多的趋向于硬件层面。因此用“软硬兼施”这个词来形容FPGA工程师的工作就再贴切不过了。我们说的“软”一方面的确是传统意义上的软件编程工作可能需要在FPGA中实现另一方面的“软”则指的是FPGA逻辑实现所需要的代码输入方式。单纯的软和硬还只是很低级的技能。无论是在FPGA中内嵌了处理器还是FPGA外部需要接口的处理器FPGA都不可避免地要和纯软件打交道这种软硬衔接部分的设计非常有讲究这也是FPGA工程师系统思维的一种要求。虽然FPGA开发中需要涉及众多的技能门类对于一些规模不大的工程项目可能FPGA工程师确实要承担起“既当爹又当妈”的重任但是对于中大规模的工程项目一定会有一个分工明确的团队协作完成。这样的团队绝对是一个不折不扣的嵌入式系统精英大荟萃板级硬件工程师进行FPGA的板级原理图绘制、layout等工作FPGA工程师做底层逻辑实现嵌入式软件工程师做软件编程工作也可能会有算法工程师的参与当然还可能会有系统工程师统领全局实际情况是这个角色往往由项目经理兼任对各个模块包括软硬衔接部分和接口进行划分和界定。