通过状态机转换和定时间隔自动生成设计规则,VSTAR能够监测FPGA上信号序列的发生顺序以及从而判断用户设计是否存在逻辑错误或者系统漏洞,能够大幅缩短调试周期。对于使用Xilinx  FPGA的系统,通过嵌入VSTAR IP来检测信号序列是否正常。本节主要介绍VSTAR的设计窗口(Design Window)及如何嵌入VSTAR IP并选择监测信号。

1. 设计窗口

在VSTAR 快速启动窗口选择vivado项目文件(.xpr文件)之后,将打开设计窗口。可为待调试的目标定义实例或信号。

1.1 RTL实例视图

可以使用设计窗口选择目标 RTL 实例来探测事件传输信号。

设计窗口启动时,默认情况下,用户电路的顶部实例名称显示在左侧实例/模块区域中,信号名称/类型显示在中间区域,其源代码和 RTL (***.v)的文件名显示在右上角区域,消息日志显示在右下角区域。

图 1  启动设计窗口

单击具有实例名称信号时,展开显示实例名称和层次结构的模块名称。转到需要进行监测信号添加的层次结构。

图 2  RTL 层次结构视图

1.2 实例/模块的信号

左键单击实例/模块名称(在此示例中为“ VSTAR_DUT”),然后在中间区域单击信号的“>”部分,然后显示可进行实例探测的事件和信号名称,左键双击实例/模块名称,在右上角区域显示RTL。

图3  实例/模块名称和信号视图

当信号名称看起来不完整时,请更改窗口的大小,并调整信号名称以使其看起来完整。 下图显示了窗口大小的修改方法。

图4  信号名称视图窗口的大小调整

1.3 VSTAR IP的参数设置

点击设计窗口的“添加VSTAR IP”图标,会打开参数窗口,设置VSTAR IP的生成参数(通过设计→VSTAR IP→添加也可以进行相同操作)。可以设置VSTAR IP参数,并通过参数窗口执行时钟连接。

下面解释参数窗口的每个标签及其参数。

图5  单击"添加 VSTAR"以打开参数窗口

1.3.1 控制端口

参数窗口的“控制端口”标签表示VSTAR IP的输入和输出引脚。对于事件探测信号,必须将clk_in与相同域的时钟连接起来。其他信号一般不使用,但可以用来连接VSTAR IP从用户电路进行控制。即使没有连接这些信号,VSTAR IP也可以运行。时钟连接请参考“1.4 时钟输入设置”。

图6  控制端口选项卡

1.3.2 全局

左键点击“Global”标签,将打开全局参数(通用和高级)的“全局”设置窗口。VSTAR IP的一般参数通过此选项卡设置。

图7 全局参数窗口

FPGA 设备系列:

通过下拉菜单选择要实现的FPGA器件系列目标。目前,提供的家庭选择是7系列,UltraScal和UltraScal+。

VSTAR IP 时钟输入反转:

勾选时,VSTAR IP的输入时钟内部倒置。一般不需要勾选的。

连接到JTAG时钟的同步器FF数量:

定义FF级数,以用于CDC(Clock DomainCrossing)进行异步连接,将JTAG时钟与VSTAR IP的时钟输入(clk_in)连接,通常使用默认条件(4)。

JTAG 链:

BSCANE2宏用于Xilinx JTAG访,问因此JTAG_CHAIN参数应在1~4之间定义,通常使用默认条件(4) 。

TDI  前旁路位数:

TDO后旁路位数:

如果将验证目标的FPGA以外的设备连接到JTAG链,请进行检查,例如,在Zybo的情况下,ARM部分(PS部分)通过JTAG链连接到FPGA部分(PL部分)的前面,如果 因此,请在“ TDI之前”之前选中“ 1”。

图8  TDI 和 TDO 连接电路

VSTAR IP模块的模块名称标题字符串:

前缀字符在插入VSTAR IP的模块名称之前添加。通常,使用默认前缀。

捕获缓冲区的最大除法数:

发生一次以上的触发时,可以通过分割缓冲区来支持多个事件图和波形,此处可以检查的数字是分区的最大数目(默认为4),设置的可能值为1、2 ,4或8。应在调试窗口的硬件寄存器设置(默认值:单个缓冲区)中设置此分区的实际数量。

