在 LabVIEW FPGA 中使用自訂單循環定時迴圈速率

更新 Oct 8, 2025

環境

硬件

  • CompactRIO Controller

軟體

  • LabVIEW
  • LabVIEW FPGA Module
  • LabVIEW Real-Time Module

驅動程式

  • NI-RIO (Legacy)
  • NI CompactRIO

  • 我知道在 LabVIEW FPGA 中可以使用單循環定時迴圈(Single Cycle Timed Loop)在 FPGA 時脈的一個週期內(25ns 或 40 MHz)執行程式碼。我可以使用這種結構以其他速率執行程式碼嗎?
  • 當我嘗試執行包含單循環定時迴圈的程式時出現時序違規錯誤(timing violation error)。我能透過改變迴圈執行速率來解決這個問題嗎?

若要以非預設的 40MHz 速率執行單循環定時迴圈(SCTL),您需要先建立一個新 FPGA 衍生時脈(derived clock)並設定為所需速率。FPGA 衍生時脈速率可設定在 2.5MHz 到 210MHz 之間。要建立衍生時脈,請在專案總管(project explorer)視窗中於 40MHz Onboard Clock 上按右鍵,然後選擇 New FPGA Derived Clock(如圖 1 所示)。在 FPGA Derived Clock Properties 視窗中,您可以調整時脈的 MultiplierDivisor,以達到所需的時脈速率(如圖 2 所示)。請特別注意 Message 欄位中的任何提示,這些提示會告訴您目前的設定是否有效。 


圖1


圖 2
若要強制 SCTL 使用新的衍生時脈,請在 SCTL 左側的定時區塊上按右鍵,並選擇 Configure Input Node(如圖 3 所示)。在 Configure Timed Loop 對話方塊中,選擇 Select Timing Source 單選按鈕,然後在 Available Timing Sources 下點選您的衍生時脈,最後按 OK(如圖 4 所示)。此後,您的 SCTL 將以該衍生時脈的頻率執行。 


圖 3



圖 4
**注意:**由於 FPGA 的時序限制,部分程式碼在超過 40 MHz 的速率下可能無法編譯。若無法以衍生時脈速率完成編譯,編譯報告摘要會列出錯誤。 

更多資訊

如果上述任一速率都不適用於您的應用,建議參考範例程式 Configure Sample Rate of Single Cycle Timed Loop in LabVIEW,示範如何為 FPGA 的 Single Cycle Timed Loop 設定自訂取樣率。