摘要:传统“数字电路”课程以讲授中小规模电路为主,与产业和技术应用趋势严重脱节。本文以FPGA设计技术和硬件描述语言为基础,按照数字电路到复杂数字系统的顺序,从易到难地重新设计了教学内容,重点培养学生利用FPGA设计数字电路和数字系统的能力。在理论教学改革的同时,配套的实验课程也采用FPGA平台开展教学。课堂实践证明,改革后的新课程“数字电路与FPGA设计”能够满足应用型本科院校的人才培养需要。
关键词:数字电路;教学改革;FPGA
0引言
“数字电路”是电子信息和自动化类工科专业必修的一门基础课。传统的“数字电路”理论教学以布尔代数和逻辑卡诺图为理论工具,以门电路和触发器作为基本电路单元,以组合电路和时序电路作为知识主干[1~2]。实验教学以中小规模集成芯片为主要器件,实验手段局限在器件连线和传统示波器等的使用。这样传统的教学方式导致培养的学生缺乏设计复杂数字系统的能力、缺乏熟练使用现代数字系统设计、测试和调试工具的能力,所学的知识与实际的技术应用脱钩[3]。
相对于集成度较低的标准芯片,现场可编程门阵列FPGA拥有丰富的内部资源,能根据应用需求在硬件层进行灵活修改,适用于大型集成电路和数字系统的开发。越来越多的高校开始将FPGA作为主要的教改手段引入到“数字电路”理论和实验课程中[2~6]。我院以硬件描述语言(VerilogHDL)为主要设计手段,以FPGA作为实现工具,将“数字电路”课程改革为“数字电路与FPGA设计”课程,精简了传统的教学内容,按照从简单组合电路到复杂数字系统的顺序,循序渐进地编排了理论教学内容和实例训练[4]。实验平台也由传统的实验箱变为口袋式FPGA开发平台。
1传统教学内容的精简
1.1逻辑函数与卡诺图
传统的教学内容目的是让学生掌握采用集成芯片设计中小规模数字电路的能力,因此,逻辑函数和卡诺图的化简是课程教学的重点。然而,在实际应用中,小规模芯片的使用越来越少,取而代之的是拥有丰富片内资源的现场可编程逻辑器件FPGA。因为器件中各种单元电路足够多,也就没必要对逻辑函数进行化简[5]。因此,新课程对逻辑函数和卡诺图的化简内容进行了大幅度的弱化,只介绍了基本的原则,不作为教学内容的重点。
1.2组合电路
传统的组合电路教学内容以门电路为基础,以编码器、译码器、数据选择器、数值比较器和算术运算电路的集成模块为主要对象,培养学生对小规模组合电路的分析和设计能力。基于FPGA在工业现场的大规模应用,传统的组合电路分析和设计方法已经不适应实际的生成需要。因此,新课程只对典型组合电路的功能进行简单介绍,教学重点为VerilogHDL行为描述的常用语法介绍,包括always块、if语句、case语句、参数和常数等,并通过一些常见组合逻辑电路实例来介绍基于VerilogHDL语言的设计方法,如二进制-BCD码转换器。
1.3时序电路
传统的教学内容以各类锁存器和触发器模块为基础,并把时序逻辑电路的设计作为重中之重。在使用FPGA设计中小规模时序电路时,不需要考虑状态的化简,也不需要考虑触发器的类型。因此,新课程中删减了时序逻辑电路的传统设计方法,弱化了不同结构、功能和用途的锁存器、触发器的教学内容,将教学重点关注到这些基础时序逻辑单元的VerilogHDL描述方法上,如触发器、寄存器、移位寄存器和计数器的VerilogHDL行为描述。在学生掌握简单时序电路的FPGA设计方法后,新课程通过PWM脉冲调试器、7段数码管动态扫描以及秒表等实例,进一步训练学生设计复杂时序电路的能力。
2新增的教学内容
为了进一步培养学生利用硬件描述语言和FPGA设计复杂数字系统的能力,新增的教学内容包括:FPGA与Vivado基础,VerilogHDL基础,计数器和状态机架构,IP核设计方法,串口通信控制器设计,内部存储器控制器设计,VGA控制器设计以及数字系统设计案例。
2.1FPGA与Vivado基础
教学内容主要为可编程逻辑器件的基本电路、表示方法,以及现场可编程逻辑门阵列FPGA的基本结构及原理。教学重点为实验平台Basys3FPGA开发板的结构及主要资源介绍,并通过一个两输入门电路的FPGA设计实例说明开发环境Vivado的整个设计流程。
2.2VerilogHDL基础
教学内容主要为VerilogHDL语言的基础规范,包括标识符、数据类型、运算操作、关键字、注释、模块及端口声明和定义以及编程规范。通过对VerilogHDL语言的学习,让学生掌握自顶向下、结构化的数字电路设计方法。
2.3计数器与状态机架构
教学内容主要为计数器架构八步法和有限状态机的VerilogHDL语言描述。计数器架构八步法包括明确功能、功能波形分析、计数架构、加1和结束条件、定义特殊点、完整性检查、计数器代码编写、功能代码编写。通过PWM流水灯和数字钟等实例进一步训练学生利用计数器架构法设计复杂时序电路的能力。有限状态机分为Moore状态机和Mealy状态机。通过序列检测器、交通信号灯数字系统、密码锁设计和ADC采样控制电路等实例实现学生运用状态机设计简单数字系统的能力。
2.4IP核设计方法
随着FPGA片内资源的继续增大,市场机制下的设计周期越来越短,基于可重复使用的第三方IP核完成复杂数字系统设计的趋势已经不可避免。Xilinx提倡的积木式设计,正是与IP核紧密相关,用户可以将功能性设计做成一个IP核,然后“组装”起来成为产品[4]。教学重点为教授学生如何使用第三方IP核或打包自己开发的IP核实现简单数字电路和数字系统的设计。
2.5串口通信控制器设计
当FPGA需要与外部数字设备进行数据传送时,需要用到串行通信协议。教学内容为四种串行通信协议的控制器设计,即UART总线、SPI总线、I2C总线和PS/2总线串行通信控制器的VerilogHDL行为描述。通过UART回环、OLED显示、ADT7420温度设置以及PS/2键盘控制等实例介绍了如何利用自顶向下的设计理念,基于先前学习的基本数字电路、计数器以及状态机模块,设计出具备通信能力的数字系统。
2.6内部存储器控制器设计
当FPGA控制不同串行通信接口或不同设备间通信时,需要将多个字节的数据临时按需要存入内部的存储单元或从内部存储单元中取出,此时需用到内部存储接口控制器。教学内容主要为两种内部存储器,即FIFO和RAM的VerilogHDL行为描述。从内部存储器的结构和数据传输时序等方面介绍了内部存储器的数据通信原理,并通过PS/2键盘数据存取命令实例来训练学生进一步设计具备通信和数据存储能力的数字系统。
2.7VGA控制器设计
一个良好的人机交流数字系统需要有可视化的数据输出。VGA视频接口作为当前仍是最常用的视频图像接口,有必要在教学中引入。教学内容为VGA接口信号功能、扫描显示原理以及VerilogHDL行为描述。通过VGA显示条纹、VGA显示文字、VGA显示图像等实例逐步地训练学生设计具备通信、数据存储和显示功能的复杂数字系统的能力。
2.8数字系统案例设计
为了进一步培养学生利用模块化的思想设计复杂数字系统的能力,新课程提供了若干数字系统案例。以俄罗斯方块游戏机为例,需要用到PS/2通信模块、RAM存储模块、VGA显示模块。控制核心需要用到先前学习的计数器架构和状态机架构。通过俄罗斯方块游戏机的学习,学生不仅能够巩固先前学习的数字电路和数字系统的FPGA设计方法,也能够加强学习的兴趣,为后续的创新实践课程打好基础。
3实验教学的改革
传统的“数字电路”实验课程独立于理论课程,由实验平台的教师上课。因此,常常出现实验课与理论课不同步,理论课没上的内容实验课已经开展了,学生学习效果差。另外,传统的实验平台采用的是集成的数字电路实验箱。实验以74LS系列的小规模集成芯片为主要器件开展,故障率高,能开展的实验有限,如基于状态机的红绿灯等实验就很难实现。
改革后的“数字电路与FPGA设计”将实验课程和理论课程相结合,由理论课教师直接带领学生实验,避免了实验与理论不同步的问题。此外,实验平台也从集成的数字电路实验箱改为了迪芝伦公司的口袋仪器Basys3FPGA开发平台和Xilinx公司的编程软件Vivado2017.4。通过该实验平台,学生可以学习现代数字系统的设计、仿真和调试流程,并能够将理论课程中教授的案例逐一实现。这大大增强了学生学习的兴趣和教学效果。
4结语
本文以FPGA设计为基础,从教学内容的精简和强化、实验教学的改革两个角度介绍了对传统的“数字电路”课程的教改探索,旨在培养学生利用硬件描述语言和FPGA设计数字电路和数字系统的能力。改革后的课程实施效果良好,在学院工程教育专业认证中获得了专家好评。——论文作者:艾伟清,陈景波,王伟,钟黎萍
相关期刊推荐:《电气电子教学学报》JournalofElectrical&ElectronicEducation(双月刊)1979年创刊,是我国高教界电气、电子信息、电子科学、自动控制类专业教学与科技的学术刊物,主要读者和作者为各类高等院校的管理人员、教师和学生,也包括工业和企业的工程技术人员。设有:专题论坛、专业改革、课程改革、教学研究、电子科学、电子信息、电气工程、自动控制等栏目。
* 稍后学术顾问联系您