数字逻辑电路笔记

数字逻辑电路笔记

给定输入 给出输出 用布尔逻辑实现

晶体管的开关特性是数字电路研究的重点。

数字逻辑中考虑电路模拟的特性,如时延问题。

数字设计中一些层次问题

数字电路特性:

模数转换:取样、量化 数模转换:合成

传输门???

摩尔定律即电子定律:集成电路的集成度每18个月翻一番(1965年)

超摩尔定律即光子定律:光纤传输的数据总量每9个月翻一番;

迈特卡夫Metcalfe定律:网络的价值与联网设备数(用户数)的平方关系成正比

时序逻辑 组合逻辑

数制与编码

按位计数制(positional number system):加权

二进制八进制互转,二进制十六进制互转。

十进制转任意进制,任意进制转十进制。

除以基数去余法:倒序。 乘基数取整法:正序(到fraction为0,或达到最大有效位数)

通用转换过程:

算法1:

A进制数N转换成B进制数。

算法2:

A进制数N转换成B进制数。

各种数制之间的表达能力不一样,是否存在最强表达能力的数制?

符号位+数值的表示法,正数和负数个数相同,0有两个表示,但电路设计复杂。但一旦做了加法器,减法器就不用再做了。

补码等于反码加1的证明:写成 反码=补码-1

补码 两次取补仍为原数 减去或取反加1 最高位权为负 符号扩展:将符号位扩展(如果是0,全补0,如果是1,全补1) 如果减小位数 从左边减,丢弃的位要与符号位相同。正数表示。

补码下: -2-(-8) 还是成立的 会不会判溢出????

反码 : 取反。对称和易于求反。

余码: 除符号位相反,对任何数,补码和余码两种表示法中的其他位都是一样的(仅适用于偏离为$2^{m-1}$的情况)。余码表示常用在浮点数系统中。余码表示用在浮点数系统中指数的表示。

二进制补码的加法与减法

加法:

忽略超过MSB的进位,只要不超过计数系统的范围,该结果就总是正确的和。

加法中有简便的规则判断溢出:如果加数的符号相同,而和的符号与加数的符号不同,则有加法的溢出。 不同符号的加数不会溢出

减法:

减数取反,初始进位为1

二进制反码的加法和减法

计数经过$1111_2$时要额外多加一个1. 循环进位(end-around carry).即符号位有进位则+1

溢出判断:异号相加不溢出,同号相加结果异号则溢出。或进位和符号位不一致。

二进制补码的乘法

要在每一步做符号位扩展,最高位的权为负

二进制补码的除法???

编码

{对象集,码字集,编码方案}

十进制数的二进制编码

BCD编码又称8421码

加法需要修正:超过1001需要修正 要加6

2421码,是自反码。

余3码,也是自反码:BCD码+0011

二五混合码(biquinary code)

10中取1码(1-out-of-10 code)

格雷码(Gray code)

  1. 镜像法: 1位格雷码有2个码字:0 1, N+1位格雷码中的前$2^N$个码字是N位格雷码顺序排列,且前面加0。 N+1位格雷码中的后$2^N$个码字是N位格雷码逆序排列,且前面加1

2)相邻异或法: N位二进制数字从右向左,从0到n-1编号; 如果第i位和第i+1位相同,则对应格雷码的第i位为0,否则为1。

编码:{对象集,码字集,编码方案}

字符编码

ASCII

动作、条件和状态的编码

n中取1码,n中取m码

n维体与距离

寻找Gray code即寻找一条遍历所有点的路径。

汉明距离(Hamming distance)

n维体的m维子集(m-subcube)

检错码和纠错码

差错模式(error model) 独立差错模式(independent error model):单一物理故障只影响单一的数据位。

检错码(error-detecting code)

最小汉明距离$ge$2

奇偶校验位(parity bit)

纠错码与多重检错码

待看课件 不理解 ??? 纠错准则?

汉明码

纠1位错 判两位错

