范 琳,翟社平,王晓婕
(西安邮电大学 计算机学院,陕西 西安 710121)
计算机组成原理是计算机科学与技术、软件工程和网络工程专业本科培养过程中的核心课程,是技术性、工程性和实践性很强的一门课。以组成原理为主线,硬件课程体系还包括微机原理与接口技术、汇编语言、硬件课程设计、计算机系统结构等课程,目的是让学生能深入理解计算机系统各功能部件的组成,工作原理及设计方法[1-4]。在后续工作或学习中,无论是进行软件开发、硬件设计,还是进行更上层的算法研究,打下坚实的基础都能让学生更好地开展后续工作。
目前,多数高校在计算机组成原理的实践教学中采用实验箱,该方式受到硬件资源的限制,存在较多的局限性。随着计算机软件技术的发展,利用EDA设计工具[5],能方便地实现硬件仿真,降低做实验的门槛,更利于学生学习兴趣的培养。
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件,能仿真多种型号的CPU及外围器件,是目前较好的仿真单片机及外围器件的工具,受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐[6-9]。
目前在本科教学中,大部分高校采用实验箱来进行硬件类课程实验教学,例如西安邮电大学计算机组成原理课程采用唐都TD-CMA实验箱,实验箱内有运算器、寄存器、存储器、输入设备、输出设备等固件,学生通过连线、录入指令和微指令等方式来完成实验,但上述实验方法存在若干问题。
(1)一学期只有5次实验,学生很难及时通过实验来验证所学的理论,课程知识面广,难度大,概念抽象,学生在学习过程中缺乏对知识的验证,无法建立计算机单机系统的整体认识,导致学习兴趣下降。
(2)实验箱较大,无法让学生带回宿舍继续研究,因此学生离开了实验室就没办法再做实验。在每次实验的2个小时中,部分同学充分理解实验内容并完成了实验,但还有一部分同学并没有完成实验,回到宿舍也没法继续进行。
(3)实验箱上做实验,存在很大的“不确定性”,即使学生的连线正确,但由于芯片坏了、导线坏了或者连接过程中的接触不良等,也看不到正确的运行结果。学生需要花大量的时间反复检查连线,但也不一定能完成实验。
(4)1名教师带3个班的实验,在实验的2小时内,30%好学的学生主动问问题,老师的时间已经全部占满,无法关注到每个学生,想要“逼”所有学生都认真自觉地学习其实是做不到的。
(5)学生在实验过程中,按照指导书的步骤在实验箱完成简单的连线与开关拨动,限制了学生主观能动性的发挥,照猫画虎,不求甚解,没有自己的思考,实验完成后收获很有限。
针对以上的问题,可以将EDA软件Proteus应用于教学实验中,通过增加针对小型知识点的细粒度实验,学生能体会到计算机各个组成部件的工作原理与设计方法,能从纯理论过渡到仿真系统,从而体会到计算机设计的魅力。
以往教学中采用下列方式来加深理解:学生在课堂上完成习题,课后完成作业,通过问答题、计算题、画设计图等方式来巩固学习内容。但是很多同学对抽象的难度较大的理论不感兴趣,作业存在抄袭现象。
为了提高学生的主观能动性,将Proteus应用于组成原理的教学过程中,如果本次课的内容涉及仿真实验,则提前通知学生携带笔记本电脑,2~3名同学共用一台电脑,在课堂理论讲解结束后,可以在老师的指导下完成小型的验证型实验。
改革前组成原理的5次实验为运算器组成实验、存储器实验、总线控制实验、微控制器实验和基本模型机设计与实现。改革后,增加基于Proteus的仿真实验:一位全加器、行波进位加法器、行波进位加减法器、BCD码加法器、一片74ls181构成4位运算器和两片74ls181构成8位运算器。仿真实验粒度较细,用于验证课本中的细节知识,能让学生随学随用,增加学习成就感。仿真实验能给学生打下好的EDA使用基础,在后续的组成原理课程设计中,学生可完成基本模型机和扩展指令的模型机。两种实验情况对比见表1。
采用Proteus进行仿真实验,从一位全加器到基本模型机都可以设计。与实验箱实验过程相比具有以下一些优点。
1)实验门槛低。
使用Proteus进行实验,环境搭建很简单,在任何一台PC上安装Proteus,都能进行仿真,可以在宿舍完成实验,学生对课堂上未理解的知识,也可以使用Proteus验证。
2)易学易用。
Protues入门简单,在元件库里搜索相应器件,并正确连线,就能仿真并看到实验效果。
3)减少“不确定性”。
实验箱里的芯片,因为使用不当或者使用时间过长,有一些坏的。学生在实验时,连线且完成操作后,却看不到运行结果,需要反复检查,浪费大量的时间,实际原因也许是某根线接触不良、某块芯片坏了。而使用Proteus,只要连线与操作正确,Proteus就能给出仿真的运行结果,能让学生在学习过程中,建立更多的成就感,更有学习兴趣。
表1 组成原理实验箱实验与仿真实验的对应关系表
4)查错更方便。
在实验箱发生错误时,很难很快定位到出错位置,因为无法看到每条线里传输的是0还是1,在Proteus中寻找错误时,加上Logic Probe(逻辑探针),就能看到每个点的值,能轻松找出错误。
5)实验粒度更细。
使用实验箱能做5次实验,在指导书上,实验步骤写得非常明确,具体操作就是连线。使用Proteus能完成更细致的验证,如可以搭建半加器、一位全加器、行波进位加法器、ALU等,来验证课本上的理论,促使学生思考:为什么几个与或门就能实现加法运算呢?做了验证性实验就会发现:它们的输入和输出是一样的,真值表是一样的。图1给出了在Proteus中构建的一位全加器,使用开关和灯进行输入输出。
6)更具针对性。
图1 基于Proteus构建一位全加器(使用开关和灯进行输入输出)
屏蔽底层电路知识,让没有数字电路与模拟电路基础的学生能专注于组成原理的知识,不需要通过搭建电路来获取高低电平。图2为逻辑全加器,不需要使用电源、开关、地线和电阻,采用Logic State进行输入,Logic Probe显示输出。
7)答疑更方便。
学生在课后基于Proteus做实验时,遇到任何问题都可以把设计文件通过邮件发给老师,老师可以及时回复。
8)方便学生自学。
Proteus方便制作MOOC并进行网络教学,能给学生进行自学提供便利条件。
传统基于实验箱的实验过程中,提供给学生的都是固化的模块,如741s181芯片,没有细节的实验;使用改进型细粒度实验设计,能提高学生的自学与思考能力,让学生能真正理解实验的内容。
图2 基于Proteus构建一位全加器(逻辑输入与输出)
在运算器设计章节,可以按顺序完成多次细粒度实验:①一位全加器。②行波进位加法器。基于一位全加器芯片74ls183设计能进行4位二进制运算的行波进位加法器。③行波进位加减法器。增加方式控制位M,可以使得行波进位加法器能完成减法。当M为0时,完成加法运算。M为1时,完成减法运算。④BCD码加法器。使用4位二进制表示1位十进制数的压缩型BCD码,在做加法运算时,如果采用二进制的加法规则来运算,则运算完毕有可能需要进行调整,设计加法与调整电路。⑤一片74ls181构成4位运算器。使用74ls181ALU芯片来完成两个操作数的多种算术和逻辑运算,开关通过三态门74HC245连接总线,打开三态门能将开关上的信息送到总线上,并使用锁存器74273将信息锁存并提供给运算器74ls181,运算结果能通过三态门再输出到总线上,送到输出设备。⑥两片74ls181构成8位运算器。使用两片74ls181构成8位运算器,能一次性完成两个8位二进制数据的运算。Proteus设计图如图3所示。
图3 两片74ls181构成8位运算器设计图
为试验改革效果,针对多个班级指导组成原理课程,3个班分别执行实验改革方案,其余3个班按原实验计划进行,执行改革方案的班级中,大部分同学更有学习兴趣,课后答疑的同学更多,最后考试结果见表2。
进行改革的班级在设计题中表现很好,设计题平均提高1.2分,因此组成原理实验改革有助于提高学生的设计能力,更好地支撑学生的毕业要求,让学生具备分析并解决复杂计算机系统工程问题的能力,能够基于科学原理,采用科学方法,使用现代工具,进行复杂计算机软硬件系统的研究、规划、设计与开发,具备较强的工程实践能力。
将Proteus应用到组成原理的实验教学,作为传统教学的有益补充,可以激发学生的学习兴趣,深化学生对理论的理解,让学生能使用现代工具,进行计算机软硬件系统设计与开发,该项改革取得了良好的教学效果,提高了学生设计能力,更好地支撑了学生的毕业要求,是一项值得推广的教学改革。基于Proteus的强大仿真能力,下一步计划将Proteus推广到计算机硬件课程群的其他课程中进行实验改革。
表2 组成原理实验改革结果比较