数字逻辑实验技术改革的研究
2015-04-10盛建伦刘淑霞巩玉玺
盛建伦,刘淑霞,王 勇,巩玉玺
(青岛理工大学计算机工程学院,山东青岛 266033)
数字逻辑实验技术改革的研究
盛建伦,刘淑霞,王 勇,巩玉玺
(青岛理工大学计算机工程学院,山东青岛 266033)
分析了传统的基于中小规模集成电路的实验技术的弊端;提出计算机专业的“数字逻辑”课程应该采用基于VLSI的EDA实验技术,并且用设计性实验取代验证性实验;开发了数字逻辑设计性实验课题;研究出了改革方案并在教学实践中取得好的效果;基于VLSI的“数字逻辑”实验技术用硬件描述语言进行逻辑设计,用软件仿真来检验逻辑设计是否正确。
数字逻辑;实验技术;设计性实验;虚拟实验
近年来,教育部计算机科学与技术专业教学指导委员会制定的《计算机科学与技术本科专业规范》对于计算机专业的课程设置和教学要求都发生了变化,对于硬件类基础课程的要求与其他电子、电气类专业有所不同。考虑到计算机科学与技术专业需要掌握的是计算机逻辑结构的设计方法而不是其电子实现,我国许多高校的计算机专业陆续将基础课程“数字电子技术”改为“数字逻辑”。与“数字电子技术”相比,“数字逻辑”课程的教学注重“逻辑”而不是“电子”,强调集成电路的外部特性而非其内部电路。
1 传统实验技术的弊端
多年来,“数字电子技术”的实验教学与其他电子技术类课程一样使用专门的实验箱。实验通常使用74系列的TTL或CMOS中小规模集成电路。在实验箱上用插线把集成电路和其他元件连接成题目要求的实验电路,在实验过程中一般需要使用示波器、万用表等仪器进行观察。做实验的时候,学生能够实际看到并接触集成电路芯片和其他元器件,实际进行电路的连接,对电子电路、集成电路芯片、电压、信号等的印象比较深刻。早期的数字电子实验是在面包板上插线,极易发生接触不良、断线等问题,往往需要花费大量时间排除接触问题和错误的连接。后来发展为将集成电路芯片插在固定的集成电路插座上并使用专门的接插头、插孔等,改善了接触,实验成功率有所提高。此外,实验过程中经常会因为学生的操作错误而导致集成电路等元件的损坏,实验箱和其他仪器设备也会出现故障或损坏,反复的插拔器件和导线也容易造成引线折断,每年都发生器件材料消耗和设备维修的费用,实验设备完好率比较低。
用实验箱做实验,受连接线路等的限制,基本上只能按实验指导书的电路做指定的验证性实验,难以开展设计性实验。做验证性实验,不能发挥学生的主观能动性,实验教学与理论教学之间衔接得不好,没有真正起到“通过实验加深对理论知识的理解”和“理论与实际相结合”的作用,实验效果很不理想,既影响学生动手能力的提高,也影响学生对相关知识的掌握。认识到这个问题,一些学校也对实验内容进行了改革,增加了若干设计性实验课题[1-2]。但是,由于在实验中需要花费较多时间进行线路连接和排查,受时间限制,实验电路只能是用很少几片集成电路的简单逻辑,难以完成比较复杂的逻辑设计实验。
2 改革的必要性
作为先修课,“数字逻辑”应该为后继的“计算机组成原理”准备所需要的逻辑电路设计知识、分析技术和设计技术。现代计算机逻辑结构的设计方法是基于大规模、超大规模集成电路的,而非中小规模集成电路的。“数字电子技术”课程的实验教学是基于中小规模集成电路的,要求学生熟悉常用SSI、MSI的型号、外部引脚和连接方法。这些知识对于电子、电气类专业的教学是必需的,但是对于计算机专业和“计算机组成原理”课程的学习却不是必需的。因为计算机专业的任务是设计计算机的体系结构和逻辑结构,应该掌握基于LSI、VLSI的计算机逻辑结构(主要是CPU)的设计技术。但是“数字电子技术”的教学内容和实验课题都没有涉及基于LSI、VLSI的设计技术。如果“数字逻辑”沿用“数字电子技术”的实验技术,虽然对“数字逻辑”课程本身没有多少影响,但是却使“计算机组成原理”课程的实验教学改革难以进行。
“计算机组成原理”课程的实验教学涉及运算器、控制器等计算机主要部件的逻辑设计问题。由于运算器、控制器等部件的逻辑相当复杂,如果想用74系列的中小规模集成电路来设计,需要的芯片数量太多,实验电路规模比较大,线路连接太复杂。因此,在课程内的实验教学中不可能用74系列的中小规模集成电路设计和实现运算器、控制器这样的逻辑。所以,除了存储器扩展实验外,基于中小规模集成电路的“计算机组成原理”实验箱一般只能做验证性实验,这就是为什么“计算机组成原理”课程的实验教学长期局限在做验证性实验的主要原因。探索了在“计算机组成原理实验”课程中增加几个用VHDL设计逻辑电路的实验后,蒋本珊[3-4]指出,受学时限制,在“计算机组成原理”课程内学习硬件描述语言是不现实的,应该在前导的“数字逻辑”课程中增加硬件描述语言的内容,或者增设介绍EDA工具和硬件描述语言的选修课程。
20世纪90年代以来,随着电子技术和VLSI技术的进步,大规模集成电路PLD芯片逐渐取代了数字系统中传统的中小规模集成电路。同时,用硬件描述语言设计数字系统的EDA技术发展成熟并广泛应用。数字系统和计算机系统的设计方法从传统的逻辑电路设计方法向“硬件设计软件化”方向转变。将EDA技术用于实验教学就是“硬件实验软件化”,属于“虚拟实验”范畴。“数字逻辑”课程的实验教学应该适应技术的进步,采用先进的基于VLSI的EDA技术。我国高校的计算机专业硬件类课程的教学和实验技术落后于技术的进步,与国外有明显差距。进入21世纪以来,我国一些高校开始探索“数字逻辑”和“数字电子技术”课程的实验教学改革[2,5-11]。
青岛理工大学计算机学院于2008年修改了计算机类各专业的培养方案,将“数字电子技术”改为“数字逻辑”,2010年开始在“数字逻辑”课程实验教学中采用新的实验技术[12]。经过9轮教学的改革探索和不断改进,现在不仅完善了基于VLSI的“数字逻辑”课程实验技术,而且已经形成了计算机专业硬件基础课程的实验教学体系[13]。
3 基于VLSI的“数字逻辑”实验技术
基于VLSI的“数字逻辑”课程实验技术主要包括8个方面。
3.1 增加硬件描述语言VHDL的学习
EDA技术并非都是基于VLSI的,也可以是基于中小规模集成电路和分立元件的[14]。基于VLSI的EDA技术是用硬件描述语言而不是传统的逻辑电路设计方法进行逻辑设计,用软件仿真来检验逻辑设计是否正确,最后下载到FPGA等大规模PLD芯片成为数字系统。因此,学生在实验前必须先学习硬件描述语言和用硬件描述语言做逻辑设计的方法。在“数字逻辑”课程中学习硬件描述语言为实验技术改革创造了有利的前提。目前最常用的硬件描述语言有VHDL和Verilog HDL,在“数字逻辑”课程中采用VHDL进行教学比较好。
3.2 硬件实验软件化
放弃在实验箱上插接集成电路芯片和连接线的方式,“数字逻辑”课程的全部实验不需任何实验箱,都通过VHDL文本编辑、编译和软件仿真在普通PC机上实现。实验平台用Altera公司的Quartus II或者Xilinx公司的ISE。我们在教学中用的是Quartus II。如此改革的另一个好处是使计算机专业硬件基础课程的实验可以在软件实验室进行,从而节省大量的设备投资及材料消耗费用。这种新的实验技术既能够实现验证性实验,也能够实现设计性实验,能够看到使用传统实验方法难以看到的完整的输入输出波形图和竞争冒险现象,具有实验成功率高、教学效果好、一人一组、节省设备投资与维护费用、元件材料消耗低等优点。
3.3 “数字逻辑”设计性实验的实验步骤
逻辑设计→VHDL编程→启动Quartus II系统建立设计工程→输入程序文本→编译和消除语法错误→设计仿真输入波形→仿真→分析仿真波形消除逻辑错误→记录结果写实验报告。
做设计性实验,要求学生在进入实验室之前先进行逻辑设计,然后用VHDL编程和仿真。一般提前1星期布置实验课题。
用VHDL设计组合逻辑电路和时序逻辑电路的方法与传统的用逻辑代数和逻辑图设计的方法有很大不同。组合逻辑设计是首先根据问题抽象出真值表。如果采用行为描述,在VHDL设计实体的结构体中描述真值表就可以了;如果采用数据流描述,逻辑设计还需要做出逻辑函数,然后在VHDL设计实体的结构体中描述逻辑函数;如果采用结构描述,则逻辑设计需要做出逻辑图,然后在VHDL设计实体的结构体中描述逻辑图中各个低层元件的连接。
时序逻辑设计是首先根据问题抽象出状态转换图和状态转换图表。如果采用行为描述,可在VHDL设计实体的结构体中描述状态转换图。复杂的时序逻辑系统需要采用结构描述,在VHDL设计实体的结构体中描述逻辑图中各个低层元件的连接。
实验指导教师要挨个检查学生的预习情况(真值表、逻辑函数、逻辑图、状态转换图等),只有完成了逻辑设计的才算“到”,实验后才收实验报告、给予成绩。如果学生的逻辑设计有错误,当场指出并要求改正。
3.4 学生一人一组
用实验箱做实验,一般是2~5人一组,其主要原因是仪器设备的套数不够,其次是在实验过程中需要花很多时间连接线路、排查故障,还要看仪表、记录数据,有几人配合比较好。基于VLSI的EDA技术做实验,是在普通的PC机上用专门的软件平台做实验,不受仪器设备的限制。现在各高校计算机学院的软件机房中配置的机器数量往往足够至少3个班的学生同时使用,完全能够做到一人一组。一人一组有利于调动每个学生的学习积极性。
3.5 精心设计和选择实验课题
实验课题的设计是开展设计性实验教学必须妥善处理的关键问题之一,需要考虑各方面的问题。实验课题应该有合适的难度,使得大部分学生在现有基础上通过自己的分析和努力能够做出设计(不一定是完全正确的设计)。实验课题应该在本课程教学的重要知识点范围内,通过实验可以使学生更好地掌握相关知识点,实现理论教学与实验教学相辅相成。实验课题应该在书本或网络等其他信息源上没有现成的解答,学生必须自己进行分析设计才能得到解答。实验课题的设计还应该考虑到与后继课的实验课题的衔接。实验课题是开放的[12],可以做出不同的设计。
3.6 以设计性实验为主
EDA技术既可以做设计性实验,也可以做验证性实验。“数字逻辑”课程的实验应该以设计性实验为主。我们在进一步改革后,实际达到了全部实验都是设计性实验。
设计性实验比验证性实验的难度有明显提高,学生也要花更多的时间做预习、设计和写实验报告。在学习“数字逻辑”之前的各课程(物理、电路、模拟电子)实验,多是验证性实验,不少学生已经养成不做实验预习的习惯。因此,采取了要求学生提前做实验预习,写出实验设计和程序才允许进实验室做实验的措施。
3.7 实验教学与理论教学同步
改革后,“数字逻辑”的实验教学与理论教学同步进行,而不是像过去做验证性实验那样可以集中安排在课程的最后阶段或课程结束之后,使学生能够通过设计性实验加深对理论知识的理解,达到实验教学与理论教学相辅相成的效果。
3.8 手写实验报告
做“数字逻辑”设计性实验,要求学生手写实验报告,禁止打印。这样做,一方面使部分偷懒的学生不能简单地拷贝别人的报告,即使抄袭也需要花时间抄写、画图;另一方面,“数字逻辑”课程增加的VHDL的教学内容,在课程考试的范围内,手写实验报告有利于加深对VHDL语句和程序的印象。
作为一门工程性课程,不仅要学习如何做设计,也要学习如何写设计报告。训练学生写好实验报告,实际上也是在训练学生如何写工程设计报告,所以,对报告的格式和内容都要有明确的严格要求。实验报告的批改最好能在下一次实验之前完成,以便将发现的问题及时反馈到教学中,使学生能够及时纠正。第一次实验的报告如果发现有严重问题一律退回重新写。
4 实验课题的设计
在设计实验课题时不仅要考虑“数字逻辑”教学的需要,也要考虑与后继课程的衔接,对课题的难易程度、系统的复杂性、工作量的大小、知识点在课程中的重要程度等进行综合评价,筛选出合适的课题。
作为计算机组成原理的先修课,“数字逻辑”课程的实验教学应该训练学生掌握各种典型组合逻辑电路和时序逻辑电路(译码器、加法器、计数器、寄存器、状态机等)的设计和实现方法,同时,也有针对性地设计一些“数字逻辑”实验课题以支持“计算机组成原理”课程的实验课题,例如:“多功能加法器设计”实验就是为“计算机组成原理”的“ALU设计”实验做准备的;“寄存器设计”实验就是为“计算机组成原理”的“通用寄存器组设计”实验做准备的;“用N进制计数器芯片构成M进制计数器”的设计实验,是为“计算机组成原理”课程设计复杂的计算机部件(运算器、控制器等)准备“层次结构设计”方法的。
我们设计的“数字逻辑”实验课题包括:
(1)熟悉Quartus系统,用VHDL结构描述方法设计一个半加器;
(2)用VHDL设计一个代码转换逻辑电路,把7位的ASCII码转换成7段字符显示代码;
(3)用VHDL设计一个多功能的运算器,在控制信号M、S2、S1、S0的控制下能完成8种算术运算和8种逻辑运算;
(4)用VHDL设计一个自动售饮料机的控制逻辑电路(状态机);
(5)用VHDL结构描述方法设计M进制计数器(利用N进制计数器芯片);
(6)用VHDL结构描述方法设计一个余3码计数器(利用16进制计数器芯片);
(7)用VHDL设计一个三态输出的寄存器;
(8)用VHDL设计一个时序脉冲波形产生电路(顺序脉冲发生器);
(9)用VHDL设计一个可控计数器;
(10)用VHDL设计一个数字钟电路。
教师可根据实际情况选做其中6~8个实验。一般可做2~3个组合逻辑设计实验,3~5个时序逻辑设计实验。
实验课题(1)的目的是使学生掌握层次结构设计方法。实验课题(2)的目的是强化译码器、7段字符显示代码和ASCII码等知识点。实验课题(3)的目的是强化加法器、全加器、算术运算、进位和逻辑运算等知识点,并且考虑到与后继课程“计算机组成原理”的ALU等知识点教学的衔接。实验课题(4)的目的是强化状态机和Mealy型时序逻辑电路设计等知识点。实验课题(5)的目的是强化计数器、用集成计数器实现任意进制计数器和Moore型时序逻辑电路设计等知识点。每轮教学可选择不同的计数器芯片(74161与74163),所实现的M进制计数器的模可在19~21之间改变。实验课题(6)的目的是强化余3码、用集成计数器实现任意进制计数器等知识点。实验课题(7)的目的是强化三态门和寄存器等知识点。实验课题(8)的目的是强化顺序脉冲发生器和时序脉冲波形产生电路等知识点,同时也为后继课程“计算机组成原理”的控制器和三级时序做准备。实验课题(9)的目的是强化可控计数器等知识点。实验课题(10)的目的是强化复杂系统设计和仿真设计的能力,像数字钟这样的复杂实验在过去用中小规模集成电路在实验箱上插接连线的方式是不可想象的,但是现在用Quartus II系统上设计和仿真的方式却是可以完成的。
5 结束语
基于VLSI的“数字逻辑”实验技术放弃了传统的实验箱,改为用计算机软件平台;放弃了在实验箱上用插线把集成电路和其他元件连接成实验电路,用示波器、万用表等仪器进行观察的传统方法,改为根据逻辑设计(真值表、逻辑函数或逻辑图)用硬件设计语言编程,用文本形式输入计算机,编译后在专门的软件平台上进行逻辑仿真,根据仿真结果分析逻辑设计的正确性。学生不仅要做逻辑设计,还要做仿真输入波形设计。这种新的实验技术既能够实现验证性实验,也能够实现设计性实验,能够看到在传统实验方法难以看到的完整的输入输出波形图和竞争冒险现象。新的实验技术比在面包板上插接、连线、调试要方便容易,避免了接触不良造成的故障和连线错误损坏器件等问题,实验成功率高、消耗低,实现了硬件设计和实验的软件化以及从验证性实验到设计性实验的转变。实验教学的改革在一定程度上调动了学生的主观能动性,促进了学生的学习积极性。
References)
[1]叶懋,陈震华.卓越计划下的数字逻辑电路实验的改革[J].科技信息,2012(1):276-277.
[2]杜世民,杨相生,杨润萍,等.基于EDA技术的数字电路综合实验研究[J].实验技术与管理,2012,29(10):93-96.
[3]蒋本珊,王娟.将硬件描述语言引入计算机硬件类课程的探索[J].计算机教育,2006(增刊):49-50.
[4]蒋本珊,王娟,洪杰.计算机组成原理实验改革初探[J].实验室研究与探索,2007,26(12):277-280.
[5]刘文霞.EDA技术在数字逻辑实验教学中的应用[J].宜春学院学报,2011,33(8):52-53,89.
[6]唐志强.计算机专业数字逻辑实验的改革与创新[J].实验室研究与探索,2013,32(10):182-194.
[7]叶雪军.计算机硬件类课程群实验教学改革[J]计算机教育,2011 (9):82-84,101.
[8]叶雪军,唐建宇,熊威.基于EDA的计算机硬件课程实践教学的研究[J].计算机教育,2007(14):90-93.
[9]艾明晶.基于自动设计方法的数字逻辑课程改革研究与实践[J].实验技术与管理,2012,29(9):151-155.
[10]王彩凤,胡波,李卫兵,等.EDA技术在数字电子技术实验中的应用[J].实验科学与技术,2011(2):4-6,110.
[11]刘曦,皇晓辉.EDA中的数字系统实验[J].实验技术与管理, 2004,21(5):89-82.
[12]盛建伦.“数字逻辑”实验教学改革初探[J].计算机教育,2010 (17):41-43.
[13]盛建伦,巩玉玺,刘淑霞,等.计算机专业硬件基础课程实验教学体系的研究[J].实验室研究与探索,2013,32(10):387-391.
[14]陈林,彭容修.MAX+PLUSII软件实验在数字电路教学中的应用[J].实验技术与管理,2005,22(11):80-82.
Research on reform of experimental technology of digital logic
Sheng Jianlun,Liu Shuxia,Wang Yong,Gong Yuxi
(School of Computer Engineering,Qingdao Technological University,Qingdao 266033,China)
This article analyzes the shortcoming of traditional experimental technology based on SSIand MSI.It is proposed that the course of Digital Logic of computer specialty should use EDA experimental technology based on VLSI and replace verified experiments with designed experiments.The tasks of designed experiment of Digital Logic are developed.The new reform scheme has been researched and got the excellent effect in teaching practice.The Digital Logic experimental technology based on VLSI uses the hardware description language to design logic,and uses the software simulation to verify the correction of logic design.
digital logic;experimental technology;designed experiment;virtual experiment
G642.0
A
1002-4956(2015)4-0216-04
2014-11-13修改日期:2014-12-04
青岛理工大学实验技术研究项目(2012-04)
盛建伦,(1953—),男,浙江德清,硕士,教授,研究方向为计算机体系结构、决策支持系统.
E-mail:jlsheng@163.com