news 2026/4/22 15:31:46

项目开发中常用的Vivado软件调试技巧(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
项目开发中常用的Vivado软件调试技巧(一)

技巧一: 高效利用高速采样时钟采样低频数据

在项目中,利用JTAG采样低频数据时,受限于片上BRAM资源,采样的数据深度不能太深;另外,通常会受限于JTAG仿真器时钟也不能设置太低频率(如图1所示),所以对于低频数据进行调试或者排查偶发故障需要多次抓取故障附近数据时,简单采用如图2所示触发方式,只能在①处触发条件时采样一个重复很多次的"H"数据,不能采集到完整的串口指令,不方便调试问题。

图1:JTAG clock频率设置

图2:默认简单触发条件设置

因此,在利用高频时钟采样低频数据时,可以在图3所示,在①处Nuber of windows采样窗口设置40个,即将2048个采样深度分为40段,每段满足④处触发条件时,都会采样数据,这样就可以删除大量重复数据,得到我们想要观察的完整串口通信指令。

图3:采用多段触发采样

技巧二:选择合适的ILA核端口例化参数方式

在利用ILA核调试Verilog代码时,有时需要观察的信号非常多,调试过程中还要不断修改要观察的信号,如果采用如图4所示方式,需要不断修改ILA核信号位宽,以满足要观察的信号,不便于调试。

图4:ILA核调用方式1

这时,可以利用如图5所示方式,ILA核port设置为1个,观察信号位宽设置为较宽值,方便添加或修改要观察的信号,而无需每次修改ILA核设置。

图5:ILA核调用方式2

注意:在使用图5所示ILA核方式调试时,如果触发逻辑设置为如图6所示,<,<=,>,=>时,软件将产生错误,如图7所示,这种情况下可以使用图4所示调用方式。

图6:ILA核调用方式2触发逻辑选择

图7:ILA核调用方式2触发错误情况

技巧三:Vivado中未分配管脚IO不检查约束设置

在顶层文件FPGA外部接口有时会添加一些调试IO口,这些IO口如果不分配管脚约束,Vivado软件编译检查IO约束时就会报错,此时可以在.xdc文件中添加以下语法,跳过未分配IO语法检查。

set_property SEVERITY {Warning} [get_drc_checks NSTD-1]

set_property SEVERITY {Warning} [get_drc_checks RTSTAT-1]

set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

技巧四:压缩比特流文件,提高Flash下载速度

FPGA编译后的程序往往较大,通过压缩,可以减少比特流文件大小,提到下载速度快,加载速度更快。在约束文件中可以增加以下约束:

set_property BITSTREAM.GENERAL.COMPRESS true [current_design]

set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]

set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]

set_property BITSTREAM.CONFIG.SPI_FALL_EDGE Yes [current_design]

需要注意的是:设置Flash配置速度、位宽、时钟加载沿仅对FPGA有用,ZYNQ SOC不支持。


欢迎关注FPGA技术实战公众号,喜欢就多多转发吧!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 4:38:22

LangFlow构建智能问答机器人全流程演示

LangFlow构建智能问答机器人全流程演示 在大语言模型&#xff08;LLM&#xff09;快速普及的今天&#xff0c;越来越多企业希望将AI能力集成到业务系统中——比如客服机器人、知识助手或自动化报告生成器。但现实是&#xff0c;哪怕只是搭建一个基础的问答系统&#xff0c;开发…

作者头像 李华
网站建设 2026/4/17 12:10:02

基于python旅游景点推荐系统 大数据技术 旅游数据分析+可视化 Django框架 scrapy爬虫 vue前端框架 源码+文档

博主介绍&#xff1a;✌全网粉丝50W&#xff0c;前互联网大厂软件研发、集结硕博英豪成立软件开发工作室&#xff0c;专注于计算机相关专业项目实战6年之久&#xff0c;累计开发项目作品上万套。凭借丰富的经验与专业实力&#xff0c;已帮助成千上万的学生顺利毕业&#xff0c;…

作者头像 李华
网站建设 2026/4/14 20:39:23

Flutter 实现一个容器内部元素可平移、缩放和旋转等功能(七)

Flutter 实现一个容器内部元素可平移、缩放和旋转等功能&#xff08;七&#xff09; Flutter: 3.35.7 前面我们抽取了区域的配置&#xff0c;主要实现了对内置区域的自定义&#xff0c;现在有个问题&#xff0c;如果是我们想自定义某个特定区域实现特定的效果&#xff0c;现在的…

作者头像 李华
网站建设 2026/4/23 11:15:34

从零开始理解I2S协议工作原理:音频设备入门必看

深入理解 I2S 协议&#xff1a;从音频传输原理到实战设计你有没有遇到过这样的情况&#xff1f;明明代码写得没问题&#xff0c;音频芯片也供电正常&#xff0c;可耳机里传出来的却是“咔哒咔哒”的杂音&#xff0c;甚至左右声道还对调了。如果你正在做一块带音频输出的嵌入式板…

作者头像 李华
网站建设 2026/4/20 21:07:13

零基础也能懂的ESP32连接阿里云MQTT讲解

从零开始&#xff0c;用一块ESP32点亮你的“云控灯” 你有没有想过&#xff0c;让家里的小风扇在温度过高时自动启动&#xff1f;或者远程查看阳台花盆的土壤湿度&#xff1f;这些看似复杂的智能场景&#xff0c;其实只需要一块 ESP32 和一个云端平台就能实现。而连接它们之…

作者头像 李华
网站建设 2026/4/14 0:45:22

工业自动化设备PCB布线可制造性设计:DFM实践指南

工业自动化设备PCB布线的可制造性设计&#xff1a;从图纸到量产的实战经验在工业控制领域&#xff0c;一块小小的PCB板子&#xff0c;往往承载着整台设备的“神经中枢”。主控芯片、信号调理电路、电源模块、通信接口……所有这些功能都集成在几平方厘米的空间里。然而&#xf…

作者头像 李华