第1章 数字设计的基础知识
在优化组合逻辑的过程中,数字逻辑设计的基础知识和各种有效技术是非常有用的。
大多数时候,我们都需要使用数字设计技术来设计数字系统。对于任何数字系统,充分理解数字设计技术及其使用将有助于工程师设计和实现系统,其中需要考虑的要素包括系统的面积、频率和功耗要求,以及在实现数字系统时对它们的有效理解。在这种前提下,本章讨论了数字设计技术的基础知识及其主要目标。
1.1 数字逻辑和演变
数字逻辑在20 世纪得到了发展,涌现出各种各样有效的技术。大多数时候,我们把这些技术用于简化和优化布尔方程。下面是一些非常基础但相对重要的技术:
(1)布尔定理。
(2)乘积之和(SOP)和总和之积(POS)的简化。
(3)卡诺图。
(4)德?摩根定律。
(5)设计优化技术。
(6)延迟优化技术。
(7)功率优化技术。
(8)频率优化技术。
我们中的大多数人都熟悉上述这些技术,并在各个设计阶段使用这些技术,如设计架构和微架构。
1984~1985年,我们见证了EDA工具的使用,完成了从原理图输入到硬件描述语言(HDL)输入的迁移。大多数EDA 工具公司优化了它们的流程,使用Verilog 或VHDL 语言来进行电路设计和电路实现。我们在20世纪80年代也目睹了少数基于PLD的设计和FPGA工具的使用。
在此背景下,本书有助于理解从基础到复杂的各种设计技术,此外,本书还讨论了如何设计架构和微架构,以及如何使用先进的数字设计技术。
接下来的几节对了解基本的数字设计单元,以及它们在设计中的作用很有帮助。
1.2 重要的考虑因素
正如我们大多数人所知道的那样,数字设计以二进制数据为基础,我们将bit(比特)视为二进制数据,它的值分为逻辑0和逻辑1。逻辑0代表Vss(GND),逻辑1代表Vdd或Vcc,因此数字设计可分为组合逻辑和时序逻辑两种。
1. 组合逻辑
在组合逻辑中,输出是当前输入的函数。如果输入发生变化,那么输出将在组合逻辑的传播延迟后发生变化,从而避免当前输出被前一个状态的输出所影响,以下是组合逻辑的例子:
(1)逻辑门。
(2)算术资源。
(3)数据选择器(MUX)。
(4)解码器。
(5)解复用器。
(6)编码器。
2. 时序逻辑
在时序设计中,输出是当前输入和过去输出的函数,以下是时序逻辑的例子:
(1)锁存器。
(2)触发器。
(3)计数器。
(4)移位寄存器。
(5)存储器。
在设计数字逻辑电路时,设计工程师主要的考虑因素是面积、频率和功耗。此外,我们还需要根据设计目标考虑设计的并发性、并行性和流水线。
1.2.1 面积
面积是指设计中所使用的逻辑门的数量。逻辑的密度是指在单位面积上有多少个逻辑门。例如,处理器的面积是10万个逻辑门。设计工程师需要使用各种设计技术来节约设计的面积,本书将讨论一些重要的设计技术:
(1)资源共享。
(2)基于FPGA的设计中的逻辑复用。
(3)分割较大的组合逻辑。
(4)基于数据选择器的设计与基于门电路设计的对比。
(5)架构层面的资源优化。
1.2.2 频率
频率是电路重要的参数之一,由于门电路的惯性延迟或逻辑电路的级联,频率会受到限制。如图1.1所示,我们以CMOS非门电路为例,非门的输出端形成寄生电容,非门的惯性延迟是由于电容充电和放电需要时间所致。惯性延迟为传播延迟,定义为输入变化后,输出获得有效逻辑电平所需的时间。
图1.1 CMOS非门电路
对于时序逻辑电路,频率主要取决于时序逻辑单元的时序参数,如建立时间、保持时间和时钟到Q的延迟(触发器的传播延迟)。如果想获得关于时序参数的更多细节,请参阅第10章。
在电路设计阶段,工程师们有各种各样的频率改进技术,本书重点讨论以下几项技术:
(1)寄存器重定时。
(2)流水线。
(3)寄存器负载均衡。
(4)对设计中的关键时序路径进行优化。
(5)在面积要求不高的前提下使用并行化的设计原则。
1.2.3 功耗
功耗是一个重要的设计考虑因素。功耗应该向尽可能小的方向进行优化,本书将着重介绍低功耗架构设计技术及其在各个设计阶段的作用。考虑图1.1,由于在输出端形成寄生电容,所以功耗为:
其中,α为开关系数,C为寄生电容,V为电源电压,f为频率。
为了获得最小的功耗,寄生电容应尽可能小,电源电压也应尽可能低。由于我们不能在设计的频率上妥协,因此我们需要在所需的功耗和设计的频率之间进行取舍。
频率和功耗之间总是存在权衡关系,逻辑设计团队的主要目标是寻找合适的平衡点,以实现设计的理想频率和理想功耗。
下面是几种常用的功耗优化技术:
(1)在设计中使用低功耗器件。
(2)低功耗架构设计。
(3)时序逻辑的时钟门控。
这些技术将在随后的章节中讨论。
我们已经了解了逻辑设计过程中的目标,为了更深层次地了解之前提到的技术,让我们从基本的逻辑单元开始。正如前文所提到的,基本的逻辑单元是逻辑门,下面将重点讨论它们。
1.3 逻辑门
逻辑门是重要的逻辑单元,本书的重点是使用逻辑单元来设计面积、功耗和频率最均衡的电路。逻辑门被用来执行所需的逻辑功能。逻辑门有输入和输出,它们被用来建立组合逻辑和时序逻辑。
虽然大多数工程师对逻辑门很熟悉,但还是让我们在逻辑设计和逻辑优化的背景下讨论它们吧!
1. 非门(NOT gate)
非门,又称反相器,它有单一输入和单一输出,作用是对二进制输入进行取反操作。
非门的真值表如表1.1所示,有一个输入ain和一个输出yout,输入和输出之间具有如下关系:
表1.1 非门的真值表
非门的符号如图1.2所示,输出是输入的取反。逻辑1的非是逻辑0,反之亦然。
图1.2 非门
2. 或门(OR gate)
或门是输入的逻辑或,用简单的话说就是表示“这个”或“这个”,两输入或门是对两个二进制输入进行逻辑或,产生一个单比特的二进制输出。