2 系统设计与实现
系统实现基于Web浏览器/业务逻辑层/数据存储层(B/A/S)的三层网络架构计算模型,以Java为主要开发语言。浏览器端的展示层以JSP页面为主,用户登陆试验页面,选择以iava applet应用实现的虚拟芯片进行连线。用户在网页界面的提示处编写试验程序,提交程序到服务器,服务器端的解释器平台调用解释规则库,解释程序结果并可视化的返回给客户端。用户将结果数据提交给已连接好的虚拟接口电路,服务器端通过类库设计定义各类芯片的工作方式、电气特性、I/0特性和几何特性等,确定信号时延。对芯片的各个管脚分别建立子类.定义各管脚的电气特性、I/0特性和几何特性等,达到真实地模拟硬件结构,使运算结果与真实硬件相同,实现对各个接口技术实验环境进行仿真。系统可根据用户端的不同设计进行重新配置执行,使学习者感觉到其所应用的实验平台就是真实接口技术实验室。
3 接口实验流程建模
一个现实的接口实验流程如下:学生接到实验任务,进入实验室:①打开集成实验环境,在计算机上编写汇编、C语言,通过词法、语法检查;②连接集成开发试验箱,连接跳线,烧录程序;③观察实验板上的现象,比对试验结果;④如果与预期结果现象一致,则试验程序正确,此试验结束,课后书写实验报告,否则转向;⑤修改程序,调试程序重复②~④。虚拟接口实验平台的模式如图l所示。
4 汇编程序的仿真解释执行
汇编程序是一个接口实验的基础,由程序的正确执行结果驱动相应的芯片工作产生时序图,模拟真实的接口实验环境,应具备的功能模块如下:
(1)预处理模块 除去注释、伪指令,分析程序语句,分离出指令操作码,第一、二操作数,并存储到指令数据表;
(2)数据表模块建立汇编指令所需的寄存器表、内存表,端口表等,并提供通用的数据读、写接口;
(3)解释执行模块(规则库)核心是建立各类指令的规则库,跟踪模拟程序指针PC的流程,实例化指令码对应的指令类,取出该条指令的操作数传人类对象的成员函数,进行对应的函数操作,返回计算结果,并写入对应的数据表;
(4)通讯模块 建立程序执行与虚拟芯片工作的连接,程序执行结果能透明的传递给虚拟芯片工作接口函数,并接受虚拟芯片工作后的反馈数据,透明的反馈给程序。
仿真解释执行的算法嘲描述:①从用户程序表中取出一条源程序语句,记录此语句对应的程序指针PC;②分离出语句中的操作码、操作数,在指令规则库中查询其对应的指令类,若跳转指令,转至⑦否则转至③;③查找数据字典中的寻址方式表,实例化出该指令对应的寻址类对象,取出操作数,调用指令类对象的函数成员,接受寻址类对象实例处理后的操作数,进行函数运算,刷新其对应的寄存器表或内存表等;④取出各寄存器及内存单元对应的数据,以图表的形式展现在界面上,同时将其与虚拟芯片相关的数据透明的传递给通讯接口;⑤计算该指令的运算时问,以静态变量保存;⑥PC=PC+1取出下一条指令继续执行,转至②;⑦若是无条件跳转指令,计算该标志对应的PC值,转至对应的指令语句执行,转至②;若为有条件跳转指令,取出状态寄存器中该指令对应的PSW值,判断条件是否成立,如成立按无条件跳转指令执行,否则PC=PC+1,转至②;若是子程序(中断程序),则保存该条语句的PC值,便于程序的返回执行,同时按无条件跳转指令执行;若为RET指令则程序结束。
5 虚拟芯片的设计
5.1 设计思想
接口电路设计所用器材包括CPU、TTL门电路、可编程逻辑芯片、负载等。传输信号主要分控制、地址、数据电源和地线。为实现实验电路逻辑性正确与否的检测,其设计方法是:针对每个芯片建立类,定义各种工作方式、电气特性、I/O数据结构。对其各管脚的功能定义(I/0特性、信号类型、电气特性)建立子类,并构造I/0方法,确定信号时延。几何特性描述芯片的外部特征;工作特性描述芯片的数据处理方式(即工作方式);电气特性描述芯片的工作周期;I/O数据结构负责芯片工作前数据的接受与工作中、后的数据输出。
虚拟接口实验室要涉及的硬件比较多,而每个硬件的外部几何特性都不尽相同,在非固定实验的情况下,用户总是希望可以自由的选择各类硬件,这样就可以动态地实现各类硬件的实例化操作。设计时采用硬件多态的思想,最大化的实现虚拟芯片类库的复用,即设计抽象于所有硬件的一个主模块,派生出具体的硬件类,可以实现用户随意选择芯片,也方便硬件链表的统一处理。
5.2 设计实例
5.2.1 设计思想
芯片具体实现包括芯片的几何特性、工作特性、和电气特性。几何特性描述了芯片的外部特征;工作特性描述的是芯片的数据处理方式(即工作方式);电气特性描述的是芯片的工作周期。不失一般性,在此以8253来说明设计思想和类之间的具体关系。
5.2.2 类图关系
为实现硬件多态,设计了硬件模板类、芯片引脚类、8253芯片类3个类,类图及关系如图2所示。
6 虚拟芯片操作
对设计好的虚拟芯片要进行移动、缩放、芯片间连线、连线变形和连线正确性检测等操作。