Operator Generate

Operator Library: Signal

该算子在其输出端生成一个 Periodic Signal。 此外,脉冲生成过程可通过输入信号进行控制。 周期时间和要生成的脉冲数可以通过参数进行定义。

周期通过参数 Period 进行定义。 该周期是动态的。 其范围由参数 PeriodBits 定义。 下图展示了生成周期长度分别为 8 和 4 的脉冲。

对 Period 参数的修改仅在当前周期的生成完成时才会应用到算子。 这确保了生成的周期始终为参数化的长度。

脉冲生成可以位于周期的末尾或起始处,这通过参数 PulsePosition 进行控制。 下一张图展示了在序列起始处生成的脉冲。

通过使用 Gate 输入链接,可以对脉冲生成进行控制。 只有当 Gate 输入处于活动状态(高电平)时,才会生成周期。 Gate 输入端的上升沿会启动周期生成。 Gate 输入链接的下降沿会立即中止生成。 在这种情况下,当前正在处理的周期可能无法完成。 此外,一个新的上升沿可能会产生一个较短的周期。 以下波形图展示了这一点。

参数 SequenceLength 便于生成序列。 在前面的图中,该参数被设置为 0,这会导致序列长度无限。 如果将该参数设置为大于 0 的值,算子将仅生成指定数量的周期。 在接下来的波形图中,序列长度设置为 3,周期设置为 4。 从波形图中可以看出,周期生成在第三个周期后停止。 Gate 输入端的新上升沿将启动一个新序列。 如果 Gate 变为 0,序列可能会被中止。

在许多应用中,需要算子进行无限的序列生成。 在这种情况下,请将参数 SequenceLength 设置为 0,并将算子 VCC 连接到 Gate 输入端。 然后,算子将在进程开始(例如 Acquisition Start)时开始生成周期。

周期时间以保持高电平的 Ticks 为单位进行测量。 Tick 是一个信号输入,可以用作预分频器。 Tick 输入每出现一次高电平值,就会对周期时间进行一次计数。 以下波形图展示了 Tick 输入对周期生成的行为影响。 在大多数情况下,不需要使用 Tick 输入。这种情况下请将其连接到算子的 VCC。

Reset 输入链接用于重置算子。 如果必须取消较长的周期或序列,这会非常有用。 下一张图说明了 Reset 的使用方法。

[注意] 使用 Reset 输入代替将 Period 设置为 0

如果将 Period 设置为 0,则周期恢复到活动状态可能需要很长时间(2^PeriodBit-1 个时钟周期)。 因此,建议在这种情况下使用 Reset 输入。

此算子不包含在 VisualApplets 功能仿真中。

I/O Property

Property 值
Operator Type O
输入链路 Tick,信号输入
Gate,信号输入
Reset,信号输入
Output Link O,信号输入

Supported Link Format

Link Parameter Input Link Tick Input Link Gate Input Link Reset Output Link O
Bit Width 1 1 1 1
Arithmetic unsigned unsigned unsigned unsigned
Parallelism 1 1 1 1
Kernel Columns 1 1 1 1
Kernel Rows 1 1 1 1
Img Protocol VALT_SIGNAL VALT_SIGNAL VALT_SIGNAL VALT_SIGNAL
Color Format VAF_GRAY VAF_GRAY VAF_GRAY VAF_GRAY
Color Flavor FL_NONE FL_NONE FL_NONE FL_NONE
Max. Img Width any any any as Gate
Max. Img Height any any any as Gate

参数

PeriodBits
键入 static 参数
默认 16
范围 [1, 64]

对 Period 指定的值进行编码所需的位数。 仅当参数 Period 为动态时,此参数才可用。

Period
键入 静态/动态读写参数
默认 65535
范围 如果为动态,则范围为 [0, 2^PeriodBits-1];如果为静态,则范围为 [1, 2^64-1]

定义生成的脉冲的周期时间。 请勿使用以下情况: 如果周期设置为 1,算子将输出恒定为 1 且没有任何间隙的信号。对编码指定值所需的位数 如果设置为 0,算子将不输出任何脉冲。

SequenceBits
键入 static 参数
默认 16
范围 [1, 64]

对 Sequence 指定的值进行编码所需的位数。 仅当参数 Sequence 为动态时,此参数才可用。

Sequence
键入 静态/动态读写参数
默认 0
范围 如果为动态,则范围为 [1, 2^SequenceBits-1];如果为静态,则范围为 [1, 2^64-1]

定义序列长度,即针对 Gate 输入链接处的每个脉冲所生成的脉冲数。

PulsePosition
键入 static 参数
默认 AtPeriodEnd
范围 {AtPeriodStart, AtPeriodEnd}

输出脉冲可以位于每个周期的开始或结束位置。

使用示例

以下示例展示了 operator Generate 的使用方法: