D/T/J-K/S-R 触发器
| 库: | 存储器 | ||||||||||||||
| 引入版本: | 2.0 Beta 1 | ||||||||||||||
| 外观: |
| D | T | J-K | S-R | |
|---|---|---|---|---|
| 经典 Logisim: |
|
|
|
|
| Logisim-evolution: |
|
|
|
|
行为
每个触发器存储 1 位数据,并通过东侧的 Q 输出端给出该值。通常可通过西侧的输入来控制其状态:当各触发器上以三角形标记的时钟输入从 0 上升到 1(或按属性配置为其它触发方式)时,触发器会在该上升沿按下表所示更新其存储值。
| D 触发器 | T 触发器 | J-K 触发器 | S-R 触发器 | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
另一种描述这些触发器不同行为的方法,是用文字进行说明。
-
D 触发器: 当时钟触发时,触发器存储的值更新为该瞬间 D 输入(数据)的值。
-
T 触发器: 当时钟触发时,触发器存储的值是翻转还是保持不变,取决于 T 输入(翻转)为 1 还是为 0。
-
J-K 触发器: 当时钟触发时,若 J 与 K 均为 1,则存储值翻转;若二者均为 0,则保持不变;若二者不同,则当 J(Jump)为 1 时输出变为 1,当 K(Kill)为 1 时输出变为 0。
-
S-R 触发器: 当时钟触发时,若 R 与 S 均为 0,则保持不变;若 R 输入(Reset)为 1,则输出变为 0;若 S 输入(Set)为 1,则输出变为 1。若两个输入均为 1,则行为未指定。(在 Logisim-evolution 中,触发器中的值保持不变。)
默认情况下,时钟在上升沿触发——也就是时钟输入从 0 变为 1 的瞬间。不过,“触发方式”属性允许将其改为下降沿(时钟从 1 变为 0)、高电平(时钟为 1 的整个期间)或低电平(时钟为 0 的整个期间)。由于触发器在被要求以不确定的时长进行翻转时会表现得不可预测,T 与 J-K 触发器不提供电平触发选项。
引脚
- 西侧(三角形标记,输入,位宽 1)
- 时钟输入:当该输入值从 0 切换到 1 的瞬间(上升沿)时,触发器会根据西侧的其它输入更新其存储值。只要该输入保持为 0 或 1,西侧的其它输入就不会产生任何影响。
- 西侧其它标记引脚(输入,位宽 1)
- 这些输入用于控制触发器在时钟上升沿触发瞬间如何更新其存储值。其具体行为取决于触发器类型;上表已概括了这些行为。
- 东侧上端(标记为 Q,输出,位宽 1)
- 输出触发器当前存储的值。
- 东侧下端(输出,位宽 1)
- 输出触发器当前存储值的反码(补码)。
- 南侧东端(输入,位宽 1)
- 异步复位:当为 0 或未定义时无效;只要为 1,触发器的值就会被固定为 0。这一过程是异步的——即不考虑当前时钟输入值。只要该输入为 1,其它输入均不起作用。
- 南侧西端或北侧(输入,位宽 1)
- 异步置位:当为 0 或未定义时无效;当为 1 时,触发器的值就会被固定为 1。这一过程是异步的——即不考虑当前时钟输入值。只要该输入为 1,其它输入均不起作用,但异步复位输入具有更高优先级。
属性
- 触发方式
-
配置如何解释时钟输入。
上升沿
表示时钟从 0 上升到 1 的瞬间更新;下降沿
表示时钟从 1 下降到 0 的瞬间更新;高电平
表示只要时钟输入为 1 就持续更新;低电平
表示只要时钟输入为 0 就持续更新。注意:后两项对 T 与 J-K 触发器不可用。 - 标签
- 触发器标签中显示的文本。
- 标签字体
- 用于渲染标签的字体。
- 外观
- 经典 Logisim:以 Logisim 传统样式呈现触发器;Logisim-HolyCross / Logisim-Evolutions:以 IEC 风格的新样式呈现触发器。
手形工具行为
使用手形工具单击触发器会翻转其中存储的位,除非异步置位/复位输入当前固定了触发器的值。
文本工具行为
允许编辑与组件关联的标签。