Issuu on Google+

数字逻辑

第1章 数字逻辑基础

� 本章是学习数字逻辑电路的基础,主要介绍数字逻

辑电路中常用的几种数制的表示方法及其转换规 律,数字系统中常见的几种编码及逻辑代数的基本 理论和基础知识。

1


数字逻辑

1.1 数制 � 1.1.1 十进制数(Decimal) � 日常生活中人们都习惯于使用十进制数。它由 0~9 共10 0~9共

个数码组成,十进制数的计数规则是,逢 10 进1。进位计 10进 数制是以表示计数符号的个数来命名的。我们把计数符 号的个数称为基数,用符号 R来表示。十进制数的基数就 是R=10 。 R=10。 � 同一计数符号处在不同数位,代表的数值不同。例如十 进制数752 ,百位上的7表示700 ,十位上的 5表示50 。我 752,百位上的 700,十位上的 50。我 们把各个数位的位值,称为进位计数制各位的权,它等 于(基数) i ,i代表符号所在位。十进制数的基数为 ,第i位上的权值为 10i ,所以十进制数的按位展开式 10 10,第 10i,所以十进制数的按位展开式 为: 2


数字逻辑

1.1 数制 ( D )10 = Dn −1 × 10 n−1 + Dn − 2 × 10 n − 2 + ⋅ ⋅ ⋅ + D1 × 101 + D0 × 100 + D−1 × 10 −1 + ... + D− m × 10 − m n −1

=

i D × 10 ∑ i

i=− m

式中Di取值范围为0 ≤Di≤(R-1)。n为整数部分的位数, m为小数部分的位数。整数第i位的权是Ri-1 ,小数点后第 m位的权是R-m。此式表示的就是各符号与其所在位权值 乘积的代数和 十进制数可用后缀D(Decimal)标识。

3


数字逻辑

1.1 数制 � 1.1.2 二进制数(Decimal)

� 在数字系统中,使用的是二进制。二进制由0和1

两个数码组成,计数规则是,逢2进1。 � 二进制数的基数为2,各位的权值为2i 。二进制 2i。二进制 数的按位展开式为: ( B) 2 = Bn −1 × 2 n −1 + Bn − 2 × 2n − 2 + ⋅ ⋅ ⋅ + B1 × 21 + B0 × 20 + B−1 × 2 −1 + ... + B− m × 2 − m n −1

=

Bi × 2i

i = −m

4


数字逻辑