位置是2的幂的那些位都是校验位,其余为信息位。校验矩阵(parity-check matrix)

偶校验

最小距离为3的编码

对于任意i值,可产生2^i-1位的编码,其中包含i个校验位,2^i-i-1个信息位。

信息位长度D增加时,检验位长度P增长缓慢: 2^P >= P+D+1

循环冗余校验码(cyclic-redundancy-check,CRC)

两个重要的应用是磁盘驱动器和数据网络

二维码(two-dimensional code)

一个重要的应用是用在RAID储存系统中。RAID表示(redundant array of inexpensive disks)

BCD加法减法

每个位元出现在传输线上的实际信号格式取决于线路码(line code)。

校验和码

补充:变长编码 待拓展???

原理:基于概率分布特性,采用可变字长编码.

Huffman编码:

组合逻辑设计原理

布尔代数

一致律(冗余项): XY+X’Z+YZ=XY+X’Z (X+Y)(X'+Z)(Y+Z)=(X+Y)(X'+Z)

1.代入定理:所谓代入定理,是指在逻辑等式中任何一个变量A,都可以用任意逻辑表达式代入,则等式仍然成立。

2.反演定理:所谓反演定理,是指对于任意一个逻辑式Y,若将其中所有的“·”与“+”互换,“0”和“1”互换,原变量与反变量互换,则得到的结果就是原函数的反函数 Y’ 。

3.对偶定理: 若两逻辑式相等,则它们的对偶式也相等,这就是对偶定理。所谓对偶式,即:对于任何一个逻辑式Y,若将其中的“·”与“+”互换,“0”和“1”互换,则得到Y的对偶式YD,或者Y与YD互为对偶式。??????

逻辑函数化简基本方法:

组合逻辑

逻辑电路分为两大类:“组合的”和“时序的”. 组合逻辑电路(combinational logic circuit) 和 时序逻辑电路(sequential logic circuit)。

电路的分析和设计

正逻辑和负逻辑

完备归纳法(perfect induction)

一致性定理有两个重要的应用:在组合逻辑电路中,它可以用来去掉某些定时冒险;也是用于寻找主蕴涵项的迭代一致法的基础。

与非=非或,可以用CMOS直接实现

对偶性原理:可以运用对偶性原理证明广义德摩根定理。(待加深 P135)

逻辑函数的标准表示法:

和之积表达式????

相同变量相同编号的最小项和最大项互为反函数。

时延问题

多类门技术中,类似与非门和或非门那样的带取反的门比不取反的门要快。

证明反演定理,曾考过???? 反演定理是否是对偶定理的一个推论

ASIC设计和PLD设计中,化简都很重要

考试可能栽在配项法

电路分析最后一步:通常情况下描述电路的功能:投票电路,校验电路,加法器

设计:一般

卡诺图化简:

奎因——穆克鲁斯基算法(Quine-McCluskey algorithm)

定时冒险

一个信号,以两种形式出现在输出端,因传输时间不同,使二者某段时间不具有相应逻辑关系,造成错误输出,称为冒险或险象( Hazard )

竞争:门电路的两个输入端同时向相反的逻辑电平跳变。

静态冒险

静态冒险(Static hazard) :一个周期内,输出只出现一次瞬时改变。

静态-1型冒险:在输出1的过程中,出现0尖峰。通常产生于最小项生成电路中

静态-0型冒险:通常产生于最大项生成电路中

利用卡诺图发现静态冒险:卡诺图检测:在卡诺图中存在两个质主蕴涵项相切,当从一个质主蕴涵项向另一个转换时,一旦有传递延迟,则产生险态。

消除冒险:添加一致项consensus:增加新的质蕴涵项,覆盖相切的两个质蕴涵。

动态冒险:一个输入转变一次而引起输出变化多次。由于多个不同的延迟路径所产生。

2、3、4变量的卡诺图:不断翻折

无关项处理

禁止态检测电路通常是必须的, 若不影响电路运行,此时可不必刻意区分禁止态和其它状态,可以处理成0,也可以处理成1,按照化简的需要酌情确定。

