计算机系统的自主设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

计算机分为通用计算机和嵌入式计算机。前者追求高速运行、海量存储、多功能,人们日常使用的台式机及笔记本电脑、网络服务器等均属于通用计算机类。后者则常以一个产品中的内部控制器或以专用计算机的形式隐形地嵌入于具体的产品中,作为产品的一个部件,追求量体裁衣,最大限度地降低成本、体积与功耗。日常生活中常用的手机、电视机、空调、冰箱、汽车、电饭煲等,正因为其中的嵌入式计算机默默地运行,才使其具有了智能功能。近三十年来,计算机的出现极大地推动了人类生产和生活的进步,并使之对计算机形成了强烈的依赖感。目前,计算机已广泛地运用于工业、农业、商业、医疗、教育等各行各业,已进入千家万户。

三十年过去了,广大从事IT技术及产品研发人员经历了苹果机、单板机、单片机、286、386、奔腾、DSP、ARM等硬件升级,经历了BASIC、FORTRAN、PASCAL、COBOL、C、DELPHI、Java等语言变迁。目前该行业的从业人员(含高校在校生)已超过1000万人。但时至今日,在市面的书架上,在高校的教学中,仍在大量地介绍国外的各类商用CPU、编程语言,以及开发系统软件该如何去选型、如何去使用。基于此,作者用了两年多的时间完成了本书,全书以一个全部软硬件均自主定义与设计的教学用计算机系统的实现过程为主线,详细地介绍了自定义指令系统、CPU芯片、汇编语言、高级语言、编辑器、汇编器、编译器、链接器、编程器以及计算机系统的完整开发流程,试图让读者将往日所学到的零碎、割裂的知识,通过书中的实例予以串联整合,使读者对计算机系统的本质得以深入理解,由一名使用者提升至一名设计者和创造者,为社会开发出更多更好、具有自主知识产权的IT产品来。

尽管本书的内容覆盖了大量的IT专业及专业基础课程内容(如数字电路、微机原理与接口、单片机技术、编译方法、C++语言、EDA技术等),但本书并不是仅仅针对IT专业技术人员和高年级学生写的。对于非IT专业的读者或IT专业的低年级学生,建议按书中的章节顺序及介绍的方法,动手制作并完成相应设计,这样会在不知不觉中掌握相关的专业理论知识和技能技巧。毕竟,最好的学习方法是带着问题去学习。本书将与实例相关的所有软硬件资料公开,其中硬件电路图和软件源代码都已经反复验证。

全书分为四篇,共计17章。第1章以一个产品加工厂为例,通俗形象地对计算机系统结构、工作原理及开发运行流程进行了介绍;第2章对指令系统的基本概念、自定义指令系统设计方法进行了阐述,是CPU芯片的设计目标;第3章介绍了VHDL和Verilog HDL两种硬件描述语言的使用方法;第4章详细介绍了FPGA开发系统软件QUARTUS Ⅱ的使用方法、设计技巧,以及代码自动生成方法;第5章对自定义CPU的内核和片内外设的设计及FPGA实现进行了详细的介绍,并给出了用VHDL和Verilog HDL两种语言分别进行描述设计的方法;第6章介绍了用制作出的CPU构建计算机硬件系统的设计、测试方法;第7章介绍了什么是软件、软件对硬件的依赖关系以及软件的基本架构和开发流程;第8章和第9章介绍了汇编语言和高级语言的定义方法和基本组成;第10 章通过一些编程实例介绍了VC++6.0工具与C++语言的使用,并介绍了Windows系统平台上的应用程序的开发;第11章介绍了使用MFC设计编辑器的原理、步骤和技巧;第12章、第13章和第14章简要地介绍了汇编器、编译器和链接器的设计原理和设计流程,并使用C++语言将其实现;第15章介绍了编程器的制作原理和方法,包括计算机软件界面制作、串口通信和数据烧写;第16章对整个计算机系统使用自定义的SCL汇编语言进行了实例测试,详细地介绍了使用汇编语言进行开发的流程;第17章对整个计算机系统使用自定义的SCH高级语言进行了实例测试,详细地介绍了高级语言源程序的开发流程,并对三种基本程序结构、子程序,以及中断服务程序进行了实例分析。

本书特别适合IT领域或非IT领域的广大计算机爱好者阅读,读者群覆盖高中生、本科生、硕士生和博士生。可作为高校或职业学校的课程教材,也可作为研究院所和企事业单位的培训教材。

本书编写组由赵刚、张垒、高朔弋、夏俊杰、路明、刘志刚六位教师组成,四川大学电子信息学院研究生张金龙参与了部分章节的编写工作,编写工作由参加编写的教师集体讨论、分工编写、交叉修改,历经两年多完成。全书由赵刚担任主编,负责大纲拟定、组织编写与统稿工作。

在编写过程中,得到了华为技术有限公司成都研究所郑小燕工程师的大力支持和帮助,借本书出版之际,特表示感谢!

虽然本书是在作者多年教学和科研工作的基础上完成的,但由于作者水平有限,疏漏之处在所难免,敬请广大读者批评指正(E-mail:zhaogang@scu.edu.cn)。

作者

于四川大学