# 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 | Q
--- | ---
0 | 0
1 | 1
T | Q
--- | ---
0 | Q
1 | Q '
J | K | Q
--- | --- | ---
0 | 0 | Q
0 | 1 | 0
1 | 0 | 1
1 | 1 | Q '
S | R | Q
--- | --- | ---
0 | 0 | Q
0 | 1 | 0
1 | 0 | 1
1 | 1 | ??

另一种描述这些触发器不同行为的方法，是用文字进行说明。

- 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 风格的新样式呈现触发器。

## 手形工具行为

使用手形工具单击触发器会翻转其中存储的位，除非异步置位/复位输入当前固定了触发器的值。

## 文本工具行为

允许编辑与组件关联的标签。

返回 库参考手册