紫光同创国产FPGA学习之Fabric Inserter

这一篇文章也是从紫光同创那边拷贝过来的。这个是在线逻辑分析仪调试,和xilinx的也差不多,所以,基本看过就能用了。具体有什么新的功能添加。我就不知道了。我看看,如果有特别的就在用另外的文章写了

一、       软件介绍
Fabric Inserter软件主要功能是把DebugCore自动插入用户的设计网表中生成新的设计网表,从而使用户不需要手工在HDL代码中例化。
它的主要功能包括:
支持以下FPGA芯片类型:
Titan系列:PGT30G,PGT180H。
Logos系列:PGL22G。
最大支持15个DebugCore。
每个DebugCore最大支持16个TriggerPort,每个TriggerPort最大位宽为256并支持16个TriggerUnit,且所有TriggerPort的TriggerUnit之和不能超过16。
每个DebugCore最大支持抓取4096个数据信号。
支持对DebugCore触发信号和触发条件等设置。
支持对DebugCore存储深度、数据位宽、采样设置等参数的设置。
支持DataPort、TriggerPort连接设置,DataPort和TriggerPort可以相同也可以分开。
支持上电初始化触发和捕获属性的设置。
支持工程属性文件的导入和导出功能。

 我毛华望QQ849886241,深圳工程师。博客http://blog.csdn.net/my_shar

二、       软件使用入门
(一) 启动方式

Inserter需要结合PDS软件使用,可以通过单击菜单栏或工具栏中的Inserter图标启动Inserter软件,或通过双击Constraints列表中的.fic文件启动Inserter,需要注意的是只有在PDS中添加了资源文件(.v或.vm)后才能启动Inserter。
(二) Synplify 路径设置说明:

Inserter软件始终使用PDS中设置的综合工具路径。
(三) 应用实例

下面,用一个简单的例子说明软件功能和如何使用Fabric Inserter软件。双击Inserter图标打开一个空白的工程,如图2. 2所示。

图2. 2 PDS中添加FIC文件
1.        在PDS中添加资源文件
Fabric Inserter软件需要集成到PDS软件中一同使用,如图2. 2,在PDS资源文件中添加设计文件(.v或.vm)及约束文件,用户可以手动添加FIC文件或使用Inserter软件自动生成的FIC文件。
2.        打开Inserter软件
通过双击PDS约束文件列表中的FIC文件或单击工具栏中的Inserter图标可打开Inserter主界面,在Inserter中对FIC文件进行编辑。打开Inserter主界面后,Inserter会自动加载并解析用户添加至PDS中的设计文件,并自动生成输出文件路径,软件主界面如图2. 3。
Inserter软件启动后,用户仍然可以在PDS中进行工程属性修改、rerun等操作。当Inserter检测到作为其输入网表的ADF文件被修改时,会弹出窗口询问用户是否重新载入文件,如果选择重新载入,则当前设置的net连接信息将被清空,其他核信息将被保留。

图2. 3 Inserter软件主界面
3.        JtagHub配置界面
点击Next进入JtagHub配置界面,在这个界面中用户可做的选择为点击右下角New DebugCore Unit按钮添加DebugCore,最多可添加15个。如不添加DebugCore,再点击Next软件会默认添加一个DebugCore。同时,用户可在该界面中指定要使用的边界扫描链。

图2. 4 JtagHub配置界面
4.        DebugCore配置界面
在配置完JtagHub后点击Next按钮进入DebugCore配置界面:
在这个界面里可以对DebugCore信息参数进行配置。也是这个软件功能的主要体现。一个DebugCore对应界面中包含以Trigger Parameters、Net Connections和PowerOn Init Parameters为标题的标签页面,分别对应DebugCore不同参数的配置。可以点击Next 和Previous或者直接点击标签页标题进行标签页的切换。下面对各个标签进行简要说明。
1)        Trigger Parameters选项卡
Trigger Parameters 选项卡中的配置选项分为三组,分别用于对触发端口(Trigger Port),捕获存储(Capture & Storage)和触发条件(Trigger Condition)进行相关参数配置。触发端口相关设置包括触发端口的数量,每个触发端口下挂接的匹配单元的数量及其类型等。捕获存储相关配置包括数据的采样深度,采样时钟沿等。触发条件相关配置主要是对顺序触发的最大等级进行配置。

图2. 5 Trigger Parameters配置界面
2)        Net Connections选项卡
Net Connections选项卡用于将DebugCore的输入信号和用户design中的网线连接起来,尚未连接时,Net Connections中的所有信号都为红色显示如图2. 6。点击Modify Connection,会弹出Select Net配置界面,如图2. 7。利用Select Net对话框,可以把Debug Core的工作时钟、触发信号、数据信号与设计中的网线连接起来,方法是右侧选中Debug Core的信号,在左侧下方选中需要连接的网线,单击Make Connections按钮,即可以完成一条或者多条信号的连接,所有信号都连接好之后,单击OK按钮。

