基于EDA的计算机硬件课程实践教学的研究

时间:2022-08-15 01:40:41

基于EDA的计算机硬件课程实践教学的研究

摘要:本文主要研究如何利用MAX+PlusII或QuartusII虚拟平台进行计算机系统硬件课程设计的虚拟实践方案。

关键词:EDA;硬件课程;实践方案

中图分类号:G642 文献标识码:B

文章编号:1672-5913(2007)14-0090-04

在当前的培养方案中,各高校都非常重视计算机专业课程的教学和实践过程,训练学生的思考能力、动手能力和创新能力。而虚拟实践的实现既能够达到教学目标,又能够节省实验资源,还可激发学生的学习兴趣,鼓励优秀的学生不受实验器件的限制而自行设计新的实践内容,以达到进一步提高动手能力及创新能力的目的。

1国内外计算机硬件课程实践教学现状

对于计算机组成原理等这样较大规模的硬件系统课程实践而言,为了加深学生对计算机组成、工作原理及整机概念的理解,学生需要利用中大规模集成电路等器件对计算机系统的组成进行分析、设计、实现、测试和验证。当前,这些器件和整机的设计与实现基本上是在实验室特定的硬件平台上进行的,由于实验经费有限、硬件平台数量的限制,学生参与的实验多半是验证性的实验,导致学生对实验丧失兴趣,抄写实验报告的现象非常严重。因此,在进行课程实践过程中,传统的实验模式不能对学生因材施教,束缚了对学生创新能力的培养。

各大学提供的课程项目实验的内容差别不大,一般都有运算器实验、控制器实验、存贮系统实验等单项实验。研究型大学会要求学生分组完成一、两个综合性的实验项目。如计算机系统的整机设计。虽然各大学提供的课程实验的内容差别不大,但各大学在如何完成课程实验的实现方式上有较大区别,综合起来有五种模式:

(1) 基于汇编:实验通过编写相应的汇编语言程序来完成,可帮助学生理解与系统组成有关的一部分主要思想。这种实验方式简单易行,但无法了解到详细的硬件设计。

(2) 基于仿真系统:实验通过专门设计的仿真系统来完成,这也是一种用软的方法来完成硬件实验的主要途径。国外有很多大学采用,也有很多流行的仿真软件。比如winDLX,使用DLX仿真器、对程序进行性能分析,认识数据相关、控制相关、结构相关、相关专用通路的概念以及它们对性能的影响。还可以设计不同的流水线控制策略,评价不同流水线对性能的影响。通过仿真的手段,设计并验证cache组织对计算机性能的影响等。

(3) 基于高级语言:学生通过JAVA、DELPHI、PowerBuilder、C/C++、VC、Vb等编程语言自己编写类似WinDLE的仿真环境。

(4) 基于EDA平台:实验借助于EDA(比如,Altera公司的MAX+PlusII及QuartusII)平台,利用硬件编程语言(VHDL)编写程序,编译后下载到在系统可编程芯片SoC上,即可完成诸如数据通路、CPU等的设计。这种实验方式可充分利用VHDL自身的特点,即用软件的方式来设计硬件,修改起来十分方便。这无疑是一种较为先进的实验方式,但一方面学生理解掌握VHDL语言需要一定的时间,另一方面对实验室的硬件配置也有较高的要求,需要有相应的EDA工具等等。

(5) 基于专门的实验计算机系统:在专门设计的实验计算机系统上完成课程实验。这种实验方式国内的大学采用的较多。如清华大学根据目前计算机和集成电路技术的发展现状,设计研制了“开放式教学CPU设计与测试系统”,通过这个开放式的设计型、研究型大型教学实验,使实验者不仅能够学习CPU的设计、验证和测试方法,还能够更进一步的理解计算机原理和组成以及系统结构方面的知识,同时学习一些相关EDA工具软件的使用方法。在04年,清华本科生使用该实验装置成功的完成了课程实践。他们不仅设计出自己的CPU,而且百花齐放,设计中简单的有无流水无cache的、稍复杂的有2级流水(无cache)到5级流水(无cache)到5级流水(带cache)到超标量的CPU。

上述几种实现方式虽然不同,但都具有帮助学生加深对基本概念和理论知识的理解的作用。同时每种实现方式也都具有自身的特点,各校一般都结合本校的特点和具体的实验内容选取其中一种或综合采用其中某几种。

2虚拟化实验平台的选择

