FPGA设计课程的教学探索

(整期优先)网络出版时间:2012-08-10
/ 2
[摘要]FPGA设计课程是一门实践性很强的电子类专业课,包括FPGA芯片硬件结构、硬件描述语言、SOPC(片上系统)三部分。本文从加强FPGA课程建设的必要性出发,主要探讨了FPGA课程的教学内容、教学顺序、时间安排、实验教学等重要环节,并提出了相应的解决方案。
[关键词]FPGA Verilog HDL SOPC 探索
一、加强FPGA课程建设的必要性
FPGA (Field Programmable Gate Array,现场可编程门阵列)是现场可编程逻辑器件中的重要一员。FPGA可实现并行运算,从而大大加快信号处理的速度和容量;FPGA具有在现场可重复编程的特性,从而使其开发灵活,升级方便;众多基于FPGA器件编写的IP核越来越丰富,从而使得FPGA的开发更加快捷高效且成本低廉;随着通用处理器以软核形式灵活的移植到FPGA中,从而使得FPGA在强大的逻辑运算功能基础上通过移植通用处理器软核,拥有了较强的运算和控制功能[1][2]。FPGA的上述特性使得其应用领域不断扩大,已成为现代电子系统设计工程师们需要掌握的重要技能之一。
正是由于以上背景,很多院校都在加强FPGA课程的建设,对于电子专业、通信专业来说,只有让学生掌握可编程器件的基本知识和应用开发技术,才能使教学跟上科技的发展,培养出符合科研和生产实际需求的人才。
二、教学内容及教学顺序的探索
FPGA的教学主要包括FPGA芯片硬件结构、硬件描述语言、SOPC(片上系统)三部分,依各部分在专业中的地位不同,有些专业把这三部分合成一门课,而有些专业把这三门课分开教学,或者是安排成两门课来教学。无论采用哪一种方式都存在着如何安排这三部分教学内容、教学顺序及三部分之间交集处理的问题。经过多年的教学实践,这三部分可以按以下四个阶段安排教学。
第一阶段:以概述的形式讲述FPGA的发展历史、现状及趋势,引出芯片内部结构、硬件描述语言、SOPC三部分之间的关系,让学生从总体上对FPGA有所了解,而不是在最初就深入细节,导致学生在学习初期疑惑很大,尤其是前期基础较差的学生,可能一开始就产生厌学心里。
最好这个时候用原理图输入法建立输入文件,做一个指示灯控制的小实验,使学生对FPGA有更具体的了解。如果可以的话,给学生讲述几个FPGA在工程上的典型应用,如3D技术、无线通信技术、医用诊断成像等,让学生知道FPGA的应用,激发学生的学习热情。这样学生可以从整体上对FPGA有一定的了解,使他们在主观上愿意学习这门课程。
第二阶段:有了上面的基础接下来既可以讲述FPGA芯片硬件结构。在讲述FPGA芯片硬件结构时,可以从可编程器件的基础结构讲起,如存储器阵列、PAL、GAL的与或阵列、FPGA的基础结构。之后,可以依据本专业教学的硬件支持环境,讲述某一FPGA生产厂商的全系产品。硬件部分的教学难度较大,要求学生具有良好的硬件基础,包括时钟、锁相环、DSP、总线等概念,学生最好在前序课程中已经掌握相关概念。
第三阶段:硬件描述语言的教学,既可以选用Verilog HDL也可以选用VHDL。笔者开始学习时多用VHDL,但经后期教学和FPGA开发时对比,觉得可能Verilog HDL更简捷、更有效地描述数字硬件电路。实际上,国内外教科书也大多使用 VHDL语言,而目前产业界已经普遍使用Verilog HDL语言。虽然Verilog和VHDL本身并无优劣之分,但Verilog HDL最初是为更简捷、更有效地描述数字硬件电路和仿真而设计的,它的许多关键字和语法都继承了C语言的传统,因此易学易懂。2005年System Verilog IEEE 1800-2005标准公布以后,集成电路设计界普遍认为Verilog HDL将在10年内全面取代VHDL成为IC设计行业包揽设计、测试和验证功能的唯一语言[2][3]。所以,有可能的话,最好采用Verilog HDL语言教学,同时做好教材的建设工作。
第四阶段:经历了以上阶段,学生基本掌握了FPGA的使用方法,如果教学需要,或者对于FPGA开发有兴趣的同学,可以进入片上系统部分(SOPC技术)的学习。SOPC是FPGA的精彩之处,没有片上系统,FPGA就失去了它的光芒,对于工作后不从事电子系统设计或者FPGA开发的学生来说可能没有必要,或难度太大,但对于从事电子系统设计或者FPGA开发的学生则是必须掌握的内容。
三、教学时间安排的探索
通过上面的讨论,对于非集成电路设计专业而言,FPGA的教学不必分成多门课,过多的门次反而让学生产生麻痹和厌学的思想,各门课之间内容上有时也不好协调,不如设定为两门课:“FPGA基础”做为必修课,主要讲述硬件描述语言、FPGA芯片硬件结构及基本的开发流程;“FPGA提高”做为选修课,主要讲述SOPC部分,针对那些对FPGA感兴趣或想从事这个行业的学生。当然根据专业的侧重点也可作适当调整。

