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

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

3天内不再提示

Vivado工程升级及板级信号调试方案

FPGA技术江湖 来源:网络交换FPGA 2023-02-09 09:36 次阅读

本次操作包括:工程的版本迁移,板级测试时信号的抓取。

如何使用新版本的vivado去打开旧版本的vivado工程

如何使用新版本的vivado去打开旧版本的vivado工程。

对于旧版本的vivado工程或者是ise工程,更新到新版本的vivado环境下有两种方法:

1、直接用新版本vivado打开原有工程文件,进行IP核更新; 2、拷贝原有工程设计文件、约束文件、IP核文件夹至新建新版本vivado空白工程文件下,进行更新。

1、在旧版本vivado基础上直接升级

我们先来介绍一下如何直接使用新版本打开旧版本工程并且进行升级。

814029b2-a7d5-11ed-bfe3-dac502259ad0.png

直接使用新版本vivado打开vivado的工程文件。

81699f5e-a7d5-11ed-bfe3-dac502259ad0.png

对于新版本vivado一般在打开旧版本工程时都会自动进行更新默认自动更新就好。 打开工程之后,需要对旧版本工程的IP核进行升级操作。点击Reports->Report IP Status查看IP核被锁状态进行升级。 818bbde6-a7d5-11ed-bfe3-dac502259ad0.png

81a07fd8-a7d5-11ed-bfe3-dac502259ad0.png

选中所有IP核进行升级。

81cd416c-a7d5-11ed-bfe3-dac502259ad0.png

点击确定。

81e7726c-a7d5-11ed-bfe3-dac502259ad0.jpg

保持默认不使用核容器,(Core Container没有用过,我都是默认不使用)。

8207998e-a7d5-11ed-bfe3-dac502259ad0.png

升级完成之后的界面如图所示。

如何使用新版本的vivado去打开旧版本的vivado工程

debug步骤:

在需要debug的输入输出端口列表前加 (* mark_debug = “true” *)。

在编译通过后,进行综合生成网表等文件,点setup debug进行添加。

保存,xdc中应该有约束了,原理图里也有ila_core 模块,直接进行实现即布局布线。

在线调试:生成比特后下载,run trigger。

注意:在有多个debug端口时,会引入1个以上ila_core,每一个ila_core 的时钟域都是独立的,且在每一个ila_core中各个端口的时钟域是一样的。

1、设置信号抓取标记

将需要测试的端口前标记上(*mark_debug = “1”*)或者(*mark_debug = “true”*)

注意:这里最好将需要测试的端口信号打一拍再进行测试,因为输入输出端口的驱动单元类型往往是不一样的,比如两个红框之间的rgmii_txd信号它的驱动单元类型就是ODDR,这将影响布线到此处的逻辑分析仪ila的探针的连接,具体的我也不清楚应该是驱动能力不匹配之类的,反正最好实现的时候会报错。如果不打拍则在后续设置setup debug的时候就要注意去除不符合驱动类型的信号。

822af32a-a7d5-11ed-bfe3-dac502259ad0.jpg

2、建立debug文件

824b9512-a7d5-11ed-bfe3-dac502259ad0.png

添加完debug标记后,进行编译、综合,没有问题则可以查看当前原理图(其实也可以不用看,这里只是为了对比ila模块)然后点击Set Up Debug对刚刚添加的信号进行设置。

8274be56-a7d5-11ed-bfe3-dac502259ad0.jpg

设置的信号有几个需要注意的地方:

1、关于时钟域的选择,如图红框部分,这些时钟需要选择free clock,所谓free clock(按照我自己的理解,也可能不准确)就是系统一上电就能运行的时钟,并且不会因为复位以外的条件停振,比如有些时钟为了节省功耗,仅在需要进行数据交换时振动,在其他时刻保持低电平,但是这种时钟就不是free clock。

8297fd3a-a7d5-11ed-bfe3-dac502259ad0.jpg

