Tcl Export

VisualApplets 可讓您將VisualApplets 的設計匯出為Tcl腳本(*.tcl)。

您可以將此指令碼格式用於以下目的:

  • 版本控制

  • 自動比較版本(透過建立「diffs」)

然而,在匯出至 Tcl 腳本的過程中,部分資訊會遺失。 因此,您應始終將設計儲存於 *.va 格式。 該 Tcl 檔案不符合用作主要資料格式的資格。

[警告] 將設計儲存為 *.va 格式

請使用 *.va 將此檔案格式設為您的VisualApplets 設計的主要資料格式。

Tcl 指令碼未包含完整的設計資訊。

Exporting to Tcl

匯出至 Tcl 指令碼期間將遺失以下資訊:

  • 您在使用者函式庫元件實例中進行的局部修改(用以使該實例適應周邊設計)將 遺失。 若您將 Tcl 腳本重新匯入至VisualApplets ,該實例將作為使用者函式庫元件的新副本被插入。 您設計中該實例的內容並未儲存於 Tcl 中。

  • 資訊方塊的內容以 Tcl 格式儲存。然而,資訊方塊的格式卻已遺失。

您也應隨時將設計儲存為 *.va 格式也是如此。 Tcl 檔案不符合用作主要資料格式的資格。

若要將設計匯出至 Tcl 檔案(*.tcl):

  1. 從選單中選擇 「檔案」 → 匯出 →將設計匯出為腳本……

    匯出設計

    圖 175. 匯出設計


  2. 為包含您設計的 *.tcl 包含您設計的檔案,然後點擊 Save.

現在您可以將 Tcl 檔案提交至版本控制系統,或使用「diff」工具來找出 設計的不同版本之間的差異。

Importing from Tcl

若要將您的 *.tcl 設計檔案匯入 VisualApplets:

  1. 從選單中選擇 「檔案」 → 匯入 →從腳本建立設計....

    匯入設計

    圖 176. 匯入設計


  2. 瀏覽至以下位置: *.tcl 包含您設計的檔案,然後選取 *.tcl 檔案。

  3. 按一下 Open。

現在您的設計已在 VisualApplets 中開啟,您可以

  • 在 VisualApplets 中繼續編輯您的設計,

  • 將您的設計檔案儲存為 *.va 檔案。

[警告] 請務必使用 *.va File Format as Primary Data Format

請務必使用 *.va 將此檔案格式設為您的VisualApplets 設計的主要資料格式。

切勿將 Tcl 腳本格式用作主要資料格式,因為 Tcl 腳本並不包含完整的設計資訊。

Tcl 匯入/匯出指令參考

在生成的 Tcl 原始碼檔案中,使用了以下專屬於VisualApplets 的指令。

[重要] 語法

可選參數: 可選參數的標記方式遵循 Wirth 語法標記法(使用方括號)。

參數 FullModuleName:從程序層級開始的層級路徑。各層級之間以斜線分隔。

命令

Parameters

描述

建立、載入與儲存設計

CreateDesign

名稱

平台

用於為硬體平台「Platform」建立名為「Name」的新設計的指令。 若要指定設計的目標平台,您可以使用

  • 該平台的VisualApplets 函式庫名稱(例如「mE4VQ4-GE」),或

  • 該平台的完整名稱(例如:「microEnable IV VQ4-GE 」)。

Using capitals in the names has no effect.

SetDesignProperty

關鍵值

請使用此指令輸入設計屬性。您可以使用以下三個值作為鍵:

  • 專案名稱(您希望該專案所使用的名稱)

  • 版本(設計版本)

  • >說明(專案說明)。

SetDesignClock

NewFrequency

用於設定 FPGA 基本時脈頻率的命令 (單位為 MHz)。

建立設計

CreateProcess

-

建立一個新程序

CreateModule

OperatorType

FullModuleName

[ InPortMultiplicity

[ 輸出埠多重性

{NamedPortMultiplicity}

] ]

xPos

yPos

建立一個運算子(OperatorType)的實例(Module)。

您可透過參數 xPos 和 yPos 來定義模組在設計視窗中的位置。

透過 FullModuleName,您可以定義模組在設計中的層級位置,以及實例化後的名稱(例如: Process0/branch)。

若需設定,您可以使用數值對 InPortMultiplicity 和 OutPortMultiplicity 來指定 模組的向量輸入與向量輸出的多重性。

若使用此數值對,即為該 模組(即某個運算子的特定實例)定義在具有可變埠號的運算子(如 BRANCH)中的埠數。

此外,您可以指定個別向量連接埠的多重性(NamedPortMultiplicity)。您可以在同一條命令列中多次使用 NamedPortMultiplicity 。

格式為 PortGroup:數字。

範例: CreateModule BRANCH Process0/branch 0 0 O:3 100 100

ConnectModules

FromModule

FromModulePort

ToModule

ToModulePort

[ x1 [y2 x3] ]

用於連接模組的指令。對於 FromModule 和 ToModule,請使用層級名稱 (即包含模組在設計中的層級位置以及實際模組名稱的名稱,例如 (例如 Process0/branch))。

