内容简介 本书介绍数字设计的基本原理,详细描述了现代设计流程、数据的类型与表示、布尔代数与逻辑设计、布尔函数的化简、存储器、寄存器、处理器等元器件的设计和开发等重要内容。全书语言质朴,图文并茂,是一本关于数字设计的优秀入门教材。
前 言 基本原理 随着VLSI技术的发展,现在已经可以制造拥有几百万个晶体管的芯片。手工设计这些芯片几乎是不可能的,而CAD工业的涌现,为这些大型芯片的设计提供了软件工具。因此,以前介绍的大多数数字设计技术,现在都集成在CAD工具中,设计者可以将产品的设计到制造作为一个整体进行考虑。为此,设计者现在必须掌握多种技术:需求分析、规范制定、设计建模、软硬件协同设计、芯片综合、验证、仿真和测试。从这个意义上说,设计知识的概念需重新定义,由涵盖所有设计技术的知识转变为对原理的理解,以及利用CAD工具开发各种设计方案和实现技术的能力。 本书的目标 1.设计原理 本书深入介绍了设计的基本原理,但并不要求读者记忆许多烦琐的技术细节。本书引入了通用元件库,从而使设计工作得以简化。这些通用元件库反映了实际的设计约束,比如成本和延时。书中利用这个通用的库来解释提出的所有概念,并实现书中练习的所有示例。 2.设计流程 整体来看,本书的结构主要是对完整的设计流程的介绍,而不是介绍某个设计阶段的设计技术。因此,本书首先介绍数字设计的流程,然后贯穿全书,说明各阶段在整个设计流程中的作用。 3.理论和实际相结合 遗憾的是,许多关于数字设计的书籍都倾向于将基本的原理一带而过,或者正好相反,讨论那些很少用到的细节性的理论。为了避免这些问题,在对本书的组织上,从一开始就体现出原理与实际设计之间的必然联系。只有当理论有助于简化设计的说明时,本书才会介绍这些理论。 4.详细的例题 每一章中都会给出若干个综合性例题,以说明设计流程中的每一个步骤。详细的例题是最好的学习工具,因为读者可以跟踪设计步骤,评价设计方案,并探究设计决策背后的原因。与文字相比,读者更偏爱详细的例题,因为通过例题可以很容易地领会新概念的含义。通过这种方式,利用详细的例题,代替简单的定义概念,让读者将概念与设计流程相结合,并得出从一个设计步骤到下一个步骤的原因和方法。 5.寄存器传输级设计 除此之外,本书的另一个重要目的,是让读者在设计方法学方面,由逻辑和时序级设计,扩展到包括通用和专用处理器,以及芯片设计的寄存器传输级设计。在介绍寄存器传输级设计时,本书的目标在于说明逻辑和时序设计与计算机的组织结构之间的联系。这个部分在许多书籍中都被省略了,将如何在处理器和其他芯片的设计中使用加法器、计数器和存储器的问题留给了读者。 本书的结构 1.现代设计流程 在第1章中,首先介绍系统设计学科,定义了设计流程及其主要任务。这一章是后续章节的基础,同时也为整本书提供了引导图。本章还讨论了现代设计技术,以及促进其使用的CAD工具。另外,还简要介绍了制造的流程,并讨论了设计与制造之间的关系。第1章的目的,是通过介绍现实世界中设计科学的广泛应用,激发读者学习系统设计的兴趣。 2.二进制数以及数据的表示法 在第2章中,介绍了数字系统中使用的数据模型。对二进制表示法的理解,对于理解数字系统中的运算是很关键的,因此本章将详细介绍二进制数(定点数和浮点数),并讲解二进制中的各种算术运算。此外,还说明了几种其他类型的数据模型,以及如何有效地使用这些数据模型。 3.VLSI技术的影响 设计技术必须能够在给定系统的要求与可行的实现技术之间提供一种折衷方案。因此,本书很早就介绍了VLSI技术的原理和约束,并几乎在每一章中都讨论它们对各种设计技术的影响。但是,本书不要求读者具备电子学知识,也不需要读者处理电路。相反,我们使用表示标准布尔、算术算子以及简单和复杂数据结构的元件。本书不使用特殊的元件库,如TTL或商用CMOS库,因为本书编写所遵循的原则是:理解各种元件的原理以及了解如何使用这些元件,比知道所有商用电路的确切名称和封装更重要。因此,本书使用不依赖于任何特有技术的通用元件。 4.现代逻辑和时序设计方法 现代设计库一般都很小,以便简化其维护以及使用这些库的设计算法和CAD工具。本书全文使用一个简单的门库,并用该基本库中的元件搭建所需要的高层次元件。例如,在第5章和第7章中,介绍了处理器和专用集成电路设计所需要的所有组合和时序元件。但同时,丰富的CAD工具也不容忽视,因为这些工具可以减少设计者进行过多的复杂的手工优化。因此,本书着重于优化的基本目标和原理,并举例说明现代设计流程。 5.寄存器传输级设计的方法 在过去,超越了时序综合这一级的设计技术都被认为是一门艺术,在设计课本中几乎没有涉及过。为了填补这个空缺,第8章中将介绍带有数据通路的有限状态机的概念。定义了这个概念之后,我们将介绍如何把用标准流程图或寄存器传输图表示的任意算法,映射到由数据通路和控制单元组成的硬件上,其中控制单元包含在第5章和第7章中定义的组合元件和时序元件中。 6.处理器设计 在第9章中,将介绍如何利用第8章中介绍的寄存器级设计体系和方法来设计CPU。另外,本章还将介绍指令集、计算机体系结构和处理器设计方法学。为了说明这些概念,第9章还利用数据预取和分支预测,介绍了16位CISC和32位RISC处理器的设计。 编写特点 1.引导图 为了方便读者学习,我们利用总结了本书所述论题的论题框图,来定义它们的相互关系。每一章的开始都总结了这一章的目标,以及所要论述的主题。当引入新的概念时,这个概述可以帮助读者把前面的章节中提出的概念和这些新概念联系起来。 2.设计过程 每种设计技术都是逐步提出的,最后总结成流程图的形式。流程图让读者以有序的方式解决问题,并且建议如何将某种技术应用到新的领域,或者将来涌现的新技术。 3.综合例题 本书利用带有解答的例题来说明与应用相关的原理和设计过程。在每一章中,我们利用少量的例题来说明各种可选的设计方案,引导读者从定义到最后的原理图,遍历必要的设计步骤。 课程选择 基于本书的组织结构,在两种不同类型的课程中,本书应该有相同的效果。例如,在关于数字设计的入门课程中,本书可以突出传统的组合和时序设计,这在国外的大多数计算机科学和计算机工程课程中都有论及。为这样一个课程准备的材料在第1~7章给出。另外,我们给出了关于通用和专用处理器的寄存器传输级设计的材料,这通常在数字设计的第二课程和计算机体系结构的入门课程中论及。 在这个课程中,首先学习基本的寄存器传输元件:第5章中组合元件,第7章的学习时序元件。课程主要由寄存器级设计技术和第8章介绍的专用处理器的综合设计流程组成。最后在第9章中,读者将学习现代指令集和通用CISC与RISC处理器的设计。 在任何一种情况下,我们都建议用实验课程对讲座进行补充。在实验课程中,学生可以利用用于设计捕获、建模、仿真、验证、综合、时序分析、平面图设计、物理设计以及流程设计其他方面的现代CAD工具来完成实际的设计问题。以我们的经验,实验课程是非常受学生欢迎的,因为这样可以使他们在真实的工作环境中,将学到的概念与实际设计联系起来。作为教师的辅助工具,附录中介绍了几种不同的实验设备并给出了实验室实验的几个例子。 Daniel D.Gajski