xilinx FPGA在线调试方法总结(vivado+ila+vio)

news2025/7/7 17:25:32

本文主要介绍xilinx FPGA开发过程中常用的调试方法,包括ILA、VIO和TCL命令等等,详细介绍了如何使用。

一、FPGA调试基本原则

根据实际的输出结果表现,来推测可能的原因,再在模块中加ILA信号,设置抓信号条件,逐步定位问题模块和原因,最终解决bug。

二、FPGA常用调试方法

1、调用IP

(1)ILA

第1步:在vivado中,打开IP核目录(IP Catalog),在搜索框中输入ILA(不区分大小写),按图示方式进行选择即可。

第2步:设置ILA参数

探针数根据需要采集的信号数设定,或者直接设定一个信号;

采样数据深度可根据实际需要和资源消耗情况进行设置,一般选择默认的1024即可;

第3步:测量信号的位宽进行设置

第4步:在IP source区,打开ILA,添加例化模板, 在代码中插入例化,把VIO的输出口连接到模块的输入。

ila_0 u_ila( .clk(clk), .probe0(probe0), .probe1(probe1), .probe2(probe2));

(2)VIO IP

VIO的输出可以控制测试模块的输入,VIO的输入可以显示模块的输出值。

第1步: 例化一个VIO核,根据需要设定输入输出的数目

第2步:设置vio输出端口的位宽与初始值:

第3步:在代码中插入例化,把VIO的输出口连接到模块的输入。

vio_0 u_vio( .clk(clk), .probe_out0(probe_out0));

2、添加调试信号

(1)在Verilog HDL文件中直接添加,特点是防止信号被优化,最大可能保留信号原本的名称。

在input/output前或在声明变量前添加(* mark_debug = “true” *)

(* mark_debug = "true" *) wire done;(* mark_debug = "true" *) reg cnt;

(2)标记Debug mark方法,可以在原理图(block design)或在综合后的网表(Netlist)中添加。

A、在原理图(block design)右击添加“Mark Debug”,工程综合后,在SYNTHESIS > Open Synthesized Design,在Netlist窗口中选择需要调试的网络节点,进行调试。

右键单击任意网络节点,点击Mark Debug,该网络节点会出现小甲虫标记。

对于已经选中Mark Debug的网络节点,也可以取消调试。右键单击该网络节点,选择Unmark Debug即可

B、在综合后,Flow Navigator > SYNTHESIS > Open Synthesized Design > Schematic下打开的原理图(Schematic)中通过右键单击选中线路,添加Mark Debug信号,和Unmark Debug信号

点击 Windows > Debug,即可出现Debug窗口,在这里可以观察到已经mark debug的信号。

(3)使用Tcl命令,直接修改*.xdc文件,和添加ILA( Integrated Logic Analyzer) IP核完成.

set_property MARK_DEBUG true [get_nets [list {control_reg[0]} {control_reg[1]} \   {control_reg[2]} {control_reg[3]} {control_reg[4]} {control_reg[5]} \   {control_reg[6]} {control_reg[7]} {control_reg[8]} {control_reg[9]} \   {control_reg[10]} {control_reg[11]} {control_reg[12]} {control_reg[13]} \   {control_reg[14]} {control_reg[15]} {control_reg[16]} {control_reg[17]} \   {control_reg[18]} {control_reg[19]} {control_reg[20]} {control_reg[21]} \   {control_reg[22]} {control_reg[23]} {control_reg[24]} {control_reg[25]} \   {control_reg[26]} {control_reg[27]} {control_reg[28]} {control_reg[29]} \   {control_reg[30]} {control_reg[31]}]]create_debug_core u_ila_0 ilaset_property port_width 1 [get_debug_ports u_ila_0/CLK]connect_debug_port u_ila_0/CLK [get_nets [list wbClk ]]set_property port_width 32 [get_debug_ports u_ila_0/PROBE0]connect_debug_port u_ila_0/PROBE0 [get_nets [list {control_reg[0]}   {control_reg[1]} {control_reg[2]} {control_reg[3]} {control_reg[4]} \   {control_reg[5]} {control_reg[6]} {control_reg[7]} {control_reg[8]} \   {control_reg[9]} {control_reg[10]} {control_reg[11]} {control_reg[12]} \   {control_reg[13]} {control_reg[14]} {control_reg[15]} {control_reg[16]} \   {control_reg[17]} {control_reg[18]} {control_reg[19]} {control_reg[20]} \   {control_reg[21]} {control_reg[22]} {control_reg[23]} {control_reg[24]} \   {control_reg[25]} {control_reg[26]} {control_reg[27]} {control_reg[28]} \   {control_reg[29]} {control_reg[30]} {control_reg[31]} ]]


