所有平台的通用介面

您需定義 VA IP 核心的介面數量與類型(如「定義 IP 核心屬性」所述)。

然而,有兩種介面在所有平台上都是一樣的:時鐘介面與 寄存器從屬介面。在您實際開始填寫 硬體描述檔之前,本文將先對這兩者進行說明。

Clock Interface

在硬體方面,您需要向 IP 核心提供兩個時鐘輸入: iDesignClk和iDesignClk2x。這類時鐘 訊號通常可透過 FPGA 的數位時鐘管理器(由 您控制)相當容易地產生。

這些時鐘必須符合以下要求:

  • 相位同步

  • 頻率比為 2,其中iDesignClk2x是較快的 那個。

時脈輸入對設計速度的影響:VisualApplets 設計中的所有運算元 皆與iDesignClk 的上升沿同步運作。

在 IP 核心定義過程中,於 eVA Designer, 您將為該 IP 核心設定一個 允許頻率範圍限制(即針對 iDesignClk) (如第 「輸入 FPGA 詳細資訊」, 第 3 步)。此資訊會提供給VisualApplets 。 在使用VisualApplets 進行設計時,VisualApplets 使用者會選擇一個目標頻率(用於 iDesignClk) 須在允許範圍內。此資訊將用於 合成與實作:在完成VisualApplets 設計的合成後,目標 頻率將儲存於 *.hap 檔案(該檔案亦包含已合成的 FPGA 位元流)。執行時系統內含一個函式,用於從 目標設計頻率中取得 *.hap 檔案。

暫存器從屬介面

VA IP 核心的寄存器從機介面是一種簡單的寄存器介面,由 與設計時鐘同步的位址、資料及控制訊號所控制。

動態設計參數(即影像 應用程式中運算子實例的動態參數)是透過寄存器從機介面進行傳輸的。該介面提供讀取 與寫入操作。

該寄存器介面具有以下屬性:

  • I/O 與時脈iDesignClk 保持同步。

  • 「重設」與「啟用」訊號對寄存器值沒有影響。

  • 資料寬度為 32 位元。

  • 該介面的位址寬度為 16 位元。

  • 寫入與讀取可能同時發生。

  • 透過寄存器介面存取的寄存器,其位寬 可在 1 至 64 之間。從從機介面資料位寬到VisualApplets 參數實際寄存器 位寬的映射會自動進行。當參數 寄存器的位寬大於寄存器介面的位寬時,執行時軟體會 自動將存取操作拆分為多段。此時,單一參數將佔用多於一個 寄存器位址。

 

登錄介面的連接埠

圖 192. 寄存器介面的連接埠


上圖顯示了與寄存器介面相關的連接埠。

寫入: 寫入通訊協定基於寫入 位址ivRegWrAddr、寫入資料ivRegWrData 以及寫入脈衝iRegWrValid。當高電平有效 訊號iRegWrValid被拉高時,即會觸發對位址為ivRegWrAddr 的VisualApplets 寄存器進行單次寫入存取。寫入存取可於 後續時鐘週期中進行,因此允許隱式突發傳輸。

讀取: 讀取的通訊協定基於讀取 位址ivRegRdAddr、讀取觸發訊號 iRegRdValid,以及讀取資料的有效訊號 oRegRdDataValid,資料隨後將從埠 ovRegRdData 輸出。 當高電平有效訊號 iRegRdValid被拉高時,即會觸發一次從地址為ivRegRdAddr 的寄存器VisualApplets 進行讀取存取。回傳的 輸出值的延遲可能取決於 eVA IP 核心的配置以及VisualApplets 設計。

在您的硬體平台上於 VA IP 核心中執行VisualApplets 設計時, 可透過VisualApplets 執行時軟體介面存取相關參數。

VisualApplets 支援在執行階段存取設計參數的不同模型:

  • 使用基於 HAP 檔案的 eVA 執行時環境 此方法 與 Basler 影像擷取卡的執行時介面非常相似。HAP 檔案 包含所有必要資訊,可輕鬆存取設計特定的參數。系統 提供了一個執行時軟體 API,該 API 能載入 HAP 檔案、擷取 FPGA 配置 資料,並提供對設計參數的存取功能。

  • 使用基於生成的GenICam XML 程式碼所建構的GenICam API 當 目標平台透過相容於GenICam 的介面連接至軟體時,此 選項可將影像處理參數無縫整合至GenICam API 中。 無需任何額外的軟體元件。

  • 使用由 VisualApplets 所產生的程式碼為平台獨立的 ANSI-C 程式碼。 透過 VA IP Core 寄存器從屬模組進行寄存器讀寫存取的回呼函式 會在啟動時進行註冊。隨後,該程式碼提供對以 名稱為地址的參數的存取,其中轉換函式會透過回呼函式觸發通訊。 此方法非常適合用於嵌入式系統(例如 Zynq7000)的軟體整合。

[注意] 自動產生執行時介面檔案

特定設計的執行時介面相關檔案會由 VisualApplets 自動產生(適用於所有三種存取模型)。

有關執行時軟體介面的選項,請參閱「執行時軟體介面」一節中的詳細說明。

Reset and Enable

VA IP 核心同樣採用寄存器從機介面來控制 重置 (Reset)與啟用 (Enable)訊號——而非使用 專用的埠來達成此目的。如此一來,重置與 啟用訊號可透過執行時軟體由使用者控制,且能夠分別控制 數量未預先已知的處理程序。

重置 (Reset)與啟用 (Enable)訊號與 VA IP 核心設計的互動方式如下:

  • 每個程序都有其專屬的「重置」與 「啟用」訊號(高電平有效),這些訊號由 1 位元寄存器設定。

  • 觸發重置會將整個流程置於初始化 狀態。

  • 「Enable」被觸發後,即開始處理。

  • 停用Enable會停止處理。當 Enable=0 時,不會讀取輸入 FIFO。至於輸出 FIFO, 視影像處理管線的狀態而定,在Enable失效後, 仍可能有部分資料被寫入其中,但流量控制機制會安全地防止 任何 FIFO 內容遭到損毀。

  • 僅當Enable=0 時,方可觸發重置。

  • 重置將清空所有 FIFO。

  • 「啟用」會影響任何具有 FIFO 介面的硬體特定運算子。

  • 「重設」與「啟用」對 運算子的參數並無影響。

  • 「重設」與「啟用」對 GPIO 埠沒有任何影響。

  • 對於 IP 核心的任何ImgIn和ImgOut介面, 均設有輸出埠ResetO和 EnableO。這些輸出埠連接至使用該介面的流程中 對應的Reset和 Enable訊號。因此,連接至 相關介面的任何邏輯單元,皆能在重置 及停用狀態下執行適當的操作。

  • 在取消「Enable」訊號後,必須先重置設計,才能再次啟用該訊號。 若未先執行重置(Reset),直接將「 Enable 」設定為 0 再設定為 1,可能會導致 某些VisualApplets 設計出現無法預期的行為。

針對某個程序的建議 START 程序:

  1. 傳送重設。

  2. 啟用斷言。

建議的程序停止程序:

  1. 停用「啟用」功能。

  2. 傳送重設。

對任何平台特定運算子的 FIFO 進行讀取或寫入存取,皆需透過 相關程序的Enable訊號啟用(此過程會因流量 控制而產生某些取決於設計的延遲)。此外,程序的Reset訊號會連接至任何與該程序相關聯的 I/O FIFO 的重置埠。