组的最大数量:

可以定义事件的最大组数,可以设置的数目为1,2、4、8、16、32或64,默认为16。组的ID(组ID:GID)的位宽 由此值决定。如果默认设置为16,则位宽为4位,如果为64,则位宽为6位,如果为1或2,则为1位..事件的实际组数 探头应在此处设置的值范围内定义。

每个组的最大事件数:

可以定义事件的最大组数,可以设置的数目为1,2、4、8、16、32或64,默认值为16。组的ID(组ID:GID)的位宽 由此值决定。默认设置为16时,位宽为4位,最大为64位时,位宽为6位,如果为1或2,则为1位..事件探针的实际组数 应在此处设置的值范围内定义。

1.3.3 事件缓冲区

图9  事件缓冲区选项卡

事件缓冲区的深度:

可以定义事件缓冲区的单词数。事件缓冲区的值可以设置为1024、2048、4096、8192、16384、32768、65536或131072。默认数字是最小的,1024。如果值变大,可以获得很多事件,但需要大量的FPGA资源。因此,在设置该值时,需要考虑FPGA的空闲空间。一个事件通常接受缓冲区中的一个字。

1.3.4 事件检查器

事件传输的规则缓冲区可以由此选项卡定义。

图10  事件检查器选项卡

最大断点数:

可以定义生成触发器以挂起的最大断点数。可能的值为1、2、3或4。

事件转换规则缓冲区的深度:

可以定义事件传输规则缓冲区的字数,可能的值为1024、2048、4096、8192、16384、32768、65536或131072(默认值为最小值1024)。如果位数为4 组ID的1位,事件ID的4位和最大分支4的默认数目的2位,则总位为10bit,因此规则缓冲区字需要2的10次幂(1024个字)

事件转换的大量分支:

关于事件传输,它定义了从传输前的事件(前一个ID)到传输后的事件(当前ID)的最大分支数(时间间隔周期)。默认值是4,可能的值是1、2、4或8。

用于规则提取的单位时间计数器的位宽:

可以定义单位时间计数器的位宽度,以了解事件传输规则。默认值为 16,可能设置的值为 11 到 32。

错误跳过计数器的位宽:

默认值为16,可能的值范围是10到32。可以定义错误跳过计数器的位宽,以跳过规则违反触发的次数。 跳过触发器的实际编号由调试窗口定义。

断点计数器的位宽:

可以定义断点计数器的位宽以计数生成的断点数,默认值为16,可能的范围是8到32。

1.3.5 运行控制

当VSTAR IP必须从用户电路进行控制时。可以定义要添加到VSTAR IP输入的同步器FF数。

图11  运行控制选项卡

vstar_disable输入同步器FF

capture_enable输入同步器FF

extraction_enable输入同步器FF

event_checker_enable输入同步器FF

当VSTAR IP的clk_in输入端与异步用户时钟相连以控制来自用户电路的VSTAR IP时,由VSTAR IP的输入信号(例如vstar_enable,capture_enable,extraction_enable和event_checker_enable指示)来指示(请参阅“ 1.3.1控制端口选项卡” “),可以定义同步FF级的数量,建议FF级为4。

1.3.6 波形捕获

波形缓冲区在此波形捕获标签中定义。

图12  波形捕获Capture选项卡

波形捕获:

当想要观察信号波形以及事件图时,勾选此选项。

波形缓冲区长度:

可以定义波形缓冲区的字数。可能的值是1024、2048、4096、8192、16384、32768、65536或131072。默认最小值是1024。如果这个值变大,可以得到很多波形周期。但需要大量的FPGA资源。因此,有必要对FPGA的空闲空间进行设定值。波形缓冲器的位宽等于所获得信号的总位宽(相同的时钟域)。

波形组的最大数目:

定义在一个波形组中的信号必须与同一时钟同步。有必要根据其他种类的钟来区分一组。波形组的数目必须小于这里设置的值。可能的值是1、2、4、8或16(默认值是8)。

每个组的最大信号数:

可以定义每组信号的最大数量。目前,定义了固定值4608。

1.4 时钟输入设置

