你有没有遇到过这样奇怪的事:你一直以为自己知道某件事,但当你试着向别人解释它时,你才发现自己的论述中存在漏洞和逻辑上的差异?这就是我最近所遇到的情况,当时有人问我锁存器和触发器之间的区别,以及为什么它们都与寄存器有关。
取决于一个人的背景,这在电子学中可能是个有点主观的领域,而随着术语的不断发展,我们又可能对此产生进一步混淆。因此,本文要做的就是以我的理解来解释这些事物,然后欢迎各位专家发表评论,以便了解我的观点是否获得认同。
我们在微控制器(MCU)等电子系统中存储数据的方式之一是在寄存器中。一些寄存器由一个位/比特组成,而另一些寄存器由多个位组成。“寄存器文件”一词则是指一组共享通用功能和目的的寄存器。
寄存器的特性与半导体存储器相类似,例如每个基元/单元可存储一个二进制数字或位(以0或1的形式表示)。但是,存储器往往用于存储相对大量的信息(指令和数据),而寄存器则更趋于专业化,用于实现记住配置和控制信息、保存输入/输出值,以及临时存储逻辑或算术运算结果等任务。
另一个区别是存储单元往往相对简单,需要尽可能少地使用晶体管来完成工作。这是因为它们太多了,因此就功耗而言应保持小巧、快速和简约。相比之下,寄存器由于数量要少得多,因此在大小和功耗方面约束就比较少,并且通常具有与硬件相关的更高级的特殊控制和功能。
每个寄存器单元的核心都是一个双稳态电路,据此就可以以0或1的形式存储信息。这种电路可能有一个或多个控制输入,可能有一个数据输入,以及一个或两个输出。如果有第二个互补的QB输出存在,那么它将呈现与主输出Q相反或互补的逻辑值。
就控制信号而言,这种电路可以是电平触发(异步,透明或不透明)或边沿触发(同步或时钟)方式。前者的一个例子是置位复位锁存器(SR锁存器),后者的一个例子是数据型触发器(D型触发器),详见图1。
图1:SR锁存器和D型触发器的图形符号及真值表对比。
触发器一词通常在这种电路的背景下使用,因为这种电路在两种状态之间来回触发翻转。历史上,“触发器”一词通常包含电平触发和边沿触发两种类型。但是最近,“锁存器”一词被普遍用来指代电平触发的版本,而“触发器”一词则用来指代边沿触发的版本。常见的寄存器类型如下:
顺便说一句,JK类型被认为是最通用的锁存器和触发器,因为可以考虑将JK锁存器用作SR锁存器,同时可以将JK触发器配置为D型或T型触发器。
多谐振荡器是一种用于实现各种简单两态功能的电子电路。多谐振荡器有以下三种类型:
之所以在此提及多谐振荡器,是因为双稳态多谐振荡器可用于存储一位信息,也即所谓的触发器。
所以你怎么看?你是否同意我上面的介绍方式?另外,你有什么希望分享或想要补充的内容吗?
(本文授权编译自EDN姐妹网站EEWeb,原文参考链接:Registers vs. Latches vs. Flip-Flops,由赵明灿编译)
本文为《电子技术设计》2021年1月刊杂志文章,版权所有,禁止转载。免费杂志订阅申请点击这里。
(责编:赵明灿)