通过对国内外相关情况的调查、分析、研究,我们考虑可以利用复杂可编程逻辑设计器件(CPLD)设计软件作为电子设计自动化(EDA)实验平台,模拟真实的硬件平台,从而达到虚拟化计算机系统硬件实验的目的。Altera公司的MAX+PlusII及QuartusII平台是完全集成化、易学易用的可编程逻辑设计环境,主要用于设计新器件和中大规模CPLD/FPGA。它具有硬件描述语言、电路原理图、时序图等多种输入方式,利用其所提供的标准门电路、芯片等逻辑器件,完成数字电路从设计输入、编辑、编译、仿真、封装到下载的全过程。MAX+PlusII及QuartusII平台可以保证所设计系统的可靠性、高效性和灵活性,其强大的图形界面和完整的帮助文档,使学生能够轻松快速地掌握和使用该EDA平台,进行逻辑电路及相关系统的设计。

近几年来随着计算机和微电子技术的发展,CPU的设计一直是国内外研究的热点。计算机系统设计方法和手段都发生了巨大变化。美国加州伯克力分校、西北大学等著名高校开设的计算机组成与系统结构的课程实验都是通过Verilog HDL硬件描述语言来进行计算机功能部件的设计。而国内清华大学、北京工业大学、北京理工大学、国防科学技术大学、湖南大学等都已经采用这种实验方式,并自主开发了适合自己的实验平台。

国内部分高校通过实践发现,采用虚拟化方式来完成计算机系统硬件课程设计不仅是可能的,而且能够摆脱以往采用的实践平台的束缚,并且可以根据需要设计出各种不同水平的实验及课程设计。此外,由于虚拟平台的灵活性和可保存性,极大地方便了课程实践的设计者和参与实践的学生。教师可以根据课时的要求,方便地调整课程实践的方案;学生可以根据每个人的时间,随意安排进行实践的时间。同时可以充分发挥出学生的潜能,进行具有创新性的设计及实践。

通过调研发现,现在越来越多的高校已经认识到将硬件描述语言引入计算机硬件类课程的重要性,作为计算机专业的学生应该有机会在大学里把分散在各门计算机系统相关课程中的知识链接起来,学会在设计实际系统时做复杂的设计选择和折衷,获得设计一个“可用的”计算机系统的重要经历。通过思考整个系统的设计,树立起计算机工程的概念,掌握使用工业的EDA软件工具和技术,使他们进入工业界和研究界后能很快适应工作需要。而在大学里构建一个实际的计算机系统,时间、人力和资源都是不允许的。快速原形技术以及新一代的大规模现场可编程逻辑器件使得完成计算机系统原型设计成为可能。先建立处理器微体系结构模型;用高级语言(如C)写出处理器模拟器(定义处理器的高层结构,获得一个可执行的处理器微体系结构定义);再用硬件描述语言(如Verilog)写出处理器仿真器(代表处理器的仿真实现);然后在模拟器和仿真器上运行交叉编译的应用程序,可以观察指令的逐条执行,分析实际机器的行为,以及应用特征、各种设计条件和约束对处理器体系结构设计的影响;最后,在一块可重构的FPGA上实现验证可运行真实程序和操作系统的处理器设计。在整个设计中,处理器体系结构设计是计算机系统结构设计中最重要的部分之一。学生能够设计一个处理器,就能够设计其它任何复杂的数字系统;理解如何设计出一个基本的通用CPU,对于设计更复杂的处理器或计算机系统是十分重要的开端。可以以一个精简的CPU设计为载体,基于高密度现场可编程器件(FPGA)构建可重构的计算机系统结构快速原型设计实验平台,给学生创造一个构建真实计算机系统原型的机会,学习在整个系统构建过程中作出软硬件设计的决定。实验开始时,先向学生提供一个已构建好的基本CPU模型、测试程序、以及经过裁剪的在该模型上可执行的操作系统和经过修改的编译器。要求学生为其添加新的功能需求,思考如何提出或选择某个候选的解决方案,如何评估解决方案,以及如何作出设计改动。学生在此过程中获得复杂数字系统设计、模拟、验证和评估方面的经验。尽管整个过程是在已有的模型下经过改造和扩充完成,但在整个实验过程中,学生获得了复杂硬件设计的实际经验,对他们未来从事计算机系统的设计和研究是极为重要的。

上一篇:理论与实践关系在计算机课程教学中的应用 下一篇:“VLAN应用”项目教学一例