定義 IP Core 屬性

若要定義您欲在 FPGA 上使用的各 VA IP 核心之介面,請 使用 GUI 工具 eVA Designer。eVA Designer 是VisualApplets Embedder 套件的一部分。eVA Designer 會隨VisualApplets 一併安裝。取得VisualApplets Embedder 授權後,即可使用 eVA Designer。您在此處輸入的資料將被 寫入硬體描述檔(XML )。根據這些資料, eVA Designer 將據此在 VHDL 中建構 IP 核心黑盒模型。

eVA Designer 圖形使用者介面

的圖形使用者介面 eVA Designer 操作簡便且直觀:

該程式的圖形使用者介面(GUI) eVA Designer 會根據您的任何 輸入做出反應,為您提供支援。

圖形表示

已定義的 IP 核心之圖形化顯示(位於 程式視窗的左側面板中)會顯示您在當下所定義的所有介面。該圖形化 顯示會立即對任何輸入(新增或刪除介面)做出反應。

  • 所有使用 FIFO 的介面均以綠色顯示。

  • 同類型的多個介面將依序顯示如下:

    • 最多會顯示三個同類介面,並以一疊的形式呈現,其中包含 與該介面數量完全相符的介面。範例:2 個記憶體介面: 

    • 若同類介面超過三個,則會以三組堆疊的形式顯示, 並附有數字標示實際介面數量。範例:4 個 GPI 及 4 個 GPO 介面:

輸出欄位

若您的 IP 核心定義與您在 eVA Designer。例如,若您所定義的介面 與您為連接 IP 核心內這些 介面所定義的VisualApplets 運算子不符。

輸出欄位會對任何輸入(例如新增或刪除介面或運算子) 立即做出反應。

開啟 eVA Designer 與硬體描述檔案

要建立新的 IP 核心定義,也就是要定義您欲整合至 FPGA 設計中的可程式化 IP 核心之介面:

  1. 開始 VisualApplets.

  2. 摘自 「工具」 選單中,選擇 eVA Designer。

    《 eVA Designer 開啟:

  3. 摘自 「檔案」 選單中,選擇 「開啟」。

  4. 從您的檔案系統中選取一個XML 範本(或您先前曾處理過的硬體描述檔) 並將其載入至 eVA Designer。

    XML 範本現已載入至 eVA Designer:

[注意] 繼續處理硬體描述檔

當然,您也可以重新開啟先前 曾進行過編輯的個別硬體描述檔案,或是其中一個已填妥的範例檔案。在此情況下,IP 核心的 圖形化顯示會標示出已指定的介面:

針對 Zynq 平台所指定的範例 IP 核心

圖 193. 針對 Zynq 平台所指定的 IP 核心範例


輸入平台詳細資料

  1. 前往 「裝置」 標籤頁。

  2. 請先輸入有關您欲 在 FPGA 上部署影像處理應用程式的硬體相關資訊:

    • 名稱:請輸入目標硬體產品的名稱。

    • 顯示名稱: 為您的硬體定義一個別名,該別名將 顯示於VisualApplets 圖形使用者介面中。允許包含空格字元。

    • 供應商(顯示欄位): 貴公司的名稱(即該產品的 供應商)。該字串的值由 Basler 預先設定,無法變更。該 供應商名稱將顯示於VisualApplets 圖形使用者介面中。(範例 硬體描述檔案在此處顯示為DEMO。)

    • ID: 請輸入您硬體平台的四位元十六進位識別碼, 該識別碼可透過執行時系統讀取。您可自由 在此處輸入任何數值。此數值旨在供 VisualApplets 使用者識別硬體。範例:0xabcd

    • 版本: 請輸入您的硬體產品版本。您 可以在此處自由輸入任何數值。此數值旨在供 VisualApplets 使用者識別硬體版本。

    • 效能等級: 此處會顯示您所選取的XML 範本之效能類別。有關可用效能 類別的詳細資訊,請參閱「效能類別」一節。

    • 圖示檔案(可選): 您可以在此處輸入一個 小型圖形檔案的路徑,該檔案稍後將在VisualApplets 上與您的 硬體平台名稱一同顯示。

輸入 FPGA 詳細資料

  1. 前往 FPGA 標籤頁。

  2. 請在以下欄位中輸入您欲將 IP 核心整合至其中的 FPGA 相關資訊 「FPGA 裝置類型資訊」欄位中欄位中:

    供應商: FPGA 供應商名稱(例如:XILINX)。

    架構: 您的 FPGA 所屬的 FPGA 系列及 FPGA 型號,例如: ZYNQ7000。

    裝置: 您的 FPGA 的裝置名稱(FPGA 型號)(不包含速度等級及 封裝詳細資訊),例如:xc7z020。

    Speedgrade: 您的 FPGA 的速度等級,例如:-1

    封裝: 您的 FPGA 封裝識別碼,例如: clg484

  3. 在 VisualApplets 設計時鐘設定中,請指定 iDesignClk 的屬性:

    最低設計時脈頻率: Visual Applets Core 設計的最低頻率。

    最大設計時脈頻率: Visual Applets Core 設計的最大頻率。

    預設設計時脈頻率: Visual Applets 核心設計的預設頻率。

    設計時脈頻率步長: 用於調整 Visual Applets Core 頻率的步長。

    若您指定一個頻率 範圍 (而非在三個上方欄位中皆輸入 相同的數值),即可允許VisualApplets 使用者將特定設計的 時脈設定為您所指定數值範圍內的數值。有關時脈系統的一般資訊,請參閱「時脈介面」。

    [注意] 周邊 FPGA 設計必須支援所定義的頻率

    請確保您周邊的 FPGA 設計能為 IP 核心設計提供您在此處定義的頻率。若您允許VisualApplets 使用者調整設計時鐘(透過 指定一個頻率 範圍 ,而非在 所有三個欄位中皆輸入相同數值),則您必須確保

    • 您周邊的 FPGA 設計具備靈活性,可將其輸入調整為 iDesignClk,並且

    • 您的 FPGA 設計能夠提供指定值 範圍內的所有頻率。

  4. 在 「可用於」的 FPGA 資源VisualApplets下,請輸入您允許影像處理應用程式(位於 VA IP 核心中) 最多使用的 FPGA 資源:

    LUT 最大數量: Visual Applets 設計中 可使用的 FPGA LUT 最大數量。

    寄存器最大數量: Visual Applets 設計中可 使用的 FPGA 寄存器最大數量。

    區塊 RAM 的最大數量: FPGA 中 Visual Applets 設計可使用的區塊 RAM 最大數量。

    嵌入式 ALU 的最大數量: Visual Applets 設計中 可使用的 FPGA 內嵌 ALU 最大數量。

輸入所需ImgIn介面的描述

eVA IP 核心的ImgIn介面

影像串流埠ImgIn是通用型影像 通訊介面,用於將周邊 FPGA 邏輯中的影像資料寫入 VA IP 核心。ImgIn埠由一個簡單的 FIFO 介面加上 額外的參數埠所組成。這些介面埠已全面參數化。除了 現有的參數之外,您還可以定義額外的寄存器,用以將參數轉發至 連接的 FPGA 邏輯。

影像資料透過類型為 ImgIn 的介面埠進入 VA IP 核心。可 定義多類型的ImgIn埠,且每類埠皆可 建立多個實例。

影像輸入介面的連接埠佈局

