# 随机数生成器

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

## 行为

该组件生成伪随机数序列。当组件使能时，每次时钟按触发方式触发，都会使序列前进到下一个数。该组件使用的伪随机算法是线性同余发生器：从种子 r0 开始，下一个数 r1 由下式给出：

r1 = (25,214,903,917 r0 + 11) mod 248

再下一个数 r2 由 r1 通过同样的计算得到，依此类推。该序列是 48 位（bit）整数序列，其输出端的数值是将当前种子的低 12 位丢弃后，再取其低位部分（位数由“数据位宽”属性配置）得到的结果。

除了时钟输入外，该元件还包含一个 使能 输入：当 使能 为 0 时，时钟输入会被忽略；以及一个 复位 输入：它会将元件的数值异步重置为初始种子 r0。

初始种子可由用户配置。若种子配置为 0（默认值），则种子会基于当前时间生成；当通过 复位 输入发出重置指令时，元件会根据新的当前时间重新计算一个新的种子。

## 引脚（以经典外观为例）

东侧，标记为 Q（输出，位宽与数据位属性匹配）
  输出元件当前存储的数值。
南侧，左边引脚（在 Logisim-evolution 外观中位于西侧下方），带三角形标记（输入，位宽 1）
  时钟：当该输入按触发方式属性所指定的方式触发时，元件会前进到序列中的下一个数。
西侧引脚（在 Logisim-evolution 外观中位于西侧中间，标记为 EN）（输入，位宽 1）
  使能：当该输入未连接或为 1 时，元件处于使能；若为 0，则忽略时钟输入。
南侧，右边引脚，标记为 0（在 Logisim-evolution 外观中位于西侧上方，标记为 R）（输入，位宽 1）
  复位：当该输入为 1 时，伪随机序列会异步复位到初始种子。（若种子为 0，则这次产生的新种子与上一次使用的初始种子不同。）

## 属性

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

数据位宽
  元件输出数值的位宽。
种子
  伪随机序列的起始值。若该值为 0（默认），则起始值基于随机序列开始时的时间生成。
触发方式
  配置如何解释时钟输入。上升沿表示时钟从 0 上升到 1 的瞬间更新；下降沿表示时钟从 1 下降到 0 的瞬间更新。
标签
  与组件关联的标签文本。
标签字体
  用于渲染标签的字体。

## 手形工具行为

无。

## 文本工具行为

编辑与组件关联的标签。

返回 库参考手册