当前位置:首页 > 模拟 > 模拟
[导读]除了计数功能外,计数器产品还有一些附加功能,如异步复位、预置数(注意,有同步预置数和异步预置数两种。前者受时钟脉冲控制,后者不受时钟脉冲控制)、保持(注意,有保持进位和不保持进位两种)。虽然计数器产品

除了计数功能外,计数器产品还有一些附加功能,如异步复位、预置数(注意,有同步预置数和异步预置数两种。前者受时钟脉冲控制,后者不受时钟脉冲控制)、保持(注意,有保持进位和不保持进位两种)。虽然计数器产品一般只有二进制和十进制两种,有了这些附加功能,我们就可以方便地用我们可以得到的计数器来构成任意进制的计数器。下面我们举两个例子。在这两个例子中,我们分别用同步十进制加法计数器74LS160构成一个六进制计数器和一个一百进制计数器。

因为六进制计数器的有效状态有六个,而十进制计数器的有效状态有十个,所以用十进制计数器构成六进制计数器时,我们只需保留十进制计数器的六个状态即可。74LS160的十个有效状态是BCD编码的,即0000、0001、0010、0011、0100、0101、0110、0111、1000、1001[图5-1]。

图5-1

我们保留哪六个状态呢?理论上,我们保留哪六个状态都行。然而,为了使电路最简单,保留哪六个状态还是有一点讲究的。一般情况下,我们总是保留0000和1001两个状态。因为74LS160从1001变化到0000时,将在进位输出端产生一个进位脉冲,所以我们保留了0000和1001这两个状态后,我们就可以利用74LS160的进位输出端作为六进制计数器的进位输出端了。于是,六进制计数器的状态循环可以是0000、0001、0010、0011、0100和1001,也可以是0000、0101、0110、0111、1000和1001。我们不妨采用0000、0001、0010、0011、0100和1001这六个状态。

如何让74LS160从0100状态跳到1001状态呢?我们用一个混合逻辑与非门构成一个译码器[图5.3.37b],当74LS160的状态为0100时,与非门输出低电平,这个低电平使74LS160工作在预置数状态,当下一个时钟脉冲到来时,由于等于1001,74LS160就会预置成1001,从而我们实现了状态跳跃。

图5.3.37b 用置数法将74160接成六进制计数器(置入1001)

比这个方案稍微繁琐一点的是利用74LS160的异步复位端。下面这个电路中[图5.3.34],也有一个由混合逻辑与非门构成的译码器。

图5.3.34 用置零法将74LS160接成六进制计数器

不过,这个译码器当输入为0110时才输出低电平,使74LS160异步复位,进入0000这个状态。从0000状态开始,随着时钟脉冲的不断到来,74LS160依次变为0001、0010、0011、0100、0101、和0110状态[图5-2]。可能有人说:“不对!这个电路总共有七个状态,应该是七进制计数器呀!”我们说,这个电路虽然要经历七个状态,但是只需六个脉冲就完成一个计数循环,因此它仍是六进制计数器。

图5-2

我们仔细分析一下。假设74LS160的初始状态为0000,第一个时钟脉冲到达后,它的状态变为0001,第二个时钟脉冲到达后,它的状态变为0010,……,第五个时钟脉冲到达后,它的状态变为0101,第六个时钟脉冲到达后,它的状态变为0110。当74LS160处于0110这个状态时,译码器输出低电平,使74LS160异步复位,进入0000这个状态。这段话里,“异步复位”是一个关键词。与同步复位不同,异步复位不受时钟脉冲的控制。于是,译码器的输出刚变成低电平,74LS160的状态就变成了0000。理想情况下,74LS160在第六个时钟周期内首先在0110状态停留片刻,然后就稳定地停留在0000状态。我们知道,计数器的工作对象是时钟脉冲。计数,就是计时钟脉冲的个数。在我们这个例子中,74LS160从0000状态出发,经过六个(而不是七个)时钟周期又回到了0000状态,也就是说,每六个(而不是七个)时钟脉冲就使74LS160的状态循环一次。因此,这个电路是一个六进制计数器。计数循环中包括0000、0001、0010、0011、0100和0101这六个稳定状态。可能有人说:“唔,听你这么一解释,我也觉得它是六进制计数器。不过,把七个状态算成六个总是有点儿别扭。唉,只要它能工作,我就不计较它是经历六个状态还是七个状态了。”我说:“对,我也这样想。然而,事与愿违呀!不改进的话,这个电路还真不能工作。”为什么呢?我们知道,计数器的状态是触发器记忆的。74LS160有四个触发器,分别记忆。这四个触发器的工作速度是有差异的。在74LS160从0110变成0000的过程中,和的状态不变,和的状态要从1变成0。我们假设比快,那么刚刚从1变0时,仍然处于1状态。这时,译码器的输出就不是低电平了,74LS160的异步复位信号就消失了。在异步复位信号持续时间过短的情况下,将保持1状态不变。于是74LS160将停留在0010状态,而不是我们期望的0000状态。显然,这是一种竞争冒险现象,因为74LS160是否能够从0110变成0000取决于和的竞争结果。怎样使异步复位信号持续足够长的时间呢?我们来看看这个电路[图5.3.36]。