圖 194. 影像輸入介面的連接埠佈局


下表說明了介面訊號,其中 PORTID 為對應影像輸入埠類別的名稱,而 X 則為用以區分同一類別中多個端口的 端口編號:

Port

方向

Width

描述

iPORTIDXClk

在

1

用於寫入 FIFO 的時脈。當埠設定為 同步通訊時,此輸入將被忽略。ImgIn介面 的設定說明請參閱「定義ImgIn介面類別」。

ivPORTIDX資料

在

PORTID寬度

寫入資料(可解讀為像素資料,或作為「行外」或「幀外」 標誌)

iPORTIDX有效

在

1

執行寫入存取

iPORTIDX行尾

在

1

將寫入存取視為行尾通知。如此一來,寫入資料 便不會被解讀為像素資料。

iPORTIDX幀結束

在

1

表示幀結束。若此標誌被啟用,資料中將不包含像素 值。幀結束訊號必須與行結束訊號同時發生。

oPORTIDXFIFOFull

Out

1

輸入 FIFO 已滿,不再接受任何資料。

ovPORTIDXFIFOCnt

Out

Ceil Log2(PORTIDFIFO深度)。 Ceil Log2 是指 表示該值所需的位元數。

輸入 FIFO 中的字元數。此訊號可用於產生 FIFO 標誌, 例如「即將滿」等。

oPORTIDX重設

Out

1

該流程的重設訊號

oPORTIDX啟用

Out

1

啟用該流程的訊號

ovPORTIDX_PARNAME_D

Out

S

參數的資料 PARNAME. S 取決於所選的 位元寬度。此訊號會針對每個已定義的參數產生。

oPORTIDX_PARNAME_Upd

Out

1

當參數 PARNAME 由執行時軟體更新時,此訊號會設定為「1」一個時脈週期。此訊號 會針對每個已定義的參數產生。

ovPORTIDX_FID_D

Out

Ceil Log2(N)。Ceil Log2(N) 是指表示 數值 (N-1) 所需要的位元數。

預先定義的參數,用於通知當前的影像資料格式。N 為 此連接埠所指定的影像格式數量。

下圖顯示了透過 ImgIn介面進行影像通訊的時序,此為一個簡單範例,其中傳輸的幀包含兩行 、每行各三個 32 位元灰階像素值。在波形圖中,名稱部分 PORTIDX 已被替換為 imgin。

顯示圖像輸入埠上該協定的波形圖

圖 195. 顯示影像輸入埠上通訊協定運作的波形圖


支援的 ImageIn 格式

單一ImgIn 連接埠可驅動多種不同的通訊協定。VisualApplets 支援以下影像格式:

  • 灰色XxP:帶有 X 位元的灰階影像 及其並行度 P

  • rgbYxP: 彩色影像,其 Y/3 位元 每個色彩成分(紅、綠、藍),且並行度 P

  • hsiYxP: 彩色影像,包含 Y/3 位元(HSI 色彩模型),並具 P

  • hslYxP: 彩色影像,具有 Y/3 位元(HSL 色彩模型),並具備 P

  • hsvYxP:彩色圖像,使用 Y/3 位元(HSV 色彩模型),並具備 P

  • yuvYxP:彩色影像,具備 Y/3 位元(YUV 色彩模型),並具備 P

  • ycrcbYxP: 彩色影像,包含 Y/3 位元(YCrCb 色彩模型),並具備 P

  • 實驗室YxP:彩色影像,使用 Y/3 位元(LAB 色彩模型),並具備 P

  • xyzYxP: 彩色圖像,使用 Y/3 位元(XYZ 色彩模型),並具備 P

您可以定義一個ImgIn介面類別,以支援上述 任何格式的組合,前提是圍繞 VA IP 核心的平台設計能支援影像通訊通道的適當配置。

您可以指定像素分量應被解讀為有符號或無符號。

定義ImgIn介面類別

您可以定義各類ImgIn介面類別。這些 介面類別在支援的影像協定數量與種類、支援的資料 位寬、使用的時脈訊號,以及許多其他方面可能有所不同。每個ImgIn 介面類別在 VA IP 核心上均可出現多次。

eVA IP 核心範例

圖 196. eVA IP 核心範例


上圖中的範例 IP 核心顯示了兩個ImgIn類別 以及兩個ImgOut類別。這兩種類別皆提供多個實例: 此 VA IP 核心提供 7 個ImgIn_A 類別的 ImgIn連接埠、5 個 ImgIn_B類別的 ImgIn_B 的 ImgIn埠、2 個 ImgOut類別ImgOut_a 的 ImgOut埠,以及 5 個ImgOut類別 ImgOut_b 的ImgOut埠。

[注意] 相關運算子在VisualApplets

對於每個已定義的ImgIn類別,稍後可能會產生一個或多個平台專用的 VisualApplets ImgIn運算子(詳情請參閱「定義硬體專用運算子」)。這些運算子可 (在 IP 核心整合後)於VisualApplets 中實例化,進而實作該 介面。

若存在多個相同配置(類別)的介面埠,則 對應運算子的實例可透過 VisualApplets 的資源管理功能,連接至其中任何一個埠。

VisualApplets 的資源管理:在VisualApplets 中,針對每個 ImgIn類別,都會建立一個同名的資源。在此 VisualApplets 的資源對話方塊中,可定義該資源的分配方式。

設定ImgIn連接埠

要定義允許影像串流進入 eVA IP 核心的埠:

  1. 前往 ImgIn 標籤頁。

  2. 點擊加號 圖示。

  3. 進入田間 基礎名稱中,輸入您要定義的 ImgIn介面類別的名稱。雙擊 該欄位以進行編輯。

  4. 在現場 多重性,請在此處定義您希望在 VA IP 核心上擁有多少個 此類別的ImgIn介面。請雙擊該欄位進行編輯。

    已定義的ImgIn埠(在本範例中,為 3 個 類別為ImgInGray 的介面)會立即顯示在 IP 核心的 圖形化表示中:

  5. 定義ImgIn介面類別的其他屬性:

    流量控制: 此參數決定應用程式是否VisualApplets 可暫時停止傳入的影像資料流。若設定 為「是」,則會啟用內部流量控制機制以暫停輸入資料; 若設定為「否」,則不會啟用流量控制機制。 若您將可暫停的影像 來源連接至ImgIn埠,則實作流量控制機制是合理的。若您使用不可暫停的 來源,請選擇「否」。

    • 是:已實作用於暫停輸入資料的 流量控制機制。

    • 否:未實作任何用於暫停輸入資料的 流量控制機制。

    同步模式: 此參數指定影像 介面時脈(位於 ImgIn埠上的iPORTIDXClk)與設計時脈 (位於 IP 核心上的iDesignClk)之間的關係。可選值如下:

    • SyncToDesignClk– 介面埠與 iDesignClk 同步。影像 介面埠的外接時脈輸入將被忽略。

    • SyncToDesignClk2x– 介面埠與 iDesignClk2x 保持同步。 ImgIn埠的外部時脈輸入將被忽略。

    [注意] 支援雙倍像素深度

    若您將iDesignClk2x用於 ImgIn埠,則可定義一種影像協定,其 位元深度為您為iv..Data埠所定義值的兩倍(即 位元寬度與並行度的乘積可達兩倍)。在此情況下,系統會自動 執行係數為 2 的並行度提升。

    • 非同步 – 非同步介面:該介面的埠 與ImgIn 介面的外部時鐘輸入同步。

    若您選擇 「非同步」,您需要

    • 在 iImgInClk 埠上提供時脈訊號,並將其傳送至 ImgIn介面,以及

    • 在合成約束中定義時域轉換約束 (約束檔案)。

    [注意] 支援雙倍像素深度

    若您在iImgInClk 埠上提供的時鐘訊號頻率遠高於 iDesignClk,則可定義一個 影像通訊協定,其位元深度為您為埠 iv..Data所定義值的兩倍(即位元寬度與並行度的 乘積可達雙倍大小)。 在此情況下,系統會自動執行 係數為 2 的並行度提升。

    [注意] 請使用iDesignClk或 iDesignClk2x

    Basler 建議在可能的情況下,盡量使用iDesignClk或 iDesignClk2x進行同步。

    FIFO 深度: 在此定義輸入資料的 FIFO 緩衝區深度, 該深度至少需由附帶的VisualApplets 介面 運算子來實作。該值必須為 15 至 1023 之間的二的冪減 1。

    埠寬: 請在此處設定影像資料埠的寬度。

