前言
前言
计算机专业是工程性和实践性很强的专业,工程人才培养相关的两个重要因素是: 数学与科学原理的学习、工程专业知识的应用。计算机专业培养的学生既要有科学家探索未知的能力,又要有工程师解决实际问题的能力。本书总结了同济大学计算机科学与技术系开展计算机硬件类课程教学改革的经验,将计算机专业基础课“数字逻辑”和“计算机组成原理”两门课程的教学和实践有机地结合起来,改变原有各门课程自成体系,实验主要以插箱实验为主,学生硬件设计及开发能力欠缺的情况。教学过程调整“数字逻辑”课程重理论轻实践、电子理论及逻辑原理并重的教学方法,侧重逻辑原理及其硬件描述语言实践,提高设计性实验比重,培养学生自主思考与独立完成硬件设计的能力。在设计实验时,充分考虑两门课程的关联性,由浅入深、由易到难将这两门课程的教学和实践内容进行统一设计,并给出了CPU完整的测试方法。“数字逻辑”实验的成果要为“计算机组成原理”实验提供必要的部件实验基础。在此基础上,学生逐步设计完成31条MIPS指令CPU和54条MIPS指令CPU。两门课程实验基于Xilinx FPGA 开发板统一接口,实验所用技术有机衔接,通过这种方法对学生进行工程化的训练,力图使计算机系学生从“使用别人的计算机”到“设计自己的计算机”、从“设计自己的计算机”到“使用自己的计算机”,以帮助本科生更深入地理解“系统”层面的各类计算机学科专业知识、增强面向产业界的实践能力、设计能力、创新能力和解决实际问题的能力。
本书在整体介绍数字系统设计过程之后,对本书中实验所用软件的安装和相关功能的使用进行了详细的介绍,又介绍了硬件描述语言Verilog HDL的相关语法,最后介绍了MIPS CPU的相关知识。基于上述知识的讲解,本书设计了由浅入深的“数字逻辑”实验和“计算机组成原理”实验,使学生可以循序渐进地进行数字系统设计学习和实践,加强学生对于理论知识的理解。每章内容如下。
第1章总体介绍基于可编程逻辑的数字系统设计,其中包括可编程逻辑的设计步骤和本书中数字电路设计实验所用软件的环境配置,使读者对数字系统设计有一个初步的了解。
第2章介绍数字逻辑模拟器Logisim的基础知识,包括Logisim的功能介绍和使用入门。
第3章介绍硬件描述语言Verilog HDL的相关知识,其中包括Verilog HDL门级描述相关语法、数据流级描述相关语法、行为级描述相关语法、Verilog HDL测试平台和状态机这5个部分,使读者对使用Verilog HDL进行数字电路设计有更深入的认识。
第4章分为两部分,首先介绍Xilinx FPGA器件Nexys 4 DDR Artix7 FPGA开发板及其主要的外围接口电路。其次,通过设计实例介绍Vivado设计套件的使用,具体包括Vivado设计流程、Vivado时序约束、IP核封装和逻辑分析仪ILA的使用。
第5章介绍HDL仿真软件ModelSim的使用,包括ModelSim的基本功能、波形窗口、数据流窗口、断点调试功能、代码覆盖率查看功能、内存查看功能的使用。
第6章介绍数字逻辑实验,包括基本门电路与数据扩展实验、数据选择器与数据分配器实验、译码器与编码器实验、桶形移位器实验、数据比较器与加法器实验、触发器与PC寄存器实验、计数器与分频器实验、RAM与寄存器堆实验、行为级ALU实验和综合实验。
第7章介绍MIPS CPU基础及设计相关知识,包括MIPS CPU的概述、MPIS32指令系统、MIPS 单周期及多周期CPU设计方法和测试方法。
第8章介绍计算机组成原理实验,包括MIPS指令汇编程序设计实验、32位乘法器实验、32位除法器实验、31条MIPS指令单周期CPU设计实验、中断处理实验、54条MIPS指令CPU设计实验和综合应用实验。
我们在“数字逻辑”实验和“计算机组成原理”实验的改革过程中,得到了北京航空航天大学计算机学院马殿富教授、曹庆华教授、高小鹏教授,东南大学计算机科学与工程学院翟玉庆教授、杨全胜教授、王晓蔚教授,浙江大学计算机科学与技术学院陈文智教授、施青松教授,杭州电子科技大学计算机学院严义教授、包健教授,兰州交通大学党建武教授、李玉龙教授等的大力支持,在此表示真诚的感谢!此外,在教学改革实施过程中,我们还获得了教育部美国DIGILENT(迪芝伦)科技有限公司产学合作协同育人项目、教育部Xilinx产学合作专业综合改革项目的支持,在此一并表示感谢!
同时,在本教学实验改革过程中还得到了很多学生和朋友的支持和帮助,在此谨列出他们的姓名并致谢意(按姓氏拼音序): 陈晨、段晓景、董喆、高名兴、黄仁智、黄玮琦、蒋凌超、林梦迪、卢杉、彭田、钱鹏飞、阮剑鸿、史亮、童杰、王菲、王田、王煜、魏薇、许一帆、徐振垒、余智铭、周航。
作者
2018年3月