QM算法

组合逻辑设计实践

有时要求输入变量只能用原变量形式,可作相应的变换

设计文档

设计文档是项目设计正确、可维护的重要基础。

设计文档可以是综合性的单文档描述,也可以是分列的多文档描述形态。

方框图:

圏到圈逻辑设计(目的:使用包含有效电平标识的逻辑符号或信号命名方式使得逻辑电路更容易理解。)

可编程逻辑器件

PLA:

PAL:或门阵列固定、与门阵列可编程、双向输入/输出引脚。

GAL通用阵列逻辑:GAL16V8是一个时序逻辑器件,但可以编程设置为组合逻辑器件。此时,其结构和PAL16L8类似。多了一个输出极性控制的异或门。

CPLD复杂可编程逻辑器件:是将多个PLD集成到单个芯片上,并提供可编程的互连和输入/输出结构。可以把CPLD的基本结构看成由可编程逻辑阵列(LAB)、可编程I/O控制模块和可编程内部连线(PIA)等三部分组成。

译码器

译码器的输出编码通常比其输入编码位数多

真值表

逻辑图

上低下高

2-4译码器 3-8译码器 级联二进制译码器:4-16译码器 5-32译码器

译码器的级联

七段显示译码器

半导体显示:LED 液晶显示:LCD

编码器

器件的输出编码比其输入编码位数少

8-3编码器

3位二进制优先编码器:允许几个信号同时输入,但只对优先级别最高 的进行编码

三态器件

三态缓冲器

三态器件允许多个信号源共享单个线路

三态缓冲器

三态门进入和离开高阻态的延迟时间不同,会造成输出线路上值的混乱,造成同时驱动的冲突现象。解决的方法:设计控制逻辑,保证一段截止时间(dead time),这段时间不应该有任何器件驱动同线。

数据选择器(多路选择器)

一种多路输入,单路输出的逻辑构件。

2-1 multiplexer

n个输入变量 需要m=log n 个控制信号

多路选择器除完成对多路数据进行选择的基本功能外,在逻辑设计中主要用来实现各种逻辑函数功能。用多路选择器实现分时多路转换电路。(将并行输入的数据转换成串行输出)。

方法I:用具有n个选择变量的MUX实现n个变量的函数。

方法Ⅱ:用具有n-1个选择控制变量的MUX实现n个变量函数功能:即从函数的n个变量中任n-1个作为MUX的选择控制变量,并根据所选定的选择控制变量将函数变换成F=∑miDi的形式,以确定各数据输入Di。假定剩余变量为X,则Di的取值只可能是0、1、X或X’四者之一。

把并行处理的数据放在Di端上。在地址端上,周期性的循环加载 00->01->10->11 如此,在输出端上,顺序地送出原先并行的数据。

数据分配器(Demultiplexers)

其功能和多路数据选择器相反。是一种单路输入,多路输出的逻辑构件。从哪一端输出依赖于当时的地址控制端输入。

【例】利用DMUX和MUX设计一个实现8路数据传输的逻辑电路。

多路分配器常与多路选择器联用,以实现多通道数据分时传送。通常在发送端由MUX将各路数据分时送上公共传输线(总线),接收端再由DEMUX将公共线上的数据适时分配到相应的输出端。

大扇出处理:每个输出端增加一个三态缓冲

扇入系数大会有什么影响?

校验电路

异或门和异或非门 用与或非三个门或者用与非门实现

奇偶校验电路

奇偶校验器件74x280:9个输入 2个输出

chapter6-3 ppt 第七张重点

奇偶校验应用:7位海明码纠错电路。

比较器

两种类型:比较器 大小比较器

大小比较器

内部电路图

级联

74x682 只有相等和大于输出 扩展判断输出

加法器、减法器和ALU

ALU:可以根据操作码完成加法、减法等运算功能的电路。

行波进位加法器 属于迭代电路 延迟: t add = t XYCout + (n-2) tCinCout +tCinS