VSTAR IP的clk_in输入需要与用户时钟连接。左键单击顶部模块名称(例如,下图中的“ VSTAR_DUT”),然后显示信号列表,右键单击要连接的时钟信号(下图中的“ clk_in”),然后从中选择“连接到控制端口” 将打开一个“ VSTAR IP参数”窗口,因此左键单击VSTAR IP的“ clk_in”,然后单击“确定”。

图13  设置窗口clk_in

点击“VSTAR IP参数”图标,窗口再次打开(通过“设计窗口”→“VSTAR IP”→“VSTAR IP参数”可进行相同操作)。当将窗口大小调整到足以看到时,可以确认连接到VSTAR IP的“clk_in”信号的一部分,显示为“signal”。点击“确定”关闭“VSTAR IP参数”。

图14  确认“VSTAR IP对位”窗口上的时钟连接

如果您将使用“连接到控制端口”,它是可能的连接信号除了时钟控制端口(vstar_disable, capture_enable等)。但是VSTAR IP的输出端口(trigger_ext_output)只能连接顶层模块中的信号。

1.5 选择监测信号

检查事件事务的事件可以通过设置VSTAR IP的监视器信号来定义。可能要定义的事件是上升边、下降边、边或1位标量信号的值计数、总线信号的值匹配(详情请参考“表2-1信号探针列表”)。

1.5.1 选择监测信号

当右键要设置为事件的信号(如下图中event0000)时,会弹出菜单,请选择“Add to Probe Point”,然后选择“Event Monitor”。设置完事件后,如果希望看到波形查看器,请再次右键单击事件,然后选择“Add to Probe Point”,然后选择“Waveform Capture”。

选择“Event Monitor”后,将打开“Add Signal”窗口。请按照“Single Bit Probe”菜单上的步骤操作:

(1)在图16中选择事件组“group_000”

(2)在图16中选择“边缘检测”,(上升/下降/两个边/数值计数)“上升边”

(3)在图16中选择“检测计数器”(禁用/启用)“禁用”

启用时,请指定“检测计数器位宽”计数器的位宽。

图15“Event Monitor”窗口​​

图16  “ Add Signal Bit Probe” 窗口

如果要指定事件发生计数以检测多于一次的边缘(而不是一次),请将“检测计数器”设置为“启用”,并在“检测计数器位宽”列中指定计数器位宽以保存计数值。 必须在调试窗口中设置实际计数值的寄存器。如有必要,请对其他事件(图17中的event0001 ~ event0007)进行相同设置。

右击事件名称,选择“添加探测点”和“事件监视器”,将打开“单位探测”窗口。如果接受简单上升沿检测的默认设置,请点击“确定”。

图17  多个事件的监视器设置

1.5.2 监控信号确认

通过探测窗口确认事件设置。

可以通过探测窗口确认事件设置。点击下图“探针”图标后,探针窗口将打开,确认探针设置。通过左键点击信号(如“信号”区域的event0000-event0007),即可确认“上升边”和“检测计数器,禁用”设置。事件ID用id_0~id_7表示,它对应于event0000-event0007,并显示在窗口“Events”的右侧区域。此外,还可以改变边缘检测和检测计数器等设置。

图18 在探测窗口上确认监视器设置

1.5.3 查找功能

如果需要,可以找到实例/模块名或信号名。选择区域的实例/模块或信号,然后选择编辑和查找菜单,然后可以指定字符串搜索。

图19  搜索实例名或信号名

1.5.4 添加组

默认情况下,组数为1(图18中只有group_000)。点击窗口左边“组”下面的+可以增加组的数量。可增加的最大组数由参数窗口“全局选项卡”中的“最大组数”设置。要设置每个组的参数,请点击探测窗口左侧“组”下的图标。此时将为每组打开“组参数”窗口,设置必要的参数。

图20  添加组并设置每个组的参数

在上图(图20)中,将每组的“event multiplexer FIFO”的stage number从默认的4改变为2,将“interval timer的bit width”从默认的32改变为48。修改完成后,点击“应用”。

左键单击“group_001”,执行上述设置,然后单击“应用”。下一步,左键点击“group_002”并执行上面的设置,然后点击“应用”。请重复类似的操作,直到“group_007”。如果所有参数设置完成,请点击“确定”。