2、注意选择具有符合标准驱动单元的信号,这里右侧红框中都是可以的,但是对于DDR型的驱动信号就会出错。

3、同一个时钟域的信号都在同一个ila模块下,即有几个时钟域就会有几个ila模块。

82cb2e6c-a7d5-11ed-bfe3-dac502259ad0.png

这里需要注意:

1、是选择采样深度,会占用一定的FPGA资源,所以如果设计系统简单就可以选择多一点,可以看到较长时钟周期内存储的信号变化。

2、选择上后,可以进行高级设置操作(选了也没用上==)。

82e8dfd4-a7d5-11ed-bfe3-dac502259ad0.png

可以看到这里的summary是4个时钟域和之前选择一致。

83150636-a7d5-11ed-bfe3-dac502259ad0.png

83413e04-a7d5-11ed-bfe3-dac502259ad0.png

这是两张原理图,后者的红框框部分是添加的4个ila模块,中间蓝色圆框部分是debug hub,即连接FPGA和jtag的部分。

835d60de-a7d5-11ed-bfe3-dac502259ad0.png

83767af6-a7d5-11ed-bfe3-dac502259ad0.png

在底部Debug窗口可以看到各个ila模块的时钟选择。

83b03188-a7d5-11ed-bfe3-dac502259ad0.png

对于debug hub时钟域的选择查看可以通过tcl命令也可以点击原理图连线的方式,在左侧会有连接显示,这里看到是连接到了ila3模块上,这样不太好,因为如果ila3的时钟没选择对就会导致整个debug hub在后面下载比特时无法被检测到,就算其他ila的时钟对了也白瞎。因为计算机是通过jtag返回数据的,而jtag又靠着debug hub 连接fpga的ila。

3、完善XDC文件,实现电路

83e7ceb8-a7d5-11ed-bfe3-dac502259ad0.jpg

修改完成之后,依然需要保存修改,看到这里没有保存约束文件在214行。

8404a66e-a7d5-11ed-bfe3-dac502259ad0.jpg

保存之后xdc增加了ila模块的对应约束。

843f01ec-a7d5-11ed-bfe3-dac502259ad0.jpg

这里对应debug hub 的连接时钟。

845ae68c-a7d5-11ed-bfe3-dac502259ad0.png

之前说了debug hub时钟保持默认的缺点,这里通过tcl命令进行修改,通过查看ug908文档可以知道推荐的debug hub时钟在100Mhz左右,且至少在JTAG下载速率的2.5倍以上,采样定理嘛,一般jtag速率默认15Mhz,查看代码中时钟生成部分,发现CLK_OUT2也就是mac的用户侧时钟就是100Mhz,所以我们选择debug hub时钟为100Mhz。

847cb37a-a7d5-11ed-bfe3-dac502259ad0.jpg

修改完成后,查看xdc确认已经修改了(其实也可以直接通过xdc

修改,但是直接修改xdc软件可能会提示综合过期,让重新综合,而通过tcl则可以直接进行后面的步骤)。

8499de32-a7d5-11ed-bfe3-dac502259ad0.png

我们再次查看原理图,可以看到debug hub的时钟域已经修改。

4、生成比特流文件,进行板级调试并抓取信号

84ce7e12-a7d5-11ed-bfe3-dac502259ad0.png

直接生成比特文件。

84ee80a4-a7d5-11ed-bfe3-dac502259ad0.png

相比较之前的工程版本迁移时的下载界面,红框部分多出了后缀为ltx的文件,即逻辑分析仪的探针文件。

850e140a-a7d5-11ed-bfe3-dac502259ad0.png

下载完成后会弹出4个dashboard对应着4个不同时钟域的ila模块,可是没有信号,这时可以点击+号进行添加。

85325310-a7d5-11ed-bfe3-dac502259ad0.png

ctrl+a选中所有进行添加。

8551905e-a7d5-11ed-bfe3-dac502259ad0.png

