《计算机组成原理实验》演示与仿真课件的设计与制作
【摘要】介绍了精品课程对CAI课件建设的要求,并介绍了用FLASH MX在制作课件上的优势,介绍了《计算机组成原理实验演示与仿真》课件的总体目标,重点介绍了开发过程中若干重点与难点问题的解决。
关键词: 精品课件 CAI FLASH 编程实现实验演示 仿真
0 引言
《计算机组成原理》是计算机专业的一门骨干课程。现已纳入我校精品课程建设。但由于本课程具有一定的抽象性与复杂性,开设《组成原理实验》则是帮助学生更好地理解和掌握本课程基础内容的必要环节。该门实验课主要以VHDL(硬件描述语言)为开发语言,以MAXPLUS II为开发环境,以EDA IV实验仪为实验平台,以EPF10K10LC84-4为目标配置芯片,来完成模拟实现组成计算机的各个模块。由于涉及知识面较广,实验内容较抽象,操作步骤复杂,持续时间较长,学生在完成实验过程中有一定的难度。因此开发该门实验的演示课件成为一项迫切的工作。
本文首先介绍了该课件的开发目标及选择Flash MX作为课件开发工具的优点,然后重点就实现《实验演示与仿真》过程中的几个重点和难点问题的解决给出了自己的方案,希望能对同行有一定的帮助。
1 精品CAI课件建设的要求
实验辅导CAI课件是精品课程建设中必不可少的环节。要通过精品课程的建设和教学,使学生提高基本素质、夯实基本知识、培养基本能力、提高基本技能;教学方法要由传统的“注入式知识教育”,转变为适应知识经济要求的“研究式素质教育”;授课方式要由“连续型细节式授课”,转变为“跳跃型平台式授课”;教学形式要由“单一的课堂教学”,转化为“多形式的互动交流”;教学氛围要有浓烈的研究气氛。[2]
“CAI课件是用来控制计算机实现教学功能的软件,是教学内容与教学逻辑的结合体。学习者通过与计算机的交互,学习知识、掌握技能,达到预定的学习目标”。[3]但目前大多数课件制作水平不高,许多课件只是将教学内容照搬到电脑屏幕上,只起到减少教师板书黑板的时间,不具有教学活动中的必不可少的形象性、生动性、互动性,不能充分适应学生“主动学习”和“研究式”的素质教育要求。目前课件开发工具十分众多,既有如PowerPoint、AuthWare、方正奥思等专用课件制作工具,也有VB、VC等通用编程语言。相比之下,Flash由于有其自身特有的优点,逐渐成为大家制作课件的首选。
2 FLASH做为课件制作工具的优势
Flash作为课件开发的优势主要有如下几点:
1) 动画功能强大,不仅可实现逐帧动画,也可实现较为复杂的编程动画,动画效果好;
2) 动画是矢量动画,文件量小,缩放效果好;
3) 多媒体功能强大,可嵌入各种格式的声音、图片、电影等多媒体元素,增强动画表现力;
4) 交互性强,更有吸引力。基于事件的编程方法,允许在运行时动态绘制图形对象。可以创建复杂的高性能用户界面;内置鼠标、按钮、音频、视频、时间轴、键盘按键、麦克风、相机和数据等标准事件,可以动态改变对象的状态,预见由用户或应用程序本身执行的交互操作;
5) 采用“流媒体”播放方式,可以实现在网络上的快捷流畅播放;
6) 提供了面向对象的脚本编写模型,可以控制和扩展应用程序,并可增强Flash环境中独特的内置对象;支持基于原形的继承,实现重复使用类; [4]
3 本课件的总体结构与设计
每个实验分为设计、编译、仿真、下载、验证等五个基本过程。实验演示就是要对每个过程中的涉及的操作步骤及相关内容加以解说,以利于学生在实验前对实验过程的总体了解、实验中对具体步骤的查询、实验后对实验过程的总结分析。实验仿真主要是对EDA实验仪硬件的界面的模拟仿真及利用此仿真界面实现各个实验最后的硬件验证过程,以完成在没有实验硬件的条件下(实验前、后)进行最后的验证步骤,从而更好地理解计算机各个组成部分的工作原理。在设计过程中,采用Flash绘图工具完成界面设计,以MovieClip(电影剪辑)的形式制作基本的动画素材,大量采用Action Script脚本编程来完成复杂动画与仿真功能。
4 课件制作过程中若干具体问题的解决
下面以《半导体存储器的逻辑设计》实验为例,就该课件设计中的几个具体问题给出解决方法。
4.1 导航菜单的设计
导航菜单的作用是能清楚地说明本实验的总体流程,也可以根据需要链接到某一具体实验过程,查看详细的实验步骤。为此制作了如图所示的导航菜单,当每按“前进”按钮时,就显示实验中的一步。并通过箭头指明了下一步该做什么。在实际实验中,编译、仿真、下载、验证等步骤都可能出错,这需要进行错误处理,一般都是回到设计阶段重新调试程序。只有前一步正确后,才能进入下一步。若要查看每一步的详细步骤,可直接单击对应的过程名即可。
链接的实现:为每一个过程制作一按钮符号,然后为按钮的Press事件进行编程即可。
on (press)
{
loadmovie("ram_design.swf",_root);
} //当单击“设计”按钮时,装入设计模块
动态流程的实现:首先制作一运动的箭头,转换为MovieClip。然后为前进按钮进行编程。设计一计数器J统计进入此页后前进按钮按下的次数,然后利用多条件分支语句Switch….Case …..根据J的不同值,分别显示各个按钮并播放各个箭头(包括箭头的旋转处理)。另设计一动态文本框,可根据不同步骤在不同位置显示相应的文字说明。
4.2 图像的动态解说
对仿真过程中的波形图的解说,若采用静态说明,缺乏生动性,若采用逐帧动画的形式,则需要有很相同图像内容的重复,势必使得文件尺寸增加。为此仍然采用编程动画的形式,用一动态文本框在不同位置显示不同的文字说明。其实现方法动态流程设计。实验验证的分步骤也是采用上述方法来实现的。
4.3 动态连线的实现
在EDA IV实验仪上,目标配置芯片与实验板上按键开可操作的按键开关、拨动开关及用着显示的LED的连接都是在实验时根据配置的结果进行的。由于接线多,纵横交叉,在具体实验板上可以通过线的颜色及立体图形加以区分,而如何在Flash这一平面图形制作工具上将此连线的过程动态地演示出来并能够明显区分各根连线,是本次开发过程中的一大难点。其最终实现方法如下:
4.3.1画线函数
功能为:根据指定两对象的坐标X和Y,随机地选取画线的颜色,并从源点到目标点动态地画出连线过程。为了避免线的纵横交叉,影响界面的美观,采用了画折线而不是画直线的方法。
其中用到两条重要的语句为:1)._root.createEmptyMovieClip(name, i);//在函数中动态创建空白电影片断。Name—为电影片断的名称,I为显示的层次。每调用画线函数时都调用此语句。2)._root[name].onEnterFrame = function() {……} //每当进入电影片断的帧时要执行的动作。在这里可以调用moveto() 和lineto(),分别将画笔移到指定位置(画线的开始位置)和画线的目标位置。
为了避免同一高度的连线重叠在一起,又在系统中设置了一全局变量,统计同一高度的连线次数,再以此为根据将目标结点的纵坐标加上一定的偏移量,从而错开连线。
同时还要将此函数内的画线坐标声明为VAR 局部变量,否则屏幕只能出现一根连线,而且越到后面连线越快(因多个电影片断同时改变了X和Y的值)。
4.3.2移除连线
用removemovieclip(name)语句移除电影片断。
4.4 仿真平台的设计
作为仿真平台,主要要实现的是具体功能的模拟,不要求对硬件的完全模拟。本仿真平台主要是对实验代码已正确下载到目标芯片后对在器件中对功能进行验证的模拟。因此在设计时只列出了主要操作到的部分,这样可以在界面上加入有关的操作说明。其操作平台如下图所示。
4.4.1 按键与LED灯的制作
操作时主要操作拨动开关与按键开关,分别产生电平信号与脉冲信号,作为数据输入(0或1)和触发信号(跃变)。LED指示灯作为数据输出信号(灯亮为1,灯熄为0)。设计时,分别设计三个电影片断,在电影片断中可以用不同的帧来表示按键的状态。
4.4.2 按键事件的编程
对拨动开关和按键开关,每当鼠标在电影片断上单击时,就可播放对应的帧系列,从而在屏幕上表现为一段动画。当然电影片断还有很多其他事件,如悬停、拖动等,利用这些事件,可以完成较为复杂的编程。
4.4.3存储器的逻辑实现
在本实现中利用数组来模拟实现存储器功能。系统初始化时,生成一有256个元素的数组,代表256个地址单元。当地址选择信号对应的按键开关按下时(输入地址),系统取出8位拨动开关对应的二进制数,并转换为十进制数作为数据存取的地址,也就是数组的下标;当数据选择信号对应的按键按下时(写数据),将15位拨动开关对应的二进制数转换为十进制数存入地址对应的数组元素中;当数据写入信号为低电平时(读数据)时,就从数组中取出当前地址对应的元素,并转换为二进制,送给LED显示,若对应位为1就灯亮,否则为0。
5 小结与展望
本课件的开发是对笔者用Flash进行课件开发的初次尝试,虽经历了了不少曲折,但也学到了不少有益的东西。那就是:课件制作是一项综合性较高的技术,对开发者有相当高的要求。作为课件开发者,不仅要对教学内容有准确的理解,还要对教学内容的组织形式、表达方法有深入的研究。如课件内容的合理组织、重点难点的处理,这样制作出的课件才会符合教学规律;不仅要对编程语言有熟练的掌握,还要具体一定的艺术修养。如课件界面的简洁易用,各种颜色的和谐搭配,这样的制作出的课件才会符合学生的口味。实际上一项好的课件开发往往是多人合作的结果。
当然本课件还存在着许多不足之处,如界面制作的进一步美化,图片的缩放处理,代码的优化,更多地使用面向对象的思想如类的封装、继承、对象操作等。这些都有待在以后开发中进一步学习和提高。同时存储器实验还没有涉及时序逻辑,如何在FLASH中实现如控制器、总线等部分所要求的时序逻辑,也是一项尚待解决的问题。
参 考 文 献
1) 俸远祯阎慧娟 罗克露《计算机组成原理》(修订版) 电子工业出版社 1996/4
2) 李艳梅冯婉玲 研究型教学模式下的本科精品课程建设 http://www.edu.cn/HomePage/zhong_guo_jiao_yu/jiao_yu_yan_jiu/gao_deng/zong_he/index.shtml
3) 臧劲松 张从善(导师)适应素质教育要求的MCAI课件的设计与实现(山东师大学位论文)
4) 侯伯亨顾新《VHDL硬件描述语言与数字逻辑电路设计》(修订版)西安电子科技大学出版社 1999/1
5) 首都师大高等美术教育研究中心《Flash MX 教程》北京希望电子出版社 2002/7
6) 朱志山,王大任《Flash MX网络游戏解码书——写Game其实很Easy》 电子工业出版社 2003/1
7) 郭永灿 周黎《Flash MX完全自学手册》 人民邮电出版社 2002/11