调试

【视频】:使用 Vivado IPI 进行 AXI 接口调试

观看本视频,了解和学习如何使用 Vivado 设计套件中的 IP 集成器(IPI)有效地调试 AXI 接口。本视频同时还回顾了调试步骤以及调试的益处,另外还通过一个实际案例向您演示了如何使用该工具。

Xilinx Vivado Zynq Pldma APB控制线调试

在xilinx vivado zynq pldma PL部分ILA调试中,观测APB总线上的数据是正常的,但PLDMA没有成功,分析代码发现在HP_DMA模块中使用m_apb_pclk与m_apb_presetn为悬空状态。由于Avnet的例程建立在2014年,所以使用vivado版本较早,其使用的AXI Bridge上还存在m_apb_pclk与m_apb_presetn。在pg073文件中查看在AXI APB Bridge(2.0)模块上确实存在m_apb_pclk与m_apb_presetn信号。

但是到了vivado2015.1版本上使用AXI Bridge 3.0版就没有了,并且在综合后通过原理图文件也无法查找到这两个信号。

在2.0版APB Bridge在综合之后的原理图文件查看,APB bridge的m_apb_pclk信号与s_axi_aclk信号为直连状态;m_apb_presetn与s_axi_aresetn为直连状态。

视频:使用 In-system IBERT 进行调试

观看本视频,了解和掌握使用 In-system IBERT 进行调试的好处,以及将其添加到设计当中所需的步骤。In-system IBERT 在 Vivado 2016.3 版本中引入。

FPGA开发要懂得使用硬件分析仪调试——ILA(1)

作者:浅搁 来源:FPGA2嵌入式微信公众号(微信号:fpga234)

0. ILA概述
在FPGA开发中,当我们写完代码,进行仿真,确定设计没有问题后,下载到硬件上一般都能按照我们的设计意愿执行相应功能。但这也并非绝对的,有时候你会遇到一些突然情况,比如时序问题或者仿真时我没有考虑到某种情况,但实际中它确实存在的,这就会造成功能上的错误了。也有时候你的设计似乎你没法进行仿真或者做起来很费劲,比如设计一个SDRAM或者DDR控制器,让你相应写一个SDRAM或者DDR之类的模型进行仿真,这时候是不是就很为难了哈哈。

所以在很多时候,一个FPGA工程师应该学会使用在线调试工具进行分析。我没法写一个DDR模型,我还不能采集它的时序进行修改,直到满足要求吗?这里给大家介绍Xilinx公司的开发软件Vivado上的在线调试工具——ILA。Vivado中对ILA的使用非常灵活,操作也很方便,这里先介绍做常用的调试方式,即使用ILA核。

1. ILA核如何调用

视频:使用 Vivado IP Integrator 进行 AXI 接口调试

了解如何使用 Vivado Design Suite IP Integrator 高效地调试 AXI 接口。本视频总结了使用该工具的好处,需要的调试步骤,并演示了不如何使用该工具。

在Vivado调试模式下,如何保存波形配置文件?

实际案例:
在Vivado的debug界面下,已经对所有要观测的波形重新分了组,设置了radix,或者重命名,设置了显示颜色等等。那么问题来啦:

1. 如果我修改了一点代码,那么重新编译后,有没有什么办法把之前配置好的波形显示属性保存下来,重复利用?

上述案例是实际调试中经常会碰到的问题,回答是可以的。

方法如下:
打开file->Save Waveform Configuration As...菜单,保存修改好的波形配置文件:

在Vivado调试模式下,如何保存波形配置文件?

文章来源:FPGA那点事儿微信公众号

编译、调试与优化

作者:
Jayashree Rangarajan 赛灵思公司交互设计工具部高级工程总监 jayr@xilinx.com
Fernando Martinez Vallina 赛灵思公司 SDAccel 产品部软件开发经理 vallina@xilinx.com
Vinay Singh 赛灵思公司 SDAccel 产品部高级产品营销经理 singhj@xilinx.com

赛灵思的 SDAccel 开发环境为 FPGA 提供软件应用设计流程。

本视频是SDSoC开发环境详细介绍的第二部分 - 优化与调试。视频首先回顾了在实现过程中存在的挑战,以及SDSoC将如何帮助解决这些挑战,完整实现一个设计,并进行修改以对一些需要加速的函数进行深度优化。最后视频还将演示SDSoC是如何对设计实现进行“交互式调试”的。

现今的复杂 FPGA 设计在调试方面很有挑战性。如果在硬件中调试,您需要对芯片内部的情况进行查看和控制。在本期的 Chalk Talk 教学中,Amelia Dalton 与 Xilinx 的 Ron Plyler 对话,探讨如何在 Xilinx 的Vivado 设计套件中做硬件调试。

Microblaze嵌入式开发——又见bug(已经解决)

得上帝垂怜,使我遇到了各种各样奇怪的现象。

转入正题,有这样一个很简单的函数,C代码和汇编指令如下:

static u16 i2u16(u16 *src)
{ u8 *low = ((u8 *)src)+1;
9000ee10: e0650001 lbui r3, r5, 1
9000ee14: e0850000 lbui r4, r5, 0
9000ee18: 64630408 bslli r3, r3, 8
9000ee1c: 10632000 addk r3, r3, r4
u8 *high = (u8 *)src;
return (((u16)(*low))<<8) + (u16)(*high);
}
9000ee20: b0000000 imm 0
9000ee24: a463ffff andi r3, r3, -19000ee28: b60f0008 rtsd r15, 8
9000ee2c: 80000000 or r0, r0, r0
函数的功能就是将读到的16bit数据的高8位和低8位进行互换

同步内容