SignalDelay 運算子

Operator Library: Signal

此運算子會延遲輸入訊號並將其輸出。 延遲時間由參數 Delay 控制。

輸入端脈衝的上升緣會啟動延遲。 參數 Delay 的目前值決定了延遲時間。 輸入脈衝的脈衝寬度會保持不變,也就是說,上升緣與下降緣都會被延遲。

此運算子可以透過參數 Mode 定義兩種模式來執行:

  • SinglePulse:

    此運算子一次只能延遲一個脈衝。 在延遲脈衝期間,無法接受運算子輸入端的新脈衝。 在這種情況下,每個新的輸入脈衝都會被忽略。 當脈衝正在處理時,對延遲參數的任何變更都會被忽略。

    可以使用輸入連結 Reset 來重設運算子。 當重設輸入為高電位時,將不會處理任何輸出脈衝。 任何處理程序都會被中止。 當重設輸入為低電位時,運算子會重新開始運作。 以下波形圖說明了運算子的行為。

  • MultiplePulses:

    在此模式下,運算子可以同時延遲多個輸入脈衝。 此運算子是一個固定長度的移位暫存器。 在此模式下無法變更延遲時間。 下圖說明了此模式。

    若與 MutliPulses 模式結合使用,重設輸入可能會導致未定義的值。 因此,若要使用重設輸入,其持續時間必須設定為參數 DurationBits 所定義的時間。 若不使用,請將其連接至 GND。

    MultiPulses 模式的設計僅用於短延遲。 長延遲將需要大量的資源。

Tick 輸入定義了 operator 處理資料的時間。 它可以像預除器 (prescaler) 一樣使用。 在大多數情況下,不需要 Tick 輸入。在這種情況下,請將其連接至 operator VCC。 下圖顯示了 Tick 輸入的影響。

使用時脈(ticks)時的一個特殊情況是,即使沒有時脈存在,也會對輸入脈衝進行取樣。 波形圖中的第二個輸入脈衝即顯示了此情況。 這確保了不會遺漏任何輸入脈衝。

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

I/O Properties

Property Value
Operator Type O
輸入連結 I,訊號資料輸入
Tick,訊號資料輸入
Reset,訊號資料輸入
Output Link O,訊號資料輸出

支援的 Link 格式

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

參數

模式
Type static parameter
Default SinglePulse
Range {SinglePulse, MultiplePulses}

定義運算子是只能同時延遲單一脈衝還是多個脈衝。 請參閱上文說明。

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

最大可能的訊號延遲是使用此參數來定義。 此參數僅在 Mode 設定為 SinglePulse 時才會啟用。

Delay
Type dynamic/static 參數
Default 0
Range 若 Mode=SinglePulse 則為 [0,2^DelayBits-1],否則為 [1, 2^64-1]

實際的延遲時間是使用此參數來定義。 若 Mode 設定為 MultiplePulses,此參數永遠是靜態的。

使用範例

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