基于软件模拟的计算机组成原理实验教学研究与实验

2012-10-20 05:16虞飞华朱锡瑞
中国教育信息化 2012年3期
关键词:算术面向对象二极管

虞飞华,朱锡瑞,郑 韬

(浙江树人学院 信息科技学院,浙江 杭州 310015)

基于软件模拟的计算机组成原理实验教学研究与实验

虞飞华,朱锡瑞,郑 韬

(浙江树人学院 信息科技学院,浙江 杭州 310015)

本文分析了计算机组成原理实验算术与逻辑运算实验的原理,以面向对象的思想,借助于图形/图像和模拟技术,在计算机上实现软件模拟模型的设计。通过课堂实验验证表明,模拟模型对比TDN-CM+实验箱的操作减少了实验过程的出错率,也提高了有限课堂时间内的实验效果。

实验模拟;计算机组成;面向对象

一、引言

“计算机组成原理”课程是计算机专业的一门核心专业必修课,该门课程的理论性、工程性、实践性都很强。因此,在搞好课堂教学的同时,必须对实验教学环节给予足够的重视,把实验教学看作是提高学生动手能力和实施素质教育的一个途径。目前,我校采用的是西安唐都科教仪器公司的TDN-CM+实验箱,在实验开展过程中,由于实验的理论知识综合、电路复杂、元器件多、连线密度高、操作步骤逻辑性强、调试困难等原因[1],都会造成获得预期实验结果的周期长或实验结果的失败,从而影响课堂时间内实验得出的效果,同时也影响了学生动手操作实验的积极性。

综上所述,本研究提出了面向对象的计算机组成原理实验的软件模拟,以面向对象的思想,借助于图形/图像和模拟技术,在计算机上实现计算机组成原理实验的基础实验环境、操作对象、操作过程,达到减少实验结果周期、降低实验操作过程出错率的研究目标。

二、系统模拟总体设计思想

计算机组成原理实验软件模拟系统主要包含输入模块、控制模块(实验处理模块)、输出模块,其中输入、输出模块是直观的显示模块,控制模块是由一个或若干个功能芯片组成的一个功能模块。[2]因此,以面向对象的思想,可以将每个功能芯片设计成一个Public功能函数,然后在软件模型中直接调用一个或多个芯片的功能函数实现特定的控制模块功能。输入、输出模块相对简单,计算机组成原理实验输入、输出一般都以4~8位的二进制方式给出,为了更好地让学生理解二进制在计算机系统中的运算规则,设计采用以一个8位数组表示8位二进制的方法,通过算法来实现若干位二进制的逻辑运算与算术运算,模型模拟采用面向对象开发工具Delphi来实现。

三、建模过程

1.实验原理

计算机组成原理实验分为验证性实验与设计性实验,本研究为了更加具体地达到建模的效果,以计算机组成原理实验中的算术逻辑运算验证性实验为初步建模对象。

算术逻辑运算实验数据通路图如图1所示,主要包含两个74LS181芯片、两个74LS273芯片、一个74LS245芯片,74LS181芯片为8位字长的运算器,74LS273芯片为8位字长的数据暂存器,74LS245芯片是一个三态门,用来控制总线上的数据输出。[3]

算术逻辑运算实验的实验过程是通过输入开关形成2个8位二进制数分别置入DR1(74LS273芯片1),DR2(74LS273芯片2),然后通过改变运算器的控制位,观察运算器输出在总线的结果。

2.输入输出模块的模拟

算术逻辑运算实验的输入输出都通过8个发光二极管来显示,灯灭为1,灯亮为0,因此,可以从二极管位置定位与二极管显示状态控制,这两个方面来实现输入输出的模拟功能,二极管位置定位在Delphi开发平台中可以由数学函数Sqr函数来实现,二极管显示状态可以通过图像笔刷函数ImageDrawRound与ImageClearRound来实现。[4-6]

第一步,通过图形设计工具PhotoShop设计8个二极管显示灯图片,如图2所示。在程序窗口中,通过Image控件来布置8个二极管图片,用坐标来定位某个二极管所在位置。在输入模块中,假设鼠标点击在窗口中的坐标为(X,Y),一个圆形二极管的图片半径为Z,那么可以根据第N个二极管坐标范围Sqr(X-N*Z)+Sqr(Y-Z)<=Sqr(Z)来判断当前鼠标点击选中的是D7到D0当中的哪个二极管显示灯,通过鼠标动作事件转换当前二极管显示状态。显示灯区域坐标得到准确定位,就可以用ImageDrawRound函数与ImageClearRound函数控制显示灯的亮、灭状态,具体算法如程序代码清单1所示。

代码清单1:

同理,可设计输出模块中的显示灯模拟、控制模块中的控制灯模拟,在代码清单1中举例的是第一个二极管的输入显示控制,InputDR1[]表示一个数组,实现存储器DR1的存储功能,用来存放输入的第一个8位二进制数。

3.控制与运算模块的模拟

在算术逻辑运算实验中,分别由74LS181的控制位S3、S2、S1、S0、M、Cn 来控制 74LS181运算器的运算方式。控制位 S3、S2、S1、S0、M、Cn 也是一组二极管显示灯,可以用3.2输入输出模块模拟的设计思路实现。74LS181运算器的运算方式分为无进位算术运算、有进位算术运算、逻辑运算,分别通过6个控制位控制,参见表1所示,因此需要多个条件算法设计74LS181运算器芯片的功能。

表1 74LS181逻辑功能表

74LS181逻辑功能总共有16种逻辑功能,因篇幅限制表1只列出一部分的功能。通过表1分析可知,A与B代表的是图2中InputDevice模块输入的2组8位二进制数,F是运算器的结果,在6个控制位的控制下,出现不同的运算规则,因此设计一个74LS181芯片的功能函数包含具有16种逻辑功能子过程,在软件模拟模型中得到TDN-CM+实验箱正确操作得到结果相一致,那就说明74LS181芯片软件模拟是可行的。

详细分析表1的运算规则,每组运算都是以下几个运算的组合:非运算、与运算、或运算、异或运算,根据它们的运算规则,可以设计如表2所示的程序算法达到对应运算的功能。

表2 运算规则与算法设计表

基于表 2,结合表 1,就可以根据控制位 S3、S2、S1、S0、Cn、M的控制条件,设计出相对应的算术运算与逻辑运算的运算组合,然后把最终结果存储在一个输出数组中,最后通过3.2小节输入输出模块模拟的设计思路,把运算结果显示在总线上的8个二极管显示灯中,达到TDN-CM+实验箱的同等显示效果。

四、研究总结

本文通过计算机组成原理算术与逻辑运算实验的原理分析,以面向对象的思路,用图形/图像的可视方法进行了系统模拟。软件模拟模型在计算机组成原理课堂实验中辅助TDN-CM+实验箱操作实验起到了很好的作用,并且验证实验效果准确高效。在今后的研究中,以模拟具体实验为步骤,逐步完善整个TDN-CM+实验箱的模拟功能。

[1]周克峰,杨军,孙静,谢戈.计算机组成原理实验的模拟技术研究[J].云南民族大学学报,2004,13(3):236-240.

[2]杨小龙.计算机组成原理与系统结构实验教程[M].西安:西安电子科技大学出版社,2007.

[3]卢贤玲,杨艳,李景峰.计算机组成原理网上虚拟实验系统的建模与实现[J].郑州大学学报,2006,38(3):39-42.

[4]明日科技.Delphi函数参考大全[M].北京:人民邮电出版社,2006.

[5]董玉德,赵韩,孙街亭.面向对象的程序设计方法与技术:Delphi语言[M].北京:清华大学出版社,2008.

[6]梁水,赛奎春.Delphi开发典型模块大全[M].北京:人民邮电出版社,2009.

(编辑:金冉)

G642

A

1673-8454(2012)03-0069-03

猜你喜欢
算术面向对象二极管
GEE平台下利用物候特征进行面向对象的水稻种植分布提取
面向对象方法在水蓄冷PLC编程中应用分析
担心等
算算术
学算术
二极管及其典型应用电路仿真测试
含理想二极管电路的疑难问题辨析お
小狗算算术
Smart Shirts Generate Electricity
基于面向对象的车辆管理软件的研制与开发