添加完信号后注意右下角的触发条件设置,同样点击+号设置需要添加的信号,这里选则的是帧起始标志sop,并且选择触发条件的关系为或,同时触发值设置为1’b1,之后再点击三角型的 run trigger符号即可。

85804f7a-a7d5-11ed-bfe3-dac502259ad0.png

这里lower部分已经有波形了。

85aadb6e-a7d5-11ed-bfe3-dac502259ad0.png

放大看所有的信号。

85d8ada0-a7d5-11ed-bfe3-dac502259ad0.png

这里发现没有前导码是因为这里的4字节数据已经是进了mac之后经过了8转32的数据了已经去掉了前导码和CRC。但是upper client没有数据,原来是没有ping都没有发怎么有?

8600540e-a7d5-11ed-bfe3-dac502259ad0.png

86223ccc-a7d5-11ed-bfe3-dac502259ad0.png

结果发现ping了也没有,好气。

86488daa-a7d5-11ed-bfe3-dac502259ad0.png

注意之前设置的触发条件,是或关系,于是lower的sop信号在当前的1024个钟内比其他的sop先触发,而各个sop的间隔周期大于我们设置的采样深度1024,所以无法同时显示,删除lower触发条件后就有了,当然lower又没有了。

867534cc-a7d5-11ed-bfe3-dac502259ad0.png

869c8144-a7d5-11ed-bfe3-dac502259ad0.png

86c8080a-a7d5-11ed-bfe3-dac502259ad0.png

这边按照同样的步骤,添加观察信号、添加设置触发条件、点击run trigger,就能看到波形了,注意放大后的红框部分,有了前导码,按单字节应该是 55 55 55 d5的顺序而这里由于是rgmii只是半字节,所以是 5 5 5 5 5 5 5 d。

86f260c8-a7d5-11ed-bfe3-dac502259ad0.png

871a7860-a7d5-11ed-bfe3-dac502259ad0.png

对ila3按同样的步骤操作当我们点击run trigger的时候会发现出现unable to arm ila core的错误,这就是时钟域的问题,由于我们选择的是rgmii_rx_clk这是由phy提供的,但是ila3即例化时的client对应的phy没有插网线,所以也没有时钟,自然无法arm ila core。

这里特意为了对比不同时钟域的选择对于ila的影响,其实也可以将lower upper client的ila时钟域都设置成用户侧即CLK_OUT2因为这个时钟一直存在,这样即使ila3对应的模块的网口没有插网线,在dashboard上显示也会有全0 的数据,就和ila0 一样,可以翻到前面去看看,这里的lower upper client的ff_rx_data[31: 0]来自三个独立的例化模块,但是也可以放到同一个时钟域。表达的不太好实践一下就能知道了。

审核编辑:汤梓红

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

    关注

    11

    文章

    2790

    浏览量

    76736
  • 调试
    +关注

    关注

    7

    文章

    578

    浏览量

    33924
  • 文件
    +关注

    关注

    1

    文章

    565

    浏览量

    24733
  • 端口
    +关注

    关注

    4

    文章

    964

    浏览量

    32058
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66482