為ImgIn介面定義影像協定 類別

您需要定義希望此ImgIn 介面類別所支援的影像協定。請依序定義各協定,直到您 想要指定的所有協定都已列出為止。

[注意] 相關運算子在VisualApplets

將 VA IP 核心整合至您的 FPGA 設計後, 影像處理應用程式的開發人員會於VisualApplets 中實例化一個ImgIn運算子, 並定義在特定應用程式中,此運算子實例將實作 ImgIn介面(以及該運算子本身)所支援的 哪些協定。

  1. 點擊欄位中的箭頭 「格式」 欄位中的箭頭,並從格式清單中 選擇您想要的格式:

    有關支援的影像格式的更詳細說明,請參閱「支援的影像格式」。

  2. 雙擊列中的欄位 Pix.Width欄位中的欄位。

    請輸入所需的像素資料位元寬度(數值範圍:[1..64])。

    像素資料寬度上限為 64 位元。所有非灰階 色彩格式的像素資料寬度必須為 3 的倍數,且上限為 63 位元。

  3. 雙擊該欄位 「並行度」欄位中,並輸入所需的 並行度。

    The parallelism P defines the number of pixels which are contained in a single data word at the interface port. It must be chosen from the following set of allowed values: P = {1, 2, 4, 8, 16, 32, 64}. Packing of image data into words of a given interface width N (Port width, see above) must follow certain rules:

    • 所有 P 像素的資料必須能容納於單一字元中,其 長度為 N的單一字內。資料以最低有效位元(LSB)對齊方式儲存,這意味著對於 像素寬度 Z (Z=X 為灰階時, Z=Y 代表彩色)的資料分佈如下: Pixel[0]->Bits[0..Z-1] .. Pixel[P-1]->Bits[(P-1)*Z..P*Z-1]。

    • 對於 RGB 影像,三個色彩成分會以 LSB 對齊的方式封裝至一個子 字元 [0..Y-1] 內,依下列順序排列:紅色使用位元 [0..Y/3-1 ],綠色則使用位元 [Y/3..2*Y/3-1] 為藍色, [2*Y/3..3*Y/3-1]。

    • 對於 HSI 彩色影像,適用與 RGB 相同的規則,其中 H 扮演 紅色、S 扮演綠色,而 I 則扮演藍色的角色。

    • 對於 HSL 色彩圖像,其規則與 RGB 相同,其中 H 代表 紅色、S 代表綠色,而 L 則代表藍色。

    • 對於 HSV 彩色影像,適用與 RGB 相同的規則,其中 H 代表 紅色,S 代表綠色,V 則代表藍色。

    • 對於 YUV 色彩影像,適用與 RGB 相同的規則,其中 Y 代表 紅色、U 代表綠色,而 V 則代表藍色。

    • 對於 YCrCb 色彩影像,其規則與 RGB 相同,其中 Y 代表 紅色,Cr 代表綠色,而 Cb 則代表藍色。

    • 對於 LAB 色彩影像,其規則與 RGB 相同,其中 L 代表 紅色,A 代表綠色,B 則代表藍色。

    • 對於 XYZ 色彩影像,其規則與 RGB 相同,其中 X 代表 紅色、Y 代表綠色,而 Z 則代表藍色。

  4. 點擊欄位中的箭頭 「尺寸」 欄位中的箭頭,以選取您正在定義之通訊協定的 影像 尺寸。

    維度的含義如下:

    • 區域 (預設):影像由換行標記及 幀終標記所構成。在VisualApplets 中,影像尺寸 區域 被 稱為2D。區域攝影機可作為 2D 影像來源。

    • 行:影像由換行標記進行結構化。並無 任何幀結束標記將傳入的行劃分為幀。在 VisualApplets 中,影像尺寸 行 被稱為 1D。線性攝影機可作為 1D 影像來源。

    • 原始:沒有行結束標記,也沒有幀結束標記來 將傳入的影像資料劃分為行和幀。影像輸入流由 一個寬度為 1 像素的無盡像素流組成。在VisualApplets 中,影像 尺寸 原始 被命名為0D。

  5. 點擊欄位中的箭頭 「符號性」 欄位中的箭頭,並選擇您正在定義的 協定之影像 尺寸。

    • 無符號(預設):像素資料將被解讀為無符號的像素成分。

    • 有符號:像素資料被解讀為帶符號的像素分量

  6. 重複步驟 1 至 5,直到您已定義所有希望該 影像類別所支援的影像協定為止。

[注意] 影像協定定義的內部識別碼

預設假設核心大小為 1x1。清單中列出的每個協定皆 編有編號,編號從零開始。這些編號構成了特定 ImgIn類別的協定識別碼。該識別碼不會顯示在 GUI 上。因此,您所定義的每個 ImgIn類別,皆包含一個內部識別碼清單,其中列出您所定義的 影像協定。

在接下來的步驟之一中,您可以定義一個或多個VisualApplets ImgIn運算子,其實例可連接至 已定義的ImgIn類別(有關如何定義運算子的詳細資訊,請參閱 「定義硬體特定運算子」)。對於每個此類運算子, 您可以為其指派您針對相關 影像埠所指定的所有或部分影像協定。

在VisualApplets中,ImgIn運算子將提供一個 參數,讓VisualApplets 使用者能從一組 選項清單中選擇影像格式。根據選取結果,系統將為 相關的 IP 核心ImgIn連接埠 (ov..FID_D) 指派對應的 ID。這使連接的 膠合邏輯能夠根據所選格式調整其行為。

為ImgIn 介面類別定義額外參數

您可以為ImgIn 介面類別定義所需的額外參數。這些(動態)參數可在執行期間設定,並可 透過執行時介面進行存取(請參閱「執行時軟體介面」)。

這些參數是透過 VA IP 核心的寄存器從機介面(請參閱「寄存器從機介面」)進行傳輸的。

ovPORTIDX_PARNAME_D:參數的資料 PARNAME。方向:輸出。您可以定義位元寬度。此訊號 會針對每個已定義的參數分別產生。

oPORTIDX_PARNAME_Upd:方向:輸出。位元寬度:1。當參數 PARNAME 由 執行時軟體更新時,此訊號會設定為「1」一個時鐘週期。此訊號會針對每個已定義的參數產生。

