QWE4562009

《FPGA设计技巧与案例开发详解第3版》读后感

0
阅读(1379)

   《FPGA设计技巧与案例开发详解第3版》不仅讲了FPGA是什么,FPGA,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。作为专用集成电路领域中的一种半定制电路而出现的,它既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。因此学习FPGA是很有必要的。此外更加有丰富的案例来说明FPGA开发的过程。比如通过独立键盘、矩阵键盘、LCD1602时钟管理、SPI、串口、VGA驱动、视频图像采集等实际操作内容加深了对FPGA的认知。书中也开门见山,提到了FPGA的开发平台,通过对Quartus 、VeriLog HDL的讲解,有助于区别MCU等其他开发环境或平台。一本书还讲了初级、中级、高级进阶、深度学习等阶段,非常适用于FPGA入门学习

 

   通过学习电子产品世界分享的《FPGA设计技巧与案例开发详解第3版》加上电子技术应用论坛的学习,了解到FPGA的基本特点主要有

1. 采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片2.FPGA可做其它全定制或半定制ASIC电路的中试样片

3.FPGA内部有丰富的触发器和I/O引脚   

4.FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一

5.FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活

6.受益于与众不同的架构,FPGA的可编程属性使其相比其他处理器,在算力、成本、功耗之间更能取得平衡。FPGA还具有如下优势:可编程灵活性高:FPGA属于半定制电路,理论上,如果 FPGA提供的门电路规模足够大,通过编程可以实现任意 ASIC 和 DSP 的逻辑功能。

开发周期短:FPGA无需布线、掩模和定制流片等,芯片开发流程大幅简化,因此普遍被认为是构建原型和开发设计的最快推进路径之一。传统的ASIC和 SoC设计周期平均是14到24个月,用FPGA进行开发时间可以平均降低 55%。并行计算效率高:FPGA属于并行计算,一次可执行多个指令的算法。虽然普遍主频较低,但对部分特殊的任务,大量相对低速并行的单元比起少量高效单元的效率更高。FPGA本身没有什么功能,就像一张白纸,想要它有什么功能完全靠编程人员设计(它的所有过程都是硬件,包括VHDL和Verilog HDL程序设计也是硬件范畴,一般称之为编写“逻辑”。)。如果你够NB,你可以把它变成MCU,也可以变成DSP。由于MCU和DSP的内部结构都是设计好的,所以只能通过软件编程来进行顺序处理,而FPGA则可以并行处理和顺序处理,所以比较而言速度最快。

 

   基于以上等优点,FPGA市场蓬勃发展。通过FPGA设计技巧与案例开发详解第3版》初步学习,抛砖引玉,援引文献得知,目前,市场上FPGA以Xilinx,Intel和Lattice的产品为主。Xilinx VU57P FPGA —高带宽存储器、英特尔Stratix 10 NX FPGA — AI优化的DSP模块、Lattice Nexus — 低功耗,小尺寸FPGA;如下列出了Xilinx,Intel和Lattice产品的相关对比参数;通过研究Xilinx,Intel和Lattice Semiconductors的这些最新发布的FPGA,我们可以更清楚地了解FPGA的发展方式-集中于更高的存储器带宽、AI优化、低功耗和小尺寸。

 

 在5G 领域,FPGA凭借可编程的核心特性,与5G无线网络对灵活性、性价比和智能化的需求不谋而合。在需要随时升级的很多通信业务应用场景中,与FPGA相比,ASIC的灵活性不足,无法跟上算法的迭代更新,因此 FPGA是一个更好的选择。在人工智能领域,规模化落地目前仍存在许多芯片层面的问题。AI的基础硬件需要满足低延迟、高性能、高可靠性、高性价比等要求,这些刚好是FPGA能够充分满足的。同时,市场有大量的“训练”需求和“推断”(包括数据中心和边缘端)需求。基于 CPU 的传统计算架构,无法充分满足人工智能高性能并行计算的需求;而作为低功耗异构芯片,FPGA 开发周期快、编程灵活,从而驱动人工智能解决斱案正从软件演进转向软件 + 芯片的迭代。在通信设备的高速接口电路设计:用FPGA处理高速接口的协议,并完成高速的数据收发和交换;数字信号处理/数学计算方向:例如金融、医疗数据分析SOPC:利用FPGA这个平台搭建的一个嵌入式系统的底层硬件环境,设计者在上面进行嵌入式软件开发;深度学习方向:在FPGA上实现异构计算和并行计算,推动其在深度学习中的应用

 

  那么为什么MCU、DSP和FPGA会同时存在呢?那是因为MCU、DSP的内部结构都是由IC设计人员精心设计的,在完成相同功能时功耗和价钱都比FPGA要低的多。而且FPGA的开发本身就比较复杂,完成相同功能耗费的人力财力也要多。所以三者之间各有各的长处,各有各的用武之地。但是目前三者之间已经有融合的态势,ARM的M4系列里多加了一个精简的DSP核,TI的达芬奇系列本身就是ARM+DSP结构,ALTERA和XINLIX新推出的FPGA都包含了ARM的核在里面。所以三者之间的关系是越来越像三基色的三个圆了。