1.1 数制 � 二进制数可用后缀B(Binary B(Binary B(Binary))标识。 � 计算机和各种数字系统中采用二进制的原因主

要有以下几点: 0和1 1两种状态,显然制造具有两 � ① 二进制只有0 种状态的电子器件要比制造具有10种特定状态 的器件容易得多,并且由于状态简单,其工作 更可靠,传输也不容易出错。 1数码与逻辑代数变量值0 0与1 1相符,利 � ② 0、1 用二进制方便进行逻辑运算。 � ③ 二进制数和十进制数之间转换比较容易。 5


数字逻辑

1.1 数制 � 1.1.3 八进制数和十六进制数 � 用二进制数表示一个较大的数时,比较冗长而又

难以记忆,为了阅读和书写的方便,通常采用八 进制或十六进制。 � 1. 八进制数 � 八进制数由0、1、2、3、4、5、6、7八个数码 组成,其计数规则是逢八进一。基数为8,各位 的权值为8i 。任意一个八进制数可表示为: n −1

(O) 8 =

i O × 8 ∑ i

i =− m

6


数字逻辑

1.1 数制 � 2. 十六进制数 � 十六进制数由0、1、2、3、4、5、6、7、8、9、

A、B、C、D、E、F十六个数码组成。 � 其中A~F的等值十进制数分别为10 、11 、12 、 10、 11、 12、 、14 、15 。 13 13、 14、 15。 � 十六进制数进位规则是逢十六进一。其基数为 16 ,各位的权值为16i 。任意一个十六进制数可 16,各位的权值为 16i。任意一个十六进制数可 表示为: n −1

( H )16 =

∑H

i

× 16

i

i=− m

7


数字逻辑

1.1 数制 1.1.4 各种数制之间的转换 1. 非十进制数转换成十进制数 按相应的权表达式展开,再按十进制运算规则求 和——按权展开相加。 【例1-1】 将二进制数1011.11B转换成十进制 数。 (1011.11)2=1×23+0×22+1×21+1×20+1×21+1×2-2 =8+0+2+1+0.5+0.25 =(11.75)10 8


数字逻辑

1.1 数制 1-2 � 【例1-2 1-2】 将十六进制数AF7. 4H转换成十 进制数。 � (AF7. 4)16= A×162+ F×161+7×160+4×16-1 � =10×256+15×16+7×1+4/16 � =(2807.25)10

9


数字逻辑

1.1 数制 2. 十进制数转换成非十进制数 十进制数转换为非十进制数分为两个部分进 行,整数部分和小数部分,分开转换后再以小数 点为结合点组合起来。 整数部分:除基数取余,直至商为0 ,余数按 先后顺序从低位到高位排列——除基数倒取余; 小数部分:乘基取整,直至达到所要求的精度 或小数部分为0 ,整数按先后顺利从高位到低位 排列——乘基数顺取整。

10


数字逻辑

1.1 数制 � 例1-3 】 将十进制数 25.8125 转换为二进制数。 1-3】 25.8125转换为二进制数。 � 解: 使用短除法,计算过程与结果如下:

因此,转换结果为: (25.8125) 10=(a4 a3 a2 a1 a0 。a-1 a-2 a-3 a 4)2=(11001.1101) 2

11


数字逻辑

1.1 数制 1-4 301.6875 � 【例1-4 1-4】 将十进制数301.6875 301.6875转换为十六进制数。

12


数字逻辑

1.1 数制 � 3. 二进制数与十六进制、八进制数互换 � 由于十六进制数的基数16是二进制数的基数2的4

次幂,即24=16,1位十六进制数相当于4位二进 制数。因此,十六进制数转换成二进制数时,只 要将十六进制数的每一位改写成等值的4位二进制 数,即“1位变4位”。

13


数字逻辑

1.1 数制 � 【例1-5】 把(A3D.8B)16转换为二进制数。 � 解: 可用“1位变4位”的方法:

A 3 D . 8 B � ↓ ↓ ↓ ↓ ↓ 1010 0011 1101 . 1000 1011 � � ∴ (A3D.8B)16=(101000111101.10001011)2 �

14


数字逻辑

1.1 数制 � 二进制数转换为十六进制数时,以小数点为分界

线,整数部分从右向左每4位一组,小数部分从左 向右每4位一组,不足4位用0补足,每组改成等 值的1位十六进制数即可,即“4位变1位”。

15


数字逻辑

1.1 数制 【例1-6 】 把(1011010101.111101)2转换为十六 1-6】 进制数。 解: 可用“4位变1位”的方法: 0010 1101 0101 . 1111 0100 2 D 5 . F 4 ∴ (1011010101.111101)2 =(2D5.F4)16 在清楚了十六进制数与二进制数之间的转换方法 之后,由于23=8 ,1位八进制数相当于3位二进制 =8, 数,所以不难得出八进制数与二进制数之间相互 转换的方法。即“1位变3位”。 16


数字逻辑

1.1 数制 � 【例1-7 】 把(345.27)8转换为二进制数。 1-7】 � 解: 因为

3 4 5 . 2 7 � ↓ ↓ ↓ ↓ ↓ 011 100 101 . 010 111 � � ∴ (345.27)8=(011100101.010111)2 � 二进制数转换为八进制数时,也是以小数点为分 界线,整数部分从右向左3位一组,小数部分从左 向右3位一组,不足3位用0补足,每组改成等值 的1位八进制数即可,即“3位变1位”。 �

17


数字逻辑

1.1 数制 表1-1给出了4位二进制数与其它进制数表示之间的对照关系。

18


数字逻辑

1.1 数制 � � �

1.1.5 原码、反码和补码 1. 机器数与真值 计算机中传输与加工处理的信息均为二进制数, 二进制数的逻辑1和逻辑0分别用于代表高电平和 低电平,计算机只能识别1和0两个状态,那么计 算机中如何确定与识别正二进制数和负二进制数 呢?

19


数字逻辑

1.1 数制 � 解决的办法是将二进制数最高位作为符号

位,例如 1 表示负数, 0 表示正数,若计算 机的字长取 8 位, 10001111B 则可以代表 10001111B则可以代表 15 , 00001111B 则可以代表 +15 ,这便构 15, 00001111B则可以代表 +15,这便构 成了计算机所识别的数,因此,带符号的 二进制数称之为机器数,机器数所代表的 值称为真值。在计算机中,机器数有三种 表示法,即原码、反码和补码。 20


数字逻辑

1.1 数制 � 2. 原码表示法 � 原码表示法也称为符号加绝对值法。将符号位0或

1加到二进制数绝对值的左端,表示正二进制数或 负二进制数,称为原码表示法。 � 若定点整数的原码形式为X0X1X2……Xn ,则原 Xn,则原 码表示的定义是: � X 2n>X≥0 � [X]原= � ∣X∣ ≥X>-2n 2n-X=2n + +∣ 0 0≥ 21


数字逻辑

1.1 数制 � X0为符号位,若n=7,即字长8位,则: � ① X取值范围:-127~+127 � ② [+0]原=00000000 � ③ [-0]原=10000000 � 采用原码表示法简单易懂,但它最大缺点是加法

运算电路复杂,不容易实现。

22


数字逻辑

1.1 数制 � 3. 反码表示法 � 正二进制数的反码表示同其原码一样,负二进制

数的反码表示是符号位l加数值位各位取反,这种 表示正、负二进制数的方法称为反码表示法。 � 对于定点整数,反码表示的定义是: X 2n>X≥0 � � [X]反= 0 � (2n+1-1 ) +X ≥X>-2n -1) 0≥

