Computer Logical Organization 简明教程

Quick Guide

Computer Logical Organization - Overview

在现代电子领域,术语 Digital 通常与计算机有关,因为术语 Digital 源自计算机通过计数数字执行运算的方式。多年来,数字电子技术仅应用于计算机系统。但现在,数字电子技术已用于许多其他应用。以下是大量使用 Digital electronics 的一些示例。

  1. Industrial process control

  2. Military system

  3. Television

  4. Communication system

  5. Medical equipment

  6. Radar

  7. Navigation

Signal

Signal 可以定义为包含某些信息的一种物理量。它是某个或多个自变量的函数。信号有两种类型。

  1. Analog Signal

  2. Digital Signal

Analog Signal

analog signal 定义为具有连续值的信号。模拟信号可以有无限多个不同的值。在现实世界中,自然界中观察到的大多数事物都是模拟的。以下是模拟信号的示例。

  1. Temperature

  2. Pressure

  3. Distance

  4. Sound

  5. Voltage

  6. Current

  7. Power

Graphical representation of Analog Signal (Temperature)

analog signal

处理模拟信号的电路称为模拟电路或系统。以下是模拟系统的示例。

  1. Filter

  2. Amplifiers

  3. Television receiver

  4. Motor speed controller

Disadvantage of Analog Systems

  1. Less accuracy

  2. Less versatility

  3. More noise effect

  4. More distortion

  5. More effect of weather

Digital Signal

digital signal 定义为仅有有限数量的离散值的信号。数字信号不是连续信号。在数字电子计算器中,输入借助开关给出。该输入被转换为具有两个离散值或级别的电信号。其中一个可以称为低电平,另一个称为高电平。信号将始终为这两个电平之一。这种类型的信号称为数字信号。以下是数字信号的示例。

  1. Binary Signal

  2. Octal Signal

  3. Hexadecimal Signal

Graphical representation of the Digital Signal (Binary)

digital signal

处理数字信号的电路称为数字系统或数字电路。以下是数字系统的示例。

  1. Registers

  2. Flip-flop

  3. Counters

  4. Microprocessors

Advantage of Digital Systems

  1. More accuracy

  2. More versatility

  3. Less distortion

  4. Easy communicate

  5. Possible storage of information

Comparison of Analog and Digital Signal

S.N.

Analog Signal

Digital Signal

1

模拟信号有无限个值。

数字信号有有限数量的值。

2

模拟信号具有连续的性质。

数字信号具有离散的性质。

3

模拟信号由传感器和信号发生器生成。

数字信号由模数转换器生成。

4

模拟信号示例 - 正弦波、三角波。

数字信号示例 - 二进制信号。

Digital Number System

数字系统只能理解位置数系,其中有一些符号称为数字,并且这些符号根据它们在数字中所处的位置表示不同的值。

使用以下方法可以确定数字中每个数字的值:

  1. The digit

  2. 数字在数字中的位置

  3. 数字系统的基数(基数定义为该数字系统中可用的所有数字)。

Decimal Number System

我们日常生活中所使用的数字系统就是十进制数字系统。十进制数字系统基数为 10,因为其使用了 0 至 9 共 10 个数字。在十进制数字系统中,小数点左边的各个位置依次表示个位、十位、百位、千位等。

每个位置都表示基数(10)的特定幂。例如,十进制数字 1234 由个位上的数字 4、十位上的数字 3、百位上的数字 2 和千位上的数字 1 组成,其值可以写成:

(1&times1000) + (2&times100) + (3&times10) + (4&timesl)
(1&times103) + (2&times102) + (3&times101)  + (4&timesl00)
1000 + 200 + 30 + 1
1234

作为一名计算机程序员或 IT 专业人士,你应对计算机中经常使用的以下数字系统有所了解。

S.N.

Number System & Description

1

*二进制数字系统*基数为 2。使用的数字:0、1

2

*八进制数字系统*基数为 8。使用的数字:0 至 7

3

*十六进制数字系统*基数为 16。使用的数字:0 至 9,使用的字母:A-F

Binary Number System

特性

  1. 使用两个数字,0 和 1。

  2. 也称为基数 2 数字系统

  3. 二进制数字中的每个位置都表示基数(2)的 0 次幂。示例:2^0

  4. 二进制数字中的最后一个位置表示基数(2)的 x 次幂。示例:2^x,其中 x 表示最后一个位置 - 1。

Example

二进制数字:101012

计算十进制当量 −

Step

Binary Number

Decimal Number

Step 1

101012

1 × 2^4) + (0 × 2^3) + (1 × 2^2) + (0 × 2^1) + (1 × 2^0)

Step 2

101012

(16 + 0 + 4 + 0 + 1)10

Step 3

101012

2110

Note: 101012 通常写成 10101。

Octal Number System

特性

  1. Uses eight digits, 0,1,2,3,4,5,6,7.

  2. 也称为基数 8 数字系统

  3. 八进制数中的每个位置表示基数 (8) 的 0 次幂。示例:80

  4. 八进制数中的最后一位表示基数 (8) 的 x 次幂。示例:8x,其中 x 表示最后一位 - 1。

Example

八进制数 − 125708

计算十进制当量 −

Step

Octal Number

Decimal Number

Step 1

125708