图2. 6 Net Connections配置界面(连线完成前)
每个DebugCore都必须进行信号连接,其中Trigger Port 和Clk Port是必须连接的信号,如果启用了(Trigger Parameters选项卡Capture and Storage Settings中)Data Same As Trigger选项则无需连接Data Port,否则也必须对Data Port进行信号连接,Reset Port为可选项(可在Preference Edit窗口中启用)。本例中启用Data Same As Trigger并且不使用Reset Port,所以只需对Clk Port和Trigger Port进行连接,如图2. 8。
 
图2. 7 Select Net配置界面

图2. 8 Net Connections配置界面(连线完成后)
3)        PowerOn Init Parameters选项卡
PowerOn Init Parameters选项卡用于设置在上电初始化瞬间时信号的捕获条件,了解上电初始化瞬间信号的形态和稳定性。
默认情况下,不使能捕获上电初始化数据。如果要使能该功能,请点击“Enable Capturing Power On Initial Data”前的复选框,详见图2. 9。选中后可以点击界面中表格、下拉框等进行详细参数设置,具体配置项意义详见界面功能介绍。

图2. 9 Power On Init Parameters配置界面
5.        保存FIC文件并插核
Debugger Core各项参数配置完成并完成Net连接工作后,点击保存后退出Inserter。返回PDS软件中运行Flow中的Map,PDS将自动调用插核流程。
6.        另存FIC文件
如果需要将当前编辑的FIC文件另存至其他位置,可以通过File菜单中的Save Project As功能进行保存。
7.        Fabric Debugger中导入FIC文件
在使用Fabric Debugger进行调试时,可以通过导入位流文件对应的fic文件(即生成插核网表文件时使用的工程文件)的方法更新Trigger Port及Data Port的名称,并自动生成NetBus。

三、       Fabric Inserter 软件说明
(一) 用户界面介绍

启动Fabric Inserter软件,出现如图3. 1:

图3. 1软件主界面
【导航栏】:列出了插入到设计中的所有JtagHub和DebugCore核,选中一个核后,就可以在参数设置中查看和修改其参数。
【资源统计区】:报告逻辑资源的使用量及使用率。
【控制台】:软件工作状态信息都在该窗口显示。
【工作区】:软件参数查看和参数修改设置。
(二) 菜单基本操作说明

1.        File菜单

图3. 2 File菜单
【Save Project】:用于保存当前工程。
【Save Project As】:当前工程另存为。
【Refresh Netlist】:用于重新解析网表。
【Exit】:用于退出Inserter软件。
2.        Edit菜单

图3. 3 Edit菜单
【New DebugCore Unit】:新建DebugCore Unit单元。
【Remove Unit】:删除指定DebugCore Unit单元。
【Preference】:DebugCore Unit参数配置对话框。
3.        View菜单

图3. 4 View菜单
【Navigator】:用于显示或关闭Navigator窗口。
【Message Window】:用于显示或关闭Message Window窗口。
4.        Help菜单

图3. 5 Help菜单
【About】:用于显示关于该软件的相关信息,如版本信息。
【User Guide】:用于显示用户指导手册。
(三) 工具栏说明


图3. 6 工具栏
【Save Project 】:对应菜单栏File ->Save Project。
【Previous Screen 】:用于显示当前视图的前一视图。
【Next Screen 】:用于显示当前视图的下一视图。
(四) 界面功能介绍

1.        主界面功能介绍
主界面中显示输入及输出文件路径,器件系列及型号,由于上述参数均由PDS软件传递,故无法修改。

图3. 7 软件主界面
2.        JtagHub配置界面
在这个界面中用户可做的选择为点击右下角New DebugCore Unit按钮添加DebugCore,最多可添加15个。如不添加DebugCore,再点击Next软件会默认添加一个DebugCore。同时,在该界面中通过Boundary Scan Chain的下拉列表可以指定使用的Scan Chain。

图3. 8 JtagHub配置界面
3.        DebugCore配置界面
在这个界面里可以对DebugCore信息参数进行配置。也是这个软件功能的主要体现。一个DebugCore对应界面中包含Trigger Parameters、Net Connections和PowerOn Init Parameters为标题的标签页面,分别对应DebugCore不同参数的配置。

图3. 9 DebugCore配置界面
1)        Trigger Parameters配置界面
Trigger Parameters 选项卡中的配置选项分为三组,分别用于对触发端口(Trigger Port),捕获存储(Capture & Storage)和触发条件(Trigger Condition)进行相关参数配置。触发端口相关设置包括触发端口的数量,每个触发端口下挂接的匹配单元的数量及其类型等。捕获存储相关配置包括数据的采样深度,采样时钟沿等。触发条件相关配置主要是对顺序触发的最大等级进行配置。