23


数字逻辑

1.1 数制 � 同样n取7,即字长8位,那么: � ① X取值范围:-127 ~+127 -127~ � ② [+0]反= 00000000 � ③ [-0]反= 11111111

24


数字逻辑

1.1 数制 � 4. 补码表示法 � 正二进制数的补码同其原码表示,负二进制数的

补码表示是符号位1加数值位各位取反末位加1, 这种表示法称为补码表示法。 � 对于定点整数,补码表示的定义是: X 2n>X≥0 � � [X]补= � ∣X∣ ≥X≥-2n 2n+1 +X=2n+1 --∣ 0 0≥

25


数字逻辑

1.1 数制 � 同样如果n取7,即字长8位,那么: � ① X取值范围:-128 ~+127 -128~ � ② [+0] 补=[-0]补=00000000 [+0]补 � ③ [-10000000]补=10000000 � ④ [[X]补]补=X ,对已知的一个补码通过再一次求 =X,对已知的一个补码通过再一次求

其补,便可还原出真值。

26


数字逻辑

1.1 数制 � 【例1-10】 若计算机字长8位,X=126,Y=-

126,分别求出X和Y的原码、反码及补码。 � 解:[X]原=[X]反=[X]补=01111110 [Y]原=11111110 � [Y]反=10000001 � � [Y]补=10000010

27


数字逻辑

1.2 常用编码 � 信息在计算机中的存储表现为数据。在计算机

中,任何数据都只能采用二进制数的各种组合方 式来表示,所以需要对信息中全部用到的字符按 照一定的规则进行二进制数的组合编码。编码是 指用文字、符号、数码等表示某种信息的过程。 数字系统中处理、存储、传输的都是二进制代码0 和1,因而对于来自于数字系统外部的输入信息, 例如十进制数0~9或字符A~Z,a~z,汉子等, 必须用二进制代码0和1表示。二进制编码是给每 个外部信息按一定规律赋予二进制代码的过程。 28


数字逻辑

1.2 常用编码 � 1.2.1 二-十进制编码(BCD 码) BCD码) � 二─十进制码是一种用四位二进制码来表示一位

十进制数的代码,简称为BCD(Binary Coded Decimal Number)码。用四位二进制码来表示十 进制数的10个数码有很多种编码方法,常见的有 8421BCD码、2421BCD码、4221BCD码、 5421BCD码和余3码等,表1.2给出了十进制数与 这几种编码之间的对应关系。

29


数字逻辑

1.2 常用编码 � 表1-2 十进制数与各种BCD编码对照表

30


数字逻辑

1.2 常用编码 � 1. 8421BCD 码 8421BCD码 � 8421BCD 码是使用最广泛的一种BCD 码。 8421BCD码是使用最广泛的一种 BCD码。

码的每一位都具有同二进制数相同的权 8421BCD 8421BCD码的每一位都具有同二进制数相同的权 值,即从高位到低位有8、4、2、1的位权,因此 称为8421BCD 码。四位二进码有16 个状态,在 8421BCD码。四位二进码有 16个状态,在 码中,仅使用了0000 ~1001 这10 种状 8421BCD 8421BCD码中,仅使用了 0000~ 1001这 10种状 态,而1010 ~1111 这6种状态是没有使用的状态。 1010~ 1111这 � 一个多位的十进制数可用多组8421BCD 码来表 8421BCD码来表 示,并由高位到低位排列起来,组间留有间隔。 如(279.5 )10 ,用8421BCD 码表示为: 279.5) 10,用 8421BCD码表示为: � (279.5 )10= (0010 0111 1001.0101 )8421BCD 279.5) 10=( 1001.0101) 31


数字逻辑

1.2 常用编码 � 2. 余3码 � 余3码是由8421BCD码加3后得到的。在

BCD码的算术运算中常采采用余3码。余3 码的主要特点是其表示0和9的码组、1和8 的码组、2和7的码组、3和6的码组以及4和 5的码组之间互为反码。当两个用余3码表 示的数相减时,可以将原码的减法改为反 码的加法。因为余3码求反容易,所以有利 于简化BCD码的减法电路。 32