1 × 84) + (2 × 83) + (5 × 82) + (7 × 81) + (0 × 80

Step 2

125708

(4096 + 1024 + 320 + 56 + 0)10

Step 3

125708

549610

Note: 125708 通常写成 12570。

Hexadecimal Number System

特性

  1. 使用 10 个数字和 6 个字母 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

  2. 从 10 开始,字母表示数字。A = 10、B = 11、C = 12、D = 13、E = 14、F = 15。

  3. 也称为 16 进制数系统。

  4. 十六进制数字中的每个位置都表示基数(16)的 0 次幂。示例 16^0。

  5. 十六进制数字中的最后一个位置表示基数(16)的 x 次幂。示例 16^x,其中 x 表示最后一个位置 - 1。

Example −

十六进制数:19FDE16

计算十进制当量 −

Step

Hexadecimal Number

Decimal Number

Step 1

19FDE16

1 × 164) + (9 × 163) + (F × 162) + (D × 161) + (E × 16010

Step 2

19FDE16

1 × 164) + (9 × 163) + (15 × 162) + (13 × 161) + (14 × 16010

Step 3

19FDE16

(65536 + 36864 + 3840 + 208 + 14)10

Step 4

19FDE16

10646210

Note − 19FDE16 通常写为 19FDE。

Number System Conversion

转换数字从一个进制到另一个进制有许多方法或技巧。我们将演示以下内容 −

  1. 十进制到其他进制系统

  2. 其他进制系统到十进制

  3. 其他进制系统到非十进制

  4. 短截方法 − 二进制到八进制

  5. 短截方法 − 八进制到二进制

  6. 短截方法 − 二进制到十六进制

  7. 短截方法 − 十六进制到二进制

Decimal to Other Base System

步骤

  1. Step 1 ——将要转换的十进制数除以新基数。

  2. Step 2 − 从步骤 1 中得到余数作为新基数的最低位(最不重要的数位)。

  3. Step 3 ——将前一次除法的商再除以新基数。

  4. Step 4 ——将步骤 3 中的余数记录为新基数数的下一个数字(向左)。

重复步骤 3 和 4,从右向左取余数,直到步骤 3 中的商变成 0。

这样得到的最后的余数就是新基数数的最高有效数字 (MSD)。

Example −

十进制数:2910

计算二进制等价——

Step

Operation

Result

Remainder

Step 1

29 / 2

14

1

Step 2

14 / 2

7

0

Step 3

7 / 2

3

1

Step 4

3 / 2

1

1

Step 5

1 / 2

0

1

如步骤 2 和步骤 4 中所述,余数必须按逆序排列,这样第一个余数就变成最低有效数字 (LSD),最后一个余数就变成最高有效数字 (MSD)。

十进制数 − 2910 = 二进制数 − 111012。

Other Base System to Decimal System

步骤

  1. Step 1 ——确定每个数字的列(位置)值(这取决于数字的位置和数制系统的基数)。

  2. Step 2 ——将步骤 1 中得到的列值与位于相应列中的数字相乘。

  3. Step 3 − 计算第 2 步中所得乘积之和。和数即为十进制等值。

Example

二进制数 − 111012

计算十进制当量 −

Step

Binary Number

Decimal Number

Step 1

111012

1 × 24) + (1 × 23) + (1 × 22) + (0 × 21) + (1 × 2010

Step 2

111012

(16 + 8 + 4 + 0 + 1)10

Step 3

111012

2910

二进制数 − 111012 = 十进制数 − 2910

Other Base System to Non-Decimal System

步骤

  1. Step 1 − 将原始数字转换为十进制数(以 10 为基)。

  2. Step 2 − 将获得的十进制数转换为新的基数。

Example

八进制数 − 258

计算二进制等价——

Step 1 − Convert to Decimal

Step

Octal Number

Decimal Number

Step 1

258

2 × 81) + (5 × 8010

Step 2

258

(16 + 5 )10

Step 3

258

2110

八进制数 − 258 = 十进制数 − 2110

Step 2 − Convert Decimal to Binary

Step

Operation

Result

Remainder

Step 1

21 / 2

10

1

Step 2

10 / 2

5

0

Step 3

5 / 2

2

1

Step 4

2 / 2

1

0

Step 5

1 / 2

0

1

十进制数 − 2110 = 二进制数 − 101012

八进制数 − 258 = 二进制数 − 101012

Shortcut method - Binary to Octal

步骤

  1. Step 1 − 将二进制位分组为三组(从右侧开始)。

  2. Step 2 − 将每组三个二进制位转换为一位八进制数字。

Example

二进制数 − 101012

计算八进制等价−

Step

Binary Number

Octal Number

Step 1

101012

010 101

Step 2

101012

28 58

Step 3

101012

258

二进制数 − 101012 = 八进制数 − 258

Shortcut method - Octal to Binary

步骤

  1. Step 1 − 将每个八进制数位转换为 3 位二进制数(在此转换中,可以将八进制数位视为十进制)。

  2. Step 2 − 将所有所得二进制组(每组 3 位)合并为一个二进制数。

Example

八进制数 − 258

计算二进制等价——

Step

Octal Number

Binary Number

Step 1

258

210 510

Step 2

258

0102 1012

Step 3

258

0101012

八进制数 − 258 = 二进制数 − 101012

Shortcut method - Binary to Hexadecimal

步骤

  1. Step 1 − 将二进制数字分为四组(从右开始)。

  2. Step 2 − 将每组四个二进制数字转换为一个十六进制符号。

Example

二进制数 − 101012

计算十六进制等值 −

Step

Binary Number

Hexadecimal Number

Step 1

101012

0001 0101

Step 2

101012

110 510

Step 3

101012

1516

二进制数 − 101012 = 十六进制数 − 1516

Shortcut method - Hexadecimal to Binary

步骤

  1. Step 1 − 将每个十六进制数位转换为 4 位二进制数(在此转换中,可以将十六进制数位视为十进制)。

  2. Step 2 − 将所有结果二进制组(每组 4 位)组合成一个二进制数。

Example

十六进制数 − 1516

计算二进制等价——

Step

Hexadecimal Number

Binary Number

Step 1

1516

110 510

Step 2

1516

00012 01012

Step 3

1516

000101012

十六进制数 − 1516 = 二进制数 − 101012

Binary Codes

在编码中,当数字、字母或单词由一组特定符号表示时,我们说该数字、字母或单词正在被编码。一组符号称为代码。数字数据表示为二进制位组并存储和传输。该组也称为 binary code 。二进制代码由数字和字母数字字母表示。

Advantages of Binary Code

以下是二进制代码提供的优点列表。

  1. 二进制代码适用于计算机应用程序。

  2. 二进制代码适用于数字通信。

  3. 二进制代码简化了使用二进制代码的数字电路的分析和设计。

  4. 由于仅使用 0 和 1,因此实现变得容易。

Classification of binary codes

这些代码大致分为以下四类。

  1. Weighted Codes

  2. Non-Weighted Codes

  3. Binary Coded Decimal Code

  4. Alphanumeric Codes

  5. Error Detecting Codes

  6. Error Correcting Codes

Weighted Codes

加权二进制码是遵循权重位置原则的二进制码。数字的每个位置代表一个特定的权重。数个代码系统可用于表示十进制位数 0 到 9。在这些代码中,每个十进制位数表示为一个由四位比特组成的组。

weighted code

Non-Weighted Codes

在这种类型的二进制码中,不分配位置权重。非加权码的示例是 XS-3 码和格雷码。

Excess-3 code

XS-3 码也被称为 XS-3 码。它是一种非加权码,用于表示十进制数。XS-3 码字是从 8421 BCD 码字中派生出来的,在 8421 中,每个码字加上 (0011)2 或 (3)10。XS-3 码的获得方式如下所述 -

excess3 code

Example

bcd excess3 code

Gray Code

它是非加权码,它不是算术码。这意味着没有为比特位置分配特定的权重。它有一个非常特殊的功能,即每次十进制数增加时只会改变一个比特,如图所示。由于一次仅改变一个比特,因此格雷码被称为单位距离代码。格雷码是一个循环码。格雷码不可用于算术运算。

gray code

Application of Gray code

  1. 格雷码在轴位置编码器中普遍使用。

  2. 轴位置编码器生成一个码字,该码字表示轴的角度位置。

Binary Coded Decimal (BCD) code

在这个码中,每个十进制位数都表示为一个 4 位二进制数。BCD 是一种用二进制码表示每个十进制位数的方法。在 BCD 中,使用四位比特,我们可以表示十六个数字(0000 到 1111)。但在 BCD 码中,只使用了前十个(0000 到 1001)。其余六个代码组合即 1010 到 1111 在 BCD 中无效。

bcd code

Advantages of BCD Codes

  1. 它与十进制系统非常相似。

  2. 我们仅需记住十进制数 0 到 9 的二进制等价物。

Disadvantages of BCD Codes

  1. BCD 的加法和减法有不同的规则。

  2. BCD 算术复杂一些。

  3. BCD 需要比二进制更多的比特数来表示十进制数。因此,BCD 的效率低于二进制。

Alphanumeric codes

一个二进制位或比特仅能表示两个符号,因为它只有两种状态'0' 或'1'。但这对于两台计算机之间的通信是不够的,因为我们需要更多的符号进行通信。这些符号是表示 26 个大写和小写字母、0 到 9 的数字、标点符号和其他符号所必需的。

字母数字代码是表示数字和字母字符的代码。此类代码通常也会表示其他字符,如符号以及传达信息所需的各种指令。字母数字代码至少应表示字母表的 10 个数字和 26 个字母,即总共 36 个项目。以下三个字母数字代码非常普遍地用于数据表示。

  1. 美国信息交换标准代码 (ASCII)。

  2. 扩展二进制编码十进制交换码 (EBCDIC)。

  3. Five bit Baudot Code.

ASCII 代码是 7 位代码,而 EBCDIC 是 8 位代码。ASCII 代码在世界范围内使用更普遍,而 EBCDIC 主要用于大型 IBM 计算机。

Error Codes

有二进制代码技术可用于在数据传输期间检测和纠正数据。

Error Code

Description

Error Detection and Correction

错误检测和纠错代码技术

Codes Conversion

有许多方法或技术可以用来将代码从一种格式转换为另一种格式。我们将在本文中演示以下

  1. Binary to BCD Conversion

  2. BCD to Binary Conversion

  3. BCD to Excess-3

  4. Excess-3 to BCD

Binary to BCD Conversion

步骤

  1. Step 1 将二进制数转换为十进制数。

  2. Step 2  — 将十进制数转换为 BCD。

示例 − 将 (11101)2 转换为 BCD。

Step 1 − Convert to Decimal

二进制数 − 111012

计算十进制当量 −

Step

Binary Number

Decimal Number

Step 1

111012

1 × 24) + (1 × 23) + (1 × 22) + (0 × 21) + (1 × 2010

Step 2

111012

(16 + 8 + 4 + 0 + 1)10

Step 3

111012

2910

二进制数 − 111012 = 十进制数 − 2910

Step 2 − Convert to BCD

十进制数 − 2910

计算 BCD 等价物。将每个数字转换为四位二进制数字等价物。

Step

Decimal Number

Conversion

Step 1

2910

00102 10012

Step 2

2910

00101001BCD

结果

(11101)2 =  (00101001)BCD

BCD to Binary Conversion

步骤

  1. Step 1  — 将 BCD 数转换为十进制。

  2. Step 2  — 将十进制转换为二进制。

示例 − 将 (00101001)BCD 转换为二进制。

Step 1 - Convert to BCD

BCD 数 − (00101001)BCD

计算十进制等价物。将每四位数字转换为一组,并为每一组获取十进制等价物。

Step

BCD Number

Conversion

Step 1

(00101001)BCD

00102 10012

Step 2

(00101001)BCD

210 910

Step 3

(00101001)BCD

2910

BCD 数 − (00101001)BCD = 十进制数 − 2910

Step 2 - Convert to Binary

用于十进制到二进制转换的长除法方法。

十进制数 − 2910

计算二进制等价——

Step

Operation

Result

Remainder

Step 1

29 / 2

14

1

Step 2

14 / 2

7

0

Step 3

7 / 2

3

1

Step 4

3 / 2

1

1

Step 5

1 / 2

0

1

如步骤 2 和 4 中所述,余数必须按相反的顺序排列,以便第一个余数成为最低有效位数 (LSD),最后一个余数成为最高有效位数 (MSD)。

十进制数 − 2910 = 二进制数 − 111012

结果

(00101001)BCD = (11101)2

BCD to Excess-3

步骤

  1. Step 1  — 将 BCD 转换为十进制。

  2. Step 2  — 向此十进制数添加 (3)10。

  3. Step 3  — 转换为二进制以获取超额 3 码。

示例 − 将 (0110)BCD 转换为超额 3。

Step 1 − Convert to decimal

(0110)BCD = 610

Step 2 − Add 3 to decimal

(6)10 + (3)10 = (9)10

Step 3 − Convert to Excess-3

(9)10 = (1001)2

结果

(0110)BCD = (1001)XS-3

Excess-3 to BCD Conversion

步骤

  1. Step 1  — 从每 4 位的超额 3 数码中减去 (0011)2 以获得相应的 BCD 码。

示例 - 将 (10011010)XS-3 转换为 BCD。

Given XS-3 number  = 1 0 0 1 1 0 1 0
Subtract (0011)2   = 1 0 0 1 0 1 1 1
                    --------------------
               BCD = 0 1 1 0   0 1 1 1

结果

(10011010)XS-3 = (01100111)BCD

Complement Arithmetic

在数字计算机中使用补码是为了简化减法运算和逻辑运算。对于每个基数-r 系统(基数 r 表示数字系统的基数),共有两种类型的补码。

S.N.

Complement

Description

1

Radix Complement

基数补码称为 r 补码

2

Diminished Radix Complement

递减基数补码称为 (r-1) 补码

Binary system complements

由于二进制系统以 r = 2 为基数。因此,二进制系统的两种类型的补码为 2 补码和 1 补码。

1’s complement

一个数字的 1 补码可以通过将所有 1 改为 0,并将所有 0 改为 1 来获得。这称为取补码或 1 补码。1 补码示例如下。

1s complement

2’s complement

二进制数的 2 补码是通过将 1 补码的最低有效位 (LSB) 加 1 获得的。

2 补码 = 1 补码 + 1

2 补码示例如下。

2s complement

Binary Arithmetic

二进制算术是所有数字计算机和许多其他数字系统的重要组成部分。

Binary Addition

它是二进制减法、乘法和除法的关键。二进制加法有四条规则。

addition table

在第四种情况下,二进制加法产生一个和(1 + 1 = 10),即 0 写在给定的列中,而 1 进位到下一列。

Example − Addition

addition example

Binary Subtraction

Subtraction and Borrow ,这两个词将非常频繁地用于二进制减法。二进制减法有四条规则。

substraction table

Example − Subtraction

substraction example

Binary Multiplication

二进制乘法类似于十进制乘法。它比十进制乘法简单,因为只涉及 0 和 1。二进制乘法有四条规则。

multiplication table

Example − Multiplication

multiplication example

Binary Division

二进制除法类似于十进制除法。它被称为长除法过程。

Example − Division

division example

Octal Arithmetic

Octal Number System

以下是八进制数系的特征:

  1. Uses eight digits, 0,1,2,3,4,5,6,7.

  2. 也称为基数 8 数系。

  3. 八进制数中的每个位置表示基数 (8) 的 0 次幂。示例:80

  4. 八进制数中的最后一位表示基数 (8) 的 x 次幂。示例:8x,其中 x 表示最后一位 - 1。

Example

八进制数 − 125708

计算十进制当量 −

Step

Octal Number

Decimal Number

Step 1

125708

1 × 84) + (2 × 83) + (5 × 82) + (7 × 81) + (0 × 80

Step 2

125708

(4096 + 1024 + 320 + 56 + 0)10

Step 3

125708

549610

Note − 125708 通常写为 12570。

Octal Addition

以下八进制加法表可帮助你处理八进制加法。

octal addition table

要使用此表,只需遵循本示例中使用的说明:加 68 和 58。在 A 列中找到 6,然后在 B 列中找到 5。两个数字之和在表中两个列相交的“和”区域中。

68 + 58 = 138.

Example − Addition

octal addition example

Octal Subtraction

八进制数的减法遵循与在任何其他数系中的数的减法类似的规则。唯一的区别在于借位数。在十进制系统中,你借一组 10。在二进制系统中,你借一组 2。在八进制系统中,你借一组 8。

Example − Subtraction

octal substraction example

Hexadecimal Arithmetic

Hexadecimal Number System

十六进制数的特性如下:

  1. 使用 10 个数字和 6 个字母 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

  2. 从 10 开始,字母表示数字。A = 10、B = 11、C = 12、D = 13、E = 14、F = 15。

  3. 也称为 16 进制数系统。

  4. 十六进制数中的每个位置表示 0 次幂(16)。例如:160

  5. 十六进制数中的最后一个位置表示 x 次方(16)。其中 x 最后一个位置 - 1。

Example

十六进制数 - 19FDE16

计算十进制当量 −

Step

Hexadecimal Number

Decimal Number

Step 1

19FDE16

1 × 164) + (9 × 163) + (F × 162) + (D × 161) + (E × 16010

Step 2

19FDE16

1 × 164) + (9 × 163) + (15 × 162) + (13 × 161) + (14 × 16010

Step 3

19FDE16

(65536 + 36864 + 3840 + 208 + 14)10

Step 4

19FDE16

10646210

Note − 19FDE16 通常写为 19FDE。

Hexadecimal Addition

下面的十六进制加法表将帮助你高效地处理十六进制加法。

hexadecimal addition table

使用此表格,只需遵循此示例中的步骤 - 加 A16 和 516。在 X 列中找到 A,然后在 Y 列中找到 5。这两个列相交的“求和”区域中的点就是两个数字的和。

A16 + 516 = F16.

Example − Addition

hexadecimal addition example

Hexadecimal Subtraction

十六进制数减法遵循与任何其他数制中数字减法相同的规则。唯一变数在于借位。在十进制系统中,借位是成组的 1010。在二进制系统中,借位是成组的 210。在十六进制系统中,借位是成组的 1610。

Example - Subtraction

hexadecmal substraction example

Boolean Algebra

布尔代数用于分析和简化数字(逻辑)电路。它只使用二进制数,即 0 和 1。它也被称为 Binary Algebralogical Algebra 。布尔代数是由 George Boole 于 1854 年发明的。

Rule in Boolean Algebra

以下是布尔代数中使用的重要规则。

  1. 使用的变量只能有两个值。二进制 1 表示高电平,二进制 0 表示低电平。

  2. 变量的补码用上划线(-)表示。因此,变量 B 的补码表示为 。因此,如果 B = 0,则 = 1,如果 B = 1,则 = 0。

  3. 变量的或运算用它们之间的加号 (+) 表示。例如,A、B、C 的或运算表示为 A + B + C。

  4. 两个或更多变量的逻辑与运算用在它们之间写一个点来表示,例如 A.B.C。有时可以省略该点,例如 ABC。

Boolean Laws

有六种类型的布尔定律。

Commutative law

满足以下表达式的任何二进制运算都称为交换运算。

commutative

交换定律指出,更改变量的顺序对逻辑电路的输出没有任何影响。

Associative law

此定律指出,执行逻辑运算的顺序无关紧要,因为它们的效果相同。

associative

Distributive law

分配律规定了以下条件。

distributive

AND law

这些律使用 AND 运算。因此它们被称为 AND 律。

and

OR law

这些律使用 OR 运算。因此它们被称为 OR 律。

or

INVERSION law

此律使用 NOT 运算。反演律规定变量的双重反演产生原始变量自身。

not

Important Boolean Theorems

以下是一些重要的布尔定理:

Boolean function/theorems

Description

Boolean Functions

布尔函数与表达式、K-Map 和 NAND 门实现

De Morgan’s Theorems

德·摩根定理 1 和定理 2

Logic Gates

逻辑门是任何数字系统的基本构件。它是一个电子电路,具有一个或多个输入,但只有一个输出。输入和输出之间的关系基于一个 certain logic 。基于此,逻辑门被命名为 AND 门、OR 门、NOT 门等等。

AND Gate

一个执行 AND 操作的电路如图所示。它有 n 个输入 (n >= 2) 和一个输出。

and1

Logic diagram

and logic

Truth Table

and truthtable

OR Gate

一个执行 OR 操作的电路如图所示。它有 n 个输入 (n >= 2) 和一个输出。

or1

Logic diagram

or logic

Truth Table

or truthtable

NOT Gate

NOT 门也称为 Inverter 。它有一个输入 A 和一个输出 Y。

not1

Logic diagram

not logic

Truth Table

not truthtable

NAND Gate

NOT-AND 操作称为 NAND 操作。它有 n 个输入 (n >= 2) 和一个输出。

nand

Logic diagram

nand logic

Truth Table

nand truthtable

NOR Gate

NOT-OR 操作称为 NOR 操作。它有 n 个输入 (n >= 2) 和一个输出。

nor

Logic diagram

nor logic

Truth Table

nor truthtable

XOR Gate

XOR 或 Ex-OR 门是一种特殊类型的门。它可用在半加法器、全加法器和减法器中。异或门缩写为 EX-OR 门或有时为 X-OR 门。它有 n 个输入 (n >= 2) 和一个输出。

xor

Logic diagram

xor logic

Truth Table

xor truthtable

XNOR Gate

XNOR 门是一种特殊类型的门。它可用在半加法器、全加法器和减法器中。异或非门缩写为 EX-NOR 门或有时为 X-NOR 门。它有 n 个输入 (n >= 2) 和一个输出。

xnor

Logic diagram

xnor logic

Truth Table

xnor truthtable

Combinational Circuits

组合电路是一种电路,我们在电路中组合不同的门,例如编码器、译码器、多路复用器和解复用器。组合电路的一些特性如下 -

  1. 组合电路在任何时间瞬间的输出仅取决于输入端子上的电平。

  2. 组合电路不使用任何存储器。输入的上一个状态不会对电路的当前状态产生任何影响。

  3. 组合电路可以有 n 个输入和 m 个输出。

Block diagram

combinational circuit blockdiagram

我们接下来将详细阐述几个重要的组合电路。

Half Adder

半加器是一种有两个输入和两个输出的组合逻辑电路。半加器电路旨在将两个单比特二进制数 A 和 B 相加。它是加两个 single 位数字的基本构建模块。此电路有两个输出 carrysum

Block diagram

halfadder blockdiagram

Truth Table

halfadder truthtable

Circuit Diagram

halfadder circuitdiagram

Full Adder

全加器旨在克服半加器电路的缺点。它可以将两个单比特数字 A 和 B 以及进位 c 相加。全加器是一个有三个输入和两个输出的组合电路。

Block diagram

fulladder blockdiagram

Truth Table

fulladder truthtable

Circuit Diagram

fulladder circuitdiagram

N-Bit Parallel Adder

全加器只能将两个单数字二进制数连同进位输入一起相加。但在实际中,我们需要将比一个比特长得多的二进制数相加。要加两个 n 位二进制数,我们需要使用 n 位并行加法器。它使用了级联的多位全加器。上一位全加器的进位输出连接到下一位全加器的进位输入。

4 Bit Parallel Adder

在框图中,A0 和 B0 表示四位字 A 和 B 的最低有效位。因此,全加器-0 是最低级。因此,其 Cin 已被永久设为 0。其余连接与 n 位并行加法器的连接完全相同,如图所示。四位并行加法器是一种非常常见的逻辑电路。

Block diagram

fourbitadder blockdiagram

N-Bit Parallel Subtractor

可以通过取要减去的数的 1 或 2 的补数来进行减法。例如,可以通过将 B 的 1 或 2 的补数加到 A 来执行减法 (A-B)。这意味着我们可以使用二进制加法器来执行二进制减法。

4 Bit Parallel Subtractor

首先将要减去的数字 (B) 通过反相器传递以获得其 1 的补数。然后,四位加法器将 A 和 B 的 2 的补数相加以产生减法。S3 S2 S1 S0 表示二进制减法 (A-B) 的结果,进位输出 Cout 表示结果的极性。如果 A > B,则 Cout = 0,二进制形式 (A-B) 的结果则 Cout = 1,结果为 2 的补数形式。

Block diagram

fourbitsubstractor blockdiagram

Half Subtractors

半减法器是一种有两个输入和两个输出(差值和借位)的组合电路。它产生输入处两个二进制比特之间的差值,并且还生成一个输出(借位)以指示是否借用了 1。在减法 (A-B) 中,A 称为被减数位,B 称为减数位。

Truth Table

halfsubstrator truthtable

Circuit Diagram

halfsubstrator circuitdiagram

Full Subtractors

全减法器克服了半减法器的缺点。全减法器是具有三个输入 A、B、C 和两个输出 D 和 C' 的组合电路。A 是“被减数”、B 是“减数”、C 是前一阶段产生的“借位”,D 是差值输出,C' 是借位输出。

Truth Table

fullsubstrator truthtable

Circuit Diagram

fullsubstrator circuitdiagram

Multiplexers

多路复用器是一种特殊类型的组合电路。有 n 个数据输入、一个输出和 m 个选择输入,其中 2m = n。它是一种数字电路,可选择 n 个数据输入中的一个并将其路由到输出。n 个输入中之一的选择通过所选输入来完成。根据应用于所选输入的数字代码,从 n 个数据源中选择一个并将其传输到单个输出 Y。E 称为选通或使能输入,它对于级联非常有用。它通常是一个低电平有效端,这意味着在低电平时,它将执行所需的操作。

Block diagram

n onemultiplexer blockdiagram

多路复用器有多种变化

  1. 2 : 1 multiplexer

  2. 4 : 1 multiplexer

  3. 16 : 1 multiplexer

  4. 32 : 1 multiplexer

Block Diagram

two onemultiplexer blockdiagram

Truth Table

two onemultiplexer truthtable

Demultiplexers

解复用器执行多路复用器的反向操作,即它接收一个输入并将其分配到多个输出上。它只有一个输入、n 个输出、m 个选择输入。一次只能通过选择线选择一个输出线,并且输入传输到所选输出线。解复用器等效于单刀多位开关,如图所示。

解复用器有多种变化。

  1. 1 : 2 demultiplexer

  2. 1 : 4 demultiplexer

  3. 1 : 16 demultiplexer

  4. 1 : 32 demultiplexer

Block diagram

one twodemultiplexer blockdiagram

Truth Table

one twodemultiplexer truthtable

Decoder

译码器是一种组合电路。它具有 n 个输入和最多 m = 2n 个输出。译码器与没有任何数据输入的解复用器相同。它执行与编码器完全相反的操作。

Block diagram

decoder blockdiagram

以下是译码器的示例。

  1. Code converters

  2. BCD 到七段译码器

  3. Nixie tube decoders

  4. Relay actuator

2 to 4 Line Decoder

2 到 4 线译码器的框图如图所示。A 和 B 是两个输入,D 到 D 是四个输出。真值表解释了译码器的操作。它显示每个输出仅对特定的输入组合为 1。

Block diagram

two fourdecoder blockdiagram

Truth Table

two fourdecoder truthtable

Logic Circuit

two fourdecoder logiccircuit

Encoder

编码器是一种组合电路,设计用于执行解码器的逆运算。编码器有 n 条输入线和 m 条输出线。编码器生成与数字输入数对应的 m 位二进制码。编码器接受 n 个输入数字字,并将其转换为 m 位另一个数字字。

Block diagram

encoder blockdiagram

以下是编码器的示例。

  1. Priority encoders

  2. Decimal to BCD encoder

  3. Octal to binary encoder

  4. Hexadecimal to binary encoder

Priority Encoder

这是一种特殊类型的编码器。优先考虑输入线。如果同时出现两个或多个输入线为 1,则将考虑具有最高优先级的输入线。有四个输入 D0、D1、D2、D3 和两个输出 Y0、Y1。在四个输入中,D3 具有最高优先级,而 D0 具有最低优先级。这意味着,如果 D3 = 1,则无论其他输入如何,Y1 Y1 = 11。类似地,如果 D3 = 0 且 D2 = 1,则无论其他输入如何,Y1 Y0 = 10。

Block diagram

priorityencoder blockdiagram

Truth Table

priorityencoder truthtable

Logic Circuit

priorityencoder logiccircuit

Sequential Circuits

组合电路不使用任何存储器。因此,输入的上一个状态不会对电路的当前状态产生任何影响。但顺序电路具有存储器,因此输出可以根据输入而变化。此类电路使用上一个输入、输出、时钟和存储器单元。

Block diagram

sequential circuit blockdiagram

Flip Flop

触发器是一种顺序电路,它通常对输入进行取样,并且仅在特定时间瞬间而不是持续不断地更改输出。触发器被称为边沿触发型,而不是像锁存器一样被称为电平触发型。

S-R Flip Flop

本质上是使用 NAND 门的 S-R 锁存器,带有一个附加的 enable 输入。它还被称为电平触发 SR-FF。这种情况下,只有当使能输入 (E) 处于活动状态时,才会在输出中形成电路。简而言之,如果 E = 1,该电路将作为 S-R 锁存器工作,但如果 E = 0,输出不会发生变化。

Block Diagram

srflipflop blockdiagram

Circuit Diagram

srflipflop circuitdiagram

Truth Table

srflipflop truthtable

Operation

S.N.

Condition

Operation

1

S = R = 0 : No change

如果 S = R = 0,则 NAND 门 3 和 4 的输出被迫变为 1。因此,R' 和 S' 都将等于 1。由于 S' 和 R' 是使用 NAND 门的基本 S-R 锁存器的输入,因此输出的状态不会发生变化。

2

*S = 0,R = 1,E =

由于 S = 0,即 NAND-3 的输出 R' = 1 和 E = 1,即 NAND-4 的输出 S' = 0。因此,Qn+1 = 0 和 Qn+1 bar = 1。这是复位条件。

3

*S = 1,R = 0,E =

NAND-3 的输出,即 R' = 0 和 NAND-4 的输出,即 S' = 1。因此,S-R NAND 锁存器的输出是 Qn+1 = 1 和 Qn+1 bar = 0。这是复位条件。

4

*S = 1,R = 1,E =

由于 S = 1,R = 1 和 E = 1,NAND 门 3 和 4 的输出都是 0,即 S' = R' = 0。因此, Race 条件将发生在基本 NAND 锁存器中。

Master Slave JK Flip Flop

主从 JK FF 是两个 S-R FF 的级联,从第二个的输出到第一个的输入有反馈。主触发器是正面电平触发器。但由于时钟线中有反相器,从触发器将对负电平做出响应。因此,当时钟 = 1(正电平)时,主触发器处于活动状态,从触发器处于非活动状态。而当时钟 = 0(低电平)时,从触发器处于活动状态,主触发器处于非活动状态。

Circuit Diagram

jkflipflop circuitdiagram

Truth Table

jkflipflop truthtable

Operation

S.N.

Condition

Operation

1

J = K = 0 (No change)

当时钟 = 0 时,从触发器变为活动状态,主触发器变为非活动状态。但由于 S 和 R 输入没有改变,因此从输出也将保持不变。因此,如果 J = K =0,输出将不会改变。

2

J = 0 and K = 1 (Reset)

时钟 = 1 − 主触发器处于活动状态,从触发器处于非活动状态。因此,主触发器的输出变为 Q1 = 0 和 Q1 bar = 1。也就是说,S = 0 和 R =1。时钟 = 0 − 从触发器处于活动状态,主触发器处于非活动状态。因此,从触发器的输出变为 Q = 0 和 Q bar = 1。时钟再次 = 1 − 主触发器处于活动状态,从触发器处于非活动状态。因此,即使将改变后的输出 Q = 0 和 Q bar = 1 反馈给主触发器,其输出仍将为 Q1 = 0 和 Q1 bar = 1。也就是说,S = 0 和 R = 1。因此,当时钟 = 0、从触发器变为活动状态时,从触发器的输出仍将保持 Q = 0 和 Q bar = 1。因此,我们从主从触发器获得了稳定的输出。

3

J = 1 and K = 0 (Set)

时钟 = 1 − 主触发器处于活动状态,从触发器处于非活动状态。因此,主触发器的输出变为 Q1 = 1 和 Q1 bar = 0。也就是说,S = 1 和 R =0。时钟 = 0 − 从触发器处于活动状态,主触发器处于非活动状态。因此,从触发器的输出变为 Q = 1 和 Q bar = 0。时钟再次 = 1 − 然后可以表明从触发器的输出已稳定为 Q = 1 和 Q bar = 0。

4

J = K = 1 (Toggle)

时钟 = 1 − 主触发器处于活动状态,从触发器处于非活动状态。主触发器的输出将会切换。因此,S 和 R 也将被反转。时钟 = 0 − 从触发器处于活动状态,主触发器处于非活动状态。从输出将会切换。这些改变的输出被返回到主触发器的输入。但由于时钟 = 0,主触发器仍然处于非活动状态。因此,它不会对这些改变的输出作出反应。这避免了导致周围竞争条件的多次切换。主从触发器将会避开围绕竞争的条件。

Delay Flip Flop / D Flip Flop

延迟触发器或 D 触发器是由 NAND 反相器连接在 S 和 R 输入之间形成的简单门控 S-R 锁存器。它只有一个输入。输入数据在一段时间后出现在输出中。由于输入和输出之间存在此数据延迟,因此它被称为延迟触发器。由于 NAND 反相器,S 和 R 将互为补码。因此,S = R = 0 或 S = R = 1,这些输入条件永远不会出现。这个问题可以通过 S R = 00 和 SR = 1 条件来避免。

Block Diagram

dflipflop blockdiagram

Circuit Diagram

dflipflop circuitdiagram

Truth Table

dflipflop truthtable

Operation

S.N.

Condition

Operation

1

*E =

2

*E = 1 且 D =

3

*E = 1 且 D =

Toggle Flip Flop / T Flip Flop

触发器切换器本质上是 J 和 K 端子始终连接在一起的 JK 触发器。它只有 T 所指示的输入,如符号图所示。正边缘触发 T 触发器的符号在框图中显示。

Symbol Diagram

tflipflop symboldiagram

Block Diagram

tflipflop blockdiagram

Truth Table

tflipflop truthtable

Operation

S.N.

Condition

Operation

1

*T = 0,J = K =

2

Digital Registers

触发器是一种 1 位存储单元,可用于存储数字数据。为了以位的数量增加存储容量,我们必须使用一组触发器。这样的一组触发器被称为 Registern-bit register 将包括 n 个触发器,并能够存储 n-bit 字。

寄存器中的二进制数据可以在该寄存器中从一个触发器移动到另一个触发器。允许进行此类数据传输的寄存器被称为 shift registers 。移位寄存器的操作模式有四种。

  1. Serial Input Serial Output

  2. Serial Input Parallel Output

  3. Parallel Input Serial Output

  4. Parallel Input Parallel Output

Serial Input Serial Output

让所有触发器最初都处于复位条件,即 Q3 = Q2 = Q1 = Q0 = 0。如果将四位二进制数 1 1 1 1 输入寄存器,则应将此数字应用于 Din 位,首先应用 LSB 位。FF-3 的 D 输入即 D3 连接到串行数据输入 Din 。FF-3 输出即 Q3 连接到下一个触发器输入,即 D2,以此类推。

Block Diagram

siso blockdiagram

Operation

在应用时钟信号之前,令 Q3 Q2 Q1 Q0 = 0000,并将要输入数字的 LSB 位应用于 Din。所以 Din = D3 = 1。应用时钟。在时钟的第一个下降沿,FF-3 被置位,寄存器中存储的字为 Q3 Q2 Q1 Q0 = 1000。

siso operation1

将下一位应用于 Din。所以 Din = 1。时钟的下一次负沿到来后,FF-2 将置位,存储的字将变为 Q3 Q2 Q1 Q0 = 1100。

siso operation2

将要存储的下一位即 1 应用于 Din。应用时钟脉冲。时钟的第三个负沿到来后,FF-1 将置位,输出将修改为 Q3 Q2 Q1 Q0 = 1110。

siso operation3

类似地,使用 Din = 1 并随着时钟的第四个负沿到来,寄存器中存储的字为 Q3 Q2 Q1 Q0 = 1111。

siso operation4

Truth Table

siso truthtable

Waveforms

siso waveform

Serial Input Parallel Output

  1. 在这样的操作类型中,数据按串行方式输入,并以并行方式输出。

  2. 数据逐位加载。在数据加载期间,输出被禁用。

  3. 一旦数据加载完成,所有触发器都包含了它们所需的数据,输出被启用,以便所有加载的数据在同一时间被所有输出线上提供。

  4. 加载一个四位字需要 4 个时钟周期。因此,SIPO 模式的操作速度与 SISO 模式相同。

Block Diagram

sipo blockdiagram

Parallel Input Serial Output (PISO)

  1. 数据位以并行方式输入。

  2. 以下所示的电路是一个四位并行输入串行输出寄存器。

  3. 前一个触发器的输出通过组合电路连接到下一个触发器的输入。

  4. 二进制输入字 B0、B1、B2、B3 通过相同的组合电路施加。

  5. 此电路可以工作在两种模式中,即移位模式或加载模式。

Load mode

当移位/加载禁止线为低电平 (0) 时,与门 2、4 和 6 变得活跃,它们将 B1、B2、B3 位传递到相应的触发器。在时钟的下降沿,二进制输入 B0、B1、B2、B3 将被加载到相应的触发器中。从而进行并行加载。

Shift mode

当移位/加载禁止线为低电平 (1) 时,与门 2、4 和 6 变得不活跃。因此,数据的并行加载是不可能的。但与门 1、3 和 5 变得活跃。因此,在施加时钟脉冲时,数据逐位从左向右移位。从而进行了并行输入串行输出操作。

Block Diagram

piso blockdiagram

Parallel Input Parallel Output (PIPO)

在这种模式下,4 位二进制输入 B0、B1、B2、B3 分别应用到四个触发器的各自数据输入 D0、D1、D2、D3。一旦施加负时钟沿,输入二进制位将同时加载到触发器中。加载的位将同时出现在输出侧。只有时钟脉冲对于加载所有位是必不可少的。

Block Diagram

pipo blockdiagram

Bidirectional Shift Register

  1. 如果一个二进制数向左移一位,则相当于将原始数乘以 2。类似地,如果一个二进制数向右移一位,则相当于将原始数除以 2。

  2. 因此,如果我们想使用移位寄存器来乘法和除法给定的二进制数,那么我们就应该能够将数据向左或向右移动。

  3. 这样的寄存器被称为双向寄存器。四位双向移位寄存器如图所示。

  4. 有两个串行输入,即串行右移数据输入 DR 和串行左移数据输入 DL,以及一个模式选择输入 (M)。

Block Diagram

bidirectional shiftregister blockdiagram

Operation

S.N.

Condition

Operation

1

With M = 1 − Shift right operation

如果 M = 1,则与门 1、3、5 和 7 被启用,而其余的与门 2、4、6 和 8 将被禁用。在施加的时钟脉冲时,DR 处的数据从 FF-3 到 FF-0 逐位向右移位。因此,当 M = 1 时,我们获得串行右移操作。

2

With M = 0 − Shift left operation

当模式控制 M 连接到 0 时,则与门 2、4、6 和 8 被启用,而 1、3、5 和 7 被禁用。在时钟脉冲的应用下,DL 的数据以逐位的方式从 FF-0 左移到 FF-3。因此,M = 0 时,我们得到了序列右移操作。

Universal Shift Register

只能将数据在一个方向移动的移位寄存器称为单向移位寄存器。可以将数据在两个方向移动的移位寄存器称为双向移位寄存器。运用相同的逻辑,一个可以将数据在两个方向移动并将其并行加载的移位寄存器称为通用移位寄存器。移位寄存器能够执行以下操作:

  1. Parallel loading

  2. Left Shifting

  3. Right shifting

对于并行加载操作,模式控制输入连接到逻辑 1,而对于串行移位,其连接到 0。当模式控制引脚连接到接地时,通用移位寄存器充当双向寄存器。对于串行左操作,输入应用于图中所示与与门 1 相连的串行输入。而对于移位右操作,串行输入应用于 D 输入。

Block Diagram

universal shiftregister blockdiagram

Digital Counters

计数器是一种顺序电路。用于计数脉冲的数字电路称为计数器。计数器是触发器的最广泛应用。它是一组带有时钟信号的触发器。计数器有两种类型。

  1. Asynchronous or ripple counters.

  2. Synchronous counters.

Asynchronous or ripple counters

图中所示为 2 位波纹上升计数器的逻辑图。正在使用触发器(T)翻转。但我们也可以使用 JK 触发器,将 J 和 K 永久连接到逻辑 1。外部时钟应用于触发器 A 的时钟输入,QA 输出应用于下一触发器(即 FF-B)的时钟输入。

Logical Diagram

ripple counter diagram

Operation

S.N.

Condition

Operation

1

Initially let both the FFs be in the reset state

QBQA = 00 initially

2

After 1st negative clock edge

一旦第一个负时钟沿出现,FF-A 将翻转,QA 将等于 1。QA 连接到 FF-B 的时钟输入。由于 QA 从 0 变为 1,FF-B 将其视为正时钟沿。QB 没有变化,因为 FF-B 是负沿触发 FF。QBQA = 01 在第一个时钟脉冲后。

3

After 2nd negative clock edge

在第二个负时钟沿到达时,FF-A 再次翻转,QA = 0。QA 中的变化充当 FF-B 的负时钟沿。所以它也会翻转,QB 将为 1。QBQA = 10 在第二个时钟脉冲后。

4

After 3rd negative clock edge

在第 3 个负时钟沿到达时,FF-A 再次翻转,QA 从 0 变成 1。由于这是一个正向变化,FF-B 不对此做出响应并保持非活动状态。因此,QB 不变,并继续等于 1。QBQA = 11 在第三个时钟脉冲后。

5

After 4th negative clock edge

在第 4 个负时钟沿到达时,FF-A 再次翻转,QA 从 0 变成 1。QA 中的这个负变化充当 FF-B 的时钟脉冲。因此,它翻转将 QB 从 1 更改为 0。QBQA = 00 在第四个时钟脉冲后。

Truth Table

ripple counter truthtable

Synchronous counters

如果“时钟”脉冲同时应用于计数器中的所有触发器,则这样的计数器称为同步计数器。

2-bit Synchronous up counter

FF-A 的 JA 和 KA 输入与逻辑 1 绑在一起。因此,FF-A 将作为触发器翻转。JB 和 KB 输入连接到 QA。

Logical Diagram

synchronous counter diagram

Operation

S.N.

Condition

Operation

1

Initially let both the FFs be in the reset state

QBQA = 00 initially.

2

After 1st negative clock edge

一旦第一个负时钟沿出现,FF-A 将翻转,QA 将从 0 变为 1。但在负时钟沿出现时,QA、JB = KB = 0。因此,FF-B 不会改变其状态。因此,QB 将保持为 0。QBQA = 01 在第一个时钟脉冲后。

3

After 2nd negative clock edge

在第二个负时钟沿到达时,FF-A 再次翻转,QA 从 1 变为 0。但在这一刻,QA 为 1。因此,JB = KB = 1,FF-B 将翻转。因此,QB 从 0 变为 1。QBQA = 10 在第二个时钟脉冲后。

4

After 3rd negative clock edge

在第三个下降时钟沿出现时,FF-A 将从 0 翻转到 1,但 FF-B 没有状态变化。QBQA = 11 在第三个时钟脉冲后。

5

After 4th negative clock edge

在下一次时钟脉冲出现时,QA 将从 1 变为 0,因为 QB 也将从 1 变为 0。QBQA = 00 在第四个时钟脉冲后。

Classification of counters

根据计数进行的方式,同步或异步计数器分类如下:

  1. Up counters

  2. Down counters

  3. Up/Down counters

UP/DOWN Counter

上升计数器和下降计数器结合在一起得到一个上升/下降计数器。还提供了模式控制 (M) 输入以选择上升或下降模式。必须设计并使用组合电路,放在每对触发器之间,以实现上升/下降操作。

  1. Type of up/down counters

  2. UP/DOWN ripple counters

  3. UP/DOWN synchronous counter

UP/DOWN Ripple Counters

在 UP/DOWN 纹波计数器里,所有 FF 以切换模式运行。因此,要使用 T 触发器或 JK 触发器。MSB 触发器直接接收时钟。但每个其他 FF 的时钟都从前一个 FF 的 (Q = Q_bar) 输出获得。

  1. UP counting mode (M=0) − 如果要实现上升计数,则连接前一个 FF 的 Q 输出到下一级的时钟。对于这种模式,模式选择输入 M 为逻辑 0 (M = 0)。

  2. DOWN counting mode (M=1) − 如果 M = 1,则前一个 FF 的 Q_bar 输出连接到下一个 FF。这将使计数器以计数模式运行。

Example

3 位二进制上升/下降纹波计数器。

  1. 3 位 − 因此需要三个 FF。

  2. 上升/下降 − 所以模式控制输入是必要的。

  3. 对于上升纹波计数器,连接前一个 FF 的 Q 输出到下一个的时钟输入。

  4. 对于上升纹波计数器,连接前一个 FF 的 Q 输出到下一个的时钟输入。

  5. 对于下降纹波计数器,连接前一个 FF 的 Q_bar 输出到下一个的时钟输入。

  6. 让模式控制输入 M 控制选择前一个 FF 的 Q 和 Q_bar 输出,使得:如果 M = 0,则上升计数。所以连接 Q 到 CLK。如果 M = 1,则下降计数。所以连接 Q_bar 到 CLK。

Block Diagram

updown counter diagram

Truth Table

updown counter truthtable

Operation

S.N.

Condition

Operation

1

Case 1 − With M = 0 (Up counting mode)

如果 M = 0 和 M_bar = 1,那么图中的与门 1 和 3 将被启用,而与门 2 和 4 将被禁用。因此,QA 连接到 FF-B 的时钟输入,QB 连接到 FF-C 的时钟输入。这些连接与正常上升计数器的连接相同。因此,当 M = 0 时电路作为上升计数器工作。

2

Case 2: With M = 1 (Down counting mode)

如果 M = 1,则图中的与门 2 和 4 被启用,而与门 1 和 3 被禁用。因此,QA_bar 连接到 FF-B 的时钟输入,QB_bar 连接到 FF-C 的时钟输入。这些连接将产生一个下降计数器。因此,当 M = 1 时,电路作为下降计数器工作。

Modulus Counter (MOD-N Counter)

2 位纹波计数器称为 MOD-4 计数器,3 位纹波计数器称为 MOD-8 计数器。因此,一般来说,n 位纹波计数器称为模 N 计数器。其中,MOD 数 = 2^n。

Type of modulus

  1. 2 位上升或下降 (MOD-4)

  2. 3 位上升或下降 (MOD-8)

  3. 4 位上升或下降 (MOD-16)

Application of counters

  1. Frequency counters

  2. Digital clock

  3. Time measurement

  4. A to D converter

  5. Frequency divider circuits

  6. Digital triangular wave generator.

Memory Devices

存储器就像人脑。用于存储数据和指令。计算机内存是计算机中的存储空间,其中要处理的数据和处理所需的指令存储在其中。

存储器被分成许多小部分。每个部分称为一个单元。每个位置或单元都有一个唯一的地址,范围从零到存储器大小减一。

例如,如果计算机有 64k 个字,则该存储器单元有 64 * 1024 = 65536 个存储器位置。这些位置的地址范围从 0 到 65535。

内存主要分为两种类型

  1. Internal Memory − 高速缓存和主/主存储器

  2. External Memory − 磁盘/光盘等

memory hiearchy

当我们从上到下时,内存层次结构的特征如下。

  1. 存储容量增加。

  2. 每位存储成本降低。

  3. CPU 访问内存的频率降低。

  4. CPU 的访问时间增加。

RAM

RAM 构成 CPU 的内部存储器,用于存储数据、程序和程序结果。它是读写内存。它被称为随机存取存储器 (RAM)。

由于 RAM 中的访问时间与该字的地址无关,即存储器内部的每个存储位置都与其他位置一样容易到达,并且需要花费相同的时间。我们可以随机且极其快速地进入内存,但也可以非常昂贵。

RAM 是易失性的,即当我们关闭计算机或断电时,存储在其中的数据将丢失。因此,计算机通常使用备用不间断电源系统 (UPS)。RAM 很小,无论是在物理尺寸方面还是能够容纳的数据量方面。

RAM 分为两种类型

  1. Static RAM (SRAM)

  2. Dynamic RAM (DRAM)

Static RAM (SRAM)

static 字表示只要有电源供应,内存就会保留其内容。然而,由于易失性,在电源关闭时数据丢失。SRAM 芯片使用 6 晶体管矩阵且没有电容器。晶体管不需要电力来防止泄漏,因此 SRAM 不需要定期刷新。

由于矩阵中有额外空间,SRAM 用的芯片比 DRAM 多,存储空间相同,因此制造成本更高。

SRAM 用作高速小型的缓存。

Dynamic RAM (DRAM)

与 SRAM 不同,DRAM 必须持续进行 refreshed 才能维持数据。做法是将内存放在刷新电路中,以每秒数百次的速度重写数据。DRAM 用作大多数系统内存,因为它便宜且小巧。所有 DRAM 都由存储单元构成。这些单元由一个电容器和一个晶体管组成。

ROM

ROM 代表只读存储,即只能读取但无法写入的存储器。这种类型的存储器是非易失性的。信息在制造过程中永久存储在这样的存储器中。

ROM 存储计算机第一次通电时启动计算机所需的指令,此操作称为引导。ROM 芯片不仅用于计算机,还用于洗衣机和微波炉等其他电子设备。

以下是各种类型的 ROM:

MROM (Masked ROM)

· 第一个 ROM 是硬接线设备,包含预编程的数据或指令集。此类 ROM 称为屏蔽 ROM,价格低廉。

PROM (Programmable Read Only Memory)

· PROM 是用户只能修改一次的只读存储器。用户购买空白 PROM,并使用 PROM 编程器输入所需内容。PROM 芯片内部有小型的保险丝,在编程过程中被烧断。它只能编程一次,无法擦除。

EPROM (Erasable and Programmable Read Only Memory)

· EPROM 可以通过将其暴露于紫外线下长达 40 分钟来擦除。通常,EPROM 擦除器可实现此功能。在编程期间,电荷被困在绝缘栅区域中。此电荷保持时间超过 10 年,原因是电荷没有泄漏路径。要清除此电荷,紫外线会通过石英晶体窗口(盖子)进行照射。接触紫外线会耗散电荷。正常使用时,石英盖用贴纸密封。

EEPROM (Electrically Erasable and Programmable Read Only Memory)

· EEPROM 可以通过电子方式编程和擦除。它可以擦除并重新编程约一万次。擦除和编程均大约需要 4 到 10 毫秒(毫秒)。在 EEPROM 中,可以有选择地擦除和编程任何位置。EEPROM 每次可以擦除一个字节,而不是擦除整个芯片。因此,重新编程的过程灵活但速度较慢。

Serial Access Memory

顺序访问表示系统必须从存储器地址的开始搜索存储设备,直到找到所需的数据片段为止。支持此类访问的存储设备称为顺序访问存储器或串行访问存储器。磁带是串行访问存储器的示例。

Direct Access Memory

直接访问存储器或随机存取存储器是指系统可以直接获取用户所需信息的条件。支持此类访问的存储设备称为直接访问存储器。磁盘、光盘是直接访问存储器的示例。

Cache Memory

高速缓存是能够加快 CPU 速度的超高速半导体存储器。它充当 CPU 和主存储器之间的缓冲区。它用于保存 CPU 最常使用的那些数据和程序部分。操作系统将数据和程序的部分从磁盘传输到高速缓存,CPU 可以从该部分访问它们。

Advantages

  1. 高速缓存存储器比主存储器更快。

  2. 与主存储器相比,它消耗的访问时间更少。

  3. 它存储可以在短时间内执行的程序。

  4. 它存储数据以供临时使用。

Disadvantages

  1. 高速缓存存储器的容量有限。

  2. It is very expensive.

虚拟存储器是一种技术,允许执行尚未完全在内存中可用的进程。此方案的主要可见优势是程序可以大于物理存储器。虚拟存储器是用户逻辑存储器和物理存储器之间的分离。

这种分离允许在仅提供较小物理存储器时,为程序员提供极大的虚拟存储器。当整个程序不需要完全加载到主存储器中时,以下是这种情况。

  1. 用户编写的错误处理例程仅在数据或计算中发生错误时才使用。

  2. 程序的某些选项和功能可能很少使用。

  3. 即使实际上只使用了少量表格,也会为许多表格分配固定数量的地址空间。

  4. 执行仅部分位于内存中的程序的能力会抵消许多好处。

  5. 将每个用户程序加载或换入内存所需的 I/O 数目将减少。

  6. 程序将不再受可用物理内存量的限制。

  7. 每个用户程序可以占用更少的物理内存,可以在同一时间运行更多的程序,从而相应提升 CPU 利用率和吞吐量。

Auxiliary Memory

辅助内存的尺寸远大于主内存,但速度较慢。它通常存储系统程序、指令和数据文件。它还称为二级存储器。当主内存容量超出时,它还可用作溢出/虚拟内存。二级存储器无法被处理器直接访问。先将辅助内存的数据/信息传输到主内存,CPU 随后可以访问该信息。辅助内存的特点如下所列:

  1. Non-volatile memory − 断电时数据不会丢失。

  2. Reusable − 数据永久保存在二级存储器中,除非被用户覆盖或删除。

  3. Reliable − 由于二级存储器设备的高物理稳定性,二级存储器中的数据是安全的。

  4. Convenience − 借助于计算机软件,经过授权的人员可以快速定位和访问数据。

  5. Capacity − 二级存储器可以在多磁盘组中存储海量数据。

  6. Cost − 将数据存储在磁带或磁盘上比主内存便宜得多。

CPU Architecture

微处理器与传统计算机中使用的中央处理单元 CPU 同义。微处理器 (MPU) 充当执行以下任务的设备或设备组。

  1. communicate with peripherals devices

  2. provide timing signal

  3. direct data flow

  4. 按照内存中的指令执行计算机任务

8085 Microprocessor

8085 微处理器是一种 8 位通用微处理器,能够寻址 64k 内存。该处理器有 40 个引脚,需要 +5 V 单电源和 3 MHz 单相时钟。

Block Diagram

microprocessor blockdiagram

ALU

ALU 执行微处理器的计算功能。它包括累加器、临时寄存器、算术和逻辑电路以及五个标志。结果存储在累加器和标志中。

Block Diagram

alu

Accumulator

它是一个 8 位的寄存器,是 ALU 的一部分。该寄存器用于存储 8 位数据,并在执行算术和逻辑运算中使用。运算结果存储在累加器中。

Diagram

accumulator

Flags

标志是可编程的。可以通过使用指令从寄存器存储和传输数据。ALU 包括五个触发器,这些触发器根据累加器和其他寄存器中的数据条件进行设置和复位。

  1. S (Sign) flag − 在执行算术运算之后,如果结果的位 D7 为 1,则设置符号标志。它用于有符号数。在给定的字节中,如果 D7 为 1 表示负数。如果它为零表示正数。

  2. Z (Zero) flag − 如果 ALU 运算结果为 0,则设置零标志。

  3. AC (Auxiliary Carry) flag − 在算术运算中,当位 D3 产生进位并传递给位 D4 时,设置 AC 标志。该标志仅在内部 BCD 运算中使用。

  4. P (Parity) flag − 在算术或逻辑运算之后,如果结果有偶数个 1,则设置标志。如果它有奇数个 1,则复位标志。

  5. C (Carry) flag − 如果算术运算结果为进位,则设置进位标志,否则复位。

Register section

它基本上是一个存储设备,通过使用指令从寄存器传输数据。

  1. Stack Pointer (SP) - 堆指针也是一个用作内存指针的 16 位寄存器。它指向读/写内存中的一个内存位置,称为堆栈。在程序执行期间,有时会将数据存储在堆栈中。堆栈的开始定义为在堆栈指针中加载一个 16 位地址。

  2. Program Counter (PC) - 这个 16 位寄存器处理第四个操作以对指令的执行进行排序。此寄存器也是一个内存指针。内存位置具有 16 位地址。它用于存储执行地址。程序计数器的作用是从下一个字节将被提取的内存地址开始的。

  3. Storage registers - 这些寄存器在程序执行期间存储 8 位数据。这些寄存器标识为 B、C、D、E、H、L。它们可以组合为寄存器对 BC、DE 和 HL 执行一些 16 位操作。

Time and Control Section

此单元负责根据时钟脉冲同步微处理器操作,并生成微处理器和外围设备之间平稳通信所需的控制信号。RD 栏和 WR 栏信号是同步脉冲,指示数据是否在数据总线上可用。控制单元负责控制微处理器、存储器和外围设备之间的数据流。

PIN diagram

pin diagram

所有信号都可以分为六组

S.N.

Group

Description

1

Address bus

8085 微处理器具有 8 条信号线,A15 - A8,它们是单向的,用作高阶地址总线。

2

Data bus

信号线 AD7 - AD0 是双向的,用于双重目的。它们用作低阶地址总线和数据总线。

3

Control signal and Status signal

控制信号 RD bar - 它是一个读取控制信号(低电平有效)。如果它处于活动状态,则读取内存数据。 WR bar - 它是一个写入控制信号(低电平有效)。它在写入所选内存时处于活动状态。状态信号 ALU (Address Latch Enable) - 当 ALU 高时。8085 微处理器使用地址总线。当 ALU 低电平时。8085 微处理器使用数据总线。 IO/M bar - 这是一个状态信号,用于区分输入/输出和存储器操作。当它高时,表示输入/输出操作;当它低时,表示存储器操作。 S1 and S0 - 这些状态信号与输入/输出和内存栏类似,可以识别各种操作,但它们在小型系统中很少使用。

4

Power supply and frequency signal

Vcc - +5v 电源。 Vss - 接地参考。 X, X - 一个晶体连接在这两个引脚上。频率在内部除以两个,在 3 MHz 的系统中工作,晶体的频率应为 6 MHz。 CLK out - 此信号可用作其他设备的系统时钟。

5

Externally initiated signal

INTR (i/p) - 中断请求。 INTA bar (o/p) - 它用作确认中断。 TRAP (i/p) - 这是不可屏蔽中断,具有最高优先级。 HOLD (i/p) - 它用于暂停执行程序。 HLDA (o/p) - 暂停确认。 READY (i/p) - 此信号用于延迟微处理器读取或写入周期,直到响应速度慢的外围设备准备好接收或发送数据。 RESET IN bar - 当此引脚上的信号变低时,程序计数器将被设置为零,总线将变成三态,MPU 将被重置。 RESET OUT - 此信号表示 MPU 正在被重置。此信号可用于重置其他设备。 RST 7.5, RST 6.5, RST 5.5 (Request interrupt) - 它用于将程序控制转移到特定的内存位置。它们的优先级高于 INTR 中断。

6

Serial I/O ports

8085 微处理器具有两个信号来实现串行传输,即串行输入数据和串行输出数据。

Instruction Format

每条指令都由计算机中的比特序列表示。指令被分成称为字段的比特组。指令的表达方式称为指令格式。它通常以矩形框的形式表示。指令格式可以是以下类型。

Variable Instruction Formats

这些指令格式是指令长度根据操作码和地址说明符而变化的。例如,VAX 指令在 1 到 53 字节之间变化,而 X86 指令在 1 到 17 字节之间变化。

Format

variable instruction format

Advantage

这些格式具有良好的代码密度。

Drawback

这些指令格式非常难以解码和流水线化。

Fixed Instruction Formats

在这种类型的指令格式中,所有指令都具有相同的大小。例如,MIPS、Power PC、Alpha、ARM。

Format

fixed instruction format

Advantage

它们易于解码和流水线化。

Drawback

它们的代码密度不好。

Hybrid Instruction Formats

在这种类型的指令格式中,我们有多个由操作码指定的格式长度。例如,IBM 360/70、MIPS 16、Thumb。

Format

hybrid instruction format

Advantage

这些在代码密度与指令之间的折衷很容易解码。

Addressing Modes

寻址模式提供了处理器访问给定数据地址的不同方法。操作的数据存储在内存位置中,每条指令都需要某些要操作的数据。有各种指定数据地址的技术。这些技术称为寻址模式。

  1. Direct addressing mode − 在直接寻址模式中,操作数的地址在指令中给出,并且数据在指令中提供的内存位置中可用。我们将把这些数据移动到所需的位置。

  2. Indirect addressing mode − 在间接寻址模式中,指令指定一个寄存器,其中包含操作数的地址。可通过间接寻址模式访问内部 RAM 和外部 RAM。

  3. Immediate addressing mode − 在直接寻址模式中,直接数据在操作数中给出,将数据移动到累加器中。它非常快。

  4. Relative addressing mode − 在相对地址模式中,有效地址由索引模式确定,方法是使用程序计数器代替通用处理器寄存器。此模式称为相对地址模式。

  5. Index addressing mode − 在索引地址模式中,操作数的有效地址通过将内容值添加到寄存器的内容中来生成。该模式称为索引地址模式。