1. 调试窗口

完成FPGA板的执行,并对结果进行分析。VSTAR支持将事件图和波形查看器作为调试窗口。

1.1 启动调试窗口

FGPA板供电连接USB端口时,点击“调试窗口”图标进行JTAG连接(同样的操作可以通过窗口菜单→调试窗口进行)。在调试窗口的左下角显示一条“连接JTAG”的消息。连接完成后,将显示“JTAG connected successful”消息。

图1 启动调试窗口

1.2 VSTAR IP配置检查

如果FPGA板上的VSTAR IP配置与VSTAR软件的信息不匹配,则会在“调试窗口”开始时显示错误。

图2  调试窗口启动错误信息

1.3 起始信号捕获

单击“开始捕获”图标时,将执行FPGA板(通过“运行”菜单→“开始捕获”可以进行相同的操作)。 当FPGA板上发生事件传输的违规错误,触发发生并且系统停止时,将打开一个事件图(需要一段时间)。要强制停止FPGA板的执行,请单击“ “停止捕获”图标(通过“运行”菜单→“停止捕获”可以进行相同的操作)。

图3  开始捕获和触发生成

1.4 事件图表视图

点击“OK”到VSTAR IP状态窗口后,您可以看到事件图表。通过移动事件图的滚动条,可以找到用红色表示的错误部分(group_003的错误如下图所示)。

图4  调试窗口的事件转换视图

导致产生错误的信息将显示在VSTAR IP状态窗口中。下图显示了最后一个事件ID:3 (event_0003)和下一个事件ID: 0(event_0000)组ID:3 (group_003)的错误触发生成。

图5  VSTAR IP状态窗口的错误信息

1.4.1 缩放适应视图

当单击缩放适合图标,整个事件图表将显示。

图6 缩放适应视图

1.4.2 放大/缩小视图

单击放大(+)图标时,事件图表示展开,单击缩小(-)图标时,事件图表示缩小。在“视图”菜单上也有类似的功能。

图7 放大/缩小视图

1.5 添加交易规则

由于规则提取阶段是在FPGA运行的初始阶段完成的,因此在规则提取后发生的频率较低时,可能会导致正常事务产生伪错误;而在规则提取阶段的周期变长时,则可能是正常的。

可以将发生频率较低的规则定义为规则。 VSTAR支持将伪错误添加到交易规则的功能。 将伪错误添加到规则中。 请单击“调试窗口”中触发行区域的“添加规则”按钮,然后将其添加到规则中。

图8 通过“添加触发线规则”按钮添加伪错误

1.6 波形查看器

单击波形查看器图标,可以使用GTKWave观察捕获的信号的波形,该信号将被捕获以用于波形查看器以及事件传输(请参阅“帮助”菜单或GTKWave文档)。

可以在波形缓冲器容量范围内的错误触发附近观察波形。设置事件周期的硬件寄存器来捕获触发后的事件。

图9  GTKwave波形查看器

1.7 确认状态

可以从debug窗口确认各种状态,比如运行状态和事件传输规则状态。

1.7.1 VSTAR IP状态

点击VSTAR IP状态图标,打开VSTAR IP状态窗口,确认VSTART IP执行参数设置。此窗口与触发器停止时的窗口相同。

图10  VSTART IP状态视图

1.7.2 事件转换规则状态

当单击事件转移规则(事件转移规则)图标时,将打开一个事件转移规则窗口。点击group(下面的group_0000)和Last ID(下面的“0”)显示当前ID和时间间隔的规则(下面的“10,20,30,40,50,60,70,80”)(可以通过“编辑”菜单→“视图转换规则”进行相同操作)。从下图可以看出,事件ID为0 (event0000)的下一个事件应该仅为事件ID为5 (event0005),从event0000到event0005的间隔时间是从10个(0x0a)时钟到80个(0x50)时钟的8种间隔时间。

图11  事件传输规则的状态视图

1.7.3  规则缓冲区状态

当单击“规则缓冲区”图标时,将打开一个规则缓冲区窗口。事件传输规则缓冲区的字数指定为VSTAR IP的设计窗口的RTL生成参数。

如下图所示,缓冲区被定义为最小的1024个单词,运行自动学习功能后,您可以发现在较低区域中实际显示的总使用量为512个单词。每个组有8个事件(使用事件号),一个事件传输规则最多可以保存8个。

图12  事件规则缓冲区状态

当右击事件规则缓冲区状态的行时,将打开一个弹出菜单来更改参数。

图13  事件规则缓冲区状态

Mode:

可以从以下四种模式中进行选择。

-自动规则提取:自动提取事件转换规则

-用户定义规则:加载用户定义的转换规则

-断点:简单地根据事件变化或值匹配作为断点停止

-仅捕获事件:仅捕获事件转换,不生成触发器

Max Branch Number:

在定义为VSTAR IP参数的最大数目的范围内,指定事件分支到下一个事件转移的最大数目。 请参照关于事件分支的阅览规则。

Interval Time Check:

选择启用/禁用以检查事件过渡的间隔时间。

Timeout Error:

如果没有发生错误(触发),请选择启用/禁用以在特定单位时间或值后停止。 在启用的情况下,可以通过“超时检查模式”指定超时设置;在禁用的情况下,您不能指定“超时检查模式”。

Interval Time Rounding:

指定寄存器的舍入位以计算时间间隔。 可能的值是从“不舍入”到“舍入15-0位”,如下图所示。 时间计数器的位宽由VSTAR IP参数定义。

图14  间隔时间舍入

Timeout check mode:

选择“自动”,“规则提取后比较值”或“从VSTAR开始比较值”。 默认为“自动”。

Rule Explorer:

可以显示图形窗口上的事件转换图表来观察事件转换。事件转换从id_0 (event000)开始,如下图(a)所示,下一个id_5 (event0005)有8个转换目标(分支),间隔时间不同。可以选择一个id_5事件并单击右箭头按钮的“下一个事件”区域的下一个事件event0001 (id_1)可以显示如下图15(b)。重复此操作然后返回第一个事件(event0000)如下图15(c),用户可以通过这个图表确认事件的过渡。点击“下一个事件”的左箭头按钮,可以返回到前一个事件。

图15  (a),(b),(c)事件转换规则视图

1.7.4 转移规则的分支

当事务事件在repeat序列中出现多次时,规则就会出现分支。下图显示了一个条件,事件3传输到事件1或事件2,事件2传输到事件0或事件6。但是,该规则的分支存在一个可记录的最大值。

图16  转移规则的分支

规则缓冲区优化窗口显示事务规则分支的状态。

图17  分支的状态视图

下表显示了参数的信息。

表1  事务规则的状态参数

项目

内容

使用事件数量

一个组实际使用的事件数。

使用最大分支数

分支的最大数量。如果是溢出,则显示“溢出”。

到不同事件的最大分支

分支目标的事件ID的最大值。当该值较大时,将最大分支数更改为较大的值;但是,当将最大分支数设为较大时,它将增加规则缓冲区的使用量。 当使用量超过100%时,对于使用事件值较小的其他组,是否将最大分支数改为小值,或者返回设计窗口,将规则缓冲区的大小改为大值

到一个事件的最大分支

一个事件ID的分支的最大值。不同时间间隔的数量在这里显示。当此值较大时,对于一个事件的事务,时间间隔的松散程度有时会很大,有时会出现溢出。在这种情况下,将时间精度(时间舍入)更改为large。如果情况仍然没有减少,请更改事务规则为禁用。

图18  最大分支数情况

1.7.5 超时检查模式

将每个事件之间的时间间隔作为传输规则进行检查,但是如果在固定时间内未发生事件,则可能会产生超时错误,可以将其设置为独立检查事件期间的时间间隔,并且 默认设置为“ ON”,但是当事件不产生事件间隔时间时,无法检查,下表显示了三个o超时检查模式。

表2 超时检查模式的使用情况

Mode

超时检查模式

检查值

使用

Mode0

自动

自动提取+用户定义

自动提取规则模式使用该选项,如果要向自动提取值中添加边距,则执行用户设置。

Mode1

在规则提取后比较值

用户定义(它与自动提取规则模式分离,并自动复制。

用于自动规则提取模式或用户定义规则模式,当用户编辑和检查自动生成的提取规则时使用(从自动规则提取模式切换到用户定义规则模式后使用)

Mode2

比较从VSTAR IP开始的值

用户定义

用户定义规则模式使用,用于根据情况检查事件的发生与否。

当自动提取模式被定义为多个组时,执行规则提取阶段之后的检查阶段。当所有组均为非自动提取模式时,只执行检查阶段。

图19  超时检查模式

1.7.6 规则编辑注意事项

在规则事件之间更改时间(间隔时间)时,请在按Enter键输入数值后单击OK按钮或Apply按钮。

1.7.7 事件转换规则的导入和导出

事件转换规则可以导出到文件并从文件加载。当单击“Export Event Transition Rules”图标时,将打开新窗口来定义输出目录,默认目录是VSTAR项目目录,输出文件名为transition_rules.json。如果没有问题,请点击“保存”。

图20 导出事件转换规则

与上述相同,单击“导入事件转换规则”图标并定义输入目录以加载规则文件,如有必要,可以更改目录以加载,加载文件成功完成,提示“成功导入”。 如果没有问题,则打开“事件转换规则”,然后单击“确定”。

图21  导入事件转换规则

1.8 硬件寄存器窗口

当点击VSTAR IP硬件寄存器图标时,将打开VSTAR IP的寄存器状态窗口。(也在“编辑”菜单→“VSTAR IP硬件寄存器”中。)

VSTAR IP具有寄存器,可以在设计窗口中设置寄存器值,即使不返回设计窗口也不对其进行综合,也可以在此处进行一些参数更改。

1.8.1 运行控制选项卡

该窗口有几个选项卡,下图显示了一个控制(Run control)选项卡。通过运行控制选项卡,您可以定义VSTAR IP的全局控制。每个组的详细规范可由“事件缓冲区选项卡”或“事件检查选项卡”定义。

图22  硬件寄存器视图的“运行控制”选项卡

1.8.2 事件缓冲选项卡

当硬件寄存器窗口的“事件缓冲区”标签被点击时,你可以在它上面定义一个事件缓冲区参数。

可以划分事件缓冲区并捕获多个违反错误发生的触发器。默认情况下,事件缓冲器和波形缓冲器是“单一缓冲器”,在一次触发发生时使用缓冲器的全部容量进行捕获。

设计窗口有“捕获缓冲区的最大分割数”用于RTL合成设置,可以在参数设置范围内划分缓冲区。

图23  事件缓冲区选项卡

默认值为“单个缓冲区”(single buffer),用户可以设置“divided by 2”(2分),“divided by 4”(4分)或“divided by 8”(8分)。

图24  缓冲区划分模式

下图(图25)显示了“除以2(2分割)”的事件图。你可以通过对应两次触发器的2个选项卡来改变两个事件图表。通过单击选项卡,更改事件图表,然后移动滚动条以确认生成错误的触发器位置。但是,将缓冲器除以2会使每一次触发产生半个时钟周期来捕获波形。

图25  事件缓冲区除以2划分

单击波形窗口图标后,将打开窗口选项卡,以选择是打开两个触发的两个波形还是仅打开一个波形,并在设置中进行检查以使用该选项卡更改波形,单击“确定”,将打开GTKWave。 单击选项卡可更改波形并通过Zoom Fit确认波形,也可以通过4种划分进行类似的操作。

图26  波形查看器的事件缓冲器(二分)

1.8.3 事件检查标签

单击硬件寄存器窗口的“事件检查器”选项卡时,可以定义硬件寄存器来控制事件检查,例如,断点(最多4个),组的事件规则提取,时间检查等。

图27  事件检查选项卡

利用vstar捕获FPGA设计中的信号进行逻辑调试相关推荐

  1. vivado中bit文件怎么没有生成_「干货」FPGA设计中深度约束技巧及调试经验总结...

    今天跟大家分享的内容很重要,也是我们调试FPGA经验的总结.随着FPGA对时序和性能的要求越来越高,高频率.大位宽的设计越来越多.在调试这些FPGA样机时,需要从写代码时就要小心谨慎,否则写出来的代码 ...

  2. 防止FPGA设计中综合后的信号被优化

    这不是一个新话题了,写这个也是当作自己的一个小小的笔记吧!觉得挺有用的. 一般在做前仿真(即功能仿真)时,不会考虑信号被优化的问题.最近做一个关于运算的小程序,前仿真的数据没有问题,但是实际出来的数据 ...

  3. FPGA设计中,产生LFSR伪随机数

    今天给大侠带来在FPGA设计中,产生LFSR伪随机数,话不多说,上货. 一.概述 通过一定的算法对事先选定的随机种子(seed)做一定的运算可以得到一组人工生成的周期序列,在这组序列中以相同的概率选取 ...

  4. FPGA设计中,跨时钟域问题的处理

    FPGA设计中,跨时钟域问题的处理 今天和大侠简单聊一聊FPGA设计中跨时钟域问题的处理,话不多说,上货. 跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPG ...

  5. (130)FPGA面试题-FPGA设计中波特率和比特率的区别

    1.1 FPGA面试题-FPGA设计中波特率和比特率的区别 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FPGA设计中波特率和比特率的区别: 5)结束 ...

  6. (139)FPGA面试题-FPGA设计中的速度和面积互换原则

    1.1 FPGA面试题-FPGA设计中的速度和面积互换原则 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FPGA设计中的速度和面积互换原则: 5)结束 ...

  7. 关于FPGA设计中的线性序列机和状态机

    在FPGA设计中,线性序列机和状态机思想是十分重要的思想方法,用于实现各种时序要求.这次的内容是实现用FPGA,时钟周期为20ns,每间隔5000ns发送一个字节的数据,数据不从外部接入,而是内部给定 ...

  8. FPGA设计中,Vivado 调用IP核详细操作步骤

    FPGA设计中,Vivado 调用IP核详细操作步骤 今天给大侠带来了FPGA设计中,Vivado 调用IP核详细操作步骤,话不多说,手把手教学,请往下看. 首先咱们来了解一下vivado的IP核,I ...

  9. 简谈FPGA设计中不同设计方法资源消耗对比

    简谈FPGA设计中不同设计方法资源消耗对比 今天和大侠简单聊一聊FPGA设计中不同设计方法硬件资源消耗对比,话不多说,上货. 在这里,我们使用Verilog HDL 设计计数器,通过两种不同的写法,对 ...

最新文章

  1. 关于Docker的理解
  2. chromedp网络监听_动态爬虫三:监听网络事件 + 监听js事件
  3. 别忘了在使用MES系统之前,还有关键一步!
  4. 消息队列设计的精髓基本都藏在本文里了
  5. 【基础】哥德巴赫猜想
  6. oracle密文怎么弄成明文,明文编码随机化加密方案
  7. Arduino学习笔记55
  8. Spring Cloud (6)config 客户端配置 与GitHub通信
  9. 美国3D理发师可剪出球星脸发型
  10. linux挂移动硬盘命令,linux挂载命令mount及U盘、移动硬盘的挂载
  11. 327 玉米田(状态压缩dp)
  12. winpe加载raid_为WinPE添加RAID卡驱动的几种步骤
  13. java大小写敏感_Java是大小写敏感的语言。
  14. 论文笔记:Adaptive Cross-Modal Prototypes for Cross-Domain Visual-Language Retrieval
  15. chrome插件 Proxy Switchy Auto 使用教程
  16. 使用 JS 循环解决经典数学问题!
  17. 组合数学——牡牛和牝牛
  18. 两万条数据需要做个数据图_第3关:基于Excel对电商母婴数据进行分析
  19. 最近迷上旅游。。。收藏并学习一个旅游网站
  20. PHP资源,库,工具大全

热门文章

  1. Kail学习笔记-kali信息搜集工具之IKE-Scan
  2. 「艾尔斯马克绘」用马克笔如何画渐变显得自然呢?
  3. A Stealth Program Injection Attack against S7-300 PLCs(针对S7-300 PLC的隐形程序注入攻击)
  4. 取消大小周996违法?推荐这6个办公软件,搞定KPI!
  5. 梅州组织培养实验室之室内布局建设
  6. 07-项目训练_取件
  7. 微信免密支付:签名参数构造错误请联系商户处理 【终极解决方案】
  8. oracle 报错54,oracle启动时报错ORA-00845 MEMORY_TARGET not supported on this system
  9. 智能工厂管控平台促进纳恩博生产升级与管理创新
  10. 从零搭建一个基于 ELK 的日志、指标收集与监控系统