首页 > 图书中心 > CPU设计实践教程——从数字电路到计算机组成

前言

前言

计算机系统能力培养是一项综合性、理论性和实践性都很强的教改活动。在教育部高等学校计算机类专业教学指导委员会、国家级实验教学示范中心联席会计算机学科组、计算机学会体系结构专委会、美国Xilinx公司等机构、组织和企业的大力推动下,高校计算机专业计算机系统能力培养工作得到长足进展,全国众多高校都积极加入到这一工作中。

东南大学计算机科学与工程学院与国家级计算机实验教学示范中心(东南大学)是最早参与该项活动的单位。早在2003年就整合了硬件主要课程和系统软件编译原理的相关内容,开设了“计算机系统综合课程设计”,2011年又在教育部高等学校计算机类专业教学指导委员会主持下参与了计算机系统能力培养的实践教学研究活动。多年来,在教育部计算机教指委、国家级实验教学示范中心联席会计算机学科组和东南大学计算机学院领导的关心下,东南大学计算机学院摸索出了一套完整的基于计算机系统能力培养的贯通式实践课程体系。

本书涵盖了这套课程体系中有关CPU设计相关课程的实验方案,其中包括“数字逻辑电路实验”、“计算机组成原理实验”和“计算机组成课程设计”3门实践课的内容。本书力求做到课程实践的贯通性,以设计能运行31条MIPS指令的单周期和多周期Minisys1 CPU为最终目标,将3门实践课的内容连通,做到自底向上、层层递进、逐步完善。

在具体的实践内容安排上,既保证了全书内容的完整性,又可以作为3门独立的实践课。在实验的形式上,兼顾原理图设计与硬件描述语言Verilog HDL设计,既强调结构描述和数据流描述,也兼顾行为描述方式。

为了顺应当前EDA技术的发展,本书注重IP核的设计与应用。本书放弃了传统数字电路与计算机组成原理实验中用74系列芯片搭建的实验方式,注重让学生学会自行设计具有一定逻辑功能的应用电路和根据逻辑需要简化电路的方法。同时,本书还特别强调学生要学会利用EDA工具,通过仿真时序来检查电路的正确性。

本书主要章节安排和实践教学建议如下。

第1章概述。简单介绍了计算机系统和EDA工具及其应用。本章内容适合在计算机组成原理实验之前讲解,其中EDA工具适合在数字逻辑电路实验前讲解。

第2章Minisys实验板介绍。介绍本书所使用的实验平台。尽管本书中大多数实验在原理上与平台无关,但具体到实现,则与平台有很大关系。书中所有实验的最终下板实现都是在Minisys实验板上完成,资源包中的约束文件也是按照该实验板设计。

第3章Verilog HDL语言基础。介绍了Verilog HDL语言。本书大多数实验都是用Verilog HDL语言设计的。因此本章是能够完成本书实验的关键,应该在“数字逻辑电路”课程中安排课时讲解本章内容。如果学生熟悉C语言,则可以着重讲解与C语言的不同和具有硬件特性的部分,这样学时数可以略少,多给学生练习。

第4章数字逻辑电路实验。本章共设计了11个实验专题,大部分实验专题由几个小实验组成。本书所有实验软件均采用Xilinx Vivado开发软件,但书中没有安排专门的篇幅介绍该软件,而是在第一次使用该软件的某项功能的时候,再提供详细的操作步骤。因此,本章前两个实验尤为重要,建议即使不想做这章实验的读者,也务必完成前两个实验。本章围绕CPU设计所需要的基本器件展开,因此比较适合作为计算机专业“数字逻辑电路”课程的实验内容。

第5章计算机组成部件实验。本章共设计了5个实验,大部分实验由几个小实验组成。如果开设了专门的计算机组成原理课程设计,则本章内容只作为“计算机组成原理”课内小实验,完成CPU基本部件的设计。如果没有专门开设计算机组成原理课程设计,则本章可以和第6章合并,作为计算机组成原理实验内容。

第6章Minisys1单周期CPU的设计。本章首先介绍CPU的基本结构和工作原理,以及CPU设计的大致流程。然后介绍目标系统Minisys1处理器。最后,通过多个实验,逐步完成Minisys1单周期CPU的设计。本章可作为本科计算机专业“计算机组成课程设计”的基础实验内容。

第7章Minisys1汇编语言程序设计。本章主要是针对程序员,比较详细地讲解了Minisys1汇编语言以及汇编语言程序设计的技巧。本章适合在“计算机组成原理”课程中作为汇编程序设计的实验内容。

第8章多周期Minisys1 CPU的设计。本章在单周期CPU的基础上,通过多个实验修改数据通路。增加相关部件和状态机,完成了多周期CPU的设计。本章适合作为计算机专业“计算机组成课程设计”的选做内容。

本书的大部分实验是在介绍了原理的基础上,要求读者独立完成设计。不同于大多数教程,本书并不给出实验的完整设计答案。因此,本书更适合作为高等院校本科生相关课程的实践(实验)教材,而并不太适合读者自学,请读者留意这个问题。

本书在设计每个实验的时候,主要包括如下内容。

 实验目的: 介绍本实验要达到的目标。

 实验内容: 介绍本实验要完成的内容。

 实验预习: 学生需要预先复习和掌握的知识,一般也会在这部分给出实验原理。

 实验步骤: 给出实验比较详细的步骤,帮助学生完成实验。

 思考与拓展: 给出一些讨论题目或难度更高的设计要求,供学有余力的学生完成。

编者在“中国大学MOOC”网站开设了慕课“计算机系统综合设计”(目前评分为满分5.0),读者可以与本书配套进行学习,效果更好。

本书配套的学习资源包可以从清华大学出版社网站www.tup.com.cn下载,相关问题可以联系404905510@qq.com。

本书由东南大学计算机科学与工程学院杨全胜副教授、南京工程学院计算机工程学院钱瑛老师、东南大学成贤学院电子与计算机学院院长王晓蔚副教授、东南大学计算机科学与工程学院任国林副教授和吴强高级工程师编写,杨全胜副教授负责统稿工作。

东南大学计算机科学与工程学院罗继明、李林、徐言、江仲鸣、樊飞、王飞、杨英豪、徐恒煜等同学参与了本书实验的验证及绘图工作。东南大学计算机学院2003—2018届全体本科学生用实践验证了本课程内容的正确性,还帮助完善了课程内容。

本书的撰写和与之相关的教改活动得到了清华大学杨士强教授、北京航空航天大学马殿富教授、东南大学翟玉庆教授、同济大学王力生教授、浙江大学施青松老师、中国农业大学黄岚教授、哈尔滨工业大学(深圳)薛睿老师的热情指导。与本书相关的教改活动得到了美国Xilinx(赛灵思)公司陆佳华先生以及依元素科技有限公司的大力支持。在此,对所有帮助我们的老师和同学表示衷心的感谢。另外,还要特别感谢清华大学出版社的编辑在编写本书期间给予的极大帮助。

由于编者水平有限,书中难免会有不足之处,殷切希望广大同仁和读者批评指正。

编者

于南京江宁九龙湖畔

2019年7月

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