图3. 10 Trigger Parameters配置界面
a)        触发端口及匹配单元设置(Trigger Input and Trigger Unit Settings)

【Number of Input Trigger Ports】:下拉列表,DebugCore输入触发端口数目,最大值为16。
【Match Type】:下拉列表,可选项有Basic 、Basic w/edges、Extended 、Extended w/edges、Range 、Range w/edges,该选项与Bit Values和Functions关联。
【Number Of Trigger Units】:挂接在当前触发端口下的匹配单元的数量,这些匹配单元共享这个触发端口的channel。
【Counter Width】:匹配单元计数器的宽度,可用于对匹配单元的匹配条件被满足的次数进行计数。
【Number of Trigger Units Used】:当前Debug Core中匹配单元总数,即所有触发端口下挂接的匹配单元数量的总和,该数值不能大于16。
【Used As Data】:复选框,设置当前触发端口的输入信号是否同时用作数据捕获端口的输入信号(仅在使能Data Same As Trigger时有效)。

图3. 11 Trigger Input and Trigger Unit Settings
b)       数据捕获及存储设置(Capture and Storage Settings)

【Sample Depth】:设置采样深度,范围64~131072。
【Sample On】:设置采样时钟沿,Rising为时钟上升沿,Falling为时钟下降沿。
【Enable Multi-windows and NSample】:复选框,设置是否使能多窗口触发及Nsample功能,默认为不使能。使能该功能会对Debug Core的时序性能造成一定的影响,如果需要Debug Core工作在较高频率时,不建议使能该功能。
【Enable Storage Qualification】:复选框,设置是否使能存储条件,使能该功能后,可以设置一定的条件对待捕获的数据进行过滤,只存储符合条件的数据并在Debugger中展示。
【Data Same As Trigger】:复选框,设置是否将连接至触发端口的信号同时连接至数据捕获端口,如果使能该项,则所有连接至勾选了Used As Data项的触发端口的信号也会被连接至数据捕获端口,并且使能该项后,用户无法再对数据捕获端口进行额外的连接。

图3. 12 Capture and Storage Settings
c)        触发条件设置(Trigger Condition Settings)

【Max Number of Sequence Levels】: 顺序触发最大级数设置,下拉列表用来选择最大触发条件的级数n,最大不超过16级。

图3. 13 Trigger Condition Setting
2)        Net Connections配置界面
Net Connections选项卡用于将DebugCore的输入信号和用户design中的网线连接起来,尚未连接时,Net Connections中的所有信号都为红色显示如图3. 15。

图3. 14 Net Connections配置界面(连线完成前)
点击Modify Connection,会弹出Select Net配置界面,如图3. 16。

图3. 15 Select Net配置界面
 
a)        Channel View

Select Net对话框中右侧的窗口称为Channel View,该窗口中显示的是当前Debug Core中所有可以用于连接的channel。该窗口中有多个页签,每个页签代表一个端口(Port),每个端口可以容纳的最大channel数不同,例如:触发端口(Trigger Port)有256个channel,即最多可以连接256个网线,数据捕获端口(Data Port,使能Data Same As Trigger时将不会在该窗口中显示)有4096个channel,即最多可以连接4096个网线,而时钟端口(Clock Port)和复位端口(Reset Port)仅有一个channel,且必须连接至对应的时钟信号和复位信号上,如果时钟端口和复位端口连接不正确将导致debug Core无法正常工作。此外,触发端口与数据捕获端口至少连接1个网线。
b)       Module View

Select Net对话框中左上方的窗口称为Module View,该窗口将用户设计文件中的所有模块按照一定的层次结构进行显示,单击该窗口中的项,可以将对应模块中的所有网线显示在左下方的Net View中。此外,用户可以使用鼠标左键或右键拖动该窗口中的项,并放置在Channel View的channel项上,此拖动操作可一次性将该模块中所有的网线全部连接至目标Channel及后续channel中(channel数量不足时,没有channel可以连接的网线将被忽略)。
c)        Net View

Select Net对话框左下方的窗口称为Net View,该窗口中主要显示当前模块(Module View中选中的模块)中可以用于连接的总线及网线。用户可以直接通过选取总线将总线中所有的网线一次性连接,也可展开总线,选取其中个别网线进行逐个连接。连接至Channel View的总线依然会以总线的形式显示,并且在Debugger中导入带有总线信息的.fic文件时,Debugger会自动生成相应的总线。此外,Net View中按住鼠标左键并拖动可以进行多选,选中项目后可以使用鼠标右键拖动并在Channel View中的channel项上放下,此拖放动作可以将选中的总线或网线连接至当前及后续channel中。
d)       Filter ToolBar

