数字电路·组合与时序之章
组合逻辑电路
设计分析
略,无非是列功能表、真值表、画卡诺图、化简、转换形式、连电路。
经典组合逻辑电路模块
编码器
8(位)-3(线)编码器
其基本功能是输入8位中的一位表示被编码的十进制数,3条输出线表示这个十进制数的二进制形式。
优先编码器
相比于83编码器,优先编码器的输出取决于最高为1的那一位。
74HC148优先编码器
其中的
是完成基本功能的输入输出端,此外,它还有一些其它的端口,能进行扩展功能: 选通输入端,当且仅当 ,电路正常工作,否则,所有输出都被封锁在高电平。 选通输出端,当它为0时表示:电路工作但无编码输入 扩展输出端,它为0时表示:电路工作且有编码输入
译码器
译码器就是编码器的逆,输入三个信号表示一个二进制数,输出八个信号中的一个表示那个二进制数的十进制表示。
常用的译码器是74138译码器:


它有三个附加控制器:
使用多个译码器进行串接时,往往可以在第二个译码器上对高位取反,以此来达到串联效果。
数据选择器
数据选择器有若干个输入信号,一个选择信号(可能有多位)和一个输出。由选择信号决定输出接哪个输入信号。
常用的数据选择器是74HC153双四选一数据选择器。

其中
数值比较器
略,没啥说的,都差不多。
常用的数值比较器是7485数值比较器

其中

首先比较高四位。如果高四位出现了不同,那么自然可以直接输出。如果高四位相同,那么就需要另接入一个数值比较器来比较下四位,然后把下四位的比较结果通过
也就是说,当
加法器
全加器有三个输入
这个功能很简单就能描述:
1 |
|

半导体存储电路
基本的半导体存储电路有锁存器、触发器、寄存器、存储器等。其中触发器可按结构分为基本、同步、主从、边沿触发器,按触发方式分为电平、脉冲、脉冲边沿触发器,按逻辑功能分为RS、JK、D和T触发器等。
SR锁存器
SR锁存器是最基本的半导体存储电路。一般来说,我们所谓的锁存器,都指的是SR锁存器。其电路图如下:

由于或非门可以被“锁定”的特性,这个电路具有了锁存的功能。其状态转移图如下:

状态方程如下:

状态转移图、状态方程、状态表,说的都是一件事,那就是这个元件的状态如何变化。在SR触发器中,记住状态表是最高效的分析方法。
在状态表中,我们观察最后两行,这是状态转移图和状态方程中没有考虑到的。这里的“不定”有两种含义。第一种,当电路正常工作时,如果施加
观察状态转换方法,我们有时将
SR锁存器也可以用与非门构造,如下:

不同的是,这里的
触发器
电平触发
电平触发的意思,就是当且仅当clk
信号是有效信号时,触发器的输出状态随着输入信号变化。如果不是有效信号,则保持之前的输出状态。

电平触发有时会因为一些短暂的噪声而影响整个输出,因此我们要考虑其它触发方式
脉冲触发
首先来考虑主从SR触发器(也叫“脉冲触发的SR触发器”)。主从SR触发器的结构和符号如下:

可以看出,一个脉冲触发的SR触发器,是由两个电平触发的SR触发器接成的。
接下来我们考虑JK触发器。

这里在输出端和输入端之间接了一个反馈。即:

状态表:

接下来,我们讨论一下JK触发器是怎么进行状态转移的。JK的主触发器仍然是一个电平触发的SR触发器,但是由于JK触发器的反馈机制,当
于是,我们可以知道所谓“脉冲触发”到底是什么意思。
- 触发器的翻转分两步动作,首先,在
时,主触发器接收输入信号,进行动作,而从触发器不动。第二步, 的信号消失时(有的人把这个动作表述为“下降沿来临时”),从触发器根据主触发器的状态进行动作。由于输出信号是从触发器的输出信号,我们看起来,脉冲触发的触发器进行动作总是发生在 信号的下降沿。 - 主触发器本来是一个电平触发的SR触发器,所以在
的全部时间,输入信号都会对主触发器起作用。
边沿触发
边沿触发是最简单的,它的次态仅仅取决与
按逻辑功能的分类
SR触发器和JK触发器的逻辑功能前面已经讲了。接下来介绍两种其它的触发器:
T触发器
T触发器的功能简单来说是:“0保持,1取反”,即:
0 0 0 0 1 1 1 0 1 1 1 0 D触发器
D触发器的功能简单来说是:“延迟一位”,即:
0 0 0 0 1 0 1 0 1 1 1 1
存储器
首先明确一个概念:怎么表达一个存储器的大小呢?书上说:“通常写成(字数)x(每个字的位数)”的形式。什么是字?字就是这个存储器输出的东西。存储器每读入一个地址,就会输出一个01串,这个01串就是一个“字”,这个01串的长度就是“每个字的位数”。那么有人说,假设每个字的位数是
随机存取存储器RAM
可以随时从任何一个指定的地址读出数据,也可以随时将数据写入任何一个指定的存储单元中去,但是掉电后数据会丢失。其基本结构如下:

只读存储器ROM
ROM的基本结构如下:

我们可以考察一下二极管ROM的详细结构。

在地址译码器中,看纵列,每个纵列构成了一个二极管与门。于是:
现在看存储矩阵,看横行,每个横行构成了一个二极管或门,比如
存储器容量的扩展
位扩展
当字数够用而每个字的位数不够时,可以使用位扩展。位扩展很简单,只需要把所有地址线、读写控制线、
线(CS‘线就是片选输入端,当 时,这个片才工作)统统拧在一起就行了,如下是把8个1024x1位存储器位扩展为一个1024x8位存储器的过程:字扩展
当位数够用而字数不够时,可以使用字扩展。字扩展的接法是:首先把每个片的每个输出端,每个低位地址端,读写控制线并联起来,然后在新的地址位上加入一个译码器,通过译码器和CS端来控制不同的片工作与否,以达到扩展字数的目的。如下图是把4个256x8存储器接成一个1024x8存储器的过程:
时序逻辑电路
时序逻辑电路的特点是:任意时刻的输出状态不仅仅和当前的输入有关,还和电路之前的状态有关。其基本结构是由存储器电路和组合逻辑电路组成的。如下图所示:

描述时序逻辑,一般用三个方程。下面所说的“Q状态”指的是存储电路中各触发器的输出端状态:
状态方程
状态方程描述的是前一次的 状态和后一次的 状态的关系。驱动方程
驱动方程描述的是触发器各输入端口和电路的 状态以及输入信号的关系。输出方程
输出方程描述的是电路的输出信号和输入信号以及 状态的关系。
时序逻辑电路按照电路状态转换情况不同,分为同步时序逻辑电路(所有触发器共用一个时钟信号)、异步时序逻辑电路(有些触发器的时钟信号可能是其它触发器的输出或者其它信号,总之不是共用一个时钟信号)。
按照输出变量是否和输入变量直接相关,分为Mealy型(外部输出和触发器的状态以及输入信号有关)和Moore型(外部输出仅与触发器的状态有关)。
时序逻辑电路的分析
分析时序逻辑电路的基本纲领是:
- 根据电路逻辑图写出各个触发器的驱动方程(基本形式为:
)和输出方程 - 把各驱动方程带入触发器的特性方程,得到电路的状态方程(基本形式为:
) - 列出逻辑转换表、逻辑转换图
- 分析电路功能
以下以一些例子说明这个过程。
同步时序逻辑电路分析

列电路驱动方程:
输出方程:电路所用触发器是
触发器,其特性方程为: ,把驱动方程带入特性方程,有:列出状态转移表:
这个表有三部分:
。其中 栏要预先穷举所有组合, 栏和 栏根据状态方程和输出方程书写。分析,得这个电路是一个七进制加法计数器,
是进位信号。
同步Mealy时序逻辑电路分析

写驱动方程
由
触发器的特性方程 ,写状态方程:写输出方程:
写状态转移表:
A Q2 Q1 Q2* Q1* Y 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 经分析,其是四进制加减计数器,输入控制加减。状态转换图如下:
异步时序逻辑电路分析