用加法器实现减法器

chapter6-3 第33张ppt存疑

chapter6-3 第35张ppt存疑 如何化简

74x283(4位先行进位加法器) ’283的进位信号c0到c4的延迟很短相当于2个反相门,可以级联扩展计算位数,组间串行进位加法器

74x181 4位ALU

组间先行进位:不同于组间串行进位,先行进位信号直接由输入的操作数决定,没有组间串行的进位信号。

组合乘法器

移位-累加算法的电路实现:最坏20级延迟 延迟估计 进位保留加法(14级延迟)????

时序逻辑

时序电路的输出不仅取决于当前的输入,而且取决于过去的输入序列(状态)。

状态:是一个状态变量集合。包含了在当前输入的基础上预测当前输出的所有的历史信息。

时序电路的状态个数有限:有限状态机

有效电平:通常在时钟的触发沿内状态发生改变。

时钟周期tper、时钟频率、时钟触发沿、占空比

时序电路的类型

双稳态器件

所谓的双稳态元件(或者电路),是指电路有两个稳定的状态,即置位状态和复位状态。Q为1的状态称为置位状态,而Q为0的状态称为复位状态。

双稳态电路的内在特性(inherent)

亚稳态,非有效的逻辑信号,但满足回路方程

任何时序电路都存在亚稳态现象

单稳态

to be or not to be

锁存器与触发器

RS锁存器

S置位 R 复位 S=R=1时,Q=QN=0 S=R=0时,Q=last Q, QN=last QN R和S不能同时取消,否则会导致震荡状态或亚稳态

输入信号宽度必须大于最小脉冲宽度

R'-S’锁存器

R非S非锁存器:低态有效的置位和复位,可以用与非门实现。

具有使能端的RS锁存器

S-R Latch with Enable, 带使能端的RS锁存器(RS闩锁) 受使能信号控制,C为写入条件或指令

D锁存器

数据经非门产生一对互补信号,D型锁存器(D Latch)

建立时间(Set-up time) 保持时间(Hold time)

如何实现边沿触发

用 to be or not to be 电路

边沿触发式(Edge Triggered)触发器

只在时钟信号的上升沿或者下降沿改变状态

主从D触发器 存疑

第1个锁存器称为主(master)锁存器,第2个称为从(slave)锁存器。

传播延迟 (from CLK) 建立时间 (D before CLK) 保持时间 (D after CLK)

具有预置和清零端的正边沿D触发器

具有使能端的边沿触发式D触发器

扫描触发器

扫描触发器除了D输入端以外,还有两个输入端。

TI即Test Input,用来输入测试序列(测试向量)。

TE即Test Enable,用来控制触发器工作状态。

主从式触发器

主从式JK触发器

同时有效则翻转

在触发脉冲的后沿,JK输入的状态变化可能无效。 使用中,尽量保持JK稳定

0钳位 1钳位????

边沿触发式JK触发器

解决主从JK触发器中1和0钳位的问题。

在上升沿时采样输入信号。

T触发器

维持-阻塞D触发器

锁存器和触发器的描述

特征方程

SR锁存器: Q* = S + R’Q

JK触发器: Q* = JQ' + K’Q

T触发器: Q* = Q'

D触发器: Q* = D

状态转移图

时钟控制时序逻辑电路分析

Sequential-Circuit:组合逻辑+记忆电路

Synchronous Sequential Logic

Asynchronous Sequential Logic

同步时序电路的类型

按照输出方程的不同,分为:

状态机分析的步骤

  1. 确定下一状态函数F和输出函数G
  2. 用F和G构造状态/输出表(state/output table),列出所有当前状态和输入的组合,指定电路的下一状态和输出
  3. 画出状态图(state diagram)。
  4. 描述电路的功能。

状态图

State Diagram(状态图)中,离开某个特定状态的所有转移条件,满足:

时序图