我们先来看看FPGA的重要性:FPGA的技术已经已经发展了30多年了,到了今天它和CPU架构一样,玩家越来越少、技术越来越高端,应用越来越深入到各个领域,成了支撑当今各项高科技领域(物联网、大数据、云计算、无人驾驶、智能制造、人工智能)的基础

 

  这张图看得出FPGA和CPU并驾齐驱,不断刷新性能指标,由于FPGA的可并行利用资源的特点,其计算能力要远超已经采用多核技术的CPU架构。经过30年的发展,FPGA已经不再是当初简单的“可编程逻辑器件(PLD)”了,在器件内部集成了更多需要灵活配置的可半定制化的功能,在两个大佬Xilinx和Altera/Intel内部集成了硬核化的CPU之后,现在的FPGA更像是芯片领域的“变形金刚” - 五脏俱全并可变化万千

紫光系紫光国微和紫光同创同是百花齐放的国产FPGA龙头厂商。两家公司联营的拳头产品Titan PGT30G已量产,采用40nm制程工艺,是国内少有的千万门级 FPGA。除复旦微、紫光同创登录科创板之外,安路科技、高云半导体、京微齐力等本土FPGA厂商也纷纷于近日登陆科创板,公司动态和产品进展都呈现出勃勃生机。但景气背后,从技术层面来看,独立的国产FPGA和国外巨头差距仍旧较大

通过对FPGA的学习总结MCU做得好的厂商:瑞萨(Renesas)、恩智浦(NXP)、新唐、微芯(Microchip)、意法半导体(ST)、爱特梅尔(Atmel)、英飞凌(Infineon)、德州仪器(TI)、东芝(Toshiba)、三星(Samsung)、赛普拉斯(Cypress)、亚德诺半导体(ADI)、高通(Qualcomm)、富士通(Fujitsu)、超威半导体(AMD)、盛群/合泰半导体(Holtek)、中颖电子、炬力、华润微、沛城、义隆、宏晶、松翰、凌阳、华邦电子、爱思科微、十速科技、佑华微、应广、欧比特、贝岭、东软载波微、君正、中微、兆易、晟矽微、芯海、联华、希格玛、汇春、建荣科技、华芯微、神州龙芯、紫光微、时代民芯、国芯科技、中天微等等。

FPGA做得好的厂商:Altera((阿尔特拉)被Intel收购)、Xilinx(赛灵思)、Actel、Lattice(莱迪思)、Atmel、京微雅格、QuickLogic、Microsemi、Cypress、TI、上海复旦微、广东高云、同方国芯、西安智多晶、中国电子、成都华微、深圳国微、遨格芯等等

   学习FPGA能给我们带来什么?我们可以通过对其编程实现几乎任何的数字功能,最简单的如:丰富的可编程逻辑资源(CLB) - 各种组合逻辑、时序逻辑,门“阵列”;丰富的内部存储资源(Block RAM) - 可以组成ROM、双口RAM、FIFO等等各种需要的存储结构;可编程的IO - 每一个输入输出管脚都可以单独定义、配置,支持同其它器件的灵活连接;看到这里是不是就觉得它很强大了?这只是FPGA冰山的一个小角而已,即便掌握了这些基本功能的使用,就足以让我们硬件工程师的技能得到大大的提升,在产品设计中上一个大的台阶,哪些提升呢?

  FPGA在数字世界里它无所不能,就像乐高的积木一样可以搭建各种不同的功能模块,实现你所希望的各种功能,这是你产品中非常重要的一块,可以大大加速你产品的开发时间,可以大大降低系统的成本及设计风险,可以为你产品的升级、调整带来大大的灵活性;

数字逻辑的思想 - 首先你必须掌握最基本的数字逻辑知识,学会一种用来构建各种功能的工具语言(在这里我们推荐广受欢迎的Verilog),再次你要动脑(考验的是你的逻辑思维是否清晰),一个优秀的建筑师的作品是在脑子里勾画出来的,而不是拿积木碰运气拼凑出来的;

  并行设计的理念 - 同CPU不同的是FPGA是并行处理的,如果要处理并行的多个任务,CPU必须经过非常复杂的任务调度,有时候不得不联合多核一起,而多数情况下一颗小小的FPGA就能搞定所有的任务,从设计理念上这是孑然不同的;

  资源的合理利用 - 各个厂商的各种型号的FPGA可供你选用,有啥呢?就像你出行是选择乘飞机、高铁、出租还是骑自行车一样,每种方式都要付出不同的成本,而根据需要选择最适合的资源配置在使用FPGA的过程中能够得到最充分的体验;

  哪怕你做一个小小的项目,你会惊奇地发现它很有趣,你任何天马行空的想法都可以通过FPGA来快速实现,在乐趣中找到爆棚的自信感