“FPGA基础”做为必修课,教学可以安排在大三,上学期和下学期都行,只要学完数字电子、模拟电子即可开始。SOPC是一个融计算机软件、通信工程、自动控制、嵌入式等多学科的技术[4][5],基础越多、越扎实,学习和掌握效果越好,SOPC的教学最好安排在大四专业课都学完的时候,这样更有利于学生对SOPC的理解。从以上对于教学时间的安排可以看出,FPGA的教学基本贯穿了专业课教学的始终,如果教学效果良好的话,我们基本可以为企业输送合格的FPGA设计研发人员。
四、实验教学环节的探索
开始开设这门课的教师,大部分都是靠自学和亲自动手设计或者验证实验内容的,它是一门实践性很强的课程。实验教学在目前高等教育中占有非常重要的地位,实验教学如何辅助并提升理论教学是实验教学内容配置的重点。与FPGA的理论教学相对应,FPGA的实验教学大致可以分为两个层次。
第一层针对FPGA基础内容而言,可以分为两个阶段。第一阶段主要是与硬件描述语言的教学相配套的,实验教学以基础模块的训练为主,比如加减法器、分频器、数据选择器、编译码器等实验项目,这些都是构成系统的最基础模块。基础模块训练完成后可进行综合性稍强的实验如数字钟设计等,为更加综合性的实验打下坚实的基础。第二阶段主要与FPGA芯片硬件结构的学习相配套,实验教学重点应放在实用性和综合性上,可开设如频率计、出租车计费器等综合性较强的实验,这类实验基本上包含了如键盘扫描、数码管显示等工程常用基础模块的训练。
第二层主要是与片上系统的教学相配套,正如前面所说的,这才是FPGA的精华。在这部分中串口通信、SPI接口、8位CPU、存储器等都可以开设,如果实验课时间有限,可以做为综合类课程设计的题目,让学生有足够的时间来完成这样的题目,因为本身包含多学科的知识,可以看作是电子类课程的总结,考查了学生电子设计的能力和学生对多方向课程的综合能力。
五、总结
FPGA技术现在已经被广泛应用到各个领域,并成为电子系统设计不可或缺的部分。FPGA作为一种实用技术面临的最大问题就是更新速度快,从教学内容、教学思想到教学资源都面临不断更新的问题,如何适应电子技术的发展速度,如何使学生在毕业后更快地适应工作,都是教师在教学过程中需要考虑的问题。本文从FPGA课程的教学内容、教学顺序、 时间安排、实验教学等重要环节进行了探讨,希望为此类课程的教学提供一定参考。
[参考文献]
[1]EDA先锋工作室.Altera FPGA/CPLD设计[M].北京:人民邮电出版社,2011.
[2]夏宇闻.Verilog 数字系统设计教程[M].北京:北京航空航天大学出版社,2003.
[3]夏闻宇,黄然.Verilog SOPC高级实验教程[M].北京:北京航空航天大学出版社,2009.
[4]徐丹旸,王勇,宋潇.基于SOCP技术的实验教学探讨[J].中国科教创新导刊,2008:66
[5]叶波,赵倩.“集成电路系统设计”课程教学改革探讨[J].中国电力教育,2010(16):109-110.
(作者单位:西安建筑科技大学信息与控制工程学院)