group_000中包含的8个事件全部完成设置,但group_001到group_007的其余7个组的事件设置尚未完成。在上一页中已经完成了将group_001参数设置为group_007的附加设置,因此还需要设置event。

左键单击下面图中的“i_VSTAR_PROBE_SIGNAL_GEN_001”实例名(图21)。然后,右击一个事件名称(event0000),然后菜单将被打开。选择“探测点”并选择“事件监视器”。

图21 为每组设置事件监视器

当选择“事件监视器”时,会打开如下图的“添加单位探头”窗口。由于group_001~group_007已经定义,您可以选择包含事件的组名。

首先,这里选择group_001。点击“确定”,因为可以接受简单上升边缘检测的默认设置。对event0001~event0007重复类似的操作,然后完成“group_001”的设置。

选择实例…_002并设置"group_002",选择实例…_003并设置"group_003",如此重复,最后选择实例…_007并设置"group_007"。

图22  各组设置事件

1.6 为波形查看器选择信号

为波形视图选择的信号被写入一个VCD文件,然后你可以通过GTKwave波形查看器看到波形。

1.6.1 为波形查看器选择信号

在设计窗口左侧的实例/模块区域上左键单击顶部模块名(例如,VSTAR_DUT),如图6-23所示。然后在窗口中间的“signal”区域右击信号名称(如:Counter_for_LED[27:0]),在波形查看器中选择“Add to Probe Point”和“Waveform Capture”。

图23  波形视图选择信号

“添加波形”窗口显示波形组,点击“确定”即可。

图24 添加波形组

尚未定义其他波形组,因此仅显示wave_group_000,如果需要,请添加波形组。 要添加波形组,请单击“探针”图标,然后单击“波形探针”,然后单击“组”下的“ +”按钮,类似于事件捕获。 此外,一组信号应使用相同的时钟连接,如果有另一个时钟用于波形,则应添加其他波形组。

如果要添加另一个实例的信号,请在窗口左侧的实例/模块区域中左击实例名称。 然后右键单击窗口中间“信号”区域上的信号,为波形查看器选择“添加到探测点”和“波形捕获”。

信号已被选择为“事件监视器”,在选择“添加到探测点”时,“事件监视器”的部分为灰色。 与此类似,继续为波形查看器设置信号。

图25 信号的波形捕获

1.6.1 确认事件/信号列表

如果所有的事件和波形信号设置完成,就可以确认其设置是否正确。在窗口菜单中选择“Signal List Viewer”,将打开您已经执行要设置的信号列表。您可以在此窗口确认是否正确完成了预期的设置。

图26 确认事件/信号窗口

1.7 关闭设计窗口

如果所有设置都完成了,请用VSTAR IP更新设计。您可以恢复VSTAR IP设置或保存项目。

1.7.1 设计更新

当设置完成后,点击“设计更新”图标,会出现“设计导出成功”和“xpr文件更新成功”的信息,请点击“确定”。VSTAR IP的RTL文件由设置参数生成,如下所示。VSTAR IP已与用户RTL连接,以探测用于事件传输检查和波形查看器的信号。

图27 设计更新

Vivado的项目文件(.xpr)也已更新,并且具有VSTAR IP的用户电路可以在Vivado中进行合成。 此外,必须将1个以上的探头设置为事件组和波形捕获组。 如果存在不存在探针的组,请在执行设计更新之前消除。 确认方法是在“探针配置”窗口中确认是否没有空组,当有空组时,请消除该组。

1.7.2  VSTAR设计更新后运行Vivado

用户应在VSTAR的设计更新后运行模块设计。 VSTAR自动将VSTAR IP添加到Vivado项目中,但会将其反映到项目中。 用户需要打开模块设计来查看用户电路。 下图显示了添加的VSTAR IP,VSTAR IP位于Block Design的相同设计层次结构中,而未包含在Block Design模块中。

图28  设计更新后的模块设计视图

根据需要,VSTAR IP的输入/输出引脚与用户电路的信号连接。 即使未连接,VSTAR IP也会运行,因此仅在必要的情况下才连接。 如果您对输入引脚保持开放状态,则会显示警告,但默认情况下定义为0,因此运行不会出现问题。

