# 移位寄存器

库： | 存储器
引入版本： | 2.3.0
外观： |

## 行为

该寄存器由多个级（stage）构成：每次时钟触发时，各级可以把前一级中的值移入自身，同时在第一级装入一个新值。该组件还支持对所有级的数值并行加载与读出。

## 引脚

* 号表示这些引脚仅在启用 并行加载属性时才会出现。

西侧边缘，顶部引脚，标记为 R（输入，位宽为 1）
  清零：当为 1 时，所有级都会被异步清零为 0（全零）。也就是说，只要 清零 输入为 1，无论时钟输入如何，所有级的值都会被强制固定为 0。
西侧边缘，第 2 个引脚，标记为 M2 [load]（输入，位宽为 1）
  加载：当该输入为 1 且 清零 为 0 时，所有级将从数据引脚装入新值；当该输入为 0 或未连接时，不进行装载。
西侧边缘，第 3 个引脚，标记为 M1 [shift]（输入，位宽为 1）
  移位：当该输入为 1 或未连接时，所有级会在时钟触发时向前推进（移位）；当该输入为 0 时，不推进（不移位）。若 加载 为 1，则该输入被忽略。
西侧边缘，第 4 个引脚，标记为带三角形的 1→C3（输入，位宽为 1）
  时钟：当该输入按 触发方式属性所指定的方式被触发时，组件可能会推进各级（移位），或装载新值。
西侧边缘，第 5 个引脚，标记为 1,3D（输入，位宽与数据位宽属性一致）
  数据：在推进各级（移位）时，该输入端的值会被装入第一级。
*西侧边缘，其余标记为 2,3D 的引脚（输入，位宽与数据位宽属性一致）
  数据：当时钟触发且 加载 输入为 1 时，这些输入端的值会分别装入各级。最上方的输入对应第一级（最新的一级）。
东侧边缘，最底部引脚（输出，位宽与数据位宽属性一致）
  输出：输出最后一级（最旧的一级）中存储的值。
*东侧边缘，其余引脚（输出，位宽与数据位宽属性一致）
  输出：分别输出各级中存储的值，其中第一级（最新的一级）对应最上方的输出引脚。

## 属性

当组件被选中或正在放置时，数字键 0–9 可修改其 移位级数属性，Alt-0 到 Alt-9 可修改其 数据位宽属性。

数据位宽
  每一级中存储数值的位宽。
移位级数
  该组件包含的级（stage）数量。
并行加载
  若为 是，则组件会增加用于并行访问所有各级数值的输入与输出引脚。
触发方式
  配置时钟输入的解释方式：上升沿 表示在时钟从 0 上升到 1 的瞬间更新；下降沿 表示在时钟从 1 下降到 0 的瞬间更新。
标签
  与该组件关联的标签文本。
标签字体
  用于绘制标签文本的字体。

## 手形工具行为

如果 并行加载属性为 否，或 数据位宽 属性大于 4，则用手形工具点按该寄存器不会产生任何效果。否则，单击组件会使被单击的那一级获得键盘焦点（以红色矩形标识），此时输入一个十六进制数字即可修改该级中存储的值。

## 文本工具行为

可用于编辑与该组件关联的标签文本。

返回 库参考手册