以上就是本次分享的xilinx FPGA调试方法总结,希望大家阅读完后,有所收获。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/362807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 比较器Comparable与Comparator的List集合排序使用

一、Collections类 Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。 用于集合排序的sort方法,此方法主要是通过Comparable或Comparator来实现排序。 (1) 根据其…

如何30天零基础入门网络安全?自学网络安全有哪些缺点?

网络安全的前景如何,盾叔已经说过很多遍了,今天专题是替一些想入门网络安全,但还迷茫不知所措的同学解一解惑。想30天零基础入门网络安全,这些你一定要搞清楚。 一、学习网络安全容易造成的误区 1、把编程当作目的,忽…

AI生成图像竟如此真实了?Stable Diffusion Model本地部署教程

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

什么运动耳机好用性价比高、值得入手的五款运动耳机

在各类耳机当中,运动耳机可以说是使用场景针对性比较强的一类。毕竟运动场景对于耳机某些方面性能要求比较高,比如防水能力、佩戴稳定性等等,一般的非运动耳机是很难应用在运动场景中的。这时候一款好的运动耳机就很重要了,那么我…

I/O多路复用模型实现——epoll

epoll IO多路复用模型实现机制I/O多路复用epollepoll_create(int size)epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout)epoll eventepoll流程I/O多路复用 I/O 多路复用的本质…

悲观锁实现一人一单+jmeter并发测试

项目工程代码来自&#xff1a;https://mp.weixin.qq.com/s/nDhkmDHU_kqY-geDZrIOtw 核心代码 Service public class GoodsOrderServiceImpl extends ServiceImpl<GoodsOrderMapper, GoodsOrder> implements GoodsOrderService {Autowiredprivate IGoodsService goodsSe…

怎样从零基础学黑客

可以说想学黑客技术&#xff0c;要求你首先是一个“T”字型人才&#xff0c;也就是说电脑的所有领域你都能做的来&#xff0c;而且有一项是精通的。因此作为一个零基础的黑客爱好者来说&#xff0c;没有良好的基础是绝对不行的&#xff0c;下面我就针对想真正学习黑客的零基础朋…

CentOS yum报错问题汇总(持续更新)

一、为 repo AppStream 下载元数据失败1.错误现象为 repo ‘AppStream’ 下载元数据失败错误&#xff1a;为 repo ‘AppStream’ 下载元数据失败2.错误原因1.网络连接不上如果出现该错误&#xff0c;请先确保服务器可以正常连接互联网。可以ping一下百度的域名&#xff0c;能pi…

python小基础-更多请自学,或者某某教程-2023-2-21 小扒菜的自学之路【1】

python基础 基础学习 自己跟着菜鸟教程看的一些基础,会java或者js的话,1个半小时就可以over 好久没更新博客了,现在慢慢来发吧,基础内容不太多,自己理解会很快的(下面是一段个人的小经历,大家也可以看看,嘻嘻) 假期看了灵魂摆渡几部电视剧,无聊中收到了一个python爬虫公开课穷,…

华为OD机试 - 考古学家(C++) | 附带编码思路 【2023】

刷算法题之前必看 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12199283.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题…

外贸人如何利用领英LinkedIn开拓海外市场?这七大妙招你要知道

在社交媒体大行其道的时代下&#xff0c;作为职场人士专用的LinkedIn&#xff08;领英&#xff09;在全球则拥有5亿高端会员&#xff0c;覆盖全球200多个国家&#xff0c;也是唯一一个在中国不受限制的国外社交平台&#xff0c;与Facebook、谷歌、苹果并称为“硅谷四巨头”。 …

二倍均值随机算法之抢拼手气红包场景应用

拼手气类的游戏&#xff0c;更能激发用户购物和社交的趣味性&#xff0c;以及游戏竞争心理&#xff0c;拼手气类的活动甚至可以影响人们消费心理。 拼手气红包就是最简单的例子&#xff0c;哪怕你手气红包只有0.01元&#xff0c;在众多竞争者中脱颖而出&#xff0c;抢到的那一刻…

Elasticsearch7.8.0版本进阶——多文档操作流程

目录一、多文档操作1.1、多文档操作的概述1.2、多文档操作与单文档模式区别二、用单个 mget 请求取回多个文档2.1、用单个 mget 请求取回多个文档的图解2.2、用单个 mget 请求取回多个文档的步骤三、bulk API 的模式请求取回多个文档3.1、bulk API 的模式请求取回多个文档的图解…

优炫数据库百城巡展,成都首站圆满举行

2月17日&#xff0c;由四川省大数据发展研究会、北京优炫软件股份有限公司联合举办的“首届四川省推进信息技术应用创新产业服务研讨会暨优炫数据库百城巡展成都首站隆重举行。此次活动是优炫数据库百城巡展的起点站&#xff0c;更是国产数据库市场美好乐章的一次强力鸣奏。 来…

HarmonyOS Connect认证测试

在HarmonyOS Connect生态产品的认证测试过程中&#xff0c;你是否存在这些疑问&#xff1a;认证流程具体包括哪些操作环节&#xff1f;如何根据实际场景选择合适的认证方式&#xff1f;如何选择认证测试标准的版本…… 本期FAQ为大家带来HarmonyOS Connect认证测试的常见问题…

ChatGPT类工具如何实现「降维打击」| 聊天机器人闭门研讨观点总结

导读随着ChatGPT出现&#xff0c;语言大模型的进步与对话交互方式相结合&#xff0c;正在搅动科研、产业&#xff0c;以及普通人的想象力。我们对智能的探索是正在步入决胜之局&#xff0c;还是仍在中场酣战&#xff1b;是需要精巧完备的一致系统&#xff0c;还是可以遵循实效至…

什么是网站ICP备案,什么样的网站需要办理ICP?

进入互联网时代&#xff0c;企业业务的展开或多或少都要接触网络&#xff0c;甚至也会在线上建立公司的业务平台。很多企业会选择建立一个网站来直接展现公司面貌和业务。在我们完成了搭建好网站的全部内容后&#xff0c;最重要的一步&#xff1a;在网站建成进入到上线展现时&a…

【无标题】10.货币系统

题目描述: 在网友的国度中共有 n 种不同面额的货币&#xff0c;第 i 种货币的面额为 a[i]&#xff0c;你可以 假设每一种货币都有无穷多张。为了方便&#xff0c;我们把货币种数为 n、 面额数组为 a[1..n] 的货币系统记作 (n,a)。 在一个完善的货币系统中&#xff0c;每一个非…

TCP/IP网络编程——关于 I/O 流分离的其他内容

完整版文章请参考&#xff1a; TCP/IP网络编程完整版文章 文章目录第 16 章 关于 I/O 流分离的其他内容16.1 分离 I/O 流16.1.1 2次 I/O 流分离16.1.2 分离「流」的好处16.1.3 「流」分离带来的 EOF 问题16.2 文件描述符的的复制和半关闭16.2.1 终止「流」时无法半关闭原因16.2…

Python 之 Pandas 时间函数 time 、datetime 模块和时间处理基础

文章目录一、time 模块1、时间格式转换图2. struct_time 元组元素结构3. format time 结构化表示二、datetime 模块1. date类2. 方法和属性3. datetime 类三、timedelta 类的时间加减四、时间处理基础Python 中提供了对时间日期的多种多样的处理方式&#xff0c;主要是在 time …