VSTAR IP 端口

属性

内容

vstar_disable

Input

输入“1”完全禁用VSTAR IP和JTAG通信。要启用VSTAR IP,请设置输入“0”

capture_enable

Input

外部信号可以控制VSTAR IP的ON / OFF。 “0”设置为OFF。 VSTAR IP的内部寄存器可以控制其外部信号的启用/禁用。 默认设置为禁用,因此忽略输入“0”。

extraction_enable

Input

外部信号可以控制VSTAR IP的提取规则相位。 “1”设置为ON,“0”设置为OFF。 VSTAR IP的内部寄存器可以控制其外部信号的启用/禁用。 默认设置为禁用,因此忽略输入“0”。

event_checker_enable

Input

外部信号可以控制VSTAR IP的规则检查阶段。 “1”设置为ON,“0”设置为OFF。 VSTAR IP的内部寄存器可以控制其外部信号的启用/禁用。 默认设置为禁用,因此忽略输入“0”。

trigger_ext_output

Output

触发信号的输出,当沿错误方向生成触发信号时输出“1”。

图29  VSTAR IP的输入/输出端口

运行验证设计。 无论选择下图的红色字符,都可以执行。 如果VSTAR IP的外部控制输入引脚处于打开状态,则会输出警告,但是每个输入引脚都会自动设置为0,所以没有问题。

图30  模块设计中验证设计的执行

打开(不关闭)模块设计时,请打开“源”选项卡,然后右键单击运行“生成输出产品”。 它应将“综合选项”保持为“全局”。 用户应确认VSTAR_TOP模块和其他IP包含在同一块设计层次结构中。

图31  模块设计中VSTAR IP连接的确认

1.7.3 将VSTAR IP恢复到初始状态

如您所需要,可以通过单击“恢复VSTAR IP”图标返回到VSTAR IP的第一状态。它问你“你确定你要恢复VSTAR IP吗?”,如果没有问题,请点击“是”。

图32  还原VSTAR IP

还原VSTAR IP后,如果再次使用相同的设置来使用VSTAR IP,请按照以下步骤进行操作。 在更改FPGA设计之前,需要更改探针并运行“ Revert VSTAR IP”。 这样,将保存“还原VSTAR IP”之前的状态

1.保存VSTAR项目(文件→项目→保存菜单)

2.运行“还原VSTAR IP”按钮

3.完成VSTAR(文件→退出菜单)

4.选择“否”。 ”以保存VSTAR

当执行“还原VSTAR IP”时,将删除VSTAR IP配置和探针的所有信息,选择“是”将保存已删除的VSTAR IP状态。 选择“否”会保存在“还原VSTAR IP”之前项目信息。

1.7.4 保存VSTAR项目

可以通过选择File menu→project→save保存VSTAR项目。保存的目标目录由“5.1 VSTAR执行和项目设置”描述。它包含一个tcl文件,用于保存设计窗口的操作和设置。若要重新启动已保存的VSTAR项目,请在“VSTAR快速启动”窗口的“打开项目”中指定保存的目录。也请参考“图5-2快速启动窗口”。

图33  保存VSTAR项目

1.8 运行TCL脚本

可以将设计窗口上的操作和参数设置写入Tcl文件。可以重新运行用户编辑或新创建的Tcl脚本。

在下图34的右下角区域,左键点击“Tcl控制台”按钮,然后在右下角区域用source命令指定Tcl脚本文件的层次名称,并按enter键。然后可以运行Tcl脚本自动运行。请注意,Windows中Tcl脚本的目录单独字符是“/”而不是“\”。

图34  指定并运行Tcl脚本

VSTAR设计窗口及监测信号的选择相关推荐

  1. matlab symadd,信号调理器设计—大二暑期信号分析实习报告精选多篇

    第1篇第2篇第3篇第4篇第5篇更多顶部 目录 第一篇:信号调理器设计-大二暑期信号分析实习报告 第二篇:大二暑期信号分析实习报告 第三篇:传感器信号调理电路 第四篇:信号调理电路 第五篇:信号实习报告 ...

  2. 电路板级的EMC设计 (2)元件的选择和电路设计技术

    电路板级的EMC设计 (2)元件的选择和电路设计技术 文章目录 电路板级的EMC设计 (2)元件的选择和电路设计技术 文档简介 第二部分:元件的选择和电路设计技术 元件组 1.电阻 2.电容 3.电感 ...

  3. matlab对图像信号进行频谱分析及滤波,数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波...

    数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波 课课 程程 设设 计 (论文) 报计 (论文) 报 告告 书书 课程名称课程名称 数字信号处理 题题 目目 应用Matlab 对信 ...

  4. 两个独立的窗口和自定义信号

    两个独立的窗口和自定义信号 文章目录 两个独立的窗口和自定义信号 1.两个独立的窗口 2.自定义信号 1.两个独立的窗口 实现一个简单的窗口程序:首先有两个窗口,每个窗口当中都有一个按钮,当点击第一个 ...

  5. pyqt5窗口之间传递信号_PyQt5不同窗口之间的值传递

    PyQt5 提供很多标准对话框, 这里主要讲自定义对话框怎么使用自定义信号来做消息传递 话不多说, 先上代码: from PyQt5.QtWidgets import QApplication, QW ...

  6. 模拟集成电路分析和设计之CMOS小信号模型

    模拟集成电路分析和设计之CMOS小信号模型 Analysis and Design of Analog Integrated Circuits

  7. 设计数据库表时数据类型的选择

    设计数据库表时数据类型的选择 1. 整数类型 整数类型有:tinyint.smallint.mediumint.int.bigint,分别使用 8.16.24.32.64 位存储空间. 它们可以存储的 ...

  8. UI设计就业方向有哪些?如何选择?

    ​ 很多经历过UI培训的同学,在学成之后都比较关注UI设计就业方向有哪些?如何选择?尤其是面对如今复杂多样的工作岗位,更是不知道该作何选择.下面我们来看看详细的介绍. UI培训分享:UI设计就业方向有 ...

  9. 如何设计windows流量监测系统

    设计Windows流量监测系统的方法有很多种,以下是一些可行的方法: 使用系统自带的工具,如任务管理器或网络监测器.这些工具可以帮助您查看网络流量的总量和来源. 使用第三方软件,如NetLimiter ...

最新文章

  1. 链表倒数第k个节点_面试题 02.02. 返回倒数第 k 个节点
  2. 成都网络推广告诉大家网站抓取量要如何解决?
  3. 印象系列-磁盘和内存的基本认识
  4. 三方支付(支付宝为例)
  5. pacman安装ubuntu_为什么tensorflow用户宁可ubuntu繁琐步骤搭建环境,也不用一条命令直达的manjaro?...
  6. python 链表推导式_五--python之数据结构(Data Structures)
  7. [006] 了解 Roslyn 编译器
  8. 网页设计上机考试原题_Dreamweaver上机考试题目dreamweaver试题库网页制作试题.doc...
  9. linux基础应用和常用技巧
  10. grub的概念,简单描述一下
  11. python 报文解析_python解析DNS数据包实例代码
  12. 敏友的【敏捷个人】有感(6): 我的改变从执行力分享开始
  13. python从入门到精通 明日科技 电子书-【明日科技+python】百度云下载 - 云盘精灵...
  14. 1.2Tensorflow的Session操作
  15. 认识 sun.misc.Unsafe
  16. C语言谭浩强版本学习笔记(1)
  17. SWOT模板与方法论
  18. 哥尼斯堡的“七桥问题”
  19. MyEclipse连接oracle数据库及代码
  20. 多因子策略-APT模型

热门文章

  1. 用python画玫瑰
  2. 基于NASA C-MAPSS数据的介绍
  3. C#+SQL server窗体编程
  4. 抖音壁纸小程序分销源代码
  5. 数值处理题库--Sprime
  6. c语言压力变送器程序设计,浅析单片机在高精度压力变送器应用中的作用
  7. 缺乏标准化会减缓物联网的发展吗?
  8. C/C++ linux 多线程编程报错 :undefined reference to `pthread_create‘
  9. android 传感器 apk,Android实现接近传感器
  10. PCIe L1s debug with RTW88