图5.3.36  图5.3.34电路的改进

两个与非门构成了RS锁存器,以它的端输出的低电平作为74LS160的异步复位信号。若74LS160从0000状态开始计数,则第六个时钟脉冲上升沿到达时进入0110状态,使RS锁存器置位,端输出低电平。74LS160在0110状态作短暂停留后,迅速转入其它状态,如0010或0100,译码器输出的负脉冲消失。如果我们把这个窄脉冲直接作为74LS160的异步复位信号,计数器不一定能够可靠地工作。如果我们把这个窄脉冲作为RS锁存器的置位信号,把时钟脉冲作为RS锁存器的复位信号,再将RS锁存器的作为74LS160的异步复位信号,计数器一定能够可靠地工作,因为输出的负脉冲的宽度与时钟脉冲高电平的持续时间相等。

第二个例子要求我们构成一百进制计数器,也就是说,计数器的状态为0010到9910。因为100等于10乘以10,所以我们可以用两个74LS160构成一个一百进制计数器,其中一个计数器的状态表示个位数,另一个计数器的状态表示十位数,后者在前者的进位信号控制下计数。我们有两种方案。第一种方案称为并行进位方式[图5.3.39]。

图5.3.39 例5.3.3电路的并行进位方式

这种方案的特点是两个74LS160的CP端都接到时钟脉冲上。不过,第一个74LS160始终工作在计数方式,每一个时钟脉冲都使其状态发生变化;第一个74LS160只有在第一个74LS160进位输出为高电平是才工作在计数方式,每十个时钟脉冲才使其状态发生变化。若计数器从0010状态开始计数,则第九个时钟脉冲到达后,第一个74LS160的状态变为910且进位输出变为高电平,使第二个74LS160进入计数方式。因为第二个74LS160进入计数方式的时间比第九个时钟脉冲到达的时间晚,就是说,第九个时钟脉冲到达时第二个74LS160尚未进入计数方式,所以,第九个时钟脉冲并不能使第二个74LS160的状态发生变化,其状态仍为010。于是,计数器的状态为0910。第十个时钟脉冲到达后,第一个74LS160的状态变为010且进位输出变为低电平,使第二个74LS160退出计数方式。因为第二个74LS160退出计数方式的时间比第十个时钟脉冲到达的时间晚,就是说,第十个时钟脉冲到达时第二个74LS160尚未退出计数方式,所以,第十个时钟脉冲使第二个74LS160的状态发生变化,其状态变为110。于是,计数器的状态为1010。第二种方案称为串行进位方式,这种方案的特点是,两个74LS160都始终工作在计数方式。不过,第一个74LS160的CP端接到时钟脉冲上,每一个时钟脉冲都使其状态发生变化;第一个74LS160的CP端接到第一个74LS160进位输出上,每十个时钟脉冲才使其状态发生变化。经常有学生问:“为什么在第一个74LS160的进位输出端和第二个74LS160的时钟脉冲输入端之间要加上一个非门呢?”这里面有点儿奥妙。若计数器从0010状态开始计数,则第九个时钟脉冲到达后,第一个74LS160的状态变为910且进位输出变为高电平。如果没有这个非门,第一个74LS160的进位输出端的电平变化将使第二个74LS160的状态发生变化,其状态变为110。于是计数器的状态就从0810变成1910,而不是我们所希望的0910。有了这个非门,情况就不一样了,因为第一个74LS160的进位输出端的脉冲上升沿被非门转换成下降沿,所以第一个74LS160的进位输出端的电平变化并不能使第二个74LS160的状态发生变化,其状态仍为010。于是计数器的状态就从0810变成我们所希望的0910。第十个时钟脉冲到达后,第一个74LS160的状态变为010且进位输出变为低电平。因为第一个74LS160的进位输出端的脉冲下降沿被非门转换成上升沿,所以第一个74LS160的进位输出端的电平变化使第二个74LS160的状态发生变化,其状态变为110。于是计数器的状态又从0910变成1010。