若要為ImgIn介面類別定義額外的參數:

  1. 前往 「參數連接埠」 區域。

  2. 點擊加號 圖示。

  3. 進入現場 名稱中,輸入您要 定義的參數名稱。雙擊該欄位以輸入內容。

  4. 現場 寬度欄位中,請設定參數埠的寬度 {1,64}。 請雙擊該欄位進行輸入。

    [注意] 從從機介面資料位寬到實際寄存器位寬的對應關係

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

  5. 重複步驟 2 至 4,直到您已定義完所有希望該影像類別 所支援的參數為止。

    在完成「設定ImgIn連接埠」、「為ImgIn介面 類別定義影像通訊協定」以及「為ImgIn 介面類別定義額外參數」中所述的所有步驟後,您已 成功設定了第一個ImgIn介面類別。

  6. 若您需要更多ImgIn介面類別,請重新從「設定ImgOut連接埠」開始, 來定義下一個ImgIn介面類別。

[注意] 根據需要定義任意數量的ImgIn介面類別

您可以依需求定義任意數量的介面類別。若要設定下一個 ImgIn介面類別,請再次從 「設定ImgIn連接埠」一節中所述的步驟開始。

輸入所需的ImgOut介面描述

VA IP 核心的ImgOut介面

影像串流埠ImgOut是通用型影像 通訊介面,用於將影像資料從 VA IP 核心寫入周邊的 FPGA 邏輯中。ImgOut埠由一個簡單的 FIFO 介面加上 額外的參數埠所組成。這些介面埠已全面參數化。除了 現有的參數之外,您還可以定義額外的寄存器,用以將參數轉發至 連接的 FPGA 邏輯。

影像資料透過類型為 ImgOut 的介面埠離開 VA IP 核心。可定義多類型的ImgOut埠, 且每類埠皆可建立多個實例。

影像輸出介面的連接埠佈局
影像輸出介面的連接埠佈局

圖 197. 影像輸出介面的連接埠佈局


下表說明了介面訊號,其中 PORTID 為對應影像輸入埠類別的名稱,而 X 則為用以區分同一類別中多個端口的 端口編號:

Port

方向

Width

描述

iPORTIDXClk 在 1 用於從 FIFO 讀取的時鐘。當埠配置為 同步通訊時,此輸入將被忽略。(ImgOut介面的 配置詳見「定義ImgOut介面類別」。)
ivPORTIDX資料 Out PORTID寬度 自訂讀取的資料
iPORTIDX讀取 在 1

執行讀取存取

iPORTIDX行尾 Out 1 表示行尾。若啟用此標誌,資料中將不包含像素 值。
iPORTIDX幀結束 Out 1 表示幀結束。若此標誌被啟用,資料中將不包含像素 值。幀結束訊號必須與行結束訊號同時發生。
oPORTIDXFIFO 已清空 Out 1 輸出 FIFO 為空
ovPORTIDXFIFOCnt Out

Ceil Log2(

PORTIDFIFO 深度

)

輸出 FIFO 中的字元數。此訊號可用於產生 FIFO 標誌, 例如「幾乎已滿」。
oPORTIDX重設 Out 1 該流程的重設訊號
oPORTIDX啟用 Out 1 啟用該流程的訊號
ovPORTIDX_PARNAME_D Out S 參數的資料 PARNAME. S 取決於所選的 位元寬度。此訊號會針對每個已定義的參數產生。
oPORTIDX_PARNAME_Upd Out 1 當參數 PARNAME 由執行時軟體更新時,此訊號會設定為「1」一個時鐘週期。此訊號會 針對每個已定義的參數產生一次。
ovPORTIDX_FID_D Out Ceil Log2(N)。Ceil Log2(N) 是指表示 數值 (N-1) 所需的位元數。 預先定義的參數,用於通知當前影像資料格式。N 為 此埠所指定的影像協定數量。

下圖顯示透過 ImgOut介面進行影像通訊的時序,此為一個簡單範例:傳輸一個包含兩行、 每行各三個 32 位元灰階像素值的幀。在波形圖中,名稱部分 PORTIDX 已被替換為imgout。

顯示圖像輸出埠上該通訊協定的波形圖

圖 198. 顯示影像輸出埠上協定運作的波形圖


支援的ImageOut格式

單一 ImgOut埠可驅動多種不同的通訊協定。VisualApplets 支援以下影像格式:

  • 灰色XxP:帶有 X 位元的灰階影像 及其並行度 P

  • rgbYxP: 彩色影像,其 Y/3 位元 每個色彩成分(紅、綠、藍),且並行度 P

  • hsiYxP: 彩色影像,包含 Y/3 位元(HSI 色彩模型),並具 P

  • hslYxP: 彩色影像,具有 Y/3 位元(HSL 色彩模型),並具備 P

  • hsvYxP:彩色圖像,使用 Y/3 位元(HSV 色彩模型),並具備 P

  • yuvYxP:彩色影像,具備 Y/3 位元(YUV 色彩模型),並具備 P

  • ycrcbYxP: 彩色影像,包含 Y/3 位元(YCrCb 色彩模型),並具備 P

  • 實驗室YxP:彩色影像,使用 Y/3 位元(LAB 色彩模型),並具備 P

  • xyzYxP: 彩色圖像,使用 Y/3 位元(XYZ 色彩模型),並具備 P

您可以定義一個ImgOut介面類別,以支援上述 任何格式的組合,前提是圍繞 VA IP 核心的平台設計能支援影像通訊通道的適當配置。

定義ImgOut介面類別

您可以定義各類ImgOut介面類別。這些 介面類別在支援的影像協定數量與種類、支援的資料 位寬、使用的時脈訊號,以及許多其他方面可能有所不同。每個ImgOut 介面類別在 VA IP 核心上均可出現多次。

eVA IP 核心範例

圖 199. eVA IP 核心範例


上圖中的範例顯示了兩個ImgIn類別和兩個 ImgOut類別。這兩個類別皆提供多個實例: 此 VA IP 核心提供 7 個 ImgIn_A 類別的ImgIn連接埠、5 個 ImgIn_B 類別的ImgIn連接埠、 2 個ImgOut_a 類別的ImgOut連接埠,以及 5 個 ImgOut_b 類別的ImgOut連接埠。

[注意] 相關運算子在VisualApplets

對於每個已定義的 ImgOut 類別,您稍後可以定義一個或多個平台專用的 VisualApplets ImgOut 運算子(詳情請參閱「定義硬體專用運算子」 )。 這些運算子可在(IP 核心整合後)於 VisualApplets 中實例化,並隨後實作該介面。若存在多個 相同配置(類別)的介面連接埠,對應運算子的實例可透過 VisualApplets 的資源管理機制,連接至其中任何一個。

設定ImgOut連接埠