Select Net对话框中左侧中间位置的工具栏称为Filter ToolBar,主要用于对Module View和Net View中的项进行筛选。左侧下拉框中可对筛选模式进行选择,主要分为以下7种模式:
【Module Instance】:用于对Module View中的module进行筛选,筛选时只关注Module Instance列(第一列)中的信息是否符合条件。
【Module Name】:用于对Module View中的module进行筛选,筛选时只关注Module Name列(第二列)中的信息是否符合条件。
【Net - All】:用于对Net View中的网线及总线进行筛选,筛选时关注全部4列信息,只需网线中有一种信息符合条件,那么当前网线即为符合条件的网线。
【Net Name】:用于对Net View中的网线及总线进行筛选,筛选时只关注Net/Netbus Name列(第一列)中的信息是否符合条件。
【Source Instance】:用于对Net View中的网线及总线进行筛选,筛选时只关注Source Instance列(第二列)中的信息是否符合条件。
【Source Component】:用于对Net View中的网线及总线进行筛选,筛选时只关注Source Component列(第三列)中的信息是否符合条件。
【Base Type】:用于对Net View中的网线及总线进行筛选,筛选时只关注Base Type列(第四列)中的信息是否符合条件。
【Key Word】:Filter ToolBar中间为Key Word编辑框,用于输入筛选关键字,输入完成后输入Enter键或点击右侧Filter按钮可以开始筛选,筛选时将使用筛选关键字对目标信息(通过上述7种模式进行设置)进行匹配,匹配方式为模糊匹配且不区分大小写,即只需目标信息中含有筛选关键字就认为该项为符合条件的项。
筛选结束后对于Module View和Net View中筛选结果的显示方式有所不同:
【Module View筛选结果显示方式】:使用Filter ToolBar对module进行筛选时,该工具栏最右侧会出现两个额外的按钮[Previous]和[Next],对module的筛选完成,窗口焦点会自动跳转至第一个符合条件的项上,然后[Previous]和[Next]按钮将被使能,可以通过点击[Previous]和[Next]按钮移动窗口焦点至前一个或后一个符合条件的项上,焦点移动时,Net View中显示的网线也会随之变化。
【Net View筛选结果显示方式】:使用Filter ToolBar对网线进行筛选结束后,Net View中之后显示符合条件的网线及总线,不符合条件的网线及总线将被隐藏,如果需要再次显示所有网线和总线,只需清空筛选关键字后在进行依次筛选即可。
e)        Show All Nets

Select Net对话框中Filter ToolBar下方复选框【Show All Net In The Net Tree View】可实现显示所有网线及总线的功能。在不勾选该项时,Net View中只显示Module View中选中的模块中的网线及总线,便于按模块查找网线及总线。勾选该项后,Module View窗口将被冻结,此时Net View窗口中会将当前设计文件中所有的网线及总线全部显示出来,方便查找无法按模块定位的网线及总线。
f)         Buttons

【Make Connections】:连接按钮,将Net View中选中的网线或总线连接至Channel View中选中的channel中,快捷键为Ctrl+M。
【Remove Connections】:移除当前Channel View中选中的一个或多个channel的连接关系,快捷键为Ctrl+R。
【Inverse Nets】:将当前Channel View中选中的多个channel的连接顺序反序并重新连接,快捷键为Ctrl+I。
【Move Nets Up】:将当前Channel View中选中的一个或多个channel上移,快捷键为Ctrl+Up。
【Move Nets Down】:将当前Channel View中选中的一个或多个channel下移,快捷键为Ctrl+Down。
【OK】:保存本次连接并退出窗口,快捷键为Ctrl+S(仅保存当前连接)、ESC(退出窗口)。
【Cancel】:不保存修改直接退出窗口,快捷键ESC。
g)        拖放与Make Connections按钮的不同

Select Net窗口中有两种方法可以将网线与channel进行连接,一是通过选中网线和channel然后点击Make Connections按钮的方式进行连接,而是通过拖放的方式进行连接。这两种方式在进行连接时有一点不同:当当前channel已经存在连接关系是,使用Make Connections按钮连接会直接覆盖当前channel中的连接关系,而使用拖放连接则会执行插入操作,当前channel的连接关系不会被覆盖,而是被移动至后续的channel中。
h)       完成连接

当所有端口都完成了必要的连接后,单击OK按钮确认本次连接,单击Cancel按钮放弃本次连接。连接完成后的Net Connections界面如图3. 17所示。

