利用vstar捕获FPGA设计中的信号进行逻辑调试
1. 调试窗口
完成FPGA板的执行,并对结果进行分析。VSTAR支持将事件图和波形查看器作为调试窗口。
1.1 启动调试窗口
FGPA板供电连接USB端口时,点击“调试窗口”图标进行JTAG连接(同样的操作可以通过窗口菜单→调试窗口进行)。在调试窗口的左下角显示一条“连接JTAG”的消息。连接完成后,将显示“JTAG connected successful”消息。
1.2 VSTAR IP配置检查
如果FPGA板上的VSTAR IP配置与VSTAR软件的信息不匹配,则会在“调试窗口”开始时显示错误。
1.3 起始信号捕获
单击“开始捕获”图标时,将执行FPGA板(通过“运行”菜单→“开始捕获”可以进行相同的操作)。 当FPGA板上发生事件传输的违规错误,触发发生并且系统停止时,将打开一个事件图(需要一段时间)。要强制停止FPGA板的执行,请单击“ “停止捕获”图标(通过“运行”菜单→“停止捕获”可以进行相同的操作)。
1.4 事件图表视图
点击“OK”到VSTAR IP状态窗口后,您可以看到事件图表。通过移动事件图的滚动条,可以找到用红色表示的错误部分(group_003的错误如下图所示)。
导致产生错误的信息将显示在VSTAR IP状态窗口中。下图显示了最后一个事件ID:3 (event_0003)和下一个事件ID: 0(event_0000)组ID:3 (group_003)的错误触发生成。
1.4.1 缩放适应视图
当单击缩放适合图标,整个事件图表将显示。
1.4.2 放大/缩小视图
单击放大(+)图标时,事件图表示展开,单击缩小(-)图标时,事件图表示缩小。在“视图”菜单上也有类似的功能。
1.5 添加交易规则
由于规则提取阶段是在FPGA运行的初始阶段完成的,因此在规则提取后发生的频率较低时,可能会导致正常事务产生伪错误;而在规则提取阶段的周期变长时,则可能是正常的。
可以将发生频率较低的规则定义为规则。 VSTAR支持将伪错误添加到交易规则的功能。 将伪错误添加到规则中。 请单击“调试窗口”中触发行区域的“添加规则”按钮,然后将其添加到规则中。
1.6 波形查看器
单击波形查看器图标,可以使用GTKWave观察捕获的信号的波形,该信号将被捕获以用于波形查看器以及事件传输(请参阅“帮助”菜单或GTKWave文档)。
可以在波形缓冲器容量范围内的错误触发附近观察波形。设置事件周期的硬件寄存器来捕获触发后的事件。
1.7 确认状态
可以从debug窗口确认各种状态,比如运行状态和事件传输规则状态。
1.7.1 VSTAR IP状态
点击VSTAR IP状态图标,打开VSTAR IP状态窗口,确认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种间隔时间。
1.7.3 规则缓冲区状态
当单击“规则缓冲区”图标时,将打开一个规则缓冲区窗口。事件传输规则缓冲区的字数指定为VSTAR IP的设计窗口的RTL生成参数。
如下图所示,缓冲区被定义为最小的1024个单词,运行自动学习功能后,您可以发现在较低区域中实际显示的总使用量为512个单词。每个组有8个事件(使用事件号),一个事件传输规则最多可以保存8个。
当右击事件规则缓冲区状态的行时,将打开一个弹出菜单来更改参数。
Mode:
可以从以下四种模式中进行选择。
-自动规则提取:自动提取事件转换规则
-用户定义规则:加载用户定义的转换规则
-断点:简单地根据事件变化或值匹配作为断点停止
-仅捕获事件:仅捕获事件转换,不生成触发器
Max Branch Number:
在定义为VSTAR IP参数的最大数目的范围内,指定事件分支到下一个事件转移的最大数目。 请参照关于事件分支的阅览规则。
Interval Time Check:
选择启用/禁用以检查事件过渡的间隔时间。
Timeout Error:
如果没有发生错误(触发),请选择启用/禁用以在特定单位时间或值后停止。 在启用的情况下,可以通过“超时检查模式”指定超时设置;在禁用的情况下,您不能指定“超时检查模式”。
Interval Time Rounding:
指定寄存器的舍入位以计算时间间隔。 可能的值是从“不舍入”到“舍入15-0位”,如下图所示。 时间计数器的位宽由VSTAR IP参数定义。
Timeout check mode:
选择“自动”,“规则提取后比较值”或“从VSTAR开始比较值”。 默认为“自动”。
Rule Explorer:
可以显示图形窗口上的事件转换图表来观察事件转换。事件转换从id_0 (event000)开始,如下图(a)所示,下一个id_5 (event0005)有8个转换目标(分支),间隔时间不同。可以选择一个id_5事件并单击右箭头按钮的“下一个事件”区域的下一个事件event0001 (id_1)可以显示如下图15(b)。重复此操作然后返回第一个事件(event0000)如下图15(c),用户可以通过这个图表确认事件的过渡。点击“下一个事件”的左箭头按钮,可以返回到前一个事件。
1.7.4 转移规则的分支
当事务事件在repeat序列中出现多次时,规则就会出现分支。下图显示了一个条件,事件3传输到事件1或事件2,事件2传输到事件0或事件6。但是,该规则的分支存在一个可记录的最大值。
规则缓冲区优化窗口显示事务规则分支的状态。
下表显示了参数的信息。
表1 事务规则的状态参数
项目 |
内容 |
使用事件数量 |
一个组实际使用的事件数。 |
使用最大分支数 |
分支的最大数量。如果是溢出,则显示“溢出”。 |
到不同事件的最大分支 |
分支目标的事件ID的最大值。当该值较大时,将最大分支数更改为较大的值;但是,当将最大分支数设为较大时,它将增加规则缓冲区的使用量。 当使用量超过100%时,对于使用事件值较小的其他组,是否将最大分支数改为小值,或者返回设计窗口,将规则缓冲区的大小改为大值 |
到一个事件的最大分支 |
一个事件ID的分支的最大值。不同时间间隔的数量在这里显示。当此值较大时,对于一个事件的事务,时间间隔的松散程度有时会很大,有时会出现溢出。在这种情况下,将时间精度(时间舍入)更改为large。如果情况仍然没有减少,请更改事务规则为禁用。 |
1.7.5 超时检查模式
将每个事件之间的时间间隔作为传输规则进行检查,但是如果在固定时间内未发生事件,则可能会产生超时错误,可以将其设置为独立检查事件期间的时间间隔,并且 默认设置为“ ON”,但是当事件不产生事件间隔时间时,无法检查,下表显示了三个o超时检查模式。
表2 超时检查模式的使用情况
Mode |
超时检查模式 |
检查值 |
使用 |
Mode0 |
自动 |
自动提取+用户定义 |
自动提取规则模式使用该选项,如果要向自动提取值中添加边距,则执行用户设置。 |
Mode1 |
在规则提取后比较值 |
用户定义(它与自动提取规则模式分离,并自动复制。 |
用于自动规则提取模式或用户定义规则模式,当用户编辑和检查自动生成的提取规则时使用(从自动规则提取模式切换到用户定义规则模式后使用) |
Mode2 |
比较从VSTAR IP开始的值 |
用户定义 |
用户定义规则模式使用,用于根据情况检查事件的发生与否。 |
当自动提取模式被定义为多个组时,执行规则提取阶段之后的检查阶段。当所有组均为非自动提取模式时,只执行检查阶段。
1.7.6 规则编辑注意事项
在规则事件之间更改时间(间隔时间)时,请在按Enter键输入数值后单击OK按钮或Apply按钮。
1.7.7 事件转换规则的导入和导出
事件转换规则可以导出到文件并从文件加载。当单击“Export Event Transition Rules”图标时,将打开新窗口来定义输出目录,默认目录是VSTAR项目目录,输出文件名为transition_rules.json。如果没有问题,请点击“保存”。
与上述相同,单击“导入事件转换规则”图标并定义输入目录以加载规则文件,如有必要,可以更改目录以加载,加载文件成功完成,提示“成功导入”。 如果没有问题,则打开“事件转换规则”,然后单击“确定”。
1.8 硬件寄存器窗口
当点击VSTAR IP硬件寄存器图标时,将打开VSTAR IP的寄存器状态窗口。(也在“编辑”菜单→“VSTAR IP硬件寄存器”中。)
VSTAR IP具有寄存器,可以在设计窗口中设置寄存器值,即使不返回设计窗口也不对其进行综合,也可以在此处进行一些参数更改。
1.8.1 运行控制选项卡
该窗口有几个选项卡,下图显示了一个控制(Run control)选项卡。通过运行控制选项卡,您可以定义VSTAR IP的全局控制。每个组的详细规范可由“事件缓冲区选项卡”或“事件检查选项卡”定义。
1.8.2 事件缓冲选项卡
当硬件寄存器窗口的“事件缓冲区”标签被点击时,你可以在它上面定义一个事件缓冲区参数。
可以划分事件缓冲区并捕获多个违反错误发生的触发器。默认情况下,事件缓冲器和波形缓冲器是“单一缓冲器”,在一次触发发生时使用缓冲器的全部容量进行捕获。
设计窗口有“捕获缓冲区的最大分割数”用于RTL合成设置,可以在参数设置范围内划分缓冲区。
默认值为“单个缓冲区”(single buffer),用户可以设置“divided by 2”(2分),“divided by 4”(4分)或“divided by 8”(8分)。
下图(图25)显示了“除以2(2分割)”的事件图。你可以通过对应两次触发器的2个选项卡来改变两个事件图表。通过单击选项卡,更改事件图表,然后移动滚动条以确认生成错误的触发器位置。但是,将缓冲器除以2会使每一次触发产生半个时钟周期来捕获波形。
单击波形窗口图标后,将打开窗口选项卡,以选择是打开两个触发的两个波形还是仅打开一个波形,并在设置中进行检查以使用该选项卡更改波形,单击“确定”,将打开GTKWave。 单击选项卡可更改波形并通过Zoom Fit确认波形,也可以通过4种划分进行类似的操作。
1.8.3 事件检查标签
单击硬件寄存器窗口的“事件检查器”选项卡时,可以定义硬件寄存器来控制事件检查,例如,断点(最多4个),组的事件规则提取,时间检查等。
利用vstar捕获FPGA设计中的信号进行逻辑调试相关推荐
- vivado中bit文件怎么没有生成_「干货」FPGA设计中深度约束技巧及调试经验总结...
今天跟大家分享的内容很重要,也是我们调试FPGA经验的总结.随着FPGA对时序和性能的要求越来越高,高频率.大位宽的设计越来越多.在调试这些FPGA样机时,需要从写代码时就要小心谨慎,否则写出来的代码 ...
- 防止FPGA设计中综合后的信号被优化
这不是一个新话题了,写这个也是当作自己的一个小小的笔记吧!觉得挺有用的. 一般在做前仿真(即功能仿真)时,不会考虑信号被优化的问题.最近做一个关于运算的小程序,前仿真的数据没有问题,但是实际出来的数据 ...
- FPGA设计中,产生LFSR伪随机数
今天给大侠带来在FPGA设计中,产生LFSR伪随机数,话不多说,上货. 一.概述 通过一定的算法对事先选定的随机种子(seed)做一定的运算可以得到一组人工生成的周期序列,在这组序列中以相同的概率选取 ...
- FPGA设计中,跨时钟域问题的处理
FPGA设计中,跨时钟域问题的处理 今天和大侠简单聊一聊FPGA设计中跨时钟域问题的处理,话不多说,上货. 跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPG ...
- (130)FPGA面试题-FPGA设计中波特率和比特率的区别
1.1 FPGA面试题-FPGA设计中波特率和比特率的区别 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FPGA设计中波特率和比特率的区别: 5)结束 ...
- (139)FPGA面试题-FPGA设计中的速度和面积互换原则
1.1 FPGA面试题-FPGA设计中的速度和面积互换原则 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FPGA设计中的速度和面积互换原则: 5)结束 ...
- 关于FPGA设计中的线性序列机和状态机
在FPGA设计中,线性序列机和状态机思想是十分重要的思想方法,用于实现各种时序要求.这次的内容是实现用FPGA,时钟周期为20ns,每间隔5000ns发送一个字节的数据,数据不从外部接入,而是内部给定 ...
- FPGA设计中,Vivado 调用IP核详细操作步骤
FPGA设计中,Vivado 调用IP核详细操作步骤 今天给大侠带来了FPGA设计中,Vivado 调用IP核详细操作步骤,话不多说,手把手教学,请往下看. 首先咱们来了解一下vivado的IP核,I ...
- 简谈FPGA设计中不同设计方法资源消耗对比
简谈FPGA设计中不同设计方法资源消耗对比 今天和大侠简单聊一聊FPGA设计中不同设计方法硬件资源消耗对比,话不多说,上货. 在这里,我们使用Verilog HDL 设计计数器,通过两种不同的写法,对 ...
最新文章
- 关于Docker的理解
- chromedp网络监听_动态爬虫三:监听网络事件 + 监听js事件
- 别忘了在使用MES系统之前,还有关键一步!
- 消息队列设计的精髓基本都藏在本文里了
- 【基础】哥德巴赫猜想
- oracle密文怎么弄成明文,明文编码随机化加密方案
- Arduino学习笔记55
- Spring Cloud (6)config 客户端配置 与GitHub通信
- 美国3D理发师可剪出球星脸发型
- linux挂移动硬盘命令,linux挂载命令mount及U盘、移动硬盘的挂载
- 327 玉米田(状态压缩dp)
- winpe加载raid_为WinPE添加RAID卡驱动的几种步骤
- java大小写敏感_Java是大小写敏感的语言。
- 论文笔记:Adaptive Cross-Modal Prototypes for Cross-Domain Visual-Language Retrieval
- chrome插件 Proxy Switchy Auto 使用教程
- 使用 JS 循环解决经典数学问题!
- 组合数学——牡牛和牝牛
- 两万条数据需要做个数据图_第3关:基于Excel对电商母婴数据进行分析
- 最近迷上旅游。。。收藏并学习一个旅游网站
- PHP资源,库,工具大全
热门文章
- Kail学习笔记-kali信息搜集工具之IKE-Scan
- 「艾尔斯马克绘」用马克笔如何画渐变显得自然呢?
- A Stealth Program Injection Attack against S7-300 PLCs(针对S7-300 PLC的隐形程序注入攻击)
- 取消大小周996违法?推荐这6个办公软件,搞定KPI!
- 梅州组织培养实验室之室内布局建设
- 07-项目训练_取件
- 微信免密支付:签名参数构造错误请联系商户处理 【终极解决方案】
- oracle 报错54,oracle启动时报错ORA-00845 MEMORY_TARGET not supported on this system
- 智能工厂管控平台促进纳恩博生产升级与管理创新
- 从零搭建一个基于 ELK 的日志、指标收集与监控系统