要定義允許從 VA IP 核心向周邊 FPGA 設計傳輸影像串流的埠:

  1. 前往 ImgOut 分頁。

  2. 點擊加號 圖示。

  3. 進入田間 基礎名稱中,輸入您要定義的 ImgOut介面類別的名稱。雙擊 該欄位以進行輸入。

  4. 在現場 多重性,請在此處定義您希望在虛擬地址 (VA) IP 核心上擁有多少個 此類別的ImgOut介面。請雙擊該欄位進行編輯。

    已定義的ImgOut埠(在本範例中,為 3 個 類別為ImgOutGray 的介面)會立即顯示在 IP 核心的 圖形化表示中:

  5. 定義ImgOut介面類別的進一步屬性:

    Flow control {Yes,No}:

    • 是: 若選擇「是」,則會實作一種用於暫停 輸出資料的流量控制機制。設定為「是」可讓VisualApplets 設計在任何時間長度內 暫停從輸出 FIFO 讀取資料。當 FIFO 滿訊號觸發時,表示 不得再寫入任何資料。

    • 否: 若選擇「否」,則不會實作任何用於阻擋 輸出資料的流量控制機制。

    同步模式: 此參數指定影像 介面時脈(位於 ImgOut埠上的iPORTIDXClk)與設計時脈 (位於 IP 核心上的iDesignClk)之間的關係。可選值如下:

    • SyncToDesignClk– 介面埠與 iDesignClk 同步。 ImgOut埠上的外部時鐘輸入將被忽略。

    • SyncToDesignClk2x– 介面埠與 iDesignClk2x 保持同步。 ImgOut埠上的外部時脈輸入將被忽略。

    [注意] 支援雙倍像素深度

    若您在 ImgOut埠上使用iDesignClk2x,則可定義一個影像協定,其位元深度為 您為ov..Data埠所定義值的兩倍(即位元寬度與並行度的 乘積可達原始大小的兩倍)。在此情況下,系統會自動 將並行度提升至原始值的兩倍。

    • 非同步 – 非同步介面:該介面的埠 與ImgOut 介面的外部時脈輸入同步。

    若您選擇 「非同步」,您需要

    • 在 iPortIDXClk 埠上提供時鐘訊號,並將其

    • 在合成約束中定義時域轉換約束 (約束檔案)。

    [注意] 支援雙倍像素深度

    若您在 ImgOut埠上使用iDesignClk2x,則可定義一個影像協定,其位元深度為 您為 ov..Data 埠所定義值的兩倍(即位元寬度與 並行度的乘積可達兩倍)。在此情況下,系統會自動執行係數 為 2 的並行度提升。

    [注意] 請使用iDesignClk或 iDesignClk2x

    Basler 建議在可能的情況下,盡量使用iDesignClk或 iDesignClk2x進行同步。

    FIFO 深度: 在此定義輸出資料緩衝區 FIFO 的深度, 該深度至少需由附帶的 Visual Applets 介面 運算子來實作。該值必須為 15 至 1023 之間的二的冪減 1。

    埠寬: 請在此處設定影像資料埠的寬度。

為ImgOut介面定義影像通訊協定 類別

您需要定義希望此ImgOut 介面類別所支援的影像協定。請依序定義各協定,直到所有 您想指定的協定都已包含在內為止。

[注意] 相關運算子在VisualApplets

將 VA IP 核心整合至您的 FPGA 設計後, 影像處理應用程式的開發人員會於VisualApplets 中實例化一個ImgOut運算子, 並定義在給定的應用程式中, 此運算子實例將實作ImgOut介面(以及該運算子本身)所支援的 哪些通訊協定。

  1. 點擊欄位中的箭頭 「格式」 欄位中的箭頭,並從格式清單中 選擇您想要的格式:

    有關受支援的影像格式的更詳細說明,請參閱「受支援的ImageOut輸出格式」。

  2. 雙擊列中的欄位 Pix.Width欄位中的欄位。

    請輸入所需的像素資料位元寬度(數值範圍:[1..64])。

    像素資料寬度上限為 64 位元。所有非灰階 色彩格式的像素資料寬度必須為 3 的倍數,且上限為 63 位元。

  3. 雙擊該欄位 「並行度」欄位中,並輸入所需的 並行度。

    The parallelism P defines the number of pixels which are contained in a single data word at the interface port. It must be chosen from the following set of allowed values: P = {1, 2, 4, 8, 16, 32, 64}. Packing of image data into words of a given interface width N (Port width, see above) must follow certain rules:

    • 所有 P 像素的資料必須能容納於單一字元中,其 長度為 N的單一字內。資料以最低有效位元(LSB)對齊方式儲存,這意味著對於 像素寬度 Z (Z=X 為灰階時, Z=Y 代表彩色)的資料分佈如下: Pixel[0]->Bits[0..Z-1] .. Pixel[P-1]->Bits[(P-1)*Z..P*Z-1]。

    • 對於 RGB 影像,三個色彩成分會以 LSB 對齊的方式封裝至一個子 字元 [0..Y-1] 內,依下列順序排列:紅色使用位元 [0..Y/3-1 ],綠色則使用位元 [Y/3..2*Y/3-1] 為藍色, [2*Y/3..3*Y/3-1]。

    • 對於 HSI 彩色影像,適用與 RGB 相同的規則,其中 H 扮演 紅色、S 扮演綠色,而 I 則扮演藍色的角色。

    • 對於 HSL 色彩圖像,其規則與 RGB 相同,其中 H 代表 紅色、S 代表綠色,而 L 則代表藍色。

    • 對於 HSV 彩色影像,適用與 RGB 相同的規則,其中 H 代表 紅色,S 代表綠色,V 則代表藍色。

    • 對於 YUV 色彩影像,適用與 RGB 相同的規則,其中 Y 代表 紅色、U 代表綠色,而 V 則代表藍色。

    • 對於 YCrCb 色彩影像,其規則與 RGB 相同,其中 Y 代表 紅色,Cr 代表綠色,而 Cb 則代表藍色。

    • 對於 LAB 色彩影像,其規則與 RGB 相同,其中 L 代表 紅色,A 代表綠色,B 則代表藍色。

    • 對於 XYZ 色彩影像,其規則與 RGB 相同,其中 X 代表 紅色、Y 代表綠色,而 Z 則代表藍色。

  4. 點擊欄位中的箭頭 「尺寸」 欄位中的箭頭,以選取您正在定義之通訊協定的 影像 尺寸。

    維度的含義如下:

    • 區域 (預設):影像由換行標記及 幀尾標記構成。在VisualApplets 中,影像尺寸 區域 被 命名為「2D」。

    • 行:影像由換行標記構成。並無 任何幀結束標記將傳入的行劃分為幀。在 VisualApplets 中,影像尺寸 行 被命名為「1D」。

    • 原始:沒有行結束標記,也沒有幀結束標記來 將傳入的影像資料劃分為行和幀。影像輸入流由 一個寬度為 1 像素的無盡像素流組成。在VisualApplets 中,影像 尺寸 原始 在xml-ph-0000@deepl.internal中被稱為「0D」。一行式攝影機可能是一種0-D 影像來源。

  5. 點擊欄位中的箭頭 「符號性」 欄位中的箭頭,並選擇您正在定義的 協定之影像 尺寸。

    • 無符號(預設):像素資料以無符號像素成分的形式封裝。

    • 有符號:像素資料以有符號像素元件的形式封裝

  6. 重複步驟 1 至 5,直到您已定義所有希望該 影像類別所支援的影像協定為止。

[注意] 影像協定定義的內部識別碼

預設假設核心大小為 1x1。清單中列出的每個協定皆 編有編號,編號從零開始。這些編號構成了特定 ImgOut類別的協定識別碼。該識別碼不會顯示於 GUI 上。因此,您所定義的每個 ImgOut類別,皆包含您所定義之影像 協定的內部識別碼清單。

