本站小编为你精心准备了计算机设计与调试课程改革参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
1PowerPCAltiVec技术介绍
PowerPC是一种RISC架构的CPU。PowerPC处理器有广泛的应用,是目前市面上主流的处理器。AltiVec技术是摩托罗拉PowerPCRISC处理器体系结构的向量并行处理技术,是现有PowerPC体系结构的延伸,它带有128位向量处理装置,可以同时处理整数和浮点数据,AltiVec的顶层架构如图1所示[2]。AltiVec技术的操作是单指令多重数据并行处理,是一种短向量并行体系结构。根据数据大小不同,向量分别具有4、8或16元素长度,和以前巨型计算机的长向量体系结构明显不同。AltiVec技术可以应用于通信业、多媒体等注重性能的应用方案中,达到提高性能的目的。在图1的下方可以看到,PowerPCRISC处理器的向量算术逻辑单元(VectorALU)有4种向量运算单元:向量数据的重组及排序单元(VectorPermute,VP)、向量简单定点单元(VectorSimple-fixedUnit,VSFX)、向量复杂定点单元(VectorComplex-fixedUnit,VCFX)和向量浮点单元(VectorFloating-pointUnit,VFPU)。其中,VSFX指令共有70条。
2课程内容改革
2.1课程内容计算机设计与调试课程是天津大学计算机科学与技术专业计算机工程方向的一门课程设计类课程,于大三下学期开设,2学分,共40学时。计算机设计与调试课程以PowerPCRISC处理器的指令系统为参考,通过设计一个PowerPC扩展指令协处理器AltiVec模块中的VSFX指令部分,将计算机组成原理、计算机系统结构、汇编语言、VLSI系统设计这几门课程所学的知识结合起来,由学生自己设计一个简单的“计算机”,进而加深对相关课程的理解,掌握设计方法,熟悉相关设计工具。课程中涉及到的主要内容包括:PowerPC405核、加速处理单元控制器(APUController)和协处理器之间的接口和处理流程、设计流程与功能验证、PowerPCAltiVec指令集、PowerISA中向量加法指令(vadduhm)实例、向量简单定点单元(VSFX)、AltiVec硬件设计顶层架构和VSFX模块与顶层的连接信号等。该课程使用SystemVerilog语言构建功能验证平台。随着集成电路芯片设计的规模不断增大,芯片验证工作成了制约芯片设计水平的关键性因素。传统的验证方法主要依靠人工进行验证,效率较低。SystemVerilog语言是一种专门用来搭建测试环境的语言。SystemVerilog语言将硬件描述语言同高级验证语言相结合,提供随机约束、功能覆盖率、断言和面向对象等新技术[3]。课程要求学生学习并使用SystemVerilog语言建立一个可以自动生成测试向量的测试环境,用这个测试环境检查学生设计的系统和功能。选择协处理器AltiVec模块作为课程的设计内容,有以下几个方面的考虑:由于向量计算在功耗和并行度等方面的优势,使其在现代微处理器设计中的作用正在被重新认识;向量计算的内容是目前计算机组成原理和计算机系统结构等课程中比较薄弱的地方,计算机设计与调试课程恰好可以对此加以弥补;设计向量协处理器可以避免与计算机组成原理、计算机系统结构、VLSI系统设计等课程的设计型实验内容相冲突;设计向量协处理器可以使学生学会使用从行为级建模到用硬件描述语言设计、从仿真到开发板上的验证等全过程的设计软件和设计环境。
2.2课程设计任务及教学组织形式
2.2.1课程设计任务课程设计任务包括4部分内容。(1)模块设计:采用VerilogHDL,设计PowerPC协处理器AltiVec模块中部分VSFX指令。(2)顶层模块集成:将设计的VSFX指令模块与其他模块集成,了解模块与模块之间的关系。(3)仿真验证:用AltiVec汇编指令编写测试程序,通过汇编编译器生成机器代码。在集成环境下,仿真验证设计的正确性。(4)FPGA开发版上的验证:将所设计的RTL代码放置到FPGA开发板上,验证所设计的硬件实现的正确性。使学生进一步掌握开发板上的接口电路在调试过程中的作用等。为了使课程设计的设计工作循序渐进,参考CDIO教学模式,把整个设计任务分为8个相互联系、难度逐步增加的子任务。子任务一:阅读指令定义文档,对小组选定的5条不同类型的指令给予特别关注。子任务二:以小组为单位,讲解和展示小组将要实现的5条不同类型指令的功能。子任务三:用C语言实现所要设计的5条不同类型指令的功能,并设计功能测试程序,以C语言实现的功能测试的输入和输出结果为“标准测试程序”,作为下一步硬件设计的测试向量。子任务四:学习AltiVec硬件架构设计;看懂AltiVec中除VSFX模块外的所有RTL代码(Register-Transfer-Levelcode);画出AltiVectoplevel的硬件架构图。子任务五:定义所要设计的VSFX模块的架构、子模块;要求画出模块的框图,标注寄存器及多路选择器的位置,明确下一步RTL代码的关键内容。子任务六:进行VSFX模块的RTL代码设计及仿真验证;完成二级译码电路设计;完成功能模块设计。子任务七:进行顶层设计及仿真验证。将所设计的VSFX模块与top连接,形成完整的AltiVec模块;进行AltiVec层次的验证;输入所设计的5条指令的汇编指令,采用VSFX模块级的数据,结果与之前的VSFX模块级仿真数据对比。在基本功能测试完成后,将进一步在SystemVerilog语言建立的自动生成测试向量的测试环境中,通过运行生成的100组随机向量,检查学生设计的系统和功能的正确性,保证测试覆盖率。子任务八:进行FPGA开发板上的验证。RTL级的仿真验证仅仅能保证所设计的硬件的逻辑功能正确性。通过将所设计的RTL代码放置到FPGA开发板上才能够验证所设计的硬件实现的时序正确性及工作速度是否达到设计要求。最后针对FPGA开发板的逻辑综合与静态时序分析,验证设计的时序的正确性以及所设计的电路可以在什么时钟频率下工作等。
2.2.2教学组织形式在课程设计开始时,教师要求学生自愿组合,每组2人,每组学生从70条VSFX指令中选出5条不同类型的指令,作为准备由硬件实现的指令,这就是小组的设计任务。尽管每个小组都要完成同样的8个子任务,但是由于每组学生所选择的5条指令并不相同,所以每个小组实际完成的任务并不一样。通过布置任务、教师引导、分组讨论、学生实践、扩展阅读、沟通交流、实现设计、完成测试等一系列教学环节,让学生完成一个现代处理器PowerPC扩展指令协处理器AltiVec模块中VSFX指令部分的设计。在整个课程设计过程中,教师讲得很少,主要靠学生自学、讨论和实践。在每个实验的关键节点上,教师都会安排学生做课堂汇报。在学生进行汇报过程中,教师及时纠正学生的错误,正确引导学生一步一步完成任务。教师给学生准备了必要的参考阅读资料,包括1300多页的IBMPower处理器设计文档“Book-IChapter6.VectorFacility”、260多页的飞思卡尔公司技术手册“AltiVecTechnologyProgrammingInterfaceManual”、IBM公司和摩托罗拉公司发表在国际会议上的对PowerPC做向量扩展的文章“ALow-power,High-speedImplementationofaPowerPCMicroprocessorVectorExtension”和VSFX指令第一级译码器文档等。另外,教师要搭建AltiVec模块的集成与验证平台。
3结语
在2011级计算机工程专业方向本科生的计算机设计与调试课程中,我们按照上述新的教学内容和教学组织形式进行了尝试。学生经历了一个完整的系统设计过程,所有学生的设计都通过了仿真检测和在FPGA开发板上的测试。实践表明,教学内容和教学组织形式的改革调动了学生学习的积极性和主动性,取得了非常好的教学效果。
作者:郭炜 张钢 单位:天津大学 计算机科学与技术学院