编码:触发器(三)

1 前言

  本文是基于《编码》、《穿越计算机的迷雾》两部著作进行读后整理的记录性博客。对书中较为重要的内容进行归纳整理进行二次创作,略去了繁琐的讲述细节,力求简明扼要。


编码:一种由若干符号和规则组成的系统,用来向计算机表述指令。

2 正文

2.1 边沿触发

  前面提到过,我们所设计的 D 触发器是电平触发的,也就是说为了使数据端的值保存在锁存器中,必须把时钟端的输入从 0 变为 1(即高电平)。但是,当时钟端输入为 1 时,数据端的输入是可以改变的,这时数据端输入的任何改变都会反映在 Q 和 Q反的输出值中。

示例
如果从 t_0 时刻开始,数据端(D)和时钟端(CP)各自出现了下图所示的脉冲,那么,在 t_1 时刻,触发器保存的是 0 还是 1?


触发器里保存的是比特 “0”。
很明显,在时钟端为 1 期间,只要数据端(D)的比特改变了,触发器就会随时触发。也就是说,我们在存储过程中数据不能发生任何变化,否则触发器可能存入的不是我们想要存入的值。

  对某些应用而言,电平触发时钟输入已经足够用了;但是对另外一些应用来说,边沿触发(edge-triggered)时钟输入则更有效。对于边沿触发器而言,只有当时钟从 0 跳变到 1 时,才会引起输出的改变。它们的区别在于,在电平触发器中,当时钟输入为 0 时,数据端输入的任何改变都不会影响输出;而在边沿触发器中,当时钟输入为 1 时,数据端输入的改变也不会影响输出。只有在时钟输入从 0 变到 1 的瞬间,数据端的输入才会影响边沿触发器的输出。也即,只有时钟端从低到高,或者从高到低变化的瞬间触发。

从 0 翻转到 1,或者从 1 翻转到 0,这个变化过程称为 “跳变” 或者 “翻转”。时钟端的跳变需要一个过程,可能是几个纳秒,尽管非常非常短暂,但实际上是存在的。反映在图像上,就是两个边沿,即上升沿和下降沿。



我们接下来要介绍的新型触发器叫做 “边缘触发” 的 D 触发器,这种触发器只在脉冲的边沿触发。实际上,边缘触发还分为 “上升沿 D 触发器” 和 “下降沿 D 触发器”。这里我们只介绍前面一种,即上升沿 D 触发器。

  要制作一个上升沿 D 触发器,我们可以尝试将两个 D 触发器首位相连,如下图所示。

  上述是触发器的具体电路,当然我们也可以采用前面介绍过的符号去替代表示:

  这个大触发器实际上由两个小的 D 触发器首尾相连而成,前一个触发器的输出是后一个触发器的输入。这两个触发器不会同时工作,因为控制脉冲是右边触发器的时钟输入,通过非门将控制脉冲以相反的结果传入两个触发器,使得触发器得到的时钟端输入保持相反。

  如果你想在这个电路里保存一个比特,必须先使控制端为 0。这时,左边的触发器 CP = 1,它可以把任何要保存的比特存入,并立即传送给右边的触发器。但是,右边的触发器不工作。

  现在,如果控制端从 0 跳变到 1,那么一切都颠倒了,左边的触发器拒绝再存入任何比特,右边的触发器被 “激活”,把左边那个触发器的输出保存起来。换句话说,直到这个时候,比特才算是被这个大触发器保存了。

  此后,如果控制端从 1 又回到 0,即下降沿,左边的触发器苏醒过来,但右边的触发器却开始休眠,但它仍有能力维持原先的输出不变。这就是说,控制脉冲的下降沿不会改变这个大触发器的内容。

  上面这个二合一的大触发器,不管控制端是 0、1 还是从 1 到 0 的下降沿,它都不能保存比特,除非一种情况,那就是从 0 到 1 的跳变,即上升沿。为了便于表示,上升沿 D 触发器的符号如下图所示。注意,和普通的 D 触发器不同,它的控制端 CP 旁有一个三角形,表明它是边沿触发的。

注:在这一系列的文章中,CP 和 Clk 代表的是同样的意思,如上图所示,在一些图中,CP 端标注的符号是 Clk

2.2 T触发器

  我们对前面介绍的上升沿 D 触发器进行改造,把振荡器的输出与边沿触发的 D 型触发器的时钟端输入连接,同时把 Q反端输出连接到本身的 D 输入端。电路左侧也即我们前面介绍的振荡器,可以提供 0 和 1 之间变化的输出。

  分析上述电路,我们采用的是一个上升沿 D 触发器,只在上升沿时才触发。我们假设初始情况为 Q -- 1,Q反 -- 0,每当振荡器提供上升沿信号时,Clk 变为 1,D 端输出进入触发器,Q 转变为 0,Q反转变为 0,直至下一个上升沿,两者之间的值再一次翻转。

  结合振荡器的时序图,我们可以得到下图所示的时序图:

  Clk 端和振荡器相连,由振荡器提供振荡输入,而 D/Q反端和 Q 端由于只在上升沿时才发生生改变,因此时序图和振荡器的不同。

  如果这个振荡器的频率是 20Hz,那么 Q 的输出频率是它的一半,即 10Hz,由于这个原因,这种电路称为分频器(frequency divider)。上述电路也被叫做 T 触发器,“T” 是英语单词 “Toggle” 的首字母,意思是 “反复”。

  当然,分频器的输出可以作为另一个分频器的 Clk 输入,并再一次进行分频。下图即为将三个分频器连接在一起的示意图。

需要注意的时上述触发器都是上升沿触发器,只在上升沿时触发,因此每次触发都是一次制,不会持续下去。分析上述电路,当振荡器输出上升沿信号时,Clk 转变为 1,Q1 和 Q反的值翻转,但翻转后续触发器不一定触发,因为我们用的是上升沿触发器,只有 Q1 从 1 转变为 0(对应着 Q反从 0 转变为 1)时才触发后面的触发器。后续触发器同理,因此后续触发器无法与前面的触发器保持触发的一致,存在滞后,后面的触发器的频率是前面的一半。

  上图顶部的 4 个信号变化规律如下图所示。这个电路会重复这一过程周而复始地变化下去。

记录下 \overline{Clk}(为了书写方便,后续用 Clk反进行表述),是为了使得四个输出保持一致,而不是和上一个时序图一样,振荡器上升沿, Q 和 Q反的值进行反转,从而导致波形相反(你升我降)。如上图所示,采用 Clk反波形与后续四个输出保持 “一致”。

  我们尝试给这些信号标上 0 和 1:

  试着把这个图顺时针旋转 90°,然后读一读每一行的 4 位数字,它们分别对应了十进制中的 0~15 中的一个数。

  可以看出,这个电路具备了计数功能,当然,如果在这个电路中添加更多的触发器,其计数范围就会更大。把 8 个触发器连接在一起,然后放入一个盒子中,构成了一个 8 位计数器。

  这个计数器称为 “8 位行波计数器”,因为每一个触发器的输出都是下一个触发器的时钟输入。变化是在触发器中一级一级地顺序传递的,最后一级触发器的变化必定会有一些延迟,更先进的计数器是 “并行(同步)计数器”,这种计数器的所有输出是在同一时刻改变的。

  在计数器中输出端用 Q_0~Q_7 标记,在最右边的 Q_0 是第一个触发器的输出。如果将灯泡连到这些输出端上,就可以将 8 位数字读出来。这样一个计数器的时序图可以将 8 个输出分别表示出来,也可以将它们作为整体一起表示出来,如下图所示。

  时钟信号的每一个正跳变发生时,一些 Q 输出可能会改变,而另外一些可能不变,但总体上来说它们所表示的二进制编码递增了 1。

  同样结合这里介绍的方法,我们可以计算振荡器的频率。如果把一个振荡器连接到 8 位计数器的时钟输入端上,那么这个计数器会显示出振荡器经过的循环次数。使用计数器确定振荡器频率的最简单的方法就是把计数器的 8 个输出端分别接到 8 只灯泡上。当所有的输出都是 0 时(即所有灯泡都是熄灭的),启动一个秒表计时;当所有灯泡都点亮时,停止秒表计时。这就是振荡器循环 256 次所需要的时间(00000000~11111111)。

随着触发器功能的增加,它的结构也变得更加复杂,下面给出了一个带预置和清零功能的边沿型 D 触发器。



通常情况下,预置和清零信号输入会覆盖时钟和数据端输入,且两个输入都为 0,当预置信号为 1 时,Q 变为 1,Q反变为 0。当清零信号为 1,Q 变为 0,Q反变为1(同 R-S 触发器中的 S 和 R 输入端一样,预置和清零信号不能同时为 1)。除此之外,该触发器工作原理是和普通边沿 D 触发器是一样的。
电路图符号可以简单地用下图来代替。



3 小结

  编码:触发器(三)篇结合前文介绍的触发器引出 T 型触发器,对 T 型触发器进行了介绍。为了精简内容删减了部分较为详细的书写,仅作为整理总结。

  触发器部分目前共三篇,算是整个部分中的大块头,后续会结合内容再进行修改。呜呼,总算整理完了这一部分!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,306评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,657评论 2 307
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,928评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,688评论 0 220
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,105评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,024评论 1 225
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,159评论 2 318
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,937评论 0 212
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,689评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,851评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,325评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,651评论 3 263
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,364评论 3 244
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,192评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,985评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,154评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,955评论 2 279

推荐阅读更多精彩内容