在接下來的步驟之一中,您可以定義VisualApplets ImgOut運算子。這些運算子的實例可連接 至已定義的ImgOut類別(有關如何定義運算子的詳細資訊, 請參閱「定義硬體特定運算子」)。對於每個 ImgOut運算子,您可以指派您為相關影像埠所指定的 所有或部分影像協定。

在VisualApplets 中,ImgOut運算子將提供一個 參數,讓VisualApplets 的使用者能從一組 選項清單中選擇影像格式。根據所選格式,系統將為 相關的 IP 核心ImgOut介面埠(ov..FID_D)指派對應的 ID。此功能可讓 連接的膠合邏輯依據所選格式調整其運作行為。

為ImgOut 介面類別定義額外參數

您可以為ImgOut 介面類別定義所需的額外參數。這些(動態)參數可在執行期間進行設定與重新設定。 您可以透過執行時介面存取這些參數(請參閱「執行時軟體介面」)。

在執行期間,這些資料是透過 VA IP 核心的寄存器從屬介面(請參閱「寄存器從屬介面」)進行傳輸的。

ovPORTIDX_PARNAME_D:參數的資料 PARNAME。方向:輸出。您可以依照 以下說明定義位元寬度。此訊號會針對每個已定義的參數產生。

oPORTIDX_PARNAME_Upd:方向:輸出。位元寬度:1。當參數 PARNAME 由 執行時軟體更新時,此訊號會設定為「1」一個時鐘週期。此訊號會針對每個已定義的參數產生。

要為ImgOut介面 類別定義額外的參數:

  1. 前往 「參數連接埠」 區域。

  2. 點擊加號 圖示。

  3. 進入現場 名稱中,輸入您要 定義的參數名稱。雙擊該欄位以輸入內容。

  4. 現場 寬度欄位中,請設定參數埠的寬度 {1,64}。 請雙擊該欄位進行輸入。

    [注意] 從從機介面資料位寬到實際寄存器位寬的對應關係

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

  5. 重複步驟 2 至 4,直到您已定義完所有希望該影像類別 所支援的參數為止。

    在完成「設定ImgOut連接埠」、「 為ImgOut介面 類別定義影像通訊協定」以及「為ImgOut 介面類別定義其他參數」中所述的所有步驟後,您便已 建立好第一個ImgOut介面類別。

  6. 若您需要更多ImgOut介面類別,請重新從「設定ImgOut連接埠」開始, 來定義下一個ImgOut介面類別。

[注意] 根據需要定義任意數量的ImgOut介面類別

您可以依需求定義任意數量的介面類別。若要設定下一個 ImgOut介面類別,請再次從「設定ImgOut連接埠」中所述的步驟開始。

輸入 GPIO 定義

通用輸入訊號 (GPIs) 及通用輸出訊號 (GPOs) 可進入或 離開 VA IP 核心。這些訊號可用於觸發及製程控制。

您可以依照以下說明,設定 GPI 和 GPO 訊號的數量。

任何已在 eVA 平台描述中定義的 GPI 或 GPO 訊號,在 VA IP 核心中皆有 對應的輸入或輸出埠。當 NAME 代表該 GPI 或 GPO 訊號在 VisualApplets 中顯示的名稱:

  • iSig_名稱 針對寬度為 1 的輸入訊號

  • oSig_名稱 適用於寬度為 1 的輸出訊號

所有專用 I/O 訊號均與時鐘iDesignClk 保持同步。

Port 方向 Width 描述
iSig_名稱 在 1 GPI 埠上的輸入訊號
oSig_名稱 Out 1 GPO 埠上的輸出訊號

要定義 VA IP 核心的 GPI 埠:

  1. 前往 GPIO 分頁。

  2. 在 通用輸入訊號 區域,點擊加號 圖示。

  3. 在現有的欄位中,輸入您要 定義的 GPI 埠名稱。雙擊該欄位即可輸入。

  4. 請重複步驟 3 和 4,直到您已定義完所有希望在 您的 VA IP 核心上啟用的 GPI 埠為止。

  5. 前往 通用輸出訊號 區域。

  6. 點擊加號 圖示。

  7. 在現有的欄位中,輸入您要 定義的 GPO 埠名稱。請雙擊該欄位進行輸入。

  8. 請重複步驟 7 和 8,直到您已定義所有希望在 您的 VA IP 核心上啟用的 GPO 埠為止。

    已定義的 GPI 和 GPO 埠會立即顯示在 IP 核心的圖形化表示中:

[注意] 相關運算子在VisualApplets

對於 GPI 和 GPO 訊號,您稍後可以定義一個或多個平台專屬的 VisualApplets GPIO 運算子(詳情請參閱「定義硬體專用運算子」 )。這些運算子是由連接器與一個或多個 GPIO 資源所組成。

這些運算子可在(完成 IP 核心整合後)於VisualApplets 內進行實例化,並藉此實現對 IP 核心一個或多個 GPI 及/或 GPO 埠的存取。 VisualApplets 環境會檢查資源衝突(同一輸入/輸出引腳不得 被兩個運算子實例同時使用)。

定義所需的 Memory 介面

您可以透過抽象化的記憶體介面,將 VA IP 核心連接至外部記憶體。您 可以透過單一介面機制連接任何類型的記憶體。您只需透過膠合邏輯,將 eVA 記憶體介面協定調整為適用於您所使用的記憶體控制器即可。

您可以設定 VA IP 核心上將提供多少個記憶體介面埠。 對於每個埠,您可以分別定義其介面屬性(例如:位址和資料 位寬)。

eVA IP Core 的 Memory 介面

何時應使用影像緩衝區運算子VisualApplets 需要存取外部記憶體。 在大多數情況下,這將是若干個 RAM 銀行。記憶體介面埠在 VisualApplets 設計輸入中並不可見。但使用外部記憶體的運算子(例如 ImageBuffer)會消耗一種稱為 RAM ,該資源由VisualApplets 的資源管理機制所處理。

eVA 記憶體介面的設計方式,可透過單一介面機制連接多種 不同的記憶體架構。此抽象化介面 基本上是一個從機介面,其中外部記憶體控制器主導存取操作。該 從機透過獨立的 FIFO 介面,針對寫入與 讀取指令提出寫入或讀取存取請求。 連接的主控端需確認已取得指令,並可 隨時執行存取。透過標誌介面,從屬端能得知所請求的 存取何時已完成。此外,還有用於傳遞額外資訊的可選訊號,例如 待取用的指令數量。這些訊號可協助記憶體 主控端優化記憶體存取。

eVA 框架能夠支援多個記憶體埠。所產生的 VA IP 核心的 I/O 埠會加上後綴 X ,其中 X 代表 記憶體介面通道的編號。

記憶體介面的埠佈局,其中 X 為介面埠的索引

圖 200. 記憶體介面的埠佈局,其中 X 為介面埠的索引


  • 所有 I/O 皆與外部提供的時脈 iMemClkX (當指定非同步介面時)。 此外,同步模式亦可設定為SyncToDesignClk ,此時所有 I/O 皆與iDesignClk 同步;或 設定為SyncToDesignClk2x,此時 I/O 則與 iDesignClk2x 同步。

[注意] iDesignClk2x推薦