我们再举一个用74LS160构成二十九进制计数器的例子。因为29是一个素数,除了1和它本身外,不能表达为两个整数的乘积,所以我们要把工作分解成两个步骤。第一步,我们用两个十进制计数器构成一个一百进制计数器;第二步,我们用这个一百进制计数器构成二十九进制计数器。第一步可以采用并行进位方式或串行进位方式实现;第二步可以用置位法或复位法实现。因为这里要对两个74LS160同时置位或复位,所以也称为整体置位法或整体复位法。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

DFP 是什么? 稳控科技编写的一套数据转发规则, 取自“自由转发协议 FFP(Free Forward Protocol)” ,或者 DFP(DoubleF Protocol), DF 也可以理解为 Datas Fo...

关键字: 协议 转发数据 应用实例 中继 网关

香港2022年7月7日 /美通社/ -- 寿康集团有限公司(“寿康集团”或“本公司”及其附属公司,统称“本集团”;股份代号:0575.HK)旗下全资附属公司、并以香港为基地的人工智能创新公司及衰老与长寿深层生物...

关键字: 时钟 VI GE EV

预处理阶段测试设备状态;向DMA控制器的设备地址寄存器中送入设备号,并启动设备;向主存地址计数器中送入欲交换数据的主存起始地址;向字计数器中送入欲交换的数据个数 。

关键字: DMA 预处理 计数器

文章转自知乎[MIPI自学笔记],作者IEEE1364https://zhuanlan.zhihu.com/p/926820471 MIPI概述MIPI是MobileIndustryProcessorInterface的...

关键字: MIPI LAN 数据流 时钟

1、为设计执行综合时使用的各种设计约束是什么?1.1、创建时钟(频率、占空比)。1.2、定义输入端口的transition-time要求1.3、指定输出端口的负载值1.4、对于输入和输出,指定延迟值(输入延迟和输出延迟)...

关键字: 数字芯片 时钟 WIRE CK

如今,SoCs正变得越来越复杂,数据经常从一个时钟域传输到另一个时钟域。上图信号A由C1时钟域触发,被C2时钟域采样。根据这两个时钟之间的关系,在将数据从源时钟传输到目标时钟时,可能会出现不同类型的问题,并且这些问题的解...

关键字: 时钟 触发器 同步器 SETUP

本文主要介绍各种类型的跨时钟域问题。同步时钟是指具有已知相位和频率关系的时钟。这些时钟本质上是来自同一时钟源。根据相位和频率关系,可分为以下几类:具有相同频率和零相位差的时钟具有相同频率和固定相位差的时钟具有不同频率和可...

关键字: 异步 时钟 相位差 SETUP

跨时钟域验证可分为结构验证和功能验证两类。结构验证确保在需要的地方添加了适当的同步逻辑。功能验证确保已添加的逻辑实现了预期的功能。仅通过执行结构验证,就可以检测到许多CDC问题。这些检查比功能验证更简单、更快。因此,验证...

关键字: 时钟 数据传输 信号 TE

A/D转换的基本原理在一系列选定的瞬间对模拟信号进行取样,然后再将这些取样值转换成输出的数字量,并按一定的编码形式给出转换结果。整个A/D转换过程大致可分为取样、量化、编码三个过程。取样-保持电路取样-保持电路的基本形式...

关键字: 转换器 A/D A/D转换器 计数器

来源:射频百花谭规范很重要工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件还是硬件),不按照规范走几乎是不可实现的。逻辑设计也是这样:如果不按规范做的话,过一个月后调试时发现有错,回头再看自己写的...

关键字: VERILOG 时钟 计数器 仿真验证

模拟

31144 篇文章

关注

发布文章

编辑精选

技术子站

关闭