因对FPGA(现场可编程门阵列)技术设计有浓厚兴趣,故参加了国家信息产业部软件与集成电路促进中心主办、中电网承办的FPGA技术培训。
从某种程度而言,远程网络教学有其明显的优势:可以随听随停,反复播放,这种方式有利于及时掌握所学内容,同时还便于对重点进行深入分析思考。个人独立学习、独立思考,遇到难题可通过邮件或以在线座谈的形式向老师请教,学习能力和解决问题的能力都可以得到提高。
经过半年的学习,笔者系统掌握了FPGA的设计流程、SoPC的设计方法、用FPGA设计组合逻辑和时序逻辑的方法,以及常用的VHDL语言用法和一些常用数字模块的VDHL语言描述,同时还学会了使用FPGA的DSP嵌入系统开发工具、用NiosⅡ软核进行SoPC设计,并且对IP核、模块化设计、Altera HardCopyⅡ结构化ASIC等有了较深入的理解。
可编程逻辑器件可以分为简单PLD和复杂PLD,简单PLD分为:PROM、PLA、PAL及GAL,复杂PLD分为:CPLD和FPGA,复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)是这次培训学习的主要内容。CPLD一般是基于乘积项结构的,FPGA的内部结构主要有两类:一类是SRAM查找表结构,一类是反熔丝的 多 路开关结构。目前,市场上有代表性的CPLD/FPGA 器件厂商有Altera 、 X ilinx、Lattice以及Actel等,其中Altera 和Xilinx占有大部分市场份额。Altera公司的主流PLD器件有:高密度FPGA,如Stratix、Stratix Ⅱ、Stratix III、Stratix GX及StratixⅡ GX等;低成本FPGA,如Cyclone、 CycloneⅡ和Cyclone III等;CPLD器件,如MAX和MAXⅡ等。 CPLD和FPGA的应用范围非常广泛,在视频及图像处理、便携应用、汽车电子、个人医疗设备、游戏设备、通讯、工业及军事等诸多领域中,都发挥着不可替代的作用。从目前的市场分析来看,FPGA的销售量正在逐年上升,它占据的市场份额越来越大,已经成为了数字电子设计系统的核心和基石,并将逐渐成为数字设计中必不可少的部分。
CPLD/FPGA设计流程主要包括电路设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真与验证及板级仿真验证与调试等主要步骤。电路设计与输入最常用的方法是硬件描述语言(HDL),其中影响最为广泛的是VHDL和Verilog HDL。通过这次培训笔者掌握了VHDL的基本概念、语句结构、语言现象及描述方法等,基本内容概括如下:VHDL主要部件分为两个层次,即硬件层次和软件层次。在硬件层次里主要的单元是实体(entity),它用来定义硬件外部接口;软件层次由软件包和软件包体构成,软件包对应了硬件层次的实体,软件包体对应了硬件层次的结构体。VHDL包含2大类语句,即顺序描述语句和并行描述语句;有3类数据对象,即变量、常量和信号;有4种运算符,分别为逻辑运算符、算术运算符、关系运算符和并置运算符;有5种预定义属性,包括值类属性、函数类属性、信号类属性、数据类型类属性及数据范围类属性。并行描述语句可以分为进程语句、并行信号赋值语句、并行断言语句、参数传递语句、元件例化语句和生成语句等6类。此外,笔者对VHDL语言的元素、结构、子结构、描述语句、预定义属性、配置以及常用的程序模块等7部分也有了一定的理解。VHDL中定义的标准数据类型有位和位矢量、布尔量、字符和字符串、整数、自然数和正整数、实数、时间及错误等级等8类;常用的数字电路模块有基本门电路、编码器、译码器、选择器、运算器、触发器、寄存器、计数器以及有限状态机等9类;顺序描述语句包含有信号和变量赋值语句、WAIT语句、IF语句、CASE语句、LOOP语句、RETURN语句、NULL语句、REPORT语句、跳出循环语句以及顺序断言语句等10种。
在软件的使用方面,笔者学会了用Quartus Ⅱ软件进行仿真、布局布线 、优化和综合等操作,以及用Modelsim进行仿真、用Leonardo Spectrum进行综合的操作方法。同时,还学会了利用IP核进行系统设计,用DSP Builder进行DSP嵌入系统开发,用Nios II及SoPC Builder进行嵌入处理器的系统开发,并理解了FPGA模块化设计和Altera的HardCopy II结构化ASIC等。
在实验调试过程中,笔者发现了许多问题,如在某实验显示的结果中,十六进制数下面的横杆显示有错误,经过检查,发现是显示的嵌套程序中的输入出现了错误,经过此项实践,笔者对显示器的工作原理有了更深的理解,并掌握了FPGA和VGA接口设计的方法;在PS/2键盘实验中,发现只能输入十六进制的数,通过对键盘原理的学习和对扫描码的理解,对其做出改进,便可以输入更多的字母;在利用宏功能模块设计的实验中,体会到了它的方便和快捷;在串口的实验中,接收到的数据总是出现错误。两个SoPC实验比前几个要复杂一些,这也使笔者真正体验到了系统的概念以及片上可编程系统的妙处。实验过程中还有很多问题,它们加深了笔者对FPGA设计的理解,进而提高了FPGA设计能力以及软件和硬件调试能力。
通过这次培训,笔者对FPGA的发展前景也有了一定的看法和认识,随着半导体工艺的发展,FPGA的应用领域还会有更大的拓展,在以下几个方面还会有很大的发展空间:
1)向传统的ASIC应用领域进军
随着半导体工艺发展到深亚微米,ASIC设计成本变得难以承受,FPGA可以趁此机会,设计出适合批量生产的FPGA全新逻辑器件,如Altera的Cyclone系列器件。降低成本的另一个途径是HardCopy结构化的ASIC,它可以从FPGA转化成低成本平台,在实现功能和性能的同时,硅片面积可减少70%,成本可以减少90%。
2 )融合数字模拟混合信号的FPGA
数 字可编程设计给电子设计行业带来了巨大变化,同时也大大促进了其他行业的发展,提高了人们的生活水平。然而,模拟可编程也是必然的趋势,虽然它面临的困难还很多。随着模拟可编程技术的成熟,将数字和模拟可编程融合在一起的技术也必将是大势所趋,这会使设计人员从概念设计转向完整设计,从而全面提高创新能力。
3)FPGA和MEMS(微电子机械系统)的整合
随着MEMS(微电子机械系统)的快速发展,将有更多的微传感器和微执行器面世。将FPGA和MEMS的产品整合在一起,可以实现真正意义上的完整系统。将微传感器、微执行器和FPGA集成在一起,可以实现数据的采集、存储、处理以及输出执行等一系列进程,这将给电子行业乃至其他行业带来全新的改变。
通过这次培训,笔者收获颇丰。在FPGA的设计思想和方法、VHDL语言的学习掌握、各种软件的使用、实验板上硬件的调试以及现代化的教育学习手段等诸多方面,都有了很大的进步,更为重要的是,FPGA的设计能力也极大地提高了。通过网络这个平台,笔者和其他学员一起分享学习经验、互帮互助、共同提高,对FPGA的应用领域有了进一步的了解,对FPGA的发展有了更深的认识。 |