数字逻辑

1.2 常用编码 � 3. 循环码 � 循环码是格雷码(Gray Code)中常用的一种,其主

要优点是相邻两组编码只有一位状态不同。以中 间为对称的两组代码只有最左边一位不同。如果 从纵向来看,循环码各组代码从右起第一位的循 环周期是“0110”,第二位的循环周期是 “00111100”,第三位的循环周期是 “0000111111110000”等等。例如0和15,1和 14,2和13等。这称为反射性。所以又称作反射 码。而每一位代码从上到下的排列顺序都是以固 定的周期进行循环的。表1-3所示的是四位循环码。 33


数字逻辑

1.2 常用编码 � 表1-3 四位循环码

34


数字逻辑

1.2 常用编码 � 4. ASCII码 � ASCII是American National Standard Code for

Information Interchange美国国家信息交换标准代 码的简称。常用于通讯设备和计算机中。它是一 组八位二进制代码,用b0~b6这七位二进制代码 表示十进制数字、英文字母及专用符号。第八位 b7作奇偶校验位(在机中常为0)。如表1-4所示。

35


数字逻辑

1.2 常用编码 � ASCII包括10个十进制数码,26个英文字母和一

些专用符号,总共128个字符,因此,只需要一 个字节中的低7位编码,最高位可用作奇偶校验 位,当最高位恒取1,称为标记校验,当最高位恒 取0,称作空格校验。128个ASCII符中有95个编 码,它们分别对应计算机中在输入/输出终端设备 上能键入和输出显示以及输出打印的95个字符, 包括大小写英文字母,其余33个编码,其编码值 为0~31和127,则不对应任何显示与打印实际字 符,它们被用作为控制码,控制计算机I/O设备的 操作以及计算机软件的执行情况。 36


数字逻辑

1.3 逻辑代数基础 � 逻辑代数又称布尔代数,是19世纪中叶英国数学

家乔治.布尔(George.Boole)首先提出来的。它是 分析和设计数字逻辑电路的数学工具。本节主要 介绍逻辑变量、逻辑函数、基本逻辑运算和逻辑 代数公式,以及化简逻辑函数的两种方法:公式 法和卡诺图法。

37


数字逻辑

1.3 逻辑代数基础 � 1.3.1 逻辑变量和逻辑函数 � 逻辑代数是用来处理逻辑运算的代数。参与逻辑

运算的变量称为逻辑变量, 用字母来表示。逻辑 变量的取值只有0,1两种, 而且在逻辑运算中0 和1不再表示具体数量的大小, 而只是表示两种 不同的状态。逻辑函数是由若干逻辑变量A、B、 C、D … 经过有限的逻辑运算所决定的输出F,即 逻辑函数可表示为:F=f(A、B、C…)。

38


数字逻辑

1.3 逻辑代数基础 � 1. 逻辑值的概念 � 在计算机和数字系统中,通常用“逻辑真”和“逻辑

假”来区分事物的两种对立的状态。“逻辑真”用‘1’ 表示;“逻辑假”用‘0’来表示。‘1’和‘0’分别叫做逻 辑真/假状态的值。这里,0、1只有逻辑上的含 义,已不再表示数量上的大小。

39


数字逻辑

1.3 逻辑代数基础 � 2. 高、低电平的概念 � 以两个不同确定范围的电位与逻辑真、假两个逻

辑状态对应。 � 这两个不同范围的电位称作逻辑电平,把其中一 个相对电位较高者称为逻辑高电平,简称高电 平,用H表示。而相对较低者称为逻辑低电平, 简称低电平,用L表示

40


数字逻辑

1.3 逻辑代数基础 � 3. 状态赋值和���、负逻辑的概念 � 状态赋值:数字电路中,经常用符号1和0表示高

电平和低电平。我们把用符号1、0表示输入、输 出电平高低的过程叫做状态赋值。 � 正逻辑:在状态赋值时,如果用1表示高电平,用 0表示低电平,则称为正逻辑赋值,简称正逻辑。 � 负逻辑:在状态赋值时,如果用0表示高电平,用 1表示低电平,则称为负逻辑赋值,简称负逻辑。

41


数字逻辑

1.3 逻辑代数基础 � 1.3.2 基本逻辑门和基本运算 � 逻辑代数中的逻辑运算只有“与”、“或”、“非”三种

基本逻辑运算。任何复杂的逻辑运算都可以通过 这三种基本逻辑运算来实现。

42


数字逻辑

1.3 逻辑代数基础 � 1. 逻辑与运算 � 与逻辑运算又叫逻辑乘。其定义是:当且仅当决