原文标题:Vivado工程升级及板级信号调试

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    vivado ILA在线调试求助

    在用Vivado实现某个工程时,功能仿真正确,时序满足要求,比特流也能生成,但是在ILA调试和下板子时,无法得到正确的结果信号,请问各位大神可能是什么问题?
    发表于 12-11 11:10

    vivado在线调试

    DSP的CCS软件在线调试,不仅能观察数据,还能在线修改参数值,我想问一下vivado在线调试有这个功能吗,我看见debug好像只能在线观察,我想把bit文件下载到上,我不仅要观察,
    发表于 12-20 14:03

    玩转Zynq连载5——基于Vivado的在线板调试概述

    `玩转Zynq连载5——基于Vivado的在线板调试概述 更多资料共享 链接:https://share.weiyun.com/5s6bA0s Vivado在线
    发表于 05-24 15:16

    玩转Zynq连载33——基于Vivado的在线逻辑分析仪调试

    /1XTQtP5LZAedkCwQtllAEyw提取码:ld9c 1概述基于Vivado调试介绍,可以参考文档《玩转Zynq-基础篇:基于Vi
    发表于 10-28 11:14

    玩转Zynq连载36——[ex55] 基于VIO在线板调试的AXI GP总线读写实例

    PL代码中VIO的配置和例化PL工程中,需要将作为开关量控制或状态显示的信号连接到VIO IP核的接口中。具体可以参考文档《玩转Zynq-工具篇:基于Vivado的Virtual IO在线板
    发表于 11-21 10:04

    Vivado中综合,实现,编程和调试工程可能会出现的问题及解决方案

    调试PRX100-D开发注意事项1.与Vivado软件本身相关的问题Vivado在添加新的工程/HDL文件后会自动崩溃退出这一问题出现在
    发表于 07-31 09:09

    Vivado中使用debug工具步骤与调试技巧

    在ISE中称为ChipScope而Vivado中就称为in system debug。下面就介绍Vivado中如何使用debug工具。 Debug分为3个阶段: 1. 探测信号:在设计中标志想要查看的
    发表于 11-17 14:05 6w次阅读
    <b class='flag-5'>Vivado</b>中使用debug工具步骤与<b class='flag-5'>调试</b>技巧

    使用Vivado 2016.3中IBERT调试的好处及步骤

    了解使用Vivado 2016.3中引入的系统内IBERT进行调试的好处,以及将其添加到设计中所需的步骤。
    的头像 发表于 11-20 06:43 5774次阅读

    如何使用Vivado Logic Analyzer与逻辑调试IP进行交互

    了解Vivado中的Logic Debug功能,如何将逻辑调试IP添加到设计中,以及如何使用Vivado Logic Analyzer与逻辑调试IP进行交互。
    的头像 发表于 11-30 06:22 3394次阅读

    如何使用Vivado在设备启动时进行调试

    了解如何使用Vivado在设备启动时及其周​​围进行调试。 你也会学习 使用Vivado 2014.1中引入的Trigger at Startup功能来配置和预先安装a 调试核心
    的头像 发表于 11-22 07:05 4439次阅读

    如何升级Vivado工程脚本

    Vivado可以导出脚本,保存创建工程的相关命令和配置,并可以在需要的时候使用脚本重建Vivado工程。脚本通常只有KB级别大小,远远小于工程
    发表于 08-02 10:10 1838次阅读

    ISE工程升级Vivado信号调试

    版本迁移的操作想必大家已经做过不少了,其中包括从ISE转换到vivadovivado老版本迁移到新版本。郑智海同学给大家介绍了一下如何把工程从ISE迁移到vivado中。
    的头像 发表于 01-30 09:11 4330次阅读

    Vivado Design Suite用户指南:编程和调试

    电子发烧友网站提供《Vivado Design Suite用户指南:编程和调试.pdf》资料免费下载
    发表于 09-13 14:47 0次下载
    <b class='flag-5'>Vivado</b> Design Suite用户指南:编程和<b class='flag-5'>调试</b>

    Vivado设计套件用户指南:编程和调试

    电子发烧友网站提供《Vivado设计套件用户指南:编程和调试.pdf》资料免费下载
    发表于 09-13 11:37 0次下载
    <b class='flag-5'>Vivado</b>设计套件用户指南:编程和<b class='flag-5'>调试</b>

    Vivado Design Suite 用户指南:编程和调试

    Vivado Design Suite 用户指南:编程和调试》 文档涵盖了以下设计进程: 硬件、IP 和平台开发 : 为硬件平台创建 PL IP 块、创建 PL 内核、功能仿真以及评估 AMD
    的头像 发表于 10-25 16:15 893次阅读
    <b class='flag-5'>Vivado</b> Design Suite 用户指南:编程和<b class='flag-5'>调试</b>