图3. 16 Net Connections配置界面(连线完成后)
3)        PowerOnInit Parameters配置界面
这个选项卡用于设置在上电初始化瞬间时信号的捕获条件,了解上电初始化瞬间信号的形态和稳定性。默认情况下,不使能捕获上电初始化数据。如果要使能该功能,请点击“Enable Capturing Power On Initial Data”前的复选框。

图3. 17 PowerOnInit Parameters配置界面
a)        Match Funcitons

Match Function定义了每个Trigger Unit在触发条件中的值,如图3. 19。

图3. 18 Match Funciton配置
【Trigger Unit】:Trigger Unit列出了当前DebugCore中所有的Trigger Unit,默认名称为TU0。
【Function】:Function列用来选择Trigger Unit的function。
【Value】:Value列被单击后,会变为可编辑状态,用来输入Trigger Unit的值,值的显示于Radix列的选择有关。当输入光标位于待编辑字符前时,该字符可被编辑,当输入了一个可被接受的字符后,该位置原来的字符被替换。不同进制下可接受的字符如下:
【Hex】:X,?, 0-9,以及A-F。X指其所代表的4bit值不被关心,即可以取任意值。当出现“?”,指其所代表的4bit值包含0-9,A-F,X、R、F、B、N多个值的组合,此符号不可输入。
【Octal】:X、?、0-7;当出现“?”,指其所代表的3bit值包含0-7,X、R、F、B、N多个值的组合,此符号不可输入。
【Binary】:X(不关心值为多少)、0、1、R(上升沿)、F(下降沿)、B(任意翻转)、N(不翻转),当Trigger Unit可以检测沿(Basic w/edges、Extended w/edges、Range w/edges)时R、F、B、N可输入。
【Unsigned】:0-9(0至2的n次幂减一,n为该Trigger Unit对应Trigger Port中的信号数)
【Radix】:Radix列被单击后,变为下拉列表,用来选择Trigger Unit值以何种进制显示。可以选Hex、Octal、Bin以及Unsigned。
【Counter】:Counter用来选择该Trigger Unit的Function被满足多少次后,该Trigger Unit的表达式才算满足。如果该Trigger Unit中的Counter可用,则该列项为黑色字,如果不可用,则该列项为灰色。Counter列被单击后,弹出Match Counter配置对话框,如图3. 20:

图3. 19 Match Counter配置
【Match Events】
Match Events下拉菜单中共有4个选项:
【counter disable】:不使用计数器。
【Occurring in exactly】:精确匹配N次Trigger Unit设置的条件(N为文本框中输入的数值)。
【Occurring in at least】:至少匹配N次Trigger Unit设置的条件(N为文本框中输入的数值)。
【Lasting for at least】:至少连续匹配N次Trigger Unit设置的条件(N为文本框中输入的数值)。
b)       Trigger Condition

Trigger Condition是一个或多个Trigger Unit组成的布尔表达式或者序列,用来指导DebugCore数据的捕捉。

图3. 20 Trigger Condition
【Trigger Condition Name】:Trigger Condition Name列用来编辑Trigger Condition的名字,默认名为“TriggerCondition0”。
【Trigger Condition Equation】:Trigger Condition Equation用来显示Trigger Unit组成的布尔表达式或者序列,该序列可以通过点击列项弹出Trigger Condition配置对话框来更改。
Trigger Condition配置对话框的Boolean标签页是一个包含了所有Trigger Unit的表,每个Trigger Unit占用表的一行。“Enable”列用来选择是否将该Trigger Unit作为表达式的一部分;“Negate”列用来决定是否将该Trigger Unit取逻辑非。所有使能的Trigger Unit可以通过逻辑与、或进行组合,可以通过点击单选按钮“And Equation”、“Or Equation”来选择。“Negate Whole Equation”用来将表达式整体取非。被选择的表达式显示在对话框的最底部,如图3. 22。

图3. 21 配置Trigger Condition布尔表达式
Trigger Condition配置对话框的Sequencer标签页包含了一个“Number of levels”下拉列表用来选择触发条件的级数n,该级数是当前DebugCore的参数之一,最大不超过16级;以及一个包含了n行的表,用来选择每级触发的Trigger Unit,该表的“Trigger Unit”列的每个列项被点击后变成一个下拉列表,列表列出了当前DebugCore中的所有Trigger Unit,可以选择任一个,“Negate”列用来将其对应的Trigger Unit取非;被选择的Trigger Unit按照Level顺序等待触发,顺序触发从Level1开始,直到Level1被满足后,Level2才能被等待触发,依次类推。所有的触发可以是连续的,也可以是不连续的,通过“Use Continuous Match Event Only”选择。触发条件表达式显示于对话框底部,如图3. 23。

图3. 22 配置Trigger Condition顺序触发表达式
c)        Capture Settings

