Boolean Algebra and Digital Logic
3.1 概述 因为要使用电动方法,所以当时的Atanasoff决定采用基数为2的数制来代替基数10的计数体系.这样,基数2可以直接与电学开关的“开”或“关”的状态相关联.同时用电容器作为存储器.因为电容器可以储存电荷.
3.2 布尔代数 布尔代数处理的对象只能取两个值,如典型的例子是:对与错(或称为真与假). "与"逻辑操作:当且仅当X,Y均为 1 时,其逻辑乘X.Y才为 1 否则为 0 "或"逻辑操作: 只要 X,Y 任意-(或者同时)为 1 时,其逻辑加 X+Y 的值为 1 否则为 0 "非"逻辑操作: 当X 为 1 时, 非X 即为0; 当X 为 0 时 非X 即为 1
3.2.1 布尔表达式 常用的布尔算符有: AND, OR和NOT 布尔算符运算的顺序规则是: NOT 为最高优先级, 首先执行, 其次是AND, 然后为OR算符.
3.2.2 布尔恒等式 对偶规则: 将一个逻辑函数式中所有的"."变为"+", "+"变为".", "1"变为"0", "0"变为"1",而保持变量不变,那么得到新的函数式便是原来函数的对偶式.
3.2.3 布尔表达式的化简 基本公式和规则: http://www./sdl/sdl3/3.1.htm
3.2.4 反码 反演规则: 反演规则是德摩根律的推广,将逻辑函数F中所有的"+"变为".", "." 变为"+", "1"变为"0","0"变为"1".原变量变为反变量,反变量变为原变量,所得函数即为非F.这就是反演规则
3.2.5 布尔函数的表示方法 最通用的两种标准化形式是积之和(析取范式),以及和之积(合取范式)的形式 积之和形式(sum-of-products form)是将表达式先写成一些变量"与"项(乘积项)的集合, 然后再利用"或"形式组合在一起 和之积形式(product-of-sums)就是将表达式先写成各变量的"或"项(求和项)然后用"与"的形式组合在一起.
如果表达式中估值为真的情形多于估值为假时,可选用和之和的形式
3.3 逻辑门 实际的物理部件,或者说数字电路(digital circuit),例如计算机中执行算术操作或做出抉择的部件都是由一定数目的称为门电路(gate)的最原始的基本单元构成的. 这些门电路是数字设计的基本构件,可以执行前面所讨论的各种基本逻辑功能,从形式上来说,门电路是一个计算各种2值函数的微小电子元件.更简单地说,门电路执行一个简单的布尔逻辑功能.在物理上构成一个门电路需要1到6个,或更多的晶体管,具体晶体管的数目取决于所采用的半导体技术.归纳起来,计算机的基本部件是晶体管,而基本的逻辑单元是门电路.
3.3.1 逻辑门的表示符号 三种最简单的门电路,与门(AND),或门(OR), 非门(NOT) 另外一个常用的门电路是异或(exclusive-OR, XOR)门
3.3.2 通用门电路 其他两个常用的门电路是与非门(NAND)和或非门(NOR). 与非门通常也称为万能门(universal gate),因为只要使用与非门就可以构建所有的数字电路. 两个理由:第一,使用与非门的电路成本比较低. 第二,在物理上构建复杂的集成电路时,使用相同的结构模块常常比使用一些基本结构模块的集合要容易得多 和之和形式的布尔表达式可以采用与非门来实现,而和之积的表示形式则可以使用或非门来实现
3.3.3 多输入的门电路 数字电路中通常会将门电路的输出端用符号Q来表示.
3.4 数字电路元件 组成计算机的大量的门电路通过导线连接,这些导线构成了系统的信号通路.这些门电路的集合常常是一引起非常标准的电路.这些标准电路组成一系列的基本结构模块,可以用来构建整个计算机系统,令人惊讶的是,这些结构模块全部采用基本的"与","或"和"非"操作来构建的
3.4.1 数字电路及其与布尔代数的相互关系 各种复杂的布尔表达式可以表示为一些"与"门,"或"门和"非"门的组合形式,结果也就是描述整个布尔表达式的逻辑图.
3.4.2 集成电路 计算机由各种数字电路元件构成,这些元件通过导师线连接在一起.就像一个好的程序一样,实际的计算机硬件由一些较大的数字电路模块组成. 通常,门电路并不单独销售,而是以集成电路(integrated circuits, IC)的形式出现.集成电路芯片(一块小的半导体的硅单晶片)上面集成了各种电子元件(晶体管,电阴和电容),用来实现各种门电路的功能. 早期的集成电路包含的晶体管数目比较少,称为小规模集成电路(SSI). 一般每块芯片上不到100个晶体管,现在使用的是超大规模集成电路(ULSI),每块芯片上的电子元件数目超过一百万个.
3.5 组合逻辑电路 电路是由数字逻辑芯片组合而成的,这些逻辑电路可分为组合逻辑和时序逻辑
3.5.1 基本概念 可以利用组合逻辑来构建包含基本布尔算符,输入和输出的数字电路,了解组合逻辑的关键是组合逻辑的输出完全取决于所给定的输入值.因此,组合逻辑电路的输出是输入值的函数,并且任意时刻的输出值都是由该时的输入值唯一确定的.一个组合逻辑电路可能会有几个输出.这种情况下,每个输出都代表一个不同的布尔函数.
3.5.2 典型的组合逻辑电路 首先讨论一个称为"半加器(half-adder)"的非常简单的组合逻辑电路.半加器有两个输出,而不是一个。因为需要其中一个输出表示求和结果,另外一个输出表示进位. 半加器非常简单但并不是很实用,因为只能对两个一位的二进制数字相加,因此有了全加器(full-adder).
将每个单一加法器电路的进位输出端连接到相邻左边的加法器的进位输入端,这种结构的电路称为逐位进位加法器(ripple-carry adder)
加法器设计中采用的各种改进方法包括:使用先行进位加法器,选择进位加法器和存储进位加法器.
译码器是从一组n个输入得到最大的2^n个输出,从而实现对二进制信息的解码.译码器(decoder)通过利用输入和对应的数值来选择某根特定的输出线."选择一根输出线"是什么意思?这就意味着只有唯一的一根输出线被断言.
计算机中的所有存储器地址都是采用二进制数字来指定分配的.当需要引用某个存储器地址时(也许是要读取数据,也许是为了写入数据), 计算机必须首先确定该存储器的有效(实)地址.这个操作需要利用译码器来完成.
另外一个常用的组合逻辑电路是多路复用器(multiplexer). 多路复用器用来从众多的输入线中选择需要的二进制数的信息,然后直接用单一输出线输出.
另外一个非常有用的组合电路是奇偶发生器和奇偶校验器电路.奇偶发生器(parity generator)电路可以生成所需要的奇偶位加到一个信息字上面;而奇偶校验器(parity checker)是用来检验一个信息字中的奇偶性(奇或者偶)是否正确.
3.6 时序电路 对于组合逻辑电路,函数的输出值完全取决于函数的输入值.组合逻辑电路的最大缺点是没有存储的概念,即组合逻辑电路没有记忆功能
3.6.1 基本概念 时序电路的输出同时是当前的输入与以前的输入的函数.将时序电路中的这种存储单元称为触发器(flip-flop).触发器的状态是此前的电路输入的函数,因此,即将发生的输出不但与当前的输入有关,而且与电路当前的状态有关.
3.6.2 时钟信号 因为时序电路必须依赖过去的输入来决定现在的输出,这意味着各种事件的发生必须有先后次序.有些时序电路是异步的(asynchronous),这就是说只要有任意的一个输入值发生改变,这类电路就被激活了.同步(synchronous)时序逻辑电路则是利用时钟来对各种事件进行排序.时钟(clock)是一种电子电路,它生成一系列具有精确宽度和间隔的连续脉冲.脉冲间隔称为时钟的周期时间(clock cycle time). 时钟速度一般用兆赫兹(MHz),或者说每秒钏百万个时钟脉冲.一般的时钟周期在1到几百MHz的范围
3.6.3 触发器 水平触发电路只要时钟信号处于高电平或低电平时,就可以改变电路的状态.有时,人门常常会混淆锁存器(latch)和触发器(flip-flop)的这两个名称,从技术上来说,锁存器属于水平触发类型,而触发器则是边缘触发类型的电路. 为了"记忆"过去的状态,时序电路使用了一个称为反馈(feedback)的概念.反馈就是将电路的输出返回连接到电路的输入端. 一个更有用的反馈电路是由两个"与非"门组成的基本存储单元,称为SR触发器(SR flip-flop).SR表示"置位/复位(set/reset)" 我们可以使用所谓特征表(characteristic table)来描述触发器,特征表是基于电路当前的输入和当前的状态Q指出电路的下一个状态.一般采用符号Q(t)表示电路当前的状态,Q(t+1)表示电路的下一个状态,或者说当时钟脉冲到来时,触发器应该进入的状态.
|