定事件F发生的各种条件A、B、C … 均具备时, 这件事才发生, 这种因果关系称为“与”逻辑关 系, 即“与”逻辑运算。 � 两个变量的”与”运算的逻辑关系可以用函数式表 示为: � F = A·B = A B � 与运算的规则为: � 0·0=0 0·1=0 1·0=0 1·1=1 43


数字逻辑

1.3 逻辑代数基础 � “与”运算的真值表如表1-5所示。 � “与”逻辑运算可以进行这样的逻辑判断:“与”门的

输入信号中是否有“0”, 若输入有“0”,输出就是 “0”,只有当输入全为“1”, 输出才是“1”。

44


数字逻辑

1.3 逻辑代数基础 � 2. 逻辑或运算 � “或”逻辑运算又叫逻辑加。其定义是:在决定事

件F发生的各种条件中只要有一个或一个以上条件 具备时, 这件事就发生, 这种因果关系称为“或” 逻辑运算关系。 � 两个变量的“或”运算可以用函数式表示为: �F=A+B � 或运算的规则为: � 0+0=0 0+1=1 1+0=1 1+1=1 45


数字逻辑

1.3 逻辑代数基础 � “或”逻辑运算可以进行这样的逻辑判断:“或”门的

输入信号中是否有“1”,若输入有“1”, 输出就是 “1”;只有当输入全为“0”时, 输出才是“0”。

46


数字逻辑

1.3 逻辑代数基础 � 3. 逻辑非运算 � “非”逻辑运算又称“反相” 运算,

或称“求补”运算。其定义是:当 决定事件发生的条件A具备时, 事件F不发生; 条件A不具备 时, 事件F才发生。这种因果 关系叫“非”逻辑运算。它的函数 式为 � F= A � 非运算的规则为: �

0 =1

1= 0

47


数字逻辑

1.3 逻辑代数基础 � 4. 复合逻辑运算 � 与、或、非为三种基本逻辑运算。实际逻辑问题

要比与、或、非复杂得多,但不管如何复杂都可 以用简单的与、或、非逻辑组合来实现,从而构 成复合逻辑逻辑。 � 复合逻辑常见的有与非、或非、异或、同或及与 或非运算等。

48


数字逻辑

1.3 逻辑代数基础 � (1) 与非逻辑运算 � 实现先“与”后“非”的逻辑运算就是与非逻辑运算。

其逻辑函数式如下:

F = AB

49


数字逻辑

1.3 逻辑代数基础 � “与非”运算的真值表如表1-8所示。 � “与非”逻辑运算可进行这样的逻辑判断:“与非”门

输入信号中是否有“0”, 输入有“0”, 输出就是 “1”;只有当输入全为“1”时, 输出才是“0”。

50


数字逻辑

1.3 逻辑代数基础 � (2) 或非逻辑运算 � 实现先“或”后“非”的逻辑运算, 就是“或非”逻辑运

算。其逻辑函数式如下: �

F = A+ B

51


数字逻辑

1.3 逻辑代数基础 � “异或”逻辑运算可以进行这样的逻辑判断:“异或”

门的两个输入信号是否相同, 若两个输入信号相 同时, 输出为“0”;若 两个输入信号不相同时,输 出为“1”。“异或”逻辑运算的结果与输入变量取值 为0的个数无关; 与输入变量取值为1的个数有关。 变量取值为1的个数为奇数, 则输出为1; 变量取 值为1的个数为偶数, 则输出为0。

52


数字逻辑

1.3 逻辑代数基础 � (3) 异或逻辑运算 � 用先“非”再“与”后“或”的逻辑运算,实现如下逻辑

函数式的称为“异或”逻辑运算。其逻辑函数式如 下: F = A B + AB = A ⊕ B

53


数字逻辑

1.3 逻辑代数基础 � (4) 同或逻辑运算 � 同或即异或非。同或逻辑函数式如下: �

F = A B + A B =A⊙B

� 同或门的逻辑符号如图1-7。 � “同或”运算的真值表所表1-11所示。

54


数字逻辑

1.3 逻辑代数基础 � 对于“同或”逻辑来说, 它的输出结果与变量值为1

的个数无关, 而和变量值为0的个数有关。变量 值为0的个数为偶数时, 则输出为1; 变量值为0 的个数为奇数时, 则输出为0。

55


数字逻辑

1.3 逻辑代数基础 � 1.3.3 逻辑代数的常用公式和基本定理 � 1. 基本公式

56


数字逻辑

1.3 逻辑代数基础 � 2. 扩展基本定律的三条规则 � 在逻辑代数中,利用代入规则、对偶规则、反演规则可由基本定律推 � � � �

导出更多的公式。 (1) 代入规则 在任何一个逻辑等式中,如将等式两边所有出现某一变量的地方都用 同一函数式替代,则等式仍然成立。这个规则就是代入规则。 代入规则扩大了逻辑等式的应用范围。 例如 

A ⋅ B⋅ C = A + B⋅ C = A + B + C

57


数字逻辑

1.3 逻辑代数基础 � (2) 对偶规则 � 将某一逻辑表达式中的“·”换成“+”、“+”换成“·”;“0”换成

“1”,“1”换成“0”,就得到一个新的表达式。这个新的表达 式就是原表达式的对偶式。如果两个逻辑式相等,则它们 的对偶式也相等。这就是对偶规则。 � (3) 反演规则 � 如将某一逻辑式中的“·”换成“+”、“+”换成“·” ;“0”换成“1”, “1”换成“0” ;原变量换成反变量,反变量换成原变量,则 所得到的逻辑表达式称为原式的反演式。这种变换方法称 为反演规则。利用反演规则可以比较容易地求出一个函数 的反函数。 58


数字逻辑

1.3 逻辑代数基础 � 1.3.4

逻辑函数的表示方法 � 在处理逻辑问题时,可用多种方法来表示逻辑函 数,其常用表示方法有逻辑表达式、真值表、逻 辑图、卡诺图、波形图和VHDL语言。 � 1. 逻辑表达式 � 逻辑表达式是由逻辑变量和“与”、“或”、“非”三种 逻辑运算符号构成的式子。同一个逻辑函数可以 有不同的逻辑表达式, 它们之间是可以相互转换 的。  59


数字逻辑

1.3 逻辑代数基础 � 例如:如图1-8所示电路图,只有在A闭合的情况下,B或者C闭合,

指示灯才会亮。

BC中至少有一个合上,则表示为B+C,同时A必须闭合,则表示为 (B+C)·A,所以得到逻辑函数式为:Y=A·(B+C)。 逻辑函数式简洁方便,而且能高度抽象而且概括地表示各个变量之间 的逻辑关系;便于利用逻辑代数的公式和定理进行运算、变换;便于 利用逻辑图实现函数;缺点是难以直接从变量取值看出函数的值,不 如真值表直观。 60


数字逻辑

1.3 逻辑代数基础 � 2. 真值表 � 真值表是由逻辑函数输入

变量的所有可能取值组合 及其对应的输出函数值所 构成的表格。n个输入变 量有2n种取值组合, 在列 真值表时, 为避免遗漏和 重复, 变量取值按二进制 数递增规律排列。一个逻 辑函数的真值表是惟一的。 � 以图1-8为例,得到的真值 表为:

表1-12 图1-8为例运算的真值表

A B C

Y

0 0 0

0

0 0 1

0

0 1 0

0

0 1 1

0

1 0 0

0

1 0 1

1

1 1 0

1

1 1 1

1

61


数字逻辑

1.3 逻辑代数基础 � 3. 逻辑图 � 将逻辑表达式中的逻辑运算关系, 用对应的逻辑符号表示出来,就构

成函数的逻辑图。逻辑图只反映电路的逻辑功能,而不反映电器性能。 例如为了画出图1.8的逻辑图,只要用逻辑运算的图形符号代替式 Y=A·(B+C)的代数符号便可得到图1-9表示的逻辑图。

62


数字逻辑

1.3 逻辑代数基础 � 1. 最小项 � 如果一个具有n个变量的逻辑函数的“与项”包含全

部n个变量,每个变量以原变量或反变量的形式出 现,且仅出现一次,则这种“与项”被称为最小项。 � 对两个变量A、B来说,可以构成四个最小项:; 对三个变量A、B、C来说,可构成八个最小 项:、、ABC;同理,对n个变量来说,可以构成 2 n个最小项。

63


数字逻辑

1.3 逻辑代数基础 � 为了叙述和书写方便,最小项通常用符号mi表

示,i是最小项的编号,是一个十进制数。确定i的 方法是:首先将最小项中的变量按顺序A、B、C、 D … 排列好,然后将最小项中的原变量用1表 示,反变量用0表示,这时最小项表示的二进制数 对应的十进制数就是该最小项的编号。例如,对 三变量的最小项来说,ABC的编号是7符号用m7 表示,的编号是5符号用m5表示。

64


数字逻辑

1.3 逻辑代数基础 � 2. 最小项表达式 � 如果一个逻辑函数表达式是由最小项构成的与或式,则这种表达式称

为逻辑函数的最小项表达式,也叫“标准与或式”。例如: � 是一个四变量的最小项表达式。 � 对一个最小项表达式可以采用简写的方式,例如: F ( A, B, C ) =A BC +AB C+ABC =m 2+m5+m 7 =∑ m (2, 5, 7)