Capture Settings主要分为两个部分:Multi-Windows & Nsample 和 Storage Qualification,需要分别使能Trigger Parameters页签中的Enable Multi-Windows and Nsample 和 Enbale Storage Qualification项后才能使用。
Capture Settings如下图所示,它定义了窗口数、每个窗口的数据深度及触发位置。每个窗口显示一个连续的采样序列,有且仅有一个触发点。如果Capture Settings设置有误,则相应区域会变为红色,用以警告用户。


图3. 23 Capture Settings
【Type】:Type是个下拉列表,有两个可选项。如果选择“Windows”,则每个窗口中捕捉的采样点数必须为2的幂,触发点可以是窗口中的任何位置;如果选择“N Samples”,则每个窗口的采样点数可以任意制定,采样窗口数由总采样深度和每个窗口的采样深度共同决定,但触发点一定是每个窗口的第一个采样点。
【Windows】:Windows是个输入框,仅当Type选择“Windows”时可用。Windows用来定义每次数据捕捉的窗口数目,可以为正整数N(1≤N≤当前DebugCore的最大采样深度)。
【Depth】:仅当Type选择”Windows”时可用,显示当前每个窗口的采样深度。
【Position】:Position是个输入框,仅当Type选择“Windows”时可用。Postion定义了每个窗口触发点的位置,可取整数N(0 ≤ N ≤ Depth - 1)。
【Samples Per Trigger】:Samples Per Trigger是个输入框,仅当Type选择“N Samples”时可用。Samples Per Trigger定义了每个窗口的采样点数,可取整数N(1≤N≤当前DebugCore的最大采样深度)。
【Storage Qualification Condition】:Storage Qualification Condition是个文字显示框,点击后弹出“Storage Condition”对话框。Storage Qualification Condition定义了一个布尔表达式,它由一个或多个Trigger Unit进行逻辑与、或、非组成。这个表达式用来指导触发条件满足后数据的存储,即触发后,满足表达式的数据才被存储。
Storage Condition对话框有一个包含了所有Trigger Unit的表,每个Trigger Unit占用表的一行。“Enable”列用来选择是否将该Trigger Unit作为表达式的一部分;“Negate”列用来决定是否将该Trigger Unit取逻辑非。
Storage Qualification Condition表达式可以选择捕捉所有的数据,如图3. 25,或者捕捉满足布尔表达式的数据,如图3. 26,布尔表达式可以通过选择“Negate Whole Equation”整体取非。表达式被显示于对话框的下方。

图3. 24 Storage Qualification Condition选择All Data

图3. 25 Storage Qualification Condition选择布尔表达式
4.        Preferences Dialog功能介绍
通过Edit菜单中的Preference选项可以打开Preferences Dialog窗口,窗口如图3. 27所示:

图3. 26 Edit Preferences窗口
Edit Preferences窗口主要功能:
【Show Soure Component Instance Names】:用于设置Select Net窗口中是否显示Source Instance列,默认显示。
【Show Source Component Types】:用于设置Select Net窗口中是否显示Source Component列,默认显示。
【Show Base Net Driver Types】:用于设置Select Net窗口中是否显示Base Type列,默认显示。
【Auto Move Nets Up】:用于设置Select Net窗口中是否在移除一个Net的连接后自动将后续Net自动上移,默认不启用。
【Use Reset Port】:用于配置是否启用Debug Core的Reset功能,不启用Reset功能时,Net Connections窗口和Select Net窗口中将不会显示Reset Port相关信息,默认不启用 。
【Text Elide Mode】:用于设置Select Net对话框中Net Selections窗口中的文字省略的方向。
【Reset Button】:用于将Net Browser中的所有设置重置为默认值。

四、       TCL命令
(一) Inserter TCL Command简介

现阶段Inserter支持的Tcl命令如下:
Help
ins_new
ins_open
ins_save
ins_set_file
ins_add_core
ins_remove_core
ins_set _core
ins_set _trig
ins_set _unit
ins_list_nets
ins_set _net
ins_set_condition
ins_set_capture
ins_set_chain
ins_operate
ins_insert
ins_core_info
(二) Inserter TCL Command详细介绍