同步时序电路的分析步骤

  1. 写出各触发器的激励方程。
  2. 把得到的激励方程代入到触发器的特征方程,得到转移方程/次态方程。
  3. 确定输出方程。
  4. 根据转移方程构造转移表,在转移表中对每一种状态/输入组合添加输出值,构成状态/输出表
  5. 利用状态名得到时序电路的状态图。
  6. 画出时序图。

时钟同步状态机设计

  1. 根据文字描述,构造状态/输出表
  2. (可选)将状态/输出表中的状态数目最小化
  3. 状态赋值,选择一组状态变量编码组合赋给状态
  4. 将状态变量组合代入状态/输出表,建立转移/输出表。
  5. 选择一种触发器作为状态存储器
  6. 构造激励表
  7. 由激励表推导出激励方程
  8. 由转移/输出表推导出输出方程
  9. 画出逻辑电路图。

状态化简

等价状态:设状态S1和S2是完全确定状态表中的两个状态,如果对于所有可能的输入序列,分别从状态S1 和状态S2出发,所得到的输出响应序列完全相同, 则状态S1和S2是等价的,记作(S1, S2) . 或说,状态S1和S2是等价对。等价状态可以合并。

等价状态具有传递性

等价类:彼此等价的状态集合

状态简化的任务是要在原始状态表中找出全部最大等价类(最大等价类集合),并将每一个最大等价类用一个状态来表示。

假定状态S1和S2是完全确定原始状态表中的两个现态,那么S1和S2等价的条件可归纳为在输入的各种取值组合下:

隐含表法化简

不完全确定状态表的简化

不完全确定状态表: 状态表中存在不确定的次态或输出,这些不确定的次态或输出将有利于状态简化。

相容状态:设状态S1和S2是不完全确定状态表中 的两个状态,如果对于所有的有效输入序列,分别从状态S1和S2出发,所得到的输出响应序列(除不确定的那些位之外)是完全相同的,那么状态S1和S2是相容的,或者说状 态S1和S2是相容对,记作(S1,S2)。相容状态可以合并。

状态相容无传递性

相容类:彼此相容的状态集合 最大相容类:不被其他相容类所包含的相容类

作最小化状态表: 最小化状态表(又称最小闭覆盖) 应满足下列三个条件:

状态赋值(状态编码)

状态分配方案的种数:排列数计算

如果两种状态分配在实现逻辑时产生相同的结果,则认为它们是等价的。状态编码分配互补,或状态编码左右互换,都是等价的。

独立状态数: N=(2^K - 1)! / ((2^K-n)!K!)

在同步时序电路中状态分配目的在于:在逻辑化简时,生成尽可能大的必要质蕴含。状态分配的标准就是使得质蕴含达到最大程度。寻找较好的结果。

状态编码:从2^n种可能组合中选择S种编码

遗憾的是:至今没有找到普遍有效的算法实现最佳状态分配,唯一途径是将所有分配方案都试个遍

次佳状态分配方案:相邻状态分配法,建立通用方程法,减少相关性

次佳状态分配方案

相邻状态分配法

处理未用状态方法

最小风险法 最小成本法

反馈时序电路

异步时序电路特征:状态变化不受“统一时钟信号控制”

依电路结构和输入信号形式不同,异步时序电路分类:

双稳态电路、锁存器和触发器等都是反馈时序电路。反馈回路是记忆元件,存储0或1。

基本模式电路,对输入信号的约束:

反馈时序电路的分析步骤
反馈时序电路的分析

多反馈回路中,必须断开所有的反馈,设置虚构的缓冲器和状态变量。

最小割集(cut set):断点数最少的集合

竞争

一个输入信号的变化,引起多个内部状态变量改变,称之为发生了竞争

对于竞争的处理

状态表与流程表

反馈时序电路设计

  1. 根据逻辑要求,建立原始流程表
  2. 将原始状态表简化,得到最简流程表
  3. 对最简流程表进行状态分配
  4. 建立激励表和输出表
  5. 列出激励函数和输出函数表达式
  6. 画出逻辑电路图