要写出一个逻辑函数的最小项表达式,可以有多种方法,但最简单的 方法是先给出逻辑函数的真值表,将真值表中能使逻辑函数取值为1 的各个最小项相或就可以了。

65


数字逻辑

1.3 逻辑代数基础 � 1.3.6 逻辑函数的化简方法(化为最简与或式) � 一个具体问题经过逻辑抽象得到的逻辑函数表达式,不一 定是最简单的逻辑表达式。同一个逻辑函数可以写成不同 的逻辑表达式,这些逻辑表达式的繁简程度往往相差甚远。 逻辑表达式简单,说明逻辑关系简单,用最少的电子器件 就可以实现这个逻辑关系。因此,通常必须对逻辑函数表 达式进行化简。 � 所谓逻辑函数的化简,通常是指将逻辑函数化成最简的与 -或表达式。若函数中的乘积项最少,且每个与项中的变 量最少,则称此函数式为最简与或式。

66


数字逻辑

1.3 逻辑代数基础 � 1. 代数化简法 � (1) 并项法 � 利用公式 AB + A B = A 将两项合并为一项,并且消

去一个变量。例如: F = ABC + AC + BC = ABC + ( A + B)C = ABC + ABC = C

67


数字逻辑

1.3 逻辑代数基础 � (2) 吸收法 � 利用公式A+AB=A,消去AB项。例如: � (3) 消去法 � 利用公式 A + AB = A + B ,消去项中的,例如: � F= AB + AC + BC = AB + ( A + B )C = AB + ABC = AB + C

68


数字逻辑

1.3 逻辑代数基础 � (4) 配项法 � 利用

A + A =1

,给某一个与项配项,试探并进一步化简。例如 :

F= A B+ B C + BC + AB = A B ⋅ (C + C ) + B C ⋅ ( A + A ) + B C + A B = ABC+ AB C + A B C+ A B C+ BC + AB = A B ⋅ ( C +1) + A C ⋅ ( B + B ) + B C ⋅ ( A +1) = AB + A C+ BC

69


数字逻辑

1.3 逻辑代数基础 � 2. 卡诺图法化简逻辑函数 � 采用逻辑代数法化简,不仅要求熟练掌握逻辑代

数的定律和公式,且需具有较强的化简技巧。卡 诺图化简法简单、直观、有规律可循,当变量较 少时,用来化简逻辑函数是十分方便的。 卡诺图其实质是真值表的一种特殊排列形式,二 至四变量的卡诺图如图1-10至图1-12所示 。n个 变量的逻辑函数有2n个最小项,每个最小项对应 一个小方格,所以,n个变量的卡诺图由2n个小方 格构成,这些小方格按一定的规则排列。 70


数字逻辑

1.3 逻辑代数基础 � 在图1-10卡诺图的上边线,用来表示小方格的列,第一列小方格表示

A的非,第二列小方格表示A;变量B为另一组,表示在卡诺图的左边 线,用来表示小方格的行,第一行小方格表示B的非,第二行小方格 表示B。如果原变量用1表示,反变量用0表示,在卡诺图上行和列的 交叉处的小方格就是输入变量取值对应的最小项。如每个最小项用符 号表示,则卡诺图如图1-10(b)所示,最小项也可以简写成编号, 如图1-10(c)所示

图1-10 二变量卡诺图 71


数字逻辑

1.3 逻辑代数基础 � 分析卡诺图可看出它有以下两个特点: � ① 相邻小方格和轴对称小方格中的最小项只有一

个因子不同,这种最小项称为逻辑相邻最小项; � ② 合并2k个逻辑相邻最小项,可以消去k个逻辑 变量。

图1-11 三变量卡诺图

72


数字逻辑

1.3 逻辑代数基础 � 2) 逻辑函数的卡诺图表示 � 用卡诺图表示逻辑函数时,可分以下几种情况考虑。 � ① 利用真值表画出卡诺图 � 如果已知逻辑函数的真值表,画出卡诺图是十分容易的。对应逻辑变

量取值的组合,函数值为1时,在小方格内填1;函数值为0时,在小 方格内填0(也可以不填)。例如逻辑函数F1的真值表如表1-14所 示,其对应的卡诺图如图1-13所示。

73


数字逻辑

1.3 逻辑代数基础 � ② 利用最小项表达式画出卡诺图 � 当逻辑函数是以最小项形式给出时,可以直接将最小项对应的卡诺图

小方格填1,其余的填0。这是因为任何一个逻辑函数等于其卡诺图上 填1的最小项之和。例如对四变量的逻辑函数:

F2= ∑ m (0 , 5 , 7 , 10 , 13 , 15)

74


数字逻辑

1.3 逻辑代数基础 � ③ 通过一般与或式画出卡诺图 � 有时逻辑函数是以一般与或式形式给出,在这种

