计算机原理综合课程设计是训练计算机专业的学生全面掌握计算机知识的实践课程。通过这一课程的学习与训练,能够将所学的计算机理论和方法,通过实际的计算机设计融合在一起,从而更加全面透彻地掌握计算机的系统知识,培养计算机设计制作的技能。通过本课程的学习和演练,对任何复杂的计算机结构的理解和认识都不会再有不可逾越的障碍。
针对近些年来学生对计算机核心软硬件知识掌握较少,因而对基础层面上的软硬件关系认识不清,影响学生创造性地进行基础软件和系统软件开发,学生不能够设计制作计算机的现状,本书将侧重点放在了计算机核心部件的设计和制作上,借助于FPGA/CPLD器件的可编程特点,运用EDA软件Quartus II系统地介绍了计算机从无到有的设计方法,通过相关的章节,由浅入深地展示了一个完整计算机的设计过程,通过计算机设计实例,能够引导学生快速地掌握计算机的设计基本技术。
书中采用原理图设计和Verilog HDL语言编程对照的方式,不仅剖析计算机各种器件的结构,而且具体地给出了它们的设计,同时也给出了计算机各种器件之间的关联方法。这其中也包括如何进行硬件到软件的过渡,软件如何完成硬件的基本任务,以及软件如何完善硬件功能等项内容,具体地介绍了核心操作系统与编译器的设计方法。
书中的各项设计都是作者自己完成的设计实例,并在教学中获得了验证,不论是学习计算机硬件还是学习计算机软件专业的学生,都能够比较容易完成。
全书共分6章。
第1章 计算机设计基础理论。本章主要是概括地介绍计算机产生及设计的基础理论和方法。其中包括信息的概念和属性,计算机信息的表示和信息处理的方式,二进制与逻辑电路等。本章特别介绍了限位数理论和方法,限位数理论和方法将贯彻计算机设计的始终。
第2章 逻辑计算机。这一章高度概括地介绍了电子数字计算机的逻辑结构,分析了指令程序存储和执行的必要条件和过程,介绍了计算机部件之间的关联形式和基本信息传递方式,以计算机的核心结构变化对计算机进行了分类。
第3章 EDA设计工具。本章以电子设计自动化软件Quartus II为例,针对计算机设计的实际,介绍了软件的使用方法。其中包括如何建立项目工程,如何使用各种设计文件,Verilog HDL基本语法结构和描述方法,如何对工程进行编译仿真,如何对编译后的工程进行下载检验等。
第4章 常用基本器件设计。这一章主要是从原理的角度对计算机组成的器件进行设计和仿真。其中主要包括:可控寄存器设计,加减法运算器设计,同步计数器设计,移位运算器设计,乘法运算器设计,除法运算器设计,存储器设计,译码器设计,节拍器设计等。
计算机原理综合课程设计前言 第5章 控制矩阵设计方法。本章主要介绍运用多元逻辑函数的方法来进行控制电路设计,并介绍如何设计模块描述编程器,及利用模块描述编程器进行控制矩阵设计,它是控制器的核心器件设计技巧的展示。
第6章 计算机设计实例。本章详细地介绍了一个计算机的基本设计过程,包括计算机整体功能和结构设计,关键器件的Verilog HDL描述,整机总线结构的设计,同步节拍器设计,指令系统和控制器设计,输入输出接口设备设计,操作系统核心设计,整体仿真,工程下载检测,汇编程序设计编译方法及实例计算机上的执行等。
计算机原理综合课程设计对于我们还是一个较新的教学内容,究竟采用何种方式来完成课程的目标,还值得我们进一步进行研究。我们赞成在计算机原理的基础上来进行综合课程的设计实验,这样虽然与现在流行的嵌入式系统设计方式不太一致,甚至有“从头做起”的感觉,但在理论阐述上会更加透彻完整,更加符合教学的需求和规律,对学生计算机原理知识掌握和后续课程内容学习更加有利。采用嵌入式方式进行计算机设计,仍然脱离不开离计算机硬件电路过远的弊端。由于当前嵌入式方法一般都给出了操作系统和编译系统,因而会使我们难以达到对基础结构和基础软件的研究,不利于引导学生创新,更不利于克服现有的嵌入式系统存在的缺憾。而且计算机原理的综合课程设计,还应该包括基础软件的设计内容和方法在内,这当然要包括操作系统设计和编译程序的设计内容。
目前流行的精简指令系统RISC,是适应单处理器指令流水线结构的程序执行方式而设计的,比起传统的复杂指令系统CISC并不一定在任何情况下都具有优越性。例如在多元处理器计算机结构中,这种RISC指令系统的流水线操作,会妨碍程序在不同的处理器之间选择,影响动态的任务处理形式,而在各处理器上任务的动态执行是体现多元处理器计算机系统优越性必不可少的内容。复杂指令系统虽然有些指令利用率不高,但指令设计灵活,调用方便简单,具有指令设计的通用性优点,其他的指令形式一般都是在这种指令的基础之上演变而来的,所以我们仍将复杂指令系统的设计作为基本的指令设计形式。掌握了指令的基本设计方法,设计那种指令长度一样的精简指令系统,并不会使学生存在多大的问题。
计算机原理综合课程设计的内容不仅学习计算机硬件需要,而且学习计算机软件也完全需要,特别是计算机软件工程专业的学生,只有很好地掌握计算机原理知识,掌握好软硬件接口层面的结构,才能够在未来开发出高水平的软件。根据我们的经验,在学习了计算机原理课程之后,有36学时左右的时间就能够让学生独力地完成完整的计算机设计。
由于此门课程的内容较新,运用于教学实践的时间还不够充分,不足之处在所难免,诚恳欢迎读者提出宝贵意见。
作 者