1.        Help
Help命令用于打印Inserter支持的TCL命令列表,该命令无参数。
2.        Ins_new
该命令用于新建工程文件,可接受一个文件名参数,输入的文件名必须包含绝对路径,也可不输入任何参数,不输入参数时工程名为Untitled。
例如:ins_new d:/project.fic。
3.        Ins_open
该命令用于打开已存在的工程文件,必须输入包含绝对路径的文件名。
例如:ins_open d:/project.fic。
4.        Ins_save
该命令用于保存当前的工程,可接受一个文件名参数,输入的文件名必须包含绝对路径,如果不输入参数,命令将检查当前工程是否有可用的文件名,如果没有则命令执行不成功。
例如:ins_save d:/project.fic可将当前工程保存至D:/project.fic文件中。
5.        Ins_set_file
该命令用于设置输入、输出的设计文件,该命令支持2个option:-input、-output,两个option分别用于设置输入和输出的设计文件的文件名,文件名必须包含绝对路径。如果只设置输入设计文件的文件名,并且文件名有效,则命令会自动为用户设置输出设计文件的文件名为输入文件的文件名+_ic。
例如:ins_set_file –input d:/design.adf ,命令将会设置输入设计文件名为d:/design.adf,输出文件名为d:/design_ic.adf。
6.        Ins_add_core
该命令用于添加debug core,可接受一个设置添加debug core数量的参数。
例如:ins_add_core 5 将添加5个debug core。
7.        Ins_remove_core
该命令用于移除debug core,可接受一个设置移除debug core数量的参数,移除时总是从debug core列表的尾部依次移除。
例如:ins_remove_core 3将移除debug core列表最后的3个debug core。
8.        Ins_operate
该命令用于设置缺省的操作对象,该命令有3个option:-core、-trig、-unit,分别用来设置debug core、trigger port、match unit 的缺省操作对象。每个option对应一个参数,输入的参数是debug core、trigger port或match unit的序号,允许同时设置多个用空格分隔的序号,但需要使用“”标记。
例如:ins_operate –core “1 2 3 4” –trig “1 2 3 4” –unit “1 2 3 4”将分别设置序号为1 2 3 4的debug core、trigger port和match unit 作为缺省的操作对象。
9.        Ins_set_core
该命令用来设置debug core中的相关参数,共8个option:
-core :对应一个参数,用于声明操作的debug core的序号,如果不输入该参数,将使用ins_operate设置的缺省对象,支持同时操作多个debug core。
-enable_sq : 对应一个参数 0 或 1,用于声明是否使能该debug core的 storage Qualification,1表示使能、0不使能。
-seq_level :对应一个参数,用于设置顺序触发条件的最大级数。
-data_same :对应一个参数0或1,用于声明是否使能 data same as trigger。
-data_depth :对应一个参数,用于设置data port的最大存储深度。
-clock_edge :对应一个参数0或1,用于设置触发时钟沿,1为Rising,0为Falling。
-trig_num :对应一个参数,用于设置trigger port的数量。
-power :对应一个参数0或1,用于声明是否使能power on init data。
-multi_windows:对应一个参数0或1,用于声明是否使能多窗口及Nsample功能
各个option之间没有冲突可以同时使用。
10.    Ins_set_trig
该命令用于设置trigger port中的相关参数,共6个option:
-core :对应一个参数,用于声明操作的trigger port所属的debug core的序号,如果不声明则使用ins_operate命令设置的缺省对象,不支持同时操作多个debug core,如果声明多个debug core,则使用第一个。
-trig :对应一个参数,用于声明操作的trigger port的序号,如果不声明,则使用ins_operate命令设置的缺省对象,支持同时操作多个trigger port。
-counter :对应一个参数,用于设置该trigger port的计数器的位数。
-unit_num :对应一个参数,用于设置match unit的数量。
-type :对应一个参数用于设置match unit的match type,接受的参数为match type对应的序号:
0:Basic
1:Basic W/Edges
2:Extened
3:Extened W/Edges
4:Range
5:Range W/Edges
-as_data :对应一个参数0或1,声明该trigger port是否在使能data same as trigger 时用作data port。
11.    Ins_set_unit
该命令用于设置Match Unit中的相关参数,共6个option:
-core :对应一个参数,用于声明操作的Match Unit所属的Debug Core的序号,如果不声明,则使用ins_operate命令声明的缺省对象。不支持同时操作多个debug core,如果声明多个debug core,则使用第一个。
-unit :对应一个参数,用于声明操作的Match Unit的序号,如果不声明,则使用ins_operate命令声明的缺省对象。支持同时操作多个Match Unit。
-func :对应一个参数,用于声明该Match Unit的Function类型,可接受的参数有:==、<>、>=、>、<、<=、In Range、Out of Range,不区分大小写。
-value :对应一个参数,用于设置该Match Unit的value值,只接受二进制格式的参数,且输入的参数的位数必须等于该Match Unit所属的Trigger Port的宽度。如果Function类型为In Range 或 Out of Range则需要输入2个二进制的值,用空格分隔且使用“”标记。
-cnt_type :对应一个参数,用于设置该Match Unit计数器的类型,可接受的参数为对应类型的序号:
      0:Counter Disable
      1:Occurring in exactly
      2:Occurring in at least
     3:Lasting for at least
