特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1c0nf6Qc
前面的文字已经做了很多铺垫,相信读者在初学FPGA时也一定早有耳闻。的确,FPGA是一门相对复杂的技术,先不说设计本身,单是器件的内部结构、繁琐的开发流程、开发过程中需要接触的各种EDA工具,有时都会把工程师们折腾得晕头转向。
相比于单一处理器的开发,今天的FPGA开发却可能会涉及到嵌入式系统设计的方方面面。如图1.7所示,很多时候,FPGA工程师需要具备的技能可能要比其它任何设计团队多得多,如系统设计、功能分配、嵌入式处理器的实现、DSP算法的实现、HDL设计输入、仿真、设计优化和高速电路板的布局布线以及特定信号接口的实现等。
图1.7 FPGA技术是多种设计技能的交叉
至今在业内可能还有争论,到底FPGA是属于纯粹软件的范畴还是纯粹硬件的范畴。从FPGA设计的方式和手段上看,和软件有些相似;但从FPGA设计的思想和实现方面看,更多的趋向于硬件层面。因此,“软硬兼施”这个词来形容FPGA工程师的工作就再贴切不过了。我们说的“软”,一方面的确是传统意义上的软件编程工作可能需要在FPGA中实现,另一方面的“软”则指的是FPGA逻辑实现所需要的代码输入方式。
单纯的软和硬,还只是很低级的技能。无论是在FPGA中内嵌了处理器,还是FPGA外部需要接口的处理器,FPGA都不可避免的要和纯软件打交道,这种软硬衔接部分的设计非常有讲究,这也是FPGA工程师系统思维的一种要求。
虽然FPGA开发中需要涉及众多的技能门类,对于一些规模不大的工程项目,可能FPGA工程师确实要承担起“既当爹又当妈”的重任;但是对于中大规模的工程项目,一定会有一个分工明确的团队协作完成。这样的团队,绝对是一个不折不扣的嵌入式系统精英大荟萃:板级硬件工程师进行FPGA的板级原理图绘制、layout等工作;FPGA工程师做底层逻辑实现;嵌入式软件工程师做软件编程工作;也可能会有算法工程师的参与;当然还可能会有系统工程师统领全局(实际情况是,这个角色往往由项目经理兼任),对各个模块(包括软硬衔接部分)和接口进行划分和界定。
文章评论(0条评论)
登录后参与讨论