情况下画卡诺图时,可以将每个与项覆盖的最小 项对应的小方格填1,重复覆盖时,只填一次就可 以了。对那些与项没覆盖的最小项对应的小方格 填0或者不填。 � 如果逻辑函数以其他表达式形式给出,如或与式、 与或非、或与非形式,或者是多种形式的混合表 达式,这时可将表达式变换成与或式再画卡诺 图,也可以写出表达式的真值表,利用真值表再 画出卡诺图。 75


数字逻辑

1.3 逻辑代数基础 � (3) 用卡诺图化简逻辑函数的方法 � 用卡诺图表示出逻辑函数后,化简可分成二步进

行: � 第一步:将填1的逻辑相邻小方格圈起来,称为画 卡诺圈。 � 第二步:合并卡诺圈内那些填1的逻辑相邻小方格 代表的最小项,并写出最简的逻辑表达式。

76


数字逻辑

1.3 逻辑代数基础 � 画卡诺圈时应注意以下几点: � ① 卡诺圈内填1的逻辑相邻小方格应是2k,即应

是偶数个。 � ② 填1的小方格可以处在多个卡诺圈中,但每个 卡诺圈中至少要有一个填1的小方格在其它卡诺圈 中没有出现过。

77


数字逻辑

1.3 逻辑代数基础 � ③ 为了保证能写出最简单的与或表达式,首先应

保证卡诺圈的个数最少(表达式中的与项最 少),其次是每个卡诺圈中填1的小方格最多(与 项中的变量最少)。由于卡诺圈的画法在某些情 况下不是唯一的,因此写出的最简逻辑表达式也 不是唯一的。 � ④ 如果一个填1的小方格不和任何其它填1的小方 格相邻,这个小方格也要用一个与项表示,最后 将所有的与项或起来就是化简后的逻辑表达式。

78


数字逻辑

1.3 逻辑代数基础 � (4) 用卡诺图化简逻辑函数举例 � 【例1-16 1-16 1-16】 已知逻辑函数的真值表如表1-15所示,写出逻辑函数的最

简与或表达式。 � 解:首先根据真值表画出卡诺图,将填有1并具有相邻关系的小方格 圈起来,如图1-16所示,根���卡诺图可写出最简与或表达式:

F= AC + B C

79


数字逻辑

1.3 逻辑代数基础 � (5) 包含无关项的逻辑函数的化简图1-18

【例1-18】的卡诺图 � 对一个逻辑函数来说,如果针对逻辑变量的每一

组取值,逻辑函数都有一个确定的值相对应,则 这类逻辑函数称为完全描述逻辑函数。但是,从 某些实际问题归纳出的逻辑函数,输入变量的某 些取值对应的最小项不会出现或不允许出现,也 就是说,这些输入变量之间存在一定的约束条件。

80


数字逻辑

1.3 逻辑代数基础 � 那么,这些不会出现或不允许出现的最小项称为约束项,

其值恒为0。还有一些最小项,无论取值0还是取值1,对 逻辑函数代表的功能都不会产生影响。那么,这些取值任 意的最小项称为任意项。约束项和任意项统称无关项,包 含无关项的逻辑函数称为非完全描述逻辑函数。无关最小 项在逻辑表达式中用表示,在卡诺图上用“φ”或“×”表 示,化简时既可代表0,也可代表1。 � 在化简包含无关项的逻辑函数时,由于无关项可以加进 去,也可以去掉,都不会对逻辑函数的功能产生影响,因 此利用无关项就可能进一步化简逻辑函数。

81


数字逻辑

本章小结 � 本章主要介绍了数制、常用编码及逻辑代数的基

本知识。 � 在计算机和各种数字系统中,常用按一定规则排 列起来的二进制数码表示数字、符号和汉字等。 因此,数制和编码是学习计算机系统非常重要的 基础知识。 � 逻辑函数可以有多种表示方法,如逻辑函数表达 VHDL 式、真值表、电路图、卡诺图、波形图和VHDL 语言,这些表示方式是可以相互转换。

82


数字逻辑

本章小结 � 逻辑函数化简的方法有两种,公式法(代数法)

和卡诺图法。公式法的优点是不受逻辑变量个数 的限制,但这种方法没有固定的方法步骤可循, 严重依赖于对各种公式和定理的熟练掌握和运用。 卡诺图化简法的优点是化简步骤固定,方法简单、 直观,易于掌握,但对超过5个逻辑变量的逻辑函 数化简时就不太适用了。因此,在实际对逻辑函 数的化简时,可以先用公式法把逻辑变量减少到 最多4个,然后再利用卡诺图进行化简。

83


数字逻辑第一章