在前幾節中,已說明 VisualApplets 專案的資料流模型、佈局以及連結規則。本章將概述設計中 模組與連結的參數化設定。
應用程式的行為與頻寬不僅取決於您在 設計中使用的運算子,也極大程度取決於模組與鏈路的參數設定。模組 屬性定義了每個模組的行為,而鏈路屬性則描述了模組之間的 通訊協定。模組與鏈路的屬性彼此直接相關,並相互 影響其可用性或範圍。
有關參數化的實用指引,請參閱 「參數化教學」主題。
您可以透過「模組屬性」 對話方塊或「參數資訊」視圖來變更模組屬性。 「參數 資訊」檢視窗會顯示當前設計中所有運算子的所有參數, 因此能讓您清楚掌握所有已設定的參數。而「模組 屬性」對話方塊則提供有關參數的更多詳細資訊。您可以在 這兩種檢視窗中編輯參數,但僅能在 「模組屬性」對話方塊中新增元資料。
「參數資訊」位於 VisualApplets 主視窗右上角的「資訊」面板中。
如果「參數資訊」在啟動時未自動開啟,您
可透過選單列選擇 → → .

「參數資訊」視圖會顯示所有參數 及其運算子,這些皆屬於當前設計。您亦可在 「參數資訊」視圖中編輯這些參數。
「參數資訊」視圖提供了一項搜尋功能, 讓您可以搜尋參數、參數值或運算子名稱。您可以 使用「僅執行時參數」篩選器,僅顯示動態 參數,也就是您可以在執行時編輯的參數。