Basler 建議在 記憶體連接埠上使用iDesignClk2x時脈訊號。

  • 寫入與讀取請求可同時發生;記憶體的寫入與讀取資料路徑 完全分離。

  • 寫入存取是透過ovMemWrDataX、 ovMemWrAddrX、ovMemWrFlagX 以及 oMemWrReqX這幾個埠來請求的,以下將統稱為寫入 指令。

  • 讀取存取是透過ovMemRdAddrX、 ovMemRdFlagX 及oMemRdReqX這三個參數來請求的, 以下將統稱為「讀取指令」。

  • 當存取指令被讀取後,控制器會發出確認訊號。在發出 確認訊號後(寫入為iMemWrAckX, 讀取為iMemRdAckX),於下一個時鐘週期即可 傳送下一條指令。該指令會透過相應的請求埠 (寫入為oMemWrReqX,讀取為 oMemRdReqX)發出訊號。

  • 某些 VA 操作員要求對存取操作標記一個標記 (ovMemWrFlagX,ovMemRdFlagX)。在 執行完存取操作後,控制器必須將此標記傳回記憶體介面 (ivMemWrFlagX,ivMemRdFlagX)。必須提供的 標記具有最低寬度:

    • MemWrFlagWidth >= 4

    • MemRdFlagWidth >= 8

下表詳細說明了記憶體介面埠,其中 X 代表用於區分多個記憶體埠的埠號:

Port

方向

Width

描述

iMemClkX

在

1

記憶體介面時脈。當埠設定為 同步通訊時,此輸入將被忽略。

ovMemWrDataX

Out

MemDataWidthX

將資料輸出寫入記憶體控制器

ovMemWrAddrX

Out

MemAddrWidthX

寫入位址

ovMemWrFlagX

Out

MemWrFlagWidthX

寫入旗標輸出

oMemWrReqX

Out

1

寫入請求

iMemWrAckX

在

1

確認寫入資料已由記憶體控制器接收

oMemWrAlmostEmptyX

Out

1

僅提供單一寫入指令

ovMemWrCntX

Out

MemWrCntWidthX

可用的寫入指令數量

ivMemWrFlagX

在

MemWrFlagWidthX

從控制器寫入旗標輸出

iMemWrFlagValidX

在

1

寫入旗標輸入有效 – 表示 iMemWrFlagX 是 有效的,這表示先前已被標記為對應 oMemWrFlagX 標記的寫入存取操作已執行。

ovMemRdAddrX

Out

MemAddrWidthX

讀取地址輸出

ovMemRdFlagX

Out

MemRdFlagWidthX

讀取旗標輸出

oMemRdReqX

Out

1

讀取請求

iMemRdAckX

在

1

確認讀取位址已被記憶體控制器佔用

oMemRdAlmostEmptyX

Out

1

僅提供單一讀取位址

ovMemRdCntX

Out

MemRdCntWidthX

可用的讀取位址數量

ivMemRdFlagX

在

MemRdFlagWidthX

讀取標誌輸入 – 僅在 iMemRdDataValid 為真時有效X 被 拉高時

ivMemRdDataX

在

MemDataWidthX

讀取資料輸入

iMemRdDataValidX

在

1

讀取資料有效

下圖說明了寫入與讀取存取的介面協定, 其中這兩種存取會相互重疊。為簡化起見,假設記憶體控制器具有 兩個時脈週期的固定讀取延遲:

說明記憶體介面通訊協定的波形圖

圖 201. 說明記憶體介面通訊協定的波形圖


定義 Memory 介面

您可以定義各類記憶體介面類別。這些介面類別可能在 支援的資料位寬、位址、使用的時脈訊號,以及許多其他方面有所不同。每個記憶體 介面類別在 VA IP 核心上均可出現多次。

VA IP 核心範例

圖 202. VA IP 核心範例


此 VA IP 核心範例(如上圖所示)展示了兩個記憶體介面類別。 這兩種類別皆可建立多個實例:此 VA IP 核心提供 1 個 介面類別為 MemIF_A 的記憶體介面,以及 3 個介面類別為 MemIF_B 的記憶體介面。

要定義您的虛擬記憶體(VA)IP 核心的記憶體介面:

  1. 前往 「記憶體」 標籤頁。

  2. 點擊加號 圖示。

  3. 進入現場 記憶體類型,輸入您要定義的記憶體介面 類別名稱。雙擊該欄位即可輸入。

  4. 在現場 多重性,請在此處定義您希望在虛擬地址 (VA) IP 核心上擁有多少個此 類別的記憶體介面。請雙擊該欄位進行輸入。

    已定義的記憶體介面(在本範例中,為 6 個 MemIF_A 類別的介面) 會立即顯示在 IP 核心的圖形化表示中:

  5. 請進一步定義記憶體介面類別的其他屬性:

    資料位寬: 請輸入記憶體介面類別的資料寬度。

    地址寬度: 請在此處輸入地址寬度。

    寫入標記數量: 請在此處輸入 ovMemWrFlagX 的寬度(最小 寬度:4)

    讀取標記數量: 請在此處輸入 ovMemRdFlagX的寬度(最小寬度:8)

    某些VisualApplets 運算子要求存取操作必須標記一個標誌 (ovMemWrFlagX, ovMemRdFlagX)。在執行完存取操作後,控制器必須 將此標誌回傳給記憶體介面 (ivMemWrFlagX, ivMemRdFlagX)。 標籤 必須具備最低寬度:MemWrFlagWidth >= 4,MemRdFlagWidth >= 8

    同步模式: 此參數用以指定記憶體 介面時脈(記憶體介面上的iMemClkX)與設計 時脈(IP 核心上的iDesignClk)之間的關係。可選值如下:

    • SyncToDesignClk– 介面埠的運作與 iDesignClk 保持同步。介面時鐘 埠的外部時鐘輸入將被忽略。

    • SyncToDesignClk2x– 介面埠與 iDesignClk2x 同步。傳入介面 時鐘埠的外部時鐘輸入將被忽略。

    [注意] iDesignClk2x推薦

    Basler 建議在 記憶體埠上使用iDesignClk2x時脈訊號。

    • Async– 非同步介面:該介面的埠會 與外部時脈輸入同步,以驅動時脈埠 iMemClkX。

      若您選擇「非同步」,則需要

      • 在記憶體介面的iMemClkX埠提供時脈訊號, 並

      • 在綜合約束(約束 檔案)中定義時鐘域切換。

    最大待處理讀取傳輸數: 請在此處輸入核心外部讀取管線中 資料字的最大數量。此數值與計算 傳入讀取資料的最小緩衝區深度相關。

  6. 重複步驟 2 至 5,以定義您所需的所有記憶體介面類別。

定義硬體專用運算子

VisualApplets 提供了一系列運算子函式庫,用於定義影像處理 應用程式。所有函式庫——除了一個之外——皆為硬體獨立的,也就是說,其中包含的 運算子可在任何設計中,針對任何目標硬體使用。

唯一的例外是那些直接連接至 VA IP 核心周圍硬體的操作元:ImgIn介面、ImgOut 介面以及記憶體介面。這些是特定於硬體的操作元,必須 與 IP 核心本身一併設計。

定義ImgIn運算子

