欢迎光临湖北鑫合欣官方网站 企业风采| 收藏本站| 公司文化| 联系我们
全国热线
18062095810

热点资讯

咨询热线:

18062095810

邮件: wangting@whhexin.com

电话:18062095810

地址: 湖北·武汉·鲁巷·华乐商务中心1006

从FPGA青铜进阶到王者,你还差哪些装备?



FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它作为专用集成电路(ASIC)领域中的一种半定制电路,从上世纪八十年代诞生起,就逐步从简单的可编程门阵列,发展成为了有着大量可编程逻辑的复杂片上系统。除了硬件结构之外,FPGA的开发工具和应用场景也都取得了长足的进步和扩展,尤其是在发展迅猛的电子通讯行业。2018年,全球FPGA市场约为60亿美金左右,但预计随着AI、LoT、5G等应用的展开,FPGA的市场容量有望在2025年达到125亿美金左右的规模,年复合增长率10.22%。作为一名FPGAer,面对如此诱人的市场前景,你是否也迫不及待地想捡起一些作战装备,成为这个高进入壁垒的领域里的佼佼者呢?那么,你首先得明白:

FPGA开发≠写写代码即可

FPGA开发入门虽易,精通却难。因而,一名优秀的FPGA开发者,就如同一壶美酒,历久才能弥香。初涉FPGA时,你或许以为:Verilog和VHDL代码就已经是FPGA开发的巅峰,毕竟Verilog中的“哪些语句可以综合、哪些语句不可以综合”等等,对于一个初学者来说,就已经是一件很“烧脑”的事情了。而当你接触FPGA久一点,你会发现:做FPGA开发不只是写写Verilog和VHDL代码就可以的,而是要用这些硬件语言来设计芯片。当你写代码时,脑子里要随时浮现数字芯片也就是0/1的翻转,要能够逐渐映射出一个个与非门、触发器、存储器,以及他们之间的时序关系,要时时刻刻考虑怎样设计才能保证面积最小或者延迟最低等等。并且,做任何设计都要考虑时序的优化问题。倘若一个设计,代码简洁,功能完备,却唯独没有考虑时序,那这个设计也仍然无济于事。

 

20多年来,FPGA逐渐从粘合逻辑转变为系统级角色。最初的FPGA偏向于硬件,主要用于做接口、做通信等。彼时,一个成熟的FPGA工程师不仅要熟悉FPGA,还要了解接口协议等知识;后来,FPGA开始逐渐用来做算法、做控制等,因此,FPGA工程师还需要学习更高级的语言做仿真和验证,还要了解如何把算法映射到FPGA的硬件资源或者外设,并如何基于速度、面积和功能做平衡及优化。如今,随着人工智能、机器学习等AI技术和行业的融合,以及5G带来的FPGA的新增长引擎,FPGA架构亦与时俱进,更偏向于系统设计了。

 

在这个无远弗届的互联时代,面对如此前景可期的FPGA市场,你是不是也已摩拳擦掌,跃跃欲试了呢?别急,进入FGPA王者峡谷之前,先掌握这些秘笈,配齐这些基本装备吧!王者的进阶之路可是一步一个脚印踩出来的!

1

 
 

知己知彼,百战不殆

不少初学者,拿起FPGA器件,不是先去熟悉其构造,而是照本宣科地去编程。其实不然,虽然你深谙数字电路的书本知识,但你仍得先了解了FPGA内部的结构及设计流程,这样才能用电路的思想去做FPGA,才能明白为什么写Verilog的整体思路不同于写C语言的,才能对怎么去优化设计、提高速度、减少资源等,了然于胸。

2

 
 

把握主干,思维先行

了解FPGA的结构和欲实现的逻辑功能及设计流程后,你可能又开始纠结:选择哪种语言好?选择哪个公司的芯片好......其实,语言只不过是一种表达方式,芯片只不过是一种载体,思维模式才是FPGA设计的灵魂!若没有逻辑清晰的思维,即使语言运用得再到位,也不过是个硬件开发语言的“搬运工”!

3

 
 

由浅入深,循序渐进

初学代码时,难免会遇到各种困难。一定要保持良好的心态,戒急戒躁。比如,面对一个完全陌生的复杂系统,你可以将需要实现的功能逐个拆解,循序渐渐地解决各个问题。每解决完一个问题,总结归纳学习方法,自己动手做Demo,由浅入深的去学习FPGA。切莫做“空想的巨人,实操的矮子”,也许刚开始你的思路并不清晰,但很多思路和灵感是在实操过程中不断清晰和显现的。

 

4

 
 

善用模板,融会贯通

FPGA能够很好地匹配某些图像处理模式,比如基于固定模板的图像处理(即二维卷积)。想要高效、高性能的处理复杂的应用,善用模板很关键。FPGA内部器件种类相对较单一,而用好模板,就可以高效利用FPGA资源,让你的逻辑迅速地被综合成FPGA擅长表达的结构。

基本装备
想要成为一名优秀的FPGA开发人员,需要练好5项基本功:仿真、综合、时序分析、调试、验证。而练好这5项基本功,与用好相应的EDA工具是同一过程,对应关系如下:

仿真:Modelsim, Quartus II(Simulator Tool) riple,ISim

综合:Quartus II (Compiler Tool, RTL Viewer, Technology Map Viewer, Chip Planner),ISE,Vivado

时序:Quartus II (TimeQuest Timing Analyzer, Technology Map Viewer, Chip Planner),ISE,Vivado

调试:Quartus II (SignalTap II Logic Analyzer, Virtual JTAG, Assignment Editor),Chipscope

验证:Modelsim, Quartus II(Test Bench Template Writer)

 

另外,掌握HDL语言虽然不是FPGA设计的全部,但是HDL语言对FPGA设计的影响贯穿于整个FPGA设计流程中,与FPGA设计的5项基本功相辅相成。对于FPGA设计者来说,用好“HDL语言的可综合子集”可以完成FPGA设计50%的工作——设计编码,用好“HDL语言的验证子集”,可以完成FPGA设计另外50%的工作——调试验证。具体来说:第一,搭建验证环境,通过仿真的手段可以检验FPGA设计的正确性;第二,全面的仿真验证可以减少FPGA硬件调试的工作量;第三,把硬件调试与仿真验证方法结合起来,用调试解决仿真未验证的问题,用仿真保证已经解决的问题不在调试中再现,可以建立一个回归验证流程,有助于FPGA设计项目的维护。

 

而另一方面,练好仿真、综合、时序分析这3项基本功,对于学习“HDL语言的可综合子集”也有如下帮助:首先,通过仿真,可以观察HDL语言在FPGA中的逻辑行为;其次,通过综合,可以观察HDL语言在FPGA中的物理实现形式;最后,通过时序分析,可以分析HDL语言在FPGA中的物理实现特性。

 

总而言之,FPGA设计者的这5项基本功都不是孤立的,必须结合使用才能完成一个完整的FPGA设计流程。反之,通过完成一个又一个完整的设计流程,才能有效地反复练习这5项基本功,逐步提高设计水平。