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 是一個訊號輸入,可用作預除頻器(pre-scaler)。 Tick 輸入每出現一次高電平值,就會計算一次週期時間。 以下的波形圖顯示了 Tick 輸入對週期產生的行為影響。 在大多數情況下,不需要 Tick 輸入。在這種情況下,請將其連接至運算子 VCC。

Reset 輸入連結用於重設運算子。 如果要取消較長的週期或序列,這會非常有用。 下一張圖說明了 Reset 的使用方式。

[備註] 使用 Reset 輸入,而不是將 Period 設為 0

如果將 Period 設為 0,週期要花很長時間(2^PeriodBit-1 個時脈週期)才能恢復為主動狀態。 因此,建議在這種情況下使用 Reset 輸入。

此運算子不支援 VisualApplets 功能模擬。

I/O Properties

Property Value
Operator Type O
輸入連結 Tick,訊號輸入
Gate,訊號輸入
Reset,訊號輸入
Output Link O,訊號輸入

支援的 Link 格式

Link Parameter Input Link Tick 輸入連結 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 作為 Gate
Max. Img Height any any any 作為 Gate

參數

PeriodBits
Type static parameter
Default 16
Range [1, 64]

編碼由 Period 指定的值所需的位元數。 只有在參數 Period 為動態時,此參數才會啟用。

Period
Type static/dynamic read/write parameter
Default 65535
Range 若為動態則為 [0, 2^PeriodBits-1],若為靜態則為 [1, 2^64-1]

定義所產生脈衝的週期時間。 請勿使用下列情況: 如果週期設為 1,運算子將輸出恆定為 1 的訊號且沒有任何間隙。編碼該值所需的位元數 由 指定,如果設為 0,運算子將不會輸出任何脈衝。

SequenceBits
Type static parameter
Default 16
Range [1, 64]

編碼由 Sequence 指定的值所需的位元數。 只有在參數 Sequence 為動態時,此參數才會啟用。

Sequence
Type static/dynamic read/write parameter
Default 0
Range 若為動態則為 [1, 2^SequenceBits-1],若為靜態則為 [1, 2^64-1]

定義序列長度,亦即針對 Gate 輸入連結上的每個脈衝所產生的脈衝數量。

PulsePosition
Type static parameter
Default AtPeriodEnd
Range {AtPeriodStart, AtPeriodEnd}

輸出脈衝可以位於每個週期的開頭或每個週期的結尾。

使用範例

以下範例顯示了運算子 Generate 的使用方式: