0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA杂记之安路TD中chipwatcher工具的使用注意事项

润欣科技Fortune 来源:润欣科技 作者:润欣科技Fortune 2021-05-22 17:33 次阅读

上海润欣科技股份有限公司创研社

一、什么是chipwatcher

编程开发过程的调试阶段,可以借助一些编译环境集成的工具帮助我们更好地定位问题。当我们完成一份工程代码但是观测不到我们想要的结果时,我们需要进一步确认是哪部分的代码出现了偏差导致得不到我们想要的结果。

对于MCU来说,我们可以借助JLINK仿真器来实现断点测试,进而观察每一步的数据变化,从而定位到问题所在;对于FPGA而言,想要观察内部信号的变化,也有对应的工具可以使用。

这些工具,不同的芯片厂商根据自家的编译环境集成了他们各自的工具,例如,XilinxISE的chipscope,alteraquartusII的SignalProbe等。本文中安路TD的chipwatcher也是用于观测电路内部信号变化的工具,可以认为这是一款类似于逻辑分析仪的工具,只不过观测的信号不是芯片引脚上面的信号,而是电路内部的信号。

当我们需要定位问题的时候,可以在工具中添加我们想要查看的信号,通过抓取波形来确认信号是否在根据我们的需求进行变化。

二、Chipwatcher使用流程

首先,一个FPGA工程常见的构成如下:

1.功能代码文件:后缀为.v的文件,通俗地讲就是我们自己写的代码。

2.例化的IP文件:通过编译软件来例化的IP的代码,不同厂商例化后的IP文件名后缀有差异,安路的TD中直接将例化完毕后的.v文件加入工程即可。这类文件不是必须的,有用到需要的IP就加,没有不加。

3.IO约束文件:用来定义整个工程的输入输出信号对应的具体芯片引脚是哪个。这类文件可以不加,不加的话编译工具会自动分配IO口。

4.时钟约束文件:即SDC文件。同IO约束文件,不加的话编译器会自己约束,因此当工程较大时序较为复杂时通常需要我们自己约束。

以上四种文件通过编译后一起生成的整个工程的bit文件烧录进FPGA芯片后,假设代码功能正常,则芯片开始工作。

假设功能不正常,当我们想要观察电路内部信号的时候,我们还需要在工程中加入另一类文件,即第五类文件,然后将这五类文件统一打包成bit文件后下载进FPGA,此时才可以利用工具观测和抓取到我们想看的信号。

这第五类文件,在TD中,即为Chipwatcher工具生成的.cwc文件。

下图展示了一个加入.cwc文件后的工程目录(该工程中未加入时序约束文件):

o4YBAGAXc4CAdrzsAABD9K6z_nQ544.png

生成cwc文件的过程如下:

Tools->DebugTools->chipwatcher

pIYBAGAXc46AUcqjAABwEVEtDSA187.png

进入到chipwatcher页面:

pIYBAGAXc5mAUPJYAAECEOXz33Q146.png

如上图,①区是选择采样时钟和采样深度,采样时钟的选择注意要选择全局时钟中频率最高的时钟,采样深度越深(即数值越大),最终生成的bit文件所占用的芯片资源越多。

②区是添加想观察的信号的区域,添加方法:在该区域右键后,选择addnodes进入到信号选择的页面,如下:

pIYBAGAXc7CACbupAACbQZz-ClU853.png

如图可以选择想要观察的信号至右侧,全部选择完毕后,点击OK即可。

需要注意的是,有些信号会自动被编译器优化,而在list中不被显示,此时若是想观测对应的信号,可以回到我们的代码中加上如下关键词即可:

pIYBAGAXc7-AOzj9AABYZeRBP-c561.png

添加完想要观察的信号后,设置触发条件。

pIYBAGAXc9KAYnI5AABLEQdtn2c352.png

如图,在triggerenable栏选择触发信号,在riggercondition栏选择触发条件(右键)

触发条件共有以下几种:

pIYBAGAXc_eATtHaAABINWgXmqY136.png

分别表示低电平触发、高电平触发、上升沿触发、下降沿触发和边沿触发。

pIYBAGAXdBOAaJ5lAABLgudfBmk251.png

在如上图处设置触发信号之间的关系。图中设置为或,即只要其中一个信号满足条件即可。

上图中的整体触发条件设置完毕后可叙述为:当int_mem_we信号或int_mem_re信号其中之一为高电平时,抓取当前int_mem_wdata[31:0]、int_mem_addr[10:0]、int_mem_rdata[31:0]、int_mem_we和int_mem_re的波形。

编辑完毕后即可保存文件。

pIYBAGAXdCqAKP4TAACW9QzLSSE933.png

保存后生成对应的cwc文件,同时将文件加入工程,最后编译下载至开发板。

pIYBAGAXdEGAatuhAAH1ZJkaMmI099.png

(注释:①为将生成的cwc文件加入工程,②为编译工程,③为将bit文件下载至开发板)

下载成功后,返回chipwatcher设置页面,如下图选择singletrigger,即单次触发。

pIYBAGAXdFGAQLzVAACeSrxoWFM916.png

当程序运行并满足触发条件时,chipwatcher会抓取到波形,如下:

pIYBAGAXdGWAdYmkAABhyg8VC10070.png

三、FPGA调试与MCU调试的一些思路差异

Chipwatcher的调试过程大体如第二章中所示,但是很长一段时间,我并没有在chipwatcher中观察到任何波形,究其原因是没有从MCU调试的思维转变过来。

MCU的断点调试,可以认为是一步一步执行的,没有点击下一步之前,程序会一直停留在当前位置(除非程序跑飞)。

而FPGA调试没有这种机制,当bit文件下载至芯片后,程序是一直执行的,而点击singletrigger后只不过是当满足触发条件时抓取当前波形而已。抓取完毕会显示波形,程序却依旧在继续执行,不会停留在抓取完毕的那一刻。

当我使用chipwatcher观察AHB协议传输时,没有在数据线和地址线上面观察到波形就是没有意识到这点。在bit文件下载进芯片时传输就已经开始了(对比MCU的调试,通常MCU调试开始时,环境一般会在main函数起始自动设置断点),假设传输在我开启触发按键前就已经完成,则传输线上就会一直观察不到数据,触发条件也会一直不成立。

因此,为了确保能够顺利抓取到传输的数据,需要在传输前设置相应的延时,保证当点击singletrigger,chipwatcher开始根据设置的触发条件抓取波形时,数据的传输还没有开始。

例程是MCU和FPGA根据AHB协议进行通信,因此后来我在MCU的工程中添加了一段延时:

pIYBAGAXdH2AYjZoAAAJl1uA8HY172.png

确保留出足够的时间来操作chipwatcher。
fqj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21331

    浏览量

    593406
  • 芯片
    +关注

    关注

    447

    文章

    47838

    浏览量

    409411
收藏 人收藏

    评论

    相关推荐

    浪涌抑制器的应用及注意事项

    浪涌抑制器的应用及注意事项?|深圳比创达电子
    的头像 发表于 01-19 09:55 166次阅读
    浪涌抑制器的应用及<b class='flag-5'>注意事项</b>?

    芯片金线包封胶的使用注意事项是什么?

    芯片金线包封胶的使用注意事项是什么?金线包封胶是一种高性能、高粘度的密封胶,广泛应用于电子、电器、汽车等领域。它具有良好的防水、防潮、防震等性能,能够保护产品内部零件不受环境影响,提高产品的使用寿命
    的头像 发表于 01-05 11:29 457次阅读
    芯片金线包封胶的使用<b class='flag-5'>注意事项</b>是什么?

    DC电源模块有哪些注意事项和使用技巧?

    DC电源模块有哪些注意事项和使用技巧?
    的头像 发表于 12-25 13:59 254次阅读
    DC电源模块有哪些<b class='flag-5'>注意事项</b>和使用技巧?

    霍尔元件使用的注意事项

    霍尔元件使用的注意事项  霍尔元件是一种常见的电子元件,主要用于测量和检测磁场的变化。它具有灵敏度高、响应速度快、耐磁场干扰等优点,在各种应用中得到广泛使用。然而,为了确保霍尔元件的正常工作和延长
    的头像 发表于 12-18 14:56 514次阅读

    电流互感器的使用注意事项

    当谈到电流互感器的使用时,有一些重要的注意事项需要我们牢记。在本文中,我们将探讨这些注意事项,为您提供详细和全面的信息。
    的头像 发表于 12-15 10:34 594次阅读
    电流互感器的使用<b class='flag-5'>注意事项</b>

    pcb板线路腐蚀清洗注意事项

    pcb板线路腐蚀清洗注意事项
    的头像 发表于 11-24 17:21 530次阅读

    VGA OUT 的PCB设计注意事项

    VGA OUT 的PCB设计注意事项
    的头像 发表于 11-23 09:04 350次阅读

    中8位MCU EEPROM使用注意事项

    中颖8位MCU EEPROM使用注意事项
    的头像 发表于 09-27 15:34 510次阅读
    中8位MCU EEPROM使用<b class='flag-5'>注意事项</b>

    直线模组的运行注意事项

    直线模组的运行注意事项
    的头像 发表于 08-21 17:36 910次阅读
    直线模组的运行<b class='flag-5'>注意事项</b>

    FPGA的有源电容器放电电路注意事项

    电子发烧友网站提供《FPGA的有源电容器放电电路注意事项.pdf》资料免费下载
    发表于 07-25 15:06 0次下载
    <b class='flag-5'>FPGA</b>的有源电容器放电电路<b class='flag-5'>注意事项</b>

    安全光栅选择注意事项

    安全光栅选择注意事项
    的头像 发表于 07-14 10:24 562次阅读
    安全光栅选择<b class='flag-5'>注意事项</b>

    使用注意事项

    使用注意事项
    发表于 07-07 19:04 0次下载
    使用<b class='flag-5'>注意事项</b>

    安全光幕选型方法以及注意事项

    安全光幕选型方法以及注意事项
    的头像 发表于 07-06 13:59 490次阅读
    安全光幕选型方法以及<b class='flag-5'>注意事项</b>

    安全光幕选型方法以及注意事项

    安全光幕选型方法以及注意事项
    的头像 发表于 06-28 14:35 466次阅读
    安全光幕选型方法以及<b class='flag-5'>注意事项</b>

    FPGA管脚调整的注意事项

    编程来校正信号的通信就可以了。在调整FPGA管脚之前必须熟悉几点注意事项FPGA管脚调整的注意事项 (1)如图12-1所示,当存在VRN/VRP管脚连接上/下拉电阻时,不可以调,V
    的头像 发表于 06-20 11:20 483次阅读