要為您的目標硬體定義ImgIn運算子:

  1. 前往 VisualApplets 「運算子」 標籤頁。

  2. 前往 「ImgIn 運算子」 標籤頁。

    在「標籤」下 ImgIn 運算子下,您會看到一列 先前已定義的ImgIn介面類別。

    (在我們的範例中,這些是ImgIn_A和 ImgIn_B。)

  3. 點選您要為其 定義連接ImgIn運算子的ImgIn介面類別。

  4. 點擊加號 圖示。

    現在,將顯示用於為此ImgIn 介面類別定義運算子的選項:

  5. 進入現場 操作員中,輸入您要 定義的操作員名稱。雙擊該欄位即可進行輸入。

  6. 現場 圖示檔案中,請定義圖示檔案的路徑,該圖示將 在VisualApplets 中,顯示於運算子的圖形化表示上。關於 完整的圖形化表示在VisualAplets中將呈現何種樣貌,您可參閱 程式視窗右上角的面板:

  7. 在現場 說明檔案, 指定HTML 說明檔案的路徑,該檔案 說明該運算子及其參數。點擊加號圖示,從 您的檔案系統中選取檔案。起始名稱 *.html 檔案名稱必須為 <nameofOperator>.html 並置於首位。 其他檔案可能是圖片、CSS 檔案等。

  8. 若要新增多個包含此 運算子相關資訊的檔案,請重複步驟 7。您可以一次載入一批檔案(例如,包含圖形檔案的HTML 檔案系統) 。您在此列出的第一個HTML 檔案將被視為主幫助檔案 (即幫助檔案系統的起點)。

    只要使用者建立一個運算子實例、在設計視窗中點擊該運算子實例,並 按下 F1 鍵,主說明檔案便會立即顯示在VisualApplets 的說明面板中:

    面板 影像協定選取 顯示 已附加至所選介面類別的影像協定:

  9. 請在此選取您希望此運算子支援的影像協定。

  10. 若您有此需求,請在最後兩欄中為所選的 影像協定設定最大影像寬度與最大影像高度。

  11. 重複步驟 4 至 10,以定義可連接至 所選介面類別的其他運算子。

  12. 重複步驟 3 至 10,為其他介面類別定義運算子。

定義ImgOut運算子

若要為您的目標硬體定義ImgOut運算子:

  1. 前往 VisualApplets 「運算子」 標籤頁。

  2. 前往 ImgOut 運算子 標籤頁。

    在「標籤」下 「ImgOut 運算子」下,您會看到先前所定義的 ImgOut介面類別清單。(在我們的 範例中,這些是ImgOut_a和ImgOut_b。)

  3. 點選您要為其 定義連接ImgOut運算子的ImgOut介面類別。

  4. 點擊加號 圖示。

    現在,將顯示用於為此ImgOut 介面類別定義運算子的選項:

  5. 進入現場 操作員中,輸入您要 定義的操作員名稱。雙擊該欄位即可進行輸入。

  6. 現場 圖示檔案中,請定義圖示檔案的路徑,該圖示將 於VisualApplets 中,顯示在運算子的圖形化表示上。關於 完整的圖形化表示在VisualAplets中將呈現何種樣貌,您可參閱 程式視窗右上角的面板:

  7. 現場 說明檔案中,請定義指向HTML 說明檔案的路徑,該檔案 說明了該運算子及其參數。點擊加號圖示,從 您的檔案系統中選取檔案。

  8. 若要新增多個包含此 運算子相關資訊的檔案,請重複執行步驟 7。您可以一次載入一批檔案(例如,包含圖形檔案的HTML 檔案系統) 。您在此處列出的第一個HTML 檔案將被視為主說明檔案 (說明檔案系統的起點)。

    只要使用者建立運算子實例、在設計視窗中點擊該運算子實例,並 按下 F1 鍵,主說明檔案便會立即顯示於VisualApplets 的說明面板中。

    面板 影像協定選取 顯示 已附加至所選介面類別的影像協定:

  9. 請在此選取您希望此運算子支援的影像協定。

  10. 若您有此需求,請在最後兩欄中為所選的 影像協定設定最大影像寬度與最大影像高度。

  11. 重複步驟 4 至 10,以定義可連接至 所選介面類別的其他運算子。

  12. 重複步驟 3 至 10,為其他介面類別定義運算子。

定義 GPIO 運算子

您可以定義 GPIO 運算子,以提供可配置數量的 GPI 和 GPO 連接埠。 在設計影像處理應用程式時,使用者可將這些連接埠連接至 eVA IP 核心的實際 GPI 和 GPO 連接埠。

若要為您的目標硬體定義 GPIO 運算子:

  1. 前往 VisualApplets 「運算子」 標籤頁。

  2. 前往 GPIO 運算子 分頁。

  3. 點擊加號 圖示。

  4. 在出現的欄位中,輸入您要定義的操作員名稱。 雙擊該欄位即可輸入。

  5. 現場 圖示檔案中,請定義圖示檔案的路徑,該圖示將 於VisualApplets 中,顯示在運算子的圖形化表示上。關於 完整的圖形化表示在 VisualAplets 中將呈現何種樣貌,您可參閱 程式視窗右上方的面板。

  6. 現場 說明檔案中,請定義指向HTML 說明檔案的路徑,該檔案 說明了該運算子及其參數。點擊加號圖示,從 您的檔案系統中選取檔案。

  7. 若要新增多個包含此 運算子相關資訊的檔案,請重複執行步驟 6。您可以一次載入一批檔案(例如,包含圖形檔案的HTML 檔案系統) 。您在此處列出的第一個HTML 檔案將被視為主說明檔案 (說明檔案系統的起點)。

    只要使用者建立運算子實例、在設計視窗中點擊該運算子實例,並 按下 F1 鍵,主說明檔案便會立即顯示於VisualApplets 的說明面板中。

    面板 GPIO 埠選取 顯示您為 eVA IP 核心所定義的 GPI 與 GPO 介面:

  8. 請在此選取您希望此運算子能夠 連線到的 IP 核心的 GPI 和 GPO 連接埠。

  9. 重複步驟 3 至 8,以定義可連接至 IP 核心的 GPI 及 GPO 埠的其他運算子。

為 IP Core 產生 VHDL 程式碼

依照「所有平台的共通介面」至「定義硬體特定運算子」各節所述,定義完 IP 核心黑盒後,即可編譯該 IP 核心黑盒 (VHDL)。在「嵌入與模擬 IP 核心」一節中,您將把此黑盒 整合至您的 FPGA 設計中。

配合 IP 核心黑盒, eVA Designer 會自動 為您所定義的各個介面建立模擬環境,並產生相應的 測試平台。章節「IP 核心的嵌入與模擬」詳細說明了 如何使用這些元件。

在產生 IP 核心黑盒時,您無需指定任何建置流程的詳細資訊。 此外,針對硬體的特定運算子,您可於稍後階段再進行定義。

要產生 IP 核心的黑盒模型:

  1. 請依照「所有平台的共通介面」 至「定義硬體特定運算子」等章節中的說明, 輸入有關目標硬體及所需 IP 核心 介面的所有資訊。

  2. 開啟XML 或 *.eva 包含您的硬體及核心 介面描述的檔案。

  3. 從選單 「工具」中,選擇 產生 VHDL …

  4. 請建立一個專用目錄,用來儲存生成的檔案。

  5. 點擊 「選擇目錄」。此時,所有相關檔案都會 自動產生。您可以在所選的目錄中找到它們:

  6. 請依照「嵌入與模擬 IP 核心」一節中的指示操作。您將了解

    1. 將(您剛才建立的)IP 核心黑盒整合至您的 FPGA 設計(VHDL)中,

    2. 使用這些在 VHDL 整合過程中提供支援的刺激訊號與模擬檔案。