|
FPGA开发全攻略
2008 年年初,某著名嵌入式系统IT 公司为了帮助其产品售后工程师和在线技术支持工程师更好的理解其产品,举行了ASIC/FPGA 基础专场培训.由于后者因为保密制度而只能接触到板级电路图和LAYOUT,同时因ASIC/FPGA 都是典型的SoC 应用,通常只是将ASIC/FPGA 当作黑盒来理解,其猜测性读图造成公司与外部及公司内部大量的无效沟通.培训结束后, 参与者纷纷表示ASIC/FPGA 的白盒式剖析极大提高了对产品的理解,有效解决了合作伙伴和客户端理解偏异性问题,参加培训的工程师小L 表示:“FPGA 同时拥有强大的处理功能和完全的设计自由度,以致于它的行业对手ASIC 的设计者在做wafer fabrication 之前, 也大量使用FPGA 来做整个系统的板级仿真,学习FPGA 开发知识不但提升了我们的服务质量从个人角度讲也提升了自己的价值。”实际上,小L 只是中国数十万FPGA 开发工程师中一个缩影,目前,随着FPGA 从可编程逻辑芯片升级为可编程系统级芯片,其在电路中的角色已经从最初的逻辑胶合延伸到数字信号处理、接口、高密度运算等更广阔的范围,应用领域也从通信延伸到消费电子、汽车电子、工业控制、医疗电子等更多领域,现在,大批其他领域的工程师也像小L 一样加入到FPGA 学习应用大军中。未来,随着FPGA 把更多的硬核如PowerPC™ 处理器等集成进来,以及采用新的工艺将存储单元集成,FPGA 越来越成为一种融合处理、存储、接口于一体的超级芯片,“FPGA 会成为一种板级芯片,未来的电子产品可以通过配置FPGA 来实现功能的升级,实际上,某些通信设备厂商已经在尝试这样做了。”赛灵思公司全球资深副总裁汤立人这样指出。可以想象,未来,FPGA 开发能力对工程师而言将成为类似C 语言的基础能力之一,面对这样的发展趋势,你还能简单地将FPGA 当成一种逻辑器件吗?还能对FPGA 的发展无动于衷吗?
电子产品设计趋势的变化
自电子产品诞生之日起,电子产品开发流程和方法就随着电子元器件的不断演进而变化,从最早的电子管器件到晶体管再到集成电路,工程师在设计产品时,所采用的工具和方法都有所不同,但是总的来说贯穿电子设计的统一思路是:使用印刷电路板上的分立、现成元件、连接器或IC 创建物理平台实现所需要的功能。例如,在60 年代,如果要设计一个收音机,工程师必须通过在PCB 板上通过晶体管、电阻、电容、电感、电线、滤波器、二极管等电路搭建出一个物理平台,实现对RF 信号的调谐、滤波、放大等,最后实现收音机的功能。集成电路出现以后,一些分立器件被集成到一颗芯片上,但是总的设计思路没有变化,还是要在一个PCB 板上通过无源器件和IC 搭建出一个物理平台,实现信号的接收、处理和输出。但是,随着FPGA 等可编程器件的诞生,设计思路正发生着微妙的变化——随着更多功能从分立器件移到可编程领域,各种不同的设计流程交汇到了一起。现在,有效的电子设计是将板卡设计、可编程逻辑设计和软件开发融合在一起,未来,随着FPGA 融合处理、存储于一体,板卡设计将融合进可编程逻辑设计中,电子产品设计将演变为可编程逻辑设计和嵌入式软件设计,那时,电子设计将更体现一种“软”设计,一种通过开发语言和工具实现的设计,而FPGA 将成为这种“软”设计的载体,以 FPGA 形式存在的低成本、大规模可编程器件可以随时随地获得,这使设计者有可能将所有系统核心功能都转移到软设计中,并利用这种设计的优势。这些“软”设计优势包括:更容易保护系统功能使其不被仿制或逆向工程,编程到设计中的“软”元素容易更新,使设计过程更具连续性。好的工具所设计的软设计不依赖于事先指定的硬件平台。而且,设计可以在最终硬件平台内继续进行,即使产品已经移交客户也仍然可行。即“软”设计将成为电子设计的发展方向。另一点,现今及未来的电子产品都在追求智能化和个性化,智能化只能通过软件来实现,个性化呢,需要工程师简单地修改就可体现不同的特色,另外也需要保护自己的设计不被仿制,要做到这点,也需要可编程器件。每个工程师都希望自的产品永远与众不同。与众不同就是要让产品与竞争产品不一样,让购买者选择你的产品而不选择竞争对手的产品。但是,怎么样才能在日益全球化的市场中保持与众不同呢?不要再指望在硬件上能达到目的,因为现在几乎每个人都能获得同样的芯片。当现有物理硬件中实现的任何功能受到市场的欢迎的同时,大量的仿制就出现了。所以要将产品的区别建立在编程器件智能上,保护有价值的 IP,并且使竞争对手很难对其进行逆向工程。而且,即使硬件已经制造出来,产品仍可以通过“软”设计进行创新并为产品增值,产品的成功就有了保障。而这些,都离不开可编程器件。可编程器件是实现“软”设计的保障和载体。
电子设计工程师设计方法和设计内容在不断变化
电子设计工程师的设计方法和内容其实也在一直变化,电子管时代,设计工程师要掌握电子管的性能和设计要点,晶体管时代,设计工程师要熟悉跟中电路的作用和搭建,集成电路诞生以后,设计工程师要熟悉IC 管脚的作用和功能,而设计工具从最早的草稿图、软件辅助设计也发展到电子设计自动化工具(EDA 软件),以FPGA 为代表的可编程器件诞生后,设计工程师不但要设计硬件电路更要熟悉HDL、Verilog 等IC 设计语言,此外,还要熟悉接口、数字信号处理、算法、EDA 设计方法学等等,电子工程师要学习的知识日益增多。
未来的硬件工程师是什么样的?
那么,未来的的硬件设计工程师是什么样的?或者说未来的硬件设计工程是怎样的?而已这样说:以VHDL 或者Verilog 语言来表达设计意图、以FPGA 做为硬件载体、以计算机为设计开发工具,以EDA 软件为开发环境、以SoC、IP 等为综合设计的方法,已经成为硬件设计工程的主要特征。可以预见,FPGA 将成为未来的硬件工程师必用的设计元素之一。另外,FPGA 在应用中的其他显著优势是可以减少BOM 整合多个分立的数字器件( 例如一个很小很便宜的CPLD 可以替换好几个74 系列芯片)、降低PCB 布线难度(MGT/GTP 等串行收发器将原本与需要三五十条线并行数据线替换为少量的串行线路)、可定制性( 可以自己写代码来支持非标准的接口),可扩展性( 可编程易修改方便升级)、加速面市时间( 只需关心功能实现,不需要再花时间制成专用IC) 等,这样FPGA 带给设计的公司的好处已经不是从成本体现了,它可以大幅度提升开发的效率!
综上所述,我们就明白为什么工程师要掌握FPGA 开发知识了,希望本书有助于大家了解和掌握FPGA 开发。 |
|