-
若要開啟「模組屬性」對話方塊,請雙擊 某個模組,或右鍵點擊模組並選取 。
「模組屬性」對話方塊列出了模組所需的所有設定。 請注意,每個模組可用的參數集各不相同 (視建立該模組時所實例化的運算子而定)。
下圖顯示了 「模組 屬性」對話方塊中,一個 ImageBuffer運算子的參數:
「模組屬性」視窗列出了模組的所有可用參數 。在此情境下,每個參數代表一個模組屬性。這些 參數會以以下欄位的項目形式顯示:
-
參數名稱:
參數的名稱。
當您要為模組新增參數時(請參閱下方),您可以在此處輸入 該新參數的名稱。
-
參數值
某個參數的實際值。
您可以編輯此欄位來變更數值。
-
參數 單位
參數的單位。可以是像素、秒、行等。
-
參數類型
在此,您可以將參數設定為靜態或動態。 靜態參數 在小程式建置完成後便無法變更,而動態 參數則可在小程式於幀擷取 硬體上運行時進行變更。一般而言,靜態參數所需的 FPGA 資源 通常比動態參數少。
-
參數標誌
參數旁的標記用以指示該參數是否為
-
唯讀 (讀取),或具有
-
讀寫權限 (寫入)。
-
-
值型資料型別
參數值的類型。參數值共有四種不同的 類型:
-
字串
任何字串,例如檔案名稱。
-
數值的
不同類型(無符號、有符號、雙精度)的數值及其 數值範圍。
-
Enumerations
一組枚舉值的清單,例如 「停用」或 「啟用」。
-
欄位參數
場參數由一組數值陣列、清單或矩陣 所組成。它主要用於核函數係數、查表 及其他清單。數值範圍與清單大小皆可 動態調整。 請注意,顯示的位元寬度不等於 實際的參數範圍。此外,參數始終為 無符號型別,即使在 欄位中被宣告為有符號值亦然。
-
![]() |
各模組之間的差異 |
|---|---|
|
特定模組可用的參數數量及具體參數為何, 會因模組而異(取決於底層的運算子)。 儘管如此,每個模組至少會擁有一個名為 Name 的參數。 |
![]() |
沒有「撤銷」選項 |
|---|---|
|
無法取消變更。所有變更都會立即生效。 |
要編輯參數:
-
點擊某個參數值,然後輸入新值。
某些值型別具有特殊的編輯選項:
字串: 字串參數,您只需 輸入新字串即可進行編輯。部分字串參數為檔案名稱參數。 在這種情況下,系統會開啟檔案選取對話方塊。
數值: 若要編輯數值,請使用參數值旁邊的 旋鈕框來增加或減少數值。參數的 步長決定了最小增減量。
欄位: 使用欄位 參數時,系統將開啟一個新的編輯視窗,其中會顯示該參數的所有 欄位元素。下圖展示了 FIRoperatorNxM運算子的欄位:
您可以透過以下三種不同的方式,編輯 模組的欄位參數值:
-
您可以直接個別編輯每個欄位元素。
-
此外,您也可以使用檔案中的清單來填入 參數值。
-
您可以點擊 按鈕來匯入該檔案。
-
您也可以透過點擊 按鈕,將當前的欄位參數設定 匯出至檔案。
![[注意]](../common/images/admon/note.png)
匯入檔案的檔案格式 -
匯入檔案必須包含一組 ASCII 值。
-
每個數值都必須佔一行。
-
各行必須以回車符 (CR) 和換行符 (LF) 分隔。
-
該檔案必須為純文字格式 ([檔案名稱].txt)。
如果檔案中的值多於該欄位可容納的數量, 則會使用檔案中的前幾個值(數量以填滿該欄位 為限)。檔案中其後的值將不 產生任何影響。
如果檔案中的值少於該欄位的值數, 則檔案中的所有值都會被精確地使用一次。該欄位的最後 幾個位置(即檔案中沒有對應值的 位置)將保持不變。
-
-
編輯欄位中元素的第三種方法是使用 「參數功能」對話方塊。
-
點擊 以開啟 函式對話方塊(參見下圖)。
透過此對話方塊,可使用線性函數來編輯 各項元素。線性函數由以下元素組成: a= 斜率、 b= 偏移量,以及 x= 欄位元素的索引。在 此對話方塊中,可編輯a和 b。
-
請輸入 a 和 b 的數值。
陣列的第一个元素索引為 0。對於 矩陣元素,各元素會按行 順序連續編號。
-
-
![]() |
已停用的參數 |
|---|---|
|
某些參數已被停用,無法進行編輯。參數是否 被停用或啟用,取決於其他參數的設定、輸入 格式或輸出格式。如需更多 資訊,請參閱相關運算子參考手冊。 以下螢幕截圖顯示了兩個已停用的參數。在此 情況下,y 參數之所以被停用,是因為輸入連結的影像協定為 VALT_LINE1D(這表示該影像為一維(僅為一行像素) ,因此不存在 y 座標)。 |
編輯完參數後,必須將其套用。
-
點擊 以套用設定。
若新參數值不在允許的 參數值範圍內,則該值將被捨棄。
![]() |
點擊 ,然後再關閉視窗 |
|---|---|
|
建議在關閉參數視窗前先點擊「套用」。這樣一來, 若您輸入的數值不符合要求,系統便會顯示警告訊息。 |
-
點擊以下按鈕以關閉「模組屬性」視窗 。
大多數「參數」函式庫的運算子皆針對特定參數提供 自動完成與語法著色功能。 以下運算子中的下列參數 支援自動完成功能:
| Operators | Parameters | 啟用 |
|---|---|---|
| EnumParamTranslator |
WriteAction, ReadAction |
輸入「${」 |
|
DisplayHierarchy |
TAB 鍵 |
|
| FloatParamTranslator |
WriteAction, ReadAction |
輸入「${」 |
|
DisplayHierarchy |
TAB 鍵 |
|
| IntParamTranslator |
WriteAction, ReadAction |
輸入「${」 |
|
DisplayHierarchy |
TAB 鍵 |
|
| LinkParamTranslator |
WriteAction |
輸入「${」 |
| EnumParamReference |
Reference |
TAB 鍵 |
|
DisplayHierarchy |
TAB 鍵 |
|
| FloatFieldParamReference |
Reference |
TAB 鍵 |
|
DisplayHierarchy |
TAB 鍵 |
|
| FloatParamReference |
Reference |
TAB 鍵 |
|
DisplayHierarchy |
TAB 鍵 |
|
| IntFieldParamReference |
Reference |
TAB 鍵 |
|
DisplayHierarchy |
TAB 鍵 |
|
| IntParamReference |
Reference |
TAB 鍵 |
|
DisplayHierarchy |
TAB 鍵 |
|
| ResourceReference |
Reference |
TAB 鍵 |
|
DisplayHierarchy |
TAB 鍵 |
|
| StringParamReference |
Reference |
TAB 鍵 |
|
DisplayHierarchy |
TAB 鍵 |
|
| IntParamSelector |
Reference |
TAB 鍵 |
|
DisplayHierarchy |
TAB 鍵 |
|
| FloatParamSelector |
Reference |
TAB 鍵 |
|
DisplayHierarchy |
TAB 鍵 |
|
| EnumVariable |
DisplayHierarchy |
TAB 鍵 |
| FloatVariable |
DisplayHierarchy |
TAB 鍵 |
| IntVariable |
DisplayHierarchy |
TAB 鍵 |
表 5. 自動完成與語法高亮顯示的功能可用性
若要對參考運算子使用自動完成功能,請點擊 「參考」或 「顯示層級」參數的 「參數值」欄位,然後按下 TAB 鍵。此時,VisualApplets 會透過下拉式清單提供一系列有效的 值供您選擇。
如果您點擊那三個點
在……旁邊 參數值 領域,該
Enter data for <operator>/<parameter> 對話方塊隨即
開啟。在此對話方塊中,您會看到具有語法高亮顯示的資料,並可進一步使用
自動完成功能:
語法高亮功能在「模組」 的「屬性」中同樣適用:
To use the autocompletion functionality in the WriteAction and ReadAction parameters of translate operators, type “${” into the Parameter Value field:
語法高亮功能同樣適用於 translator 運算子的WriteAction 和ReadAction參數。
若要對 translate 運算子的DisplayHierarchy 參數使用自動完成功能,請點擊 DisplaHierarchy參數的 「參數值」欄位,然後按下 TAB 鍵。
當連結屬性變更或 其他屬性設定變更時,參數的允許值範圍可能會改變。若發生這種情況,舊的參數值可能會 處於非法狀態。此時,該參數會標示為紅色,以表示 當前設定將無法通過設計規則檢查。 您必須修正該 參數值,直到其處於有效範圍內為止。
前一圖示範了參數處於非法狀態的例子。在此 情況下,參數值未處於允許範圍內,因為 XLength+XOffset 大於輸入鏈路的參數化最大影像寬度。
模組之間的每個連結皆由其連結屬性所定義。您可以透過雙擊連結, 或右鍵點擊並選擇 「屬性」。
每個連結具有以下連結屬性:
-
Bit Width
定義單一像素的連結位元寬度。因此,若使用色彩連結, 則該位元寬度代表所有色彩平面。對於影像 通訊協定VALT_SIGNAL,其位元寬度始終為一位元。 有關位元寬度與算術處理的實務指引,請參閱 《BitArithmetic教學》主題。
-
Arithmetic
連結的算術模式。可設定為有符號或無符號。若設定為有符號,則 採用二補碼有符號算術。符號位元包含在 透過「屬性位元寬度」所指定的位元中。對於影像 協定VALT_SIGNAL,其算術模式始終設定為無符號。
-
Parallelism
指定在一個設計時鐘週期內,兩個 模組之間並行傳輸的像素數量。對於影像協定 VALT_SIGNAL,並行度始終設定為一。有關 並行度的更多資訊,請參閱「Applet 的頻寬」。
-
Kernel Columns
定義核心欄位的數量。對於影像 協定VALT_SIGNAL,核心欄位的數量始終設定 為一。
-
Kernel Rows
定義核心的列數。對於影像協定 VALT_SIGNAL,核心的列數始終設定為一。 有關在設計中使用核心的實務指引,請參閱 「使用核心」教學主題。
-
影像協定
影像通訊協定定義了該 連線所使用的資料傳輸通訊協定。可用的通訊協定如下:
-
VALT_IMAGE2D:二維影像,例如區域掃描 攝影機。
-
VALT_LINE1D:一維影像,即影像高度 無限制的影像,例如線掃描相機。
-
VALT_PIXEL0D:一個簡單的像素流,不包含任何影像尺寸 資訊。
-
VALT_SIGNAL:在每個時鐘週期皆有效的單位元訊號。 用於訊號處理,例如觸發系統。
有關影像協定的更多資訊,請參閱〈影像協定、影像尺寸與資料結構〉。
-
-
Color Format
色彩格式可以是 VAF_GRAY、VAF_COLOR 或 VAF_NONE。對於 影像通訊協定VALT_SIGNAL,其色彩格式始終 設定為 FL_GRAY。
-
Color Flavor
定義色彩格式的類型。對於影像 協定VALT_SIGNAL,其色彩類型始終設定為 FL_GRAY。
-
最大圖片寬度
定義連結的最大影像寬度。透過該連結傳輸的影像 不得超過此值,但可小於此值。最大 影像寬度 對採用影像 協定VALT_PIXEL0D 及 VALT_SIGNAL的連結無影響。 對於這些影像協定, 「最大影像寬度」將被忽略。更多相關資訊可 參閱「資料流」及「影像協定、影像尺寸與資料結構」。
-
最大圖片高度
定義連結的最大影像高度。透過該連結傳輸的影像 不得超過此值,但可小於此值。最大 影像高度對採用影像 協定VALT_LINE1D、VALT_PIXEL0D 及 VALT_SIGNAL的連結無影響。對於這些 影像協定,「最大影像高度」將被忽略。更多 相關資訊請參閱「資料流」及「影像協定、影像尺寸與資料結構」。
![]() |
在 GUI 上視覺化 |
|---|---|
|
為了視覺化對應的鏈結屬性,VisualApplets 在程式視窗的工具列中提供了兩個 GUI 按鈕:
Display Link Info
![]()
Display Link Throughput
![]()
|
每個模組都會自行定義其輸出端連結屬性的範圍。某些 屬性無法修改,某些屬性只能在指定的 範圍內修改,而其他屬性則可任意修改。關於 允許的輸出連結格式的詳細說明,請參閱《運算子參考》中相應的運算子參考文件。
若要編輯參數,只需在 連結屬性視窗的「值」欄中點選該參數即可。
「連結屬性」對話方塊由三欄組成:
-
Value
這是您的編輯欄位。請在此 欄位中點擊數值,以編輯連結屬性的數值。若編輯後的數值超出 允許的參數範圍或步長,該數值將被捨棄或 無法插入。 請將焦點移離該欄位 或按下 Enter 鍵,以確認新值。
-
來源埠
在「值」欄位中輸入新值並 確認後,來源操作員會檢查該新值是否被接受。若 新值未被接受,該參數與連結將顯示為紅色 ,以標示連結屬性發生衝突。 因此,若「來源」欄位中的某個連結屬性 顯示為紅色,來源操作員將不允許進行該設定。 此欄位的數值不得修改!
-
目的港
點擊 或 或 或按下 Esc 將套用該連線的新設定。若新設定未被 目標營運商輸入埠接受,則該連線以及 「目標埠」欄位的參數將轉為紅色,以標示 衝突。 此欄位的數值無法修改!
變更某個連結屬性可能會導致另一個連結屬性或某個 模組參數值隨之改變。無法取消這些變更。每項變更都將 立即套用。
讓我們來看幾個例子。 下圖顯示了發生在 來源端口的衝突。在此情況下,來源運算子(即 CastParallel運算子)因位元寬度的限制, 無法在其輸出端接受三並行度。當輸出並行度 變更為四、二或一後,此衝突即獲得解決。
螢幕截圖圖 84「目的地埠連結屬性無效」顯示 目的地埠發生衝突。 該目的地運算子(在此情況下為 DmaToPC運算子)無法接受具有 此並行度與位元寬度的 RGB 影像。將並行度降低至四或 五後,此衝突即已解決。
連結屬性由運算子定義。某些連結屬性可直接 在運算子的輸出連結處進行變更,而其他屬性則是固定的,或由 運算子參數所定義。 此外,大多數運算子除了 輸入鏈結屬性之外,還會額外定義其鏈結屬性。這可能會導致鏈結屬性的修改 串連穿過多個模組。因此,若某個鏈結屬性已遭變更,後續模組的參數與 鏈結屬性也可能隨之改變。
這條傳播鏈可能導致三種結果:
-
此修改已獲所有後續模組與連結接受。 VisualApplets 會將所有已變更的連結以綠色顯示,以告知 使用者哪些連結屬性已遭修改。
-
某些模組的連結不接受此連結修改。在此 情況下,請檢查該連結是否存在錯誤。請參閱來源或 目標運算子的文件,以了解允許的連結格式。
-
此修改會與某個模組參數產生衝突。在此情況下, 該模組及其對應的模組參數都會被標示為紅色。請參閱 運算子參考手冊中的連結與參數依賴關係,以解決此衝突。




![[警告]](../common/images/admon/warning.png)


![[重要]](../common/images/admon/important.png)








![[提示]](../common/images/admon/tip.png)






上一頁