層級方塊內的節點透過前綴「INBOUND#」或「OUTBOUND#」來識別。例如:「OUTBOUND#O001」。

您可使用選填參數 x1、y2 和 x3 來定義連接多邊形的幾何形狀 (從 FromModuleOutputPort 延伸至 x1 的水平線、 延伸至 y2 的垂直線、 水平線延伸至 x3, 垂直線向上延伸至 ToModulePort 的高度, 水平線延伸至 ToModulePort)。

CreateComment

FullModuleName

文字

xPos

yPos

「Text」的內容可以包含 Unicode 字元。若您使用不屬於 ASCII 範圍的字元,請使用相應的 Tcl 語法來表示 Unicode,例如:

[將 utf-8 編碼的「A-Umlaut: \xc3\x84」進行轉換]

SetParamInt

FullModuleName

ParameterName

Value

用於設定整數參數的指令。

SetParamFloat

FullModuleName

ParameterName

Value

用於設定浮點數參數的指令。

SetParamEnum

FullModuleName

ParameterName

Value

用於設定具索引的枚舉參數的指令。值為該枚舉值的字串。

範例:Process0/module1 (SetSignalStatus),"SetParamEnum Process0/module1 Mode High" 會將參數 Mode 設定為 High。

SetParamString

FullModuleName

ParameterName

Value

用於設定字串參數的指令。

SetParamIntField

FullModuleName

ParameterName

索引

值1

{OtherValues}

此指令用於設定整數欄位的資料,從索引 "Index" 開始,並填入以下值。

SetParamFloatField

FullModuleName

ParameterName

索引

Value

{OtherValues}

用於設定浮點數欄位條目,從索引 "Index" 開始,對應以下數值的指令。

SetParamStatic

FullModuleName

ParameterName

如果某個參數既可以是靜態的,也可以是動態的,在絕大多數情況下,該參數預設會被設定為動態。 請使用此指令將此類參數設定為靜態。

SetParamDynamic

FullModuleName

ParameterName

您可以使用此函式將參數設定為動態(前提是該參數本身允許設定為動態)。

SetLinkParam

FullModuleName

PortName

ParameterName

Value

{ 其他參數名稱

OtherParameterValue }

用於配置連結的指令。連結是透過模組的「連接」節點來識別的。

SetResourceMapping

FullModuleName

ResourceName

[目錄]

NewMapping

用於變更資源與模組之間對應關係的指令。資源 ResourceName 將被對應至新索引 NewMapping。 若模組分配了多個同類型資源,請使用可選參數 Index 來選取 該資源。

其他編輯指令

Move

FullModuleName

[HierNodeName]

PosX

PosY

用於將模組、H-Box 節點、註解框或模擬模組重新定位至 設計視窗內新位置的指令。

僅在選取 H-Box 節點時使用參數 [HierNodeName]。 層級方塊內的節點是透過前綴「INBOUND#」或「OUTBOUND#」來識別(如同您使用 ConnectModules 指令時一樣),例如「INBOUND#I000」。

CreateSimSource

FullSimModuleName

xPos

yPos

用於在指定位置建立模擬來源的指令。

CreateSimProbe

FullSimModuleName

xPos

yPos

用於在指定位置建立模擬探針的指令。

ConnectSimModule

FullSimModuleName

目標模組名稱

目標模組埠名稱

[ xPos yPos ]

用於透過連結將模擬模組相互連接的指令。 此連接是透過指定的模組(TargetModuleName)和埠(TargetModulePortName)來識別的。 TargetModuleName 必須位於與 FullSimModuleName 相同的層級結構中。 您可選擇透過參數 xPos 和 yPos 來定義該連接在鏈路上的位置。

SetSimModuleProperty

FullSimModuleName

Key

Value

{OtherValue}

用於配置模擬模組的指令。可設定以下參數(在下表中,關鍵字 Key 後面緊接參數值 Value):

PixelAligmentOffset BITS

ImageFileSubPixels 數值型

ImageFilePixelBits BITS

ImageFileNormalize 選項

其中 CHOICE = "1" | "0" | "yes" | "no" | "on" | "off" | "true" | "false"

CropRect [imageNr] X Y 寬度 高度

CurrentImage 索引

AddImage

FullSimSourceName

圖片檔案名稱1

{OtherImageFileName}

[圖片庫]

用於將影像新增至模擬來源的指令。 若連結上的核心元素數量大於 1,則需指定與該連結上核心元素數量相等的影像數量 。 您亦可選擇指定要使用的影像庫(ImageLibrary = "Native" | "ImageMagick")。

User Libraries

InstUserLibOperator

LibName

OperatorName

FullModuleName

XPos

YPos

用於實例化使用者函式庫元素的指令。

自訂函式庫處理

InstCustomLibOperator

LibName

OperatorName

FullModuleName

XPos

YPos

用於實例化自訂函式庫元素的指令。

表 13. 在 Tcl 中建立與編輯 VA 設計的指令