-cnt_num :对应一个参数,用于设置该Match Unit计数器计数的次数。
12.    Ins_set_condition
该命令用于设置Trigger Condition 或 Storage Qualification,共有3个option和一个必须输入的参数:
-core :对应一个参数,用于声明操作的debug core的序号,如果不声明则使用ins_operate声明的缺省操作对象。
-trigger :该option无参数,如果声明该option,命令将会对 trigger Condition 进行配置。
-storage :该option无参数,如果声明该option,命令将会对storage condition 进行配置。
必需参数 :必需参数为设置的condition的表达式,例如: “!TU1&&TU2”,命令只会对输入的表达式进行不完全的检查,所以请确保输入的表达式的正确性。
该命令允许同时操作多个debug core。
13.    Ins_set_capture
该命令用于配置Storage Style的相关信息,共有6个option:
-core :对应一个参数,用于声明操作的debug core的序号,如果不声明,则使用ins_operate命令声明的缺省对象。
-type :对应一个参数windows 或 Nsamples,不区分大小写,用于声明存储类型。
-windows :对应一个参数,用于声明在 存储类型为Windows的情况下的窗口数目。修改该参数,会对应修改每个窗口的存储深度。
-depth :对应一个参数用于声明存储类型为Windows的情况下的每个窗口的存储深度。
-position :对应一个参数,用于声明存储类型为Windows的情况下,触发点在窗口中的位置。
-samples :对应一个参数,用于声明存储类型为Nsamples的情况下的,每个触发周期中点的数量,即GUI中的 Samples per Trigger。
该命令允许同时操作多个debug core。
14.    Ins_list_nets
该命令用于将用户设计中可以连接至debug core的net打印至console窗口中,该命令没有参数。由于用于配置连线的TCL命令 ins_set_net在连接net时,不接受net名为参数(由于某些net的名称中含有特殊字符,TCL进行解析时会出现混乱,并且net名称过长不便输入),而是接收net在net list中的序号为参数,所以如果想准确的进行连接,就需要先使用list_nets命令将net list打印。
15.    Ins_set_net
该命令用于配置debug core的连线,共有10个option和一个参数:
-core :对应一个参数,用于声明操作的debug core的序号,如过不声明,则使用ins_operate声明的缺省对象,一次仅允许操作一个debug core。
-trig :对应一个参数,用于声明操作的trigger port的序号,允许同时操作多个trigger port,不可与-all 同时声明。
-all :无参数,声明该option,命令会将debug core中的所有trigger port作为操作对象,同时处理。
-data :无参数,声明该option,命令会将debug core中的data port作为操作对象。
-clock :无参数,声明该option,命令会将debug core的clock port作为操作对象。
-reset : 无参数,声明该option,命令会将debug core的resetport作为操作对象。
-channel :对应一个参数,当操作对象是trigger port或 data port时,可以使用-channel 来声明操作的具体channel的序号,例如:-data –channel 4 表示将data port 的channel4作为操作对象。允许同时操作多个channel。
-connect :无参数,声明该option,命令将会执行连接net的操作。连接net时,命令会自动将声明的net依次连接至声明的port中,而不会连接至-channel声明的channel中,以此保证port中连接net的channel是连续的。
-replace :无参数,声明该option,命令将会执行替换操作,该操作需要使用-channel声明需要进行替换操作的具体channel的序号,并且,只有已经连接了net的channel才可以进行特换操作,将以连接的net替换为本次声明的net,以此保证port中连接net的channel时连续的。
-disconnect :无参数,声明该option,命令将会执行断开连接的操作,该操作需要使用-channel命令声明需要进行断开连接的channel的序号,断开连接后,后续channel会自动上移,以保证port中连接net的channel是连续的。
参数 :命令可接受一个可选参数,该参数用来声明需要连接至port的net的序号,仅有-disconnect操作不需要该参数支持。
例如:-ins_set_net –core 0 –data –clock –rest “1 2 3 4 5 6” 执行该命令会将序号为1、2、3、4、5、6的net依次连接至debug core0的DataPort中。将序号为1的net连接至debug core0的clock port和reset port中。
16.    Ins_core_info
该命令用于输出显示Debug Core的信息,共3个option:
-core :对应一个参数,用于声明需要显示信息的Debug Core的序号,如果不声明该项则显示所有Debug Core的基本信息。
-trig :对应一个参数,用于声明需要显示信息的Trigger port的序号,如果不声明,则不会显示任何Trigger Port的信息,支持同时显示多个trigger port的信息。
-unit :对应一个参数,用于声明需要显示信息的Match Unit的序号,若果不声明,则不会显示任何Match Unit的信息,支持同时显示多个Match Unit的信息

猜你喜欢

转载自blog.csdn.net/my_share/article/details/84593156