VisualApplets 允许您将 VisualApplets 设计导出为 Tcl 脚本(*.tcl)。
您可以将该脚本格式用于以下目的:
-
版本控制
-
自动比较版本(通过创建“diffs”)
但是,在导出为 Tcl 脚本的过程中会丢失某些信息。
因此,您应始终将设计保存在 *.va 格式中。
Tcl 文件不适合用作主要数据格式。
![]() |
将设计保存为 *.va Format
|
|---|---|
|
使用 Tcl 脚本不包含完整的设计信息。 |
导出为 Tcl 脚本期间将丢失以下信息:
-
您在用户库元素实例中所做的本地修改(用于使该实例适应周围的设计)将会 丢失。 如果您将 Tcl 脚本重新导入到 VisualApplets 中,该实例将作为用户库元素的全新副本插入。 您设计中实例的内容未保存在 Tcl 中。
-
信息框的内容会保留在 Tcl 格式中。但是,信息框的格式会丢失。
您还应该始终将设计保存在 *.va 格式中。
Tcl 文件不适合用作主要数据格式。
要将设计导出为 Tcl 文件(*.tcl):
现在,您可以将 Tcl 文件检入到您的版本控制系统中,或者使用“diff”工具查找设计不同版本之间的差异。
要将您的 *.tcl 设计文件导入到 VisualApplets 中:
现在,您的设计已在 VisualApplets 中打开,您可以
-
在 VisualApplets 中继续编辑您的设计,
-
将您的设计文件保存为
*.va文件。
![]() |
始终使用 *.va File Format as Primary Data Format
|
|---|---|
|
始终使用 切勿将 Tcl 脚本格式用作主数据格式,因为 Tcl 脚本不包含完整的设计信息。 |
在生成的 Tcl 源文件中,使用了以下 VisualApplets 专用命令。
![]() |
语法 |
|---|---|
|
可选参数:可选参数的符号表示遵循维尔特语法符号(括号)。 Parameter FullModuleName:从进程级别开始的分层路径。层级之间用斜杠分隔。 |
|
命令 |
参数 |
描述 |
|---|---|---|
|
创建、加载和保存设计 |
||
|
CreateDesign |
名称 Platform |
用于为硬件平台“Platform”创建一个名为“Name”的新设计的命令。 若要指定设计的目标平台,您可以使用
名称中的大小写字母没有区别。 |
|
SetDesignProperty |
Key Value |
使用此命令输入设计 Property。您可以将以下三个值用作 key:
|
|
SetDesignClock |
NewFrequency |
用于设置 FPGA 基本时钟频率(以 MHz 为单位)的命令。 |
|
设置 Design |
||
|
CreateProcess |
- |
创建一个新的 process |
|
CreateModule |
OperatorType FullModuleName [ InPortMultiplicity [ OutPortMultiplicity {NamedPortMultiplicity} ] ] xPos yPos |
创建算子(OperatorType)的一个实例(Module)。 您通过参数 xPos 和 yPos 来定义 module 在 design 窗口中的位置。 通过 FullModuleName,您可以定义 module 在设计内的分层位置及其实例化后的名称(例如 Process0/branch)。 或者,您可以使用值对 InPortMultiplicity 和 OutPortMultiplicity 来指定 module 的向量输入和向量输出的多重性。 如果使用此值对,则可以为 module(作为算子的特定实例)定义端口数量(适用于具有可变端口数量的算子,例如 BRANCH)。 此外,您还可以指定各个向量端口的多重性(NamedPortMultiplicity)。您可以在一个命令行中多次使用 NamedPortMultiplicity。 格式为 PortGroup:Number。 示例:CreateModule BRANCH Process0/branch 0 0 O:3 100 100 |
|
ConnectModules |
FromModule FromModulePort ToModule ToModulePort [ x1 [y2 x3] ] |
用于连接模块的命令。对于 FromModule 和 ToModule,请使用分层名称 (包含模块在设计中的分层位置以及实际模块名称的名称,例如 Process0/branch)。 Nodes within hierarchical boxes are identified via the prefix "INBOUND#" or "OUTBOUND#". Example: "OUTBOUND#O001". 可选参数 x1、y2 和 x3 用于定义连接多边形的几何形状 (从 FromModuleOutputPort 到 x1 的水平线, 到 y2 的垂直线, 到 x3 的水平线, 向上延伸至 ToModulePort 高度的垂直线, 到 ToModulePort 的水平线)。 |
|
CreateComment |
FullModuleName Text xPos yPos |
Text 的内容可以包含 Unicode 字符。如果您使用的字符不属于 ASCII,请使用相应的 Tcl 语法来表示 Unicode,例如: [encoding convert from utf-8 "A-Umlaut: \xc3\x84"] |
|
SetParamInt |
FullModuleName ParameterName 值 |
用于设置整数 Property 的命令。 |
|
SetParamFloat |
FullModuleName ParameterName 值 |
用于设置浮点数 Property 的命令。 |
|
SetParamEnum |
FullModuleName ParameterName 值 |
用于设置寻址枚举 Property 的命令。Value 为枚举值的字符串。 示例:Process0/module1 (SetSignalStatus),"SetParamEnum Process0/module1 Mode High" 将 Mode Property 设置为 High。 |
|
SetParamString |
FullModuleName ParameterName 值 |
用于设置字符串 Property 的命令。 |
|
SetParamIntField |
FullModuleName ParameterName 索引 Value1 {OtherValues} |
Command for setting integer field entries starting with index "Index" for the following values. |
|
SetParamFloatField |
FullModuleName ParameterName 索引 值 {OtherValues} |
用于将以索引 "Index" 开始的浮点数字段条目设置为以下值的命令。 |
|
SetParamStatic |
FullModuleName ParameterName |
如果参数既可以是静态的也可以是动态的,绝大多数情况下该参数默认设置为动态。使用此命令可将此类参数设置为静态。 |
|
SetParamDynamic |
FullModuleName ParameterName |
您可以使用此功能将参数设置为动态(如果该参数本身支持动态)。 |
|
SetLinkParam |
FullModuleName PortName ParameterName 值 { OtherParameterName OtherParameterValue } |
用于配置链接的命令。连接通过模块的连接节点进行识别。 |
|
SetResourceMapping |
FullModuleName ResourceName [Index] NewMapping |
用于更改资源到模块的映射的命令。资源 ResourceName 将被映射到新索引 NewMapping。 如果模块分配了多个同类型的资源,请使用可选参数 Index 来选择资源。 |
|
更多编辑命令 |
||
|
Move |
FullModuleName [HierNodeName] PosX PosY |
Command for re-positioning a module, a H-Box node, a comment box, or a simulation module to a new position within the design window. 仅当选择 H-Box 节点时才使用参数 [HierNodeName]。 分层框内的节点通过前缀 "INBOUND#" 或 "OUTBOUND#" 进行识别(就像使用 ConnectModules 命令时一样),例如 "INBOUND#I000"。 |
|
CreateSimSource |
FullSimModuleName xPos yPos |
用于在指定位置创建仿真源的命令。 |
|
CreateSimProbe |
FullSimModuleName xPos yPos |
用于在指定位置创建仿真探测点的命令。 |
|
ConnectSimModule |
FullSimModuleName TargetModuleName TargetModulePortName [ xPos yPos ] |
用于通过 Link 连接仿真模块的命令。 该连接通过指定的模块 (TargetModuleName) 和端口 (TargetModulePortName) 进行识别。 TargetModuleName 必须位于与 FullSimModuleName 相同的层级中。 您可以选择通过参数 xPos 和 yPos 在 Link 上定义连接的位置。 |
|
SetSimModuleProperty |
FullSimModuleName 键 值 {OtherValue} |
用于配置仿真模块的命令。可以设置以下参数(在下方的列表中,关键字 Key 后面是参数值 Value): PixelAligmentOffset BITS ImageFileSubPixels NUMBER ImageFilePixelBits BITS ImageFileNormalize CHOICE 其中 CHOICE = "1" | "0" | "yes" | "no" | "on" | "off" | "true" | "false" CropRect [imageNr] X Y WIDTH HEIGHT CurrentImage INDEX |
|
AddImage |
FullSimSourceName ImageFileName1 {OtherImageFileName} [ImageLibrary] |
用于将图像添加到仿真源的命令。 如果 Link 上的内核元素数量 > 1,则需要指定与 Link 上的内核元素数量相等的图像。 您可以选择指定要使用的图像库(ImageLibrary = "Native" | "ImageMagick")。 |
|
User Libraries |
||
|
InstUserLibOperator |
LibName OperatorName FullModuleName XPos YPos |
用于实例化用户库元素的命令。 |
|
自定义库处理 |
||
|
InstCustomLibOperator |
LibName OperatorName FullModuleName XPos YPos |
用于实例化自定义库元素的命令。 |
表 13. 在 Tcl 中创建和编辑 VA 设计的命令

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


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

