计算机硬件实验统一平台设计.doc
计算机硬件实验统一平台设计摘要针对目前计算机硬件系列实验课程,我们采用大规模和超大规模集成电路和可编程器件,研究设计了统一硬件实验平台。本文介绍了为配套设计而开发的用以辅助实验的软件系统,并描述了平台的功能和代表性实验过程。关键词本文来自计算机毕业网大规模;可编程器件;统一硬件实验平台;软件系统DESIGNOFUNIONPLATOFCOMPUTERHARDWAREEXPERIMENTQUANCHENGBIN,GUANXIAOPEI,LISHANSHAN,TANGZHIZHONGTSINGHUAUNIVERSITY,LABFORCOMPUTEREDUCATION,BEIJING100084,CHINAABSTRACTTHISPAPERDESCRIBESTHERESEARCHANDDESIGNONUNIONHARDWAREPLATWHICHBASESONLARGESCALEANDULTRALARGESCALEINTEGRATEDCIRCUITSANDPROGRAMMABLEDEVICESANDSUPPORTSTHECURRENTSERIESOFCOMPUTERHARDWARECOURSESATTHESAMETIME,ITDESCRIBESTHESOFTWARESYSTEMGOINGWITHTHEHARDWAREPLAT,WHICHHELPSTHEEXPERIMENTSALOTTHENITDESCRIBESTHECAPABILITYOFTHEUNIONPLATANDTHEEXPERIMENTPROCESSWITHTHEPLATKEYWORDSLARGESCALE,PROGRAMMABLEDEVICES,UNIONHARDWAREPLAT,SOFTWARESYSTEM1引言目前国内的计算机硬件课程实验呈现出实验平台分散化的特点,各个课程采用了各自独立的实验平台。各种平台的集成度还比较低,大量使用小规模集成电路,所采用的可编程器件多为小规模的GAL,学生实验还要用很多外部飞线,系统的灵活性非常小1。国际部分知名高校的硬件课程比较集中,实验平台统一,很多采用了基于大规模可编程器件的实验平台来完成实验。在这些方面,国内的实验和实验平台还有较大差距2。为了推动计算机硬件类实验改革,提高学生实验方法和实验效率,我们设计出了一套计算机硬件实验统一平台,下面就其功能、设计方法以及实验过程分别描述。2计算机硬件实验统一平台的功能计算机硬件实验统一平台支持清华大学计算机硬件类主干实验,包括数字电路基础实验、数字逻辑、组成原理、系统结构以及微机接口等课程。对于数字电路基础课程,支持的实验内容如表1所示。对于数字逻辑设计课程,支持全部实验,如表2。对于组成原理课程,支持如表3所列的实验。针对系统结构课程3,我们支持如表4所列的实验。同时,我们支持如表5所列的微机接口课程实验。3计算机硬件实验统一平台的设计为了在统一的实验平台上满足各硬件课程的实验,我们采用了模块化结构来设计实验平台,平台的整体设计如图1所示。平台整体分为软硬件两个部分。软件部分主要在学生PC上运行,实现对硬件实验系统的监控;硬件部分主要是实验平台。学生PC与硬件实验平台通过USB或者串口连接,根据通信接口协议实现学生PC对硬件实验系统的动态监控。软件部分按照模块化设计分为界面、通信、监控调试、下载以及内嵌的编译解释器等模块。硬件部分分为板上公共逻辑模组,实验模组以及对应各个实验课程的数字逻辑辅助模组,组成原理辅助模组、微机接口辅助模组和系统结构辅助模组。这里各个实验课程辅助模组之间不是完全分离的,我们通过相互比较采用了一定的重叠复用,提高了硬件利用率。例如,数字逻辑辅助模组中包含对于微机接口辅助模组中相关接口模块的利用,两者复用了部分接口。诸如此类的复用,大大提高了整体硬件平台的利用率。31软件部分软件部分的各个模块中,界面模块设计了友好的人机交互方式,包含对硬件板的状态显示,以及对于特定实验的输入、编译、输出显示;通信部分依据特定的通信协议和硬件平台进行通信;监控调试部分,抓取通信部分可见的板上信号变化,由界面部分显示,支持通过运行控制实现调试功能(例如CPU系统实验中控制CPU的运行);下载模块负责硬件平台各个可写部分的内容的下载;内嵌的编译解释器,完成了汇编语言的编译功能。整体的软件平台部分,采用软件工程的设计思想,充分考虑软件平台自身的可扩展性和易维护性,更大程度地提高了硬件平台的功能可扩展性。依据规范化的软件工程思想,我们合理设计了软件模块,做到“DESIGNFORCHANGE”和“DESIGNFORREUSE”4。例如,在通信模块的设计过程中我们采用了FACTORY,将通信协议抽象出来,作为单独的父类,通信模块直接调用协议父类。这样,以后如果相关协议需要改变的时候,只要对应修改协议本身的内容,其他部分甚至调用协议的通信模块都无需改变,达到了良好的软件复用。通过这种设计,我们能够使软件修改维护的代价降到最低。上述过程的示意图如图2。32硬件部分硬件平台放置于实验箱内,整体结构分为板上公共逻辑模组(包括通信模块、下载控制及存储模块、控制模块等),实验模组(以实验编写模块为核心)以及各个辅助模组(包括杂项模块、接口模块、存储模块、时钟模块等),如图3所示。其中通信模块完成板上内容的对外发送。控制模块实现板上的控制以及信号的采集,并能够将采集信号发送给通信模块。下载控制模块和下载存储模块完成板上可编程部分内容动态下载。实验编写模块由可编程器件(例如EP2C20Q240等FPGA)构成,单独成为实验模组。时钟模块发生一系列时钟信号,存储模块完成对需要存储结构实验的支持,接口模块分布了VGA、PS2、串口等等各种接口,开关显示以及杂项模块由实验所需的开关、数码管以及其他变阻器等杂项构成,这些杂项组合就可以构成各个实验课程的辅助模组的一部分。在硬件系统的设计中,我们着重考虑整个硬件平台使用实验模块为基础,由于课程的多样性,需要提供多种“接口”,而FPGA接口有限,这就需要一定程度上考虑FPGA接口的复用。同时存在着需要同时使用多个接口的实验,因此是在综合考虑的基础上分配使用接口的。4计算机硬件实验过程简介整体来说,我们支持了如第2部分所述的所有实验。由于篇幅所限,这里以三个较为有代表性的实验为例介绍硬件实验过程。41基本组合逻辑设计实验数字逻辑设计课程实验中的基本组合逻辑设计实验中,实验目的是要求学生设计实现一位半加器。学生在对一位半加器的相关知识进行了解或者复习上课内容之后,即可得到如4所示的逻辑原理图。在对原理图进行真值表计算、验证无误之后,就可以使用开关显示以及杂项模块中的2个开关作为AN和BN,2个显示灯作为CN和SN,按照对应关系确定2个输入和2个输出在实验模块上的编号,就可以进行管脚绑定。从而进行FGPA内部内容的VHDL编写,经过仿真和波形验证后,就可以将编译好的目标代码,通过学生PC软件系统烧入实验FPGA,接着就可以通过事先定义好的输入和输出端点进行实验观察了。42VGA接口显示实验该实验中,学生需要参考VGA相关内容,理解VGA接口的信号定义。通过查找实验指示书,得到实验板