基于FPGA的SOPC电子系统设计实验研究
2018-03-30叶朝辉华成英张利伟杨知乐
叶朝辉, 华成英, 张利伟, 杨知乐, 田 珊
(清华大学 自动化系, 北京 100084)
1 FPGA SOPC实验相关课程开设现状
SOPC(system on programmable chip,可编程片上系统),即用可编程逻辑技术将整个系统集成到一块芯片上。SOPC通常是指基于FPGA(field-programmable gate array,现场可编程门阵列)的带1个或多个软核或者硬核微处理器以及一些外围设备的片上系统SoC(system on chip)。SOPC也是一种特殊的嵌入式系统,既具有微处理器处理能力强大的优势,又具有FPGA设计方式灵活和在系统可编程的优势,因此利用SOPC设计电子系统的应用越来越多,例如文献[1]介绍了其在通信领域的应用,文献[2]介绍了在医疗领域的应用,文献[3]介绍了在能源领域的应用,文献[4]介绍了在图形图像处理中的应用。基于此,在电子系统设计相关教学中引入SOPC技术的内容就成了必然趋势。
目前国内外开设的SOPC系统设计课程大致分为2大类。第一类是嵌入式系统或计算机结构课程,基于FPGA平台设计一个微处理器系统或者计算机系统,侧重于培养学生对微处理器结构或计算机结构及外设的认识和理解,如参考文献[5]—[9]。第二类是电子系统设计课程,基于FPGA平台,利用已有的软核或硬核微处理器和总线设计IP核,组成系统,培养学生设计SOPC系统的能力,如参考文献[10]—[14]。以上这些课程所用的实验平台有的是自己研制的,有的则是直接应用了Altera或者Xilinx提供的教育版实验平台。
我校自动化系从2010年开始在本科生二年级暑期的“现代电子系统设计”课程中开设了基于FPGA的SOPC电子系统设计内容,并从相关课程知识的融合和衔接、培养学生进行SOPC设计最有利的方法、SOPC电子系统最适合的实际应用、自动化专业的特点等4个方面研究教学方法和教学内容,几年中不断改进内容体系、教学方法和实验实践环节,形成了一门独具特色和富有创新性的课程。
2 相关课程体系介绍
“现代电子系统设计”课程在大二暑期开设,学生已经具备了微处理器及外设、数字和模拟电子技术、C和C++语言等技术基础和一定的实验技能,综合这些知识设置课程内容和实验,有利于培养学生综合设计的能力和创新设计能力。因此“现代电子系统设计”课程首要的教学指导思想是采用先进的集微处理器和外围设备的SoC作为设计系统的核心芯片。
本课程最初选择了PSoC作为电子系统设计的核心器件,之后逐步增加了FPGA-SOPC和ARM CortexM4的内容。基于FPGA的SOPC系统通常带有软核或硬核微处理器,由于软核微处理器的系统设计方便灵活,因此本课程选择了基于Altera FPGA的软核NIOSII的SOPC系统,同时选择Altera 提供的DE2教学实验平台,该平台被很多国内外大学课程采用。
3 FPGA-SOPC实验方法研究
3.1 相关课程知识的融合和衔接
由于SOPC集数字可编程逻辑阵列FPGA及微处理器和部分外设于一体,因此可以运用“计算机语言与程序设计”“计算机原理及应用”和“数字电子技术基础”3门课程知识综合进行系统设计。另外,当需要实现SOPC系统与计算机通信时,实验室提供计算机通信接口程序,如UART、USB等,而应用程序则需要学生自己编写,可以运用“计算机语言与程序设计”和“C++程序设计与训练”2门课程知识进行设计。为了融合模拟电子技术基础课程的知识,实验室提供了各种各样的传感器和执行器以及现代模拟器件,可以设计SOPC的外围传感和执行电路。从传感器采集到的信号经过放大后直接通过电压比较器或模数转换器ADC,将模拟信号转换为数字信号后再输入SOPC,而SOPC输出的数字信号则通过数模转换器DAC转换为模拟信号,之后再经过功率放大或直接输出给执行器。以上教学设计思想可以将之前的5门课程知识融合在1门课程的FPGA-SOPC教学内容中。
3.2 培养学生进行SOPC设计最有利的方法
由于SOPC系统设计内容需要综合运用多门课程知识,对学生来说难度较大,因此开课之初的2年主要考虑如何将实验开设起来并积累经验,重点从3个方面研究了进行SOPC设计最有利的方法。
(1) 编写符合认识规律的实验指导书,使学生容易理解什么是SOPC、SOPC有何特点、如何设计查找合适的参考资料等。
(2) 确定循序渐进2个层次的实验教学过程,让学生一步一步完成实验,减少难度。2个层次实验为基本实验和提高实验,使绝大多数学生能够完成实验。
(3) 精心设计实验内容。基本实验难度较小,有详细的指导手册。之后设计了几个有一定难度的提高实验,同时将提高实验拆分为几个步骤,减少了学生综合的困难。通过2年的实践,学生不仅能够完成实验,而且非常感兴趣。在此基础上,又将实验改为3个层次,增加了综合实验。同样,为了降低难度,除了将综合实验拆分为几个步骤外,还对关键问题给出适当的提示。
最近几年,随着教学经验的积累和SOPC设计方法的更新,不但多次修改了基本实验、提高实验,还增加了综合实验的数量和种类,并且鼓励学生研究创新实验,不断提高教学质量和课程的挑战性,使学生能够完成从电子系统设计到硬件实现的全过程,提高了学生的综合应用能力、系统设计能力和实践能力。
3.3 SOPC电子系统最适合的实际应用
SOPC既具有微处理器处理能力强的特点,又具有FPGA设计灵活的特点。微处理器适合处理复杂的顺序执行的任务,而FPGA适合处理并行的或时序复杂的任务,因此SOPC最适合处理既有复杂的顺序执行的任务,又具有并行的或时序复杂的任务的实验项目。对于嵌入式系统,时序复杂的任务通常包括串行通信、液晶显示控制、ADC数据采集和DAC数据输出等,而并行任务通常包括多通道数据采集、数字滤波等数据处理任务。因此设计实验时可以考虑以上应用。
3.4 自动化专业的特点
自动化专业的特点主要是利用自动化理论和技术来设计和实现自动化系统,用于各行各业的自动化生产监测和控制等,以提高效率和质量,创造社会和经济效益。自动化人才的培养目标就是要面对实际问题,能够自主地探索解决问题的方法,完成系统设计、模型建立、仿真、硬件实现、系统调试。课程内容设置一方面要考虑自动化专业特点。由于自动化系统通常包括硬件和软件2部分,硬件部分除了计算机外,绝大多数都是由嵌入式系统组成,而嵌入式自动化系统最具代表性的就是工业测量和控制系统、机器人、无人机等,这些系统中大都会用到数据输入、数据采集和数据处理、液晶显示、通信等子系统功能,因此设计SOPC实验时需要考虑自动化系统的特点。另一方面要考虑自动化人才的培养目标,重点体现在课程中培养学生系统设计、系统调试、硬件实现等实践能力。
4 教学内容和教学模式
教学模式上力求做到激发学习兴趣、促进学习效果、增强实践研究和创新能力。为达到这些目标,教学内容分为讲课、自学、交流讨论、实验4部分,讲课、自学、实验3部分内容循序渐进、因材施教,着重培养学生的研究能力和创新能力。
4.1 讲课
主要讲授内容包括:
(1) 实验要求、实验内容、实验设备、实验平台、实验器材等。实验平台为Altera公司的DE2教学平台,实验器材包括常用电子元器件、各种各样的传感器和执行器模块等。
(2) SOPC结构及特点。这是教学内容的一个难点,需要融合数字电路和计算机结构内容,以及嵌入式系统的知识。
(3) 基于NiosII的SOPC系统设计软件、设计流程、设计方法、设计样例。设计软件包括QuartusII和Eclipse,分别用于硬件和软件设计。基于NiosII的SOPC系统是一个软硬件复合系统,软件和硬件需根据需求灵活划分,系统设计方法需采用软硬件协同设计的新方法,因此也是教学内容的一个难点。由于设计灵活,非常适合于学生进行创新设计,培养软硬件创新设计能力。
(4) Verilog设计硬件设备的要点。主要对比C语言设计方法的相似点和不同点,其次强调用Modelsim仿真软件协助设计和调试的方法。SOPC系统硬件设计的主要任务是定制设计合适的微处理器和外设。微处理器采用NiosII,需要设置许多特性;外设通常通过Avalon总线与微处理器交换信息,需要使用Verilog或VHDL来自行设计基于Avalon总线的IP核。因此SOPC系统硬件设备设计是教学内容的又一个难点。
4.2 自学
由于之前学习的一些课程内容会随着时间的推移淡忘,因此要求学生复习FPGA及Verilog语言、模拟电子技术基础、计算机原理,同时阅读嵌入式系统、NIOSII SOPC、Avalon总线结构、QuartusII和Modelsim仿真软件、DE2实验平台手册等相关资料,这些自学任务从课程开始前的假期就布置了,学生可以根据自己的基础有选择性地自学。
4.3 交流讨论
由于SOPC系统设计涉及到硬件和软件2部分,而且硬件和软件又都多种多样,需要学生综合起来协同设计和调试,对学生来说困难较大。为了促进学习、激发兴趣,鼓励交流讨论。首先给学生提供常见问题及解决办法,学生遇到无法解决的问题可以参看;其次要求每位学生每天将自己遇到的问题和解决办法发布
在网络课堂的讨论栏与其他学生交流讨论;另外创新实验时学生自己组成团队交流讨论;最后实验结束后统一进行交流讨论。通过多种方式的交流讨论,有效地促进了学习效果,增强了学生的实践能力。
4.4 实验
实验内容循序渐进,培养学生的实践研究能力和创新能力。实验内容包括4个层次:基本实验、提高实验、综合实验和创新实验。
(1) 基本实验。实验目的是让学生尽快了解SOPC的基本结构、特点及设计方法,实验内容为简单的带NIOSII软核微处理器的SOPC系统的实验,该实验没有设计IP核。
(2) 提高实验。实验目的是让学生掌握利用SOPC实现带Avalon总线IP核功能的方法,实验内容选择了适合于SOPC实现的自动化系统硬件常见的液晶显示、输入设备和串行通信,利用DE2自带的遥控器和液晶显示器实现信息输入和信息显示,遥控器与DE2平台之间通过I2C通信输入信息,要求基于NIOSII处理器和Avalon总线IP核实现。该实验有较高难度,因此提供了液晶显示器和遥控器IP核实现的提示,以降低难度。
(3) 综合实验。实验目的是让学生掌握用SOPC设计适合于SOPC实现的自动化实用电子系统的方法,设计了多个信号采集及显示系统实验,例如多路温度采集、温湿度测量、脉搏测量、超声波测距、光强测量等,以及一个简易数码相框图片显示实验。
(4) 创新实验。实验目的主要是让学生自由选题、团队合作完成1个具有创新性的系统设计,实验内容则结合自动化实用系统,给学生提供创意之星机器人套件、四旋翼飞行器套件等,学生还可根据自己兴趣利用其他设备进行创新设计,也有些学生利用FPGA并行处理能力强的优势设计快速智能算法IP核,组成信号处理SOPC系统。
通过4个层次的实验,逐步培养学生综合、设计、研究、创新及合作的能力。
5 教学效果
现代电子系统设计课程内容包括PSoC、ARM CortexM4、FPGA-SOPC 3部分SoC系统设计,其中基于FPGA的SOPC系统设计虽然难度大,但是学生学习热情很高,反映在课程中收获很大,提高了对实际系统的设计能力和创新能力。
图1—4分别是学生的实验作品。图1为提高实验完成结果,图2—图3为综合实验完成结果,图4为利用FPGA-SOPC、PSoC完成的创新实验结果。
图1 FPGA-SOPC遥控器输入和液晶显示提高实验
图2 FPGA-SOPC超声波测距和温湿度测量综合实验
图3 FPGA-SOPC简易数码相框综合实验
图4 利用FPGA-SOPC、PSoC完成的游戏创新实验
6 结语
本文将基于FPGA-SOPC的电子系统设计引入相关课程教学,从4个方面研究了适合的实验方法,教学模式上力求做到激发学习兴趣和促进学习效果。讲课、自学、实验3部分内容循序渐进、因材施教,着重培养学生的研究能力和创新能力。课程和实验内容开设几年来一直受到学生的欢迎,达到了课程开设的目标。
References)
[1] 聂伟,陈奕,杨晓青.基于SOPC的Turbo码实验平台设计[J].实验技术与管理,2007,24(12):69-73.
[2] 吴忠.基于NiosⅡ和FPGA的便携B超的交互系统的设计与实现[D].长沙:中南大学,2011.
[3] 阎昌国,龚仁喜,刘小雍.基于SOPC的交错APFC变换器设计[J].电子技术应用,2017,43(7):135-139.
[4] 包明,余成波,张睿.基于NiosII处理器液晶图形显示技术的研究[J].微计算机信息,2007,24(14):126-128.
[5] Bartik M,Pichlova D,Kubatova H. Hardware-Software Co-Design:A Practical Course for Future Embedded Engineers[C]//5thMediterranean Conference on Embedded Computing.2016:347-350.
[6] Shi Q S,Xiang L X, Chen T Z,et al.FPGA-Based Embedded System Education[C]//First International Workshop on Education Technology and Computer Science. 2009:123-127.
[7] 龚向东,黄虹宾,杨靖. UP3板在SoPC嵌入式系统教学实验中的应用[J].电气电子教学学报,2006,28(4):83-86.
[8] 李贞妮,金硕巍,李晶皎,等.基于FPGA的SOPC设计实践教学方法探索[J].电气电子教学学报,2013,35(6):81-85.
[9] 周悦芝,董代洁.基于FPGA的计算机系统接口实验平台的设计与研制[J].实验技术与管理,2013,30(5):70-86.
[10] Li X J,Guan Y,Yuan H M.A Novel Course System and Engineering Practice Design for Embed System Education[C]// International Conference on Computer Science and Software Engineering. 2008:1388-1391.
[11] 江晋剑.基于SOPC实验平台的创新型实验方法研究[J].微型电脑应用,2009,25(3):36-38.
[12] 田淑珍,全成斌,董代洁.基于SOPC及USB键盘的简易电子琴综合设计实验[J].实验科学与技术,2015,13(1):44-48.
[13] 何剑春,龙胜春.基于SOPC技术的电机控制实验[J].电气电子教学学报,2010,32(2):58-63.
[14] 陆小锋,张竞,吴烨丹,等.基于自制SOPC平台的图像空间变换实验设计[J].实验科学与技术,2013,11(4):9-12.