写出驱动方程:
根据
触发器的特性方程 ,写出状态方程:写状态转换表。
首先画一张空表
然后填写Q和已确定的
写出可以写出的
,比如根据Q0*,写出由Q0*确定的时钟信号
, .因为这两个信号都是 ,所以在 的地方画下箭头根据已经确定的
,填写 .在 有下降沿时,根据状态方程计算状态;当 不是下降沿时,直接保持 (原状态)的值根据
,写出 (连续1串的末尾处填写↓),仿照上面的过程填写 ,最后填写 .根据表格画出状态转移图,发现其为模十减法计数器
时序逻辑电路设计
设计时序逻辑电路的纲领就是把分析的过程反过来
- 根据设计要求设定状态,绘制状态转换图和表
- 根据触发器类型对状态方程进行逻辑化简
- 写出输出方程和驱动方程
- 根据输出方程和驱动方程画电路图
- 验证自启动性
下面以一些例子说明这个过程:
同步时序逻辑电路设计
【例】设计一个同步13进制加法计数器。
绘制状态转换图:
根据图列出状态转换表:
进行逻辑化简,画卡诺图:
在使用JK触发器时,因为JK触发器的特性方程是(以
为例子): 所以我们终究是要化简成像这样的形式,才能进行下一步驱动方程的书写的。所以,在化简时,我们可以在卡诺图中画一条“鸿沟”,把 和 的部分分割开,合并“1”格画卡诺圈时不跨越“鸿沟”,这样的话,化简出来就直接是上面式子的形式了。如图,可以写出各状态方程:
根据JK触发器的特性方程,可以直接写出驱动方程:
画出电路图
异步时序逻辑电路设计
【例】用JK触发器设计一个异步五进制计数器
绘制状态转换图(略),时序波形图:
在保证状态变化的时候必有触发脉冲的前提条件下, 选择在状态不变的时候触发脉冲最少的, 使得
的输入条件简化。根据以上准则,选定各触发器的触发信号源;列写状态转移表:-
状态方程:
驱动方程:
计数器
计数器是用以统计输入脉冲CP个数的电路。常用的计数器有以下这么几种:
任意进制计数器的构成
假设已经有了
时主要方法有置零法和置数法两种。置零法是在电路从
计数到 时,外接一个 的译码器,产生一个置零信号,接入置零端。因为电路一经过 状态就会产生置零信号,进而被置入 状态,因此 并不会出现在稳定循环中。以上是异步置零的情况,如果是同步置零的话,需要在 处进行译码,传回置零信号,然后在下一个时钟触发置零。其逻辑转换图如下:下图是用置零法把同步十进制计数器74160接成同步六进制计数器的电路图:
这里的清零端是异步清零。此时标志“进位”这个动作发生的信号是进位输出信号的下降沿。这种接法的清零信号持续时间非常的短,有可能导致电路出错。可以在进位输出前加一个锁存器,如下:
此时如果电路进入
状态,在 门后输出低电平,把与非门SR锁存器置1, 端输出低电平,接入低电平有效置零端 ,把电路置零。而因为锁存器的存在,置零信号会维持一段时间,直到计数脉冲回到低电平,SR锁存器才被置零。置位法是通过给计数器重复置入某个数值的方法跳过
个状态,从而获得 进制计数器的。其逻辑转换图如下:下图是一种用置数法构成的电路:
时应用多片N进制计数器进行组合。如果M可以因式分解成多个小于N的数之和,即:
,那么可以把第 片计数器接成 进制,然后采用串行进位或者并行进位把他们链接起来。串行进位指的是以低位片的进位输出信号作为高位片的时钟信号,如下图是把两个十进制计数器用串行接法接成一个一百进制计数器:
在第9个
信号来临时,第一个计数器的状态为 ,进位输出 出现高电平,第二片的时钟信号在低电平;当第10个 信号到来时,第一个计数器的状态变为 ,进位输出 输出低电平,第二片的时钟信号出现一个上升沿,第二片的状态变成 ,以此实现进位功能。并行进位指的是以低位片的进位输出信号作为高位片的使能信号,两片的时钟同时接
输入信号,如下图是把两个十进制计数器用并行接法接成一个一百进制计数器:在第9个
信号来临时,第一个计数器的状态为 ,进位输出 出现高电平,第二片使能开启,开始工作;下个 信号来临,第二片正在工作,状态变为 ,第一片的状态变为 ,进位输出低电平,第二片使能关闭。如果M是素数,或者不能像这样因式分解,则必须采用整体置零/置数法。
移位寄存器型计数器
用
用
序列信号发生器
计数译码型
其原理是由一个计数器和一个数据选择器连接,计数器的计数输出连在数据选择器的地址输入上。在数据选择器的信号输入端,预置已知的序列,然后用

如上图,发生的序列是
当然,上面的数据选择器也可以换成自己搭建的组合逻辑译码电路(输入计数信号,输出该信号对应的序列的值)
反馈移位型
其一般电路如下:

驱动方程为:
在设计时,首先需要注意,在一个周期内状态编码不能重复;然后根据序列长度
【例】设计反馈移位型序列发生器,序列为
检查是否有重复和确定触发器数目:
应用四个触发器
确定输出信号的位置
一般来说,选取最后一个触发器的输出端,即
设计组合逻辑反馈电路
这里,实际上就是要求写出
和 的函数关系式。首先列出表,在
里填入要输出的序列:然后因为“移位”的特点,把
整体向上提一格,填入 ;把 整体往上提一格,填入 ;......把 整体往上提一格填入 (这里的“往上提”是含有循环意味的):于是,我们就得到了逻辑关系表,然后画卡诺图化简,连电路就行了。
本站的运行成本约为每个月5元人民币,如果您觉得本站有用,欢迎打赏: