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
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603310
  • 芯片
    +关注

    关注

    455

    文章

    50812

    浏览量

    423571
收藏 人收藏

    评论

    相关推荐

    多层板埋孔设计注意事项

    多层板埋孔设计注意事项
    的头像 发表于 12-20 16:06 125次阅读

    脉冲式充电器的使用注意事项

    脉冲式充电器的使用注意事项主要包括以下几个方面: 一、安全注意事项 用电安全 :在充电过程,应始终保持警惕,注意用电安全,避免触电和短路等危险情况的发生。 防火防灾 :避免在易燃易爆
    的头像 发表于 09-26 16:05 805次阅读

    绕线电感定制的注意事项

    电子发烧友网站提供《绕线电感定制的注意事项.docx》资料免费下载
    发表于 09-20 11:24 0次下载

    共模电感定制的注意事项

    电子发烧友网站提供《共模电感定制的注意事项.docx》资料免费下载
    发表于 09-04 11:47 0次下载

    LiFePO4设计注意事项

    电子发烧友网站提供《LiFePO4设计注意事项.pdf》资料免费下载
    发表于 09-03 09:24 0次下载
    LiFePO4设计<b class='flag-5'>注意事项</b>

    先进FPGA的电源设计注意事项(电源设计器121)

    电子发烧友网站提供《先进FPGA的电源设计注意事项(电源设计器121).pdf》资料免费下载
    发表于 08-26 09:27 0次下载
    先进<b class='flag-5'>FPGA</b>的电源设计<b class='flag-5'>注意事项</b>(电源设计器121)

    光耦在实际使用注意事项

    光耦,即光电耦合器,是一种以光为媒介传输电信号的电一光一电转换器件。在实际使用,为了确保光耦的稳定性和可靠性,需要注意多个方面的因素。以下是对光耦在实际使用注意事项的详细阐述。
    的头像 发表于 08-15 10:52 849次阅读

    FPGA的高速接口应用注意事项

    FPGA的高速接口应用注意事项主要包括以下几个方面: 信号完整性与电磁兼容性(EMC) : 在设计FPGA高速接口时,必须充分考虑信号完整性和电磁兼容性。这要求合理的PCB布局、走线策略和屏蔽技术
    发表于 05-27 16:02

    钳形电流表的使用方法和注意事项

    钳形电流表,作为电气测量和测试的重要工具,其使用方法和注意事项对于保障测量结果的准确性和操作人员的安全至关重要。本文将从钳形电流表的使用方法和注意事项两个方面进行详细阐述,以期为读者提供一个全面而深入的了解。
    的头像 发表于 05-14 16:14 3428次阅读

    FMD LINK 使用注意事项

    电子发烧友网站提供《FMD LINK 使用注意事项.pdf》资料免费下载
    发表于 05-06 10:11 0次下载

    FPGA设计添加复位功能的注意事项

    本文将回顾使用重置输入对给定功能进行编码的一些基本注意事项。设计者可能会忽视使用复位输入的后果,但不正确的复位策略很容易造成严重处罚。复位功能会对 FPGA 设计的速度、面积和功耗产生不利影响。
    发表于 05-03 09:49 209次阅读
    向<b class='flag-5'>FPGA</b>设计添加复位功能的<b class='flag-5'>注意事项</b>

    EMI / Safety观念简介及注意事项

    电子发烧友网站提供《EMI / Safety观念简介及注意事项.ppt》资料免费下载
    发表于 02-28 09:45 1次下载

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

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

    测速电机: 常见6大注意事项

    测速电机: 常见6大注意事项!测速电机是一种用于测量物体运动速度的设备,广泛应用于工业生产和科学研究。测速电机常见的6大注意事项以确保安全和准确性。
    的头像 发表于 01-11 10:53 492次阅读
    测速电机: 常见6大<b class='flag-5'>注意事项</b>

    示波器接电流探头时的设置方法及注意事项

    示波器接电流探头时的设置方法及注意事项  示波器是一种用于观测电子信号波形的重要仪器。在实际应用,经常需要接入电流探头以观测电路的电流波形。正确的设置方法和注意事项对于获取准确的波
    的头像 发表于 01-08 16:36 3661次阅读