APP下载

基于FPGA技术的嵌入式应用型人才培养教学体系

2011-12-31李兰

计算机教育 2011年16期

  摘要:以哈尔滨理工大学2010年计算机科学与技术专业培养方案修订为背景,针对FPGA技术在嵌入式系统中日益广泛的应用,提出嵌入式技术与应用专业方向基于FPGA设计技术的嵌入式应用型人才培养的课程体系,结合学校现有的教学条件,详细介绍基于Xilinx FPGA实验平台的课程体系设置、课程的理论和实验教学内容等。该课程体系围绕FPGA技术由浅入深展开教学,在培养学生全面掌握FPGA 器件开发技术的同时,也培养其基于FPGA的嵌入式系统设计与应用的能力。
  关键词:嵌入式人才培养;教学体系;FPGA技术
  
  1研究背景
  目前,嵌入式系统人才需求与人才培养的矛盾突出,嵌入式系统人才培养是个系统工程,包括教学体系的完善,教学内容的改革,教材建设,配套实验设备的开发,教师团队的培养等。嵌入式系统人才培养门槛较高,实践性很强,涉及操作系统、接口技术、汇编语言程序设计、C语言、硬件描述语言、数字电路及逻辑、网络编程、数据库等,对师资水平、实验设备要求较高。
  现场可编程门阵列(FPGA) 是1985年由美国Xilinx公司首先推出的一种新型的PLD,其规模大、集成度高、灵活性强、实现的逻辑功能更广,因此已逐步成为复杂数字硬件电路设计的首选。
  随着科学技术的飞速发展,系统向着高速度、低功耗、低电压和网络化、移动化方向发展,人们对电路的要求越来越高,传统单一功能的集成电路很难满足发展的需求,而CPLD/FPGA可以方便地通过对逻辑结构的修改和配置,完成对系统和设备的升级。掌握FPGA技术有利于电子设备的更新换代,增加其技术含量,提高产品的竞争力。FPGA的应用领域不断扩大,已成为现代电子系统设计工程师们需要掌握的重要器件之一,社会对熟练掌握FPGA器件开发的高素质大学毕业生需求量每年都在增加。正是由于以上背景,很多院校都在加强FPGA课程的建设,从而提高学生利用FPGA 器件进行应用和开发的熟练程度和实践能力[1]。
  嵌入式系统的实现从硬件的角度分类主要有以下几种形式:嵌入式处理器、微控制器(又称单片机)、DSP处理器和嵌入式片上系统(SOC)/片上可编程系统(SOPC)。对于较复杂的系统,往往采用微控制器+FPGA(可编程逻辑器件),或微控制器+DSP+ FPGA等方案,同时FPGA设计技术又是SOC/SOPC的基础,而SOC/SOPC代表嵌入式系统发展的方向,因此,培养熟练掌握FPGA技术的嵌入式系统应用型人才意义重大,是学校紧跟社会发展趋势、培养满足社会需求的嵌入式人才的重要途径。
  目前,不少高校都开设了FPGA相关的课程。由于起步较晚,课程还不够成熟,从基于FPGA技术的嵌入式系统人才培养的角度,也存在许多问题。课程设置缺乏系统性,相应课程没有开设或开设学时太少,先后的课程内容衔接不上,严重影响教学效果。以我校为例,2006版培养方案中,与FPGA技术相关的课程只开设Verilog语言设计和SOPC原理及应用两门课,而FPGA器件的结构和原理,数字系统设计,SOC/SOPC的硬件系统结构及设计等内容课堂上无法讲授,学生对FPGA技术和SOPC 设计的掌握不系统也无法深入。
  另外通过FPGA的灵活应用,学生能够感知到学习理论基础知识的必要性,让他们在学到知识的同时,体会知识的实用性,增强学习的成就感,以便激发他们进一步对知识探索的渴望和追求。
  基于FPGA技术的嵌入式应用型人才培养任重而道远,包括教师队伍的建设,相关课程的教学内容和实验手段的改革,新开设课程的教材建设和性价比较高的配套实验平台的开发,相应实验的开发和设计等。
  2FPGA课程体系设置和学时分配
  在我校2010版计算机科学与技术专业的B培养方案修订中,对A:数据库软件开发; B:数字媒体技术;C:嵌入式技术与应用等3个专业方向的课程体系进行了修订。尤其是对嵌入式技术与应用专业方向,修订的目标是突显应用特色,努力培养适应社会需求的应用型和创新型的嵌入式人才。
  Xilinx公司是全球最大的可编程逻辑器件制造商,也是FPGA器件的发明者,很多高校、研究所、公司都采用Xilinx的方案与芯片进行开发与研究。2007年学校与Xilinx公司合作成立了FPGA联合实验室,学校购买了SEED_XDTK实验平台多套。
  本实验平台由Xilinx 公司设计的XUP Virtex-II Pro 开发系统构成,主要器件是Xilinx推出的Virtex-II Pro 系列器件,嵌入了PowerPC 405 处理器硬核。SEED-XDTK 教学实验平台是一套既可以满足大学本科、研究生和教师科研工作,又可用于复杂算法评估、项目预研的FPGA综合实验设备。
  鉴于FPGA技术在嵌入式人才培养中的重要性,结合学校现有的教学条件,新的培养方案制定了相关的课程体系、相关课程的理论教学大纲和实验教学大纲,编写了实验指导书等。在该课程体系的建设中,充分考虑FPGA技术教学内容的系统性,注意课程体系授课学期和先后内容的衔接,避免出现内容上的脱节、重复等问题。在学时分配上,加大实践环节的学时。FPGA课程体系包含5门课程,其课程设置和学时分配如表1所示。
  表1的课程体系按照由浅入深的原则,使学生在掌握EDA软件、FPGA结构和工作原理,SOPC硬件组成的同时,利用Verilog HDL语言,掌握从门级电路、各种数字电路和系统、接口电路到SOPC的FPGA设计和应用技术。
  另外,许多高校也在探讨基于FPGA的计算机专业基础课计算机组成原理的课程体系和内容的改革,相应教材也已出版,该课程除了讲述计算机系统中的CPU、存储器和接口等部件的工作原理外,还使学生学习和掌握如何利用Verilog HDL语言在FPGA上实现CPU、存储器和接口等部件的功能。这将进一步完善FPGA课程体系。
  3FPGA课程体系的理论和实践教学内容
  3.1数字电路及逻辑(含Verilog HDL语言设计)
  该课程是专业基础课,理论学时48,实验学时为12,主要讲述Verilog HDL语言、门电路、时序电路和组合电路的概念、原理;讲述采用Verilog HDL语言在FPGA上实现各种门电路、时序电路和组合电路功能的方法。
  实验内容包括:
  1) Max+Plus II的使用流程实验。
  2) 4位全加器实验:用Verilog HDL设计4位全加器,进行功能仿真验证。
  3) 触发器的实验:用Verilog HDL设计D才触发器、J-K触发器,进行功能仿真验证。
  4) 计数器实验:用Verilog HDL设计8位计数器,进行功能仿真验证。
  5) 锁存器实验:用Verilog HDL设计RS锁存器和D锁存器,进行功能仿真验证。
  6) 数码管显示综合设计与实现:用Verilog HDL设计7段数码管显示译码器,进行功能仿真验证。
  7)7人投票表决器实验:了解投票表决器数字电路的设计原理,用Verilog HDL设计七人投票表决器,进行功能仿真验证。
  3.2数字系统设计
  该课程是专业方向课。理论学时32,实验学时16,课程从实用角度出发,系统地讲述大规模可编程逻辑器件、EDA设计工具和数字系统设计方法。理论教学主要内容包括:数字系统的概念、设计思想、设计过程,以及基本模块电路设计和系统设计的概念、方法和原则;CPLD和FPGA器件的结构和原理;仿真与设计软件工具ISE的功能和使用;通过实例全面系统地讲述数字电路设计方法;通过大量实例深人浅出地展示Verilog HDL语言的设计方法和技巧,并进一步介绍用Verilog HDL进行数字系统设计的方法。
  
  实验内容包括:
  1) ISE8.2 工具软件使用流程实验,编写简单的实验例程。
  2) Architecture Wizard与PACE 实验:掌握使用Architecture Wizard 与PACE。
  3) 全局时序约束实验:掌握使用Constraints Editor 设置全局时序约束。
  4) 综合技术实验:了解综合技术。
  5) IP 核生成工具使用实验:掌握使用CORE Generator的方法。
  6) ISE8.2 环境下Chipscope 使用实验:掌握使用Chipscope-Pro的方法。
  7) 数字钟的层次化设计。
  8) 智能洗衣机控制器的设计。
  9) 智能电梯控制器的设计。
  3.3SEED_XDTK实验系统分析
  该课程是专业方向课。理论学时32,实验学时16,内容包括实验平台的硬件组成分析、实验箱基础实验等[2]。通过对SEED_XDTK实验系统硬件结构的详细分析,使学生学习和熟悉SOC/SOPC的硬件系统组成及设计方法,熟悉实验平台的各种接口和外设的引脚分配和其工作原理,对SOC/SOPC的硬件结构有全面的了解,不仅培养学生的硬件设计能力,为SOPC原理及应用课程打好基础,同时使学生加深对FPGA接口设计实验的理解。
  实验内容包括:
  1) LED点阵实验:了解和掌握定时器的Verilog HDL 实现。
  2) 键盘实验:本实验由键盘扫描、去抖,以及数码管点亮和蜂鸣器驱动等功能构成。学习使用Architecture Wizard 生成DCM模块单元;掌握例化DCM 模块单元的方法。
  3) AD/DA实验:了解和掌握A/D、D/A操作的Verilog HDL实现。
  4)RTC读取实验:了解和掌握I2C时序的Verilog HDL实现以及RTC操作的Verilog HDL实现。
  5) LCD显示实验:了解和掌握LCD的Verilog HDL实现,了解Memory模块的使用。
  3.4SOPC原理及应用
  该课程是专业方向课。理论学时32,实验学时8。SOPC是一门涉及许多学科而又广泛应用于许多领域的新兴学科,涉及EDA软件、硬件描述语言、FPGA器件、计算机组成与接口、汇编语言和C语言、DSP算法、嵌入式系统开发、嵌入式操作系统等内容。
  本课程重点讲述SOPC系统开发的设计理念和方法[3],使学生熟悉嵌入式开发环境(EDK),包括硬件设计开发环境(XPS)和软件设计平台(SDK),并能够熟练进行SOPC的软硬件系统设计,包括仿真验证和调试。
  通过本课程的学习,学生能够牢固掌握基于Xilinx FPGA内嵌CPU核Microblaze和PowerPC405的SOPC的基本概念和组成,掌握SOPC的设计环境、原理、方法及应用技术,能够具备使用开发实际SOPC应用系统的能力,培养学生嵌入式系统软硬件开发及应用能力,为他们今后从事通讯、计算机和控制等领域的科研和产品开发打下坚实的基础。
  SOPC实验包括:
  1) 硬件设计实验:熟悉XPS硬件开发环境,掌握使用Base System Builder(BSB)生成一个系统。
  2) 添加IP核实验:掌握在硬件设计中添加IP 并学会使用Xflow来实现设计。
  3) 定制IP Core设计实验:掌握使用Create/Import
  Peripheral Wizard生成IP。
  4) 建立软件应用程序实验:掌握用C语言编写基本应用程序来访问IP外设并学习利用XPS 生成MSS 文件。
  5) SDK 使用实验:掌握使用SDK 来生成和调试程序。
  6) 硬件/软件系统调试实验:掌握使用Chipscope
  Analayzer 和SDK debugger 进行调试的方法。
  3.5嵌入式系统设计案例
  该课程是专业方向课。理论学时16,实验学时8。该课程采用案例教学方法,通过频率计[1]、全彩LED音乐景观灯控制系统[4]案例的讲解和实验,讲述采用微控制器,微控制器+FPGA形式的嵌入式系统设计方法以及SOPC系统的设计方法,使学生进一步提高嵌入式系统设计与应用能力。
  SEED-XDTK教学实验平台可满足课程群中大部分课程的实验教学要求,在此基础上,充分利用科研项目、校开放式、创新型实验等的研究成果,进一步增加和完善课程体系中的实验系统。另外,为使学校投资效益最大化,还可在现有的实验平台上,设计其他专业方向课的综合性实验,例如计算机控制技术课程中的数字插补器的IP核实现,信号与系统课程中的滤波器、FFT算法的IP核实现,操作系统课程中的内核的IP核实现等。
  掌握了FPGA设计技术,通过综合性和创新性实验,使学生将多门课程及概念融