原始流程表:每一行含有一个稳态 每个状态决定于上一个状态和输入

本质冒险

本质冒险:当输入信号变化时,电路进入错误状态的可能性。:如果最终状态变量的变化被传回到激励电路输入端之前,输入的变化未被所有的激励电路接收到,就会发生错误。

通俗定义:如果从状态S出发,X的一次变化和三次变化的最终结果状态不一致,就存在本质冒险。

本质冒险是电路中固有的问题,可通过增加延迟解决问题。

时序逻辑设计实践

定时图:

建立时间容限=tclk-tffpd(max)-tcomb(max)-tsetup>0

保持时间容限=tffpd(min)+tcomb(min)-thold>0

开关消颤

双稳态电路消颤

锁存器和上拉电阻消颤

S'-R’锁存器消除击键抖动

总线保持电路

在三态总线中,悬空总线的处理方法

为什么要????

寄存器

共用一个时钟信号的2个或2个以上的D触发器组合在一起,称为寄存器,通常用来存储一组相关的二进制数。

锁存器和触发器的区别:

计数器

计数器:在状态图中包含一个循环的时序电路。

1.功能:对时钟脉冲 CLK 计数。 2.应用:分频、定时、产生节拍脉冲和脉冲序列、进行数字运算等。

按数制分:二进制计数器 十进制计数器 N进制(任意进制)计数器

按计数方式分: 加法计数器 减法计数器 可逆计数(Up-Down Counter)

行波计数器:进位信息像波浪一样由低位向高位,每次传送一次。

延迟时间很长

同步计数器

同步计数器:所有的触发器共用一个CLK信号 使用带有使能端的T触发器

串行同步4位二进制计数器 并行同步4位二进制计数器(最快的二进制计数器)

一次状态转移中有2个以上的计数位同时变化,在译码端可能产生尖峰脉冲(glitch)。 属于功能性冒险

无冒险译码输出:输出延迟一个时钟周期 可使用环形计数器实现

可逆同步计数器169

N进制计数器:用触发器和门电路设计或用集成计数器构成。

十进制异步计数器

提高归零可靠性?

移位寄存器

移位寄存器shift register:是一个n位寄存器,在每一个时钟触发沿到来时就将所存储的数据移一位。

也可以串入并出、并入串出、并入并出

移位寄存器的应用
环形计数器
自校正环形计数器
Johnson计数器

扭环计数器,把n位移位寄存器的串行输出取反,得到具有2n种状态的计数器。 有2n-2n个非正常状态,存在健壮性问题。

线性反馈移位寄存器计数器

计数器的应用

序列信号发生器

迭代电路与时序电路

存储器、CPLD和FPGA

存储器

ROM

ROM的应用

RAM

存储器的容量扩展:位扩展 字扩展 字位同时扩展

CPLD

基本结构:大多由内部PLD、输入输出块和可编程内部连线组成。

FPGA

FPGA和CPLD的区别

数字系统

数字系统的基本模型:由输入部件、输出部件及逻辑系统组成。逻辑系统包括存储部件、处理部件、控制部件三大子系统。

基本子系统:是指构成数字系统时最基本的逻辑功能部件。这些逻辑功能部件有:算术逻辑运算单元ALU、寄存器、RAM、数据总线、控制器。

ALU:是数字系统中对数据进行加工处理的功能部件。

寄存器:加法器和ALU均由门电路组成,它们没有记忆功能,因此运算的结果需要寄存器保存起来。而参与运算的两个数也要取自寄存器。寄存器是数字系统中必不可少的逻辑子系统。 寄存器的分类:通用寄存器 、专用寄存器。

存储器RAM:当存储大量数据时,从经济和成本上考虑,只能使用随机读写的RAM存储器。

总线的概念 :在数字系统中,总线是多个逻辑子系统的联系纽带。所谓总线,就是多个信息源分时传送数据到多个目的地的传送通路。单向总线 双向总线

给不给器件的原理图 ???