vivado 逻辑分析
好的,Vivado中的逻辑分析功能主要通过集成逻辑分析器来实现,最常用的是 ILA (Integrated Logic Analyzer) 核。以下是使用Vivado ILA进行逻辑分析的中文步骤和关键点:
核心概念:
- ILA核: 一个可配置的IP核,你需要将其实例化到你的HDL代码(Verilog/VHDL)设计中。
- 探针: 你想观测的内部信号。你需要将这些信号连接到ILA核的输入端口(
probe)。 - 触发条件: 告诉ILA在什么条件下开始捕获数据(例如,某个信号变为高电平、特定的数据值出现、计数器达到某个值等)。
- 波形窗口: 在硬件调试时,Vivado Hardware Manager会打开一个窗口显示捕获的信号波形。
主要步骤:
-
在设计中标记调试信号 (Mark Debug):
- 在综合 (Synthesis) 之前,在源文件或原理图中,选择你希望观察的内部信号(
wire或reg)。 - 右键单击所选信号 -> Mark Debug。或者在综合后的网表视图 (Synthesized Design -> Schematic) 中找到信号,右键 -> Mark Debug。
- 作用: 告诉Vivado工具链,这些信号需要在ILA核中可见。
- 在综合 (Synthesis) 之前,在源文件或原理图中,选择你希望观察的内部信号(
-
设置调试 (Debug) 并运行综合/实现:
- 在Flow Navigator中,打开 Settings。
- 导航到 Debug ->
debugdb设置。确保勾选了 Enable debug nets to be preserved during synthesis and implementation 之类的选项(具体名称可能随版本略有不同)。这一步保证了你标记的调试信号不会被优化掉。 - 运行综合 (Run Synthesis)。综合完成后,Vivado会自动检测到标记为调试的信号。
-
设置 ILA 核 (Set Up Debug):
- 综合完成后,在Flow Navigator中找到
Synthesized Design->Set Up Debug(或类似名称,如 Debug Cores Wizard)。Vivado会根据标记的调试信号自动生成ILA核的配置。 - ILA核配置向导:
- 添加时钟: 为ILA核选择一个采样时钟。这个时钟通常和你观测信号的时钟域一致,必须非常稳定。
- 添加探针:
- 向导会自动列出所有
Mark Debug的信号。你可以在这里添加或移除探针。 - 为每个探针设置:
- 探针宽度: 信号的位宽(通常自动识别)。
- 探针类型:
DATA(数据信号)或TRIGGER(主要用于触发条件)。 - 触发条件初始值: 在未满足触发条件时捕获的数据值(通常不重要)。
- 向导会自动列出所有
- 设置触发条件 (Trigger Setup - 关键!):
- 在 Trigger Setup 选项卡下,定义ILA核开始捕获数据的条件。
- 常用的功能:
- 计数器: 设置触发前/后捕获多少数据。
Window Depth决定了你能捕获的总数据量(单位是采样时钟周期)。Sample On=Trigger(默认)。 - 触发位置: 决定触发点出现在捕获窗口中的位置(开始、中间、结束)。
- 高级触发:
- 在波形窗口定义组合逻辑表达式:例如
probe0 = 8'hFF && probe1 == 1。 - 边缘触发:上升沿、下降沿。
- 比较器:==, !=, >, <, >=, <=。
- 在波形窗口定义组合逻辑表达式:例如
- 计数器: 设置触发前/后捕获多少数据。
- 这里定义的触发条件是初始设置,在线调试时可以修改。
- 存储深度 (Capture Settings): 确认或设置 Window Depth (或Sample Depth),它决定了在触发发生后,ILA能记录多长时间的波形数据(占用FPGA的BRAM资源)。深度越大,占用资源越多,能查看的时序越长。
- 完成配置后保存。
- 综合完成后,在Flow Navigator中找到
-
实现设计与生成比特流:
- 运行实现 (Run Implementation),将设计布局布线到FPGA上,包括ILA核。
- 生成比特流 (Generate Bitstream)。
-
硬件调试 (使用 Hardware Manager):
- 连接FPGA开发板到电脑(确保JTAG/Vivado Cable驱动正常)。
- 在Flow Navigator中打开
Open Hardware Manager。 - 点击
Open Target->Auto Connect或手动选择设备和JTAG链。 - 右键检测到的设备 ->
Program Device,选择刚才生成的.bit文件进行烧录(确保包含debug逻辑)。 - 设备编程完成后,Hardware Manager通常会自动检测到ILA核并打开默认的波形窗口(Debug Probes窗口)。如果没有,在工具栏或Debug Hub中找到ILA实例(如
ila_0)并双击打开。
-
在波形窗口中进行逻辑分析:
- 查看信号: 信号会以波形形式显示。
- 重置触发捕获:
- 设置/修改触发条件(在
Trigger Setup面板):- 使用简单的下拉菜单设置。
- 或写更复杂的触发表达式(如
{probe0[7:0] == 8'h55 && probe1 == 1'b1})。
- 设置触发位置(窗口深度内的位置)。
- 设置数据捕获模式(Window模式最常见)。
- 设置/修改触发条件(在
- 开始捕获:
- 运行触发: 点击类似播放键的按钮(Run Trigger)。ILA会开始监听,等待你定义的触发条件。当条件满足时,它会捕获设定深度的数据并显示在波形窗口。
- 立即触发: 立即捕获当前的数据,不管触发条件是否满足。点击闪电图标按钮⚡。用于查看当前状态。
- 分析波形:
- 缩放: 使用鼠标滚轮或工具栏按钮缩放时间轴。
- 测量: 添加游标来测量信号沿之间的时间间隔(时钟周期数)。
- 总线格式: 右键信号可设置总线显示格式(二进制、十六进制、无符号/有符号十进制等)。
- 查找: 在波形中搜索特定值或模式。
- 保存波形: 可以保存捕获的波形(
.wdb文件)供以后分析或分享。
关键点与技巧:
- 时钟选择: ILA采样时钟的选择极其重要。它必须是稳定的时钟,与你观测的信号同步(或跨时钟域处理已解决同步问题)。错误的时钟会导致波形混乱、无效。
- 触发条件是灵魂: 精心设计触发条件是捕捉到错误瞬间的关键。从简单触发开始(如关键信号上升沿),然后逐步增加复杂性。
- 存储深度 vs. 资源: 深度越大,抓取的时间窗口越长(有助于分析问题原因),但消耗的FPGA Block RAM (BRAM) 资源也越多。在资源允许的情况下设置合适的深度。
- 采样率: ILA的采样率等于你指定的采样时钟频率。它无法超频采样。观测快速变化(窄脉冲)的信号时,确保采样时钟频率足够高(奈奎斯特采样定理)。
- 信号类型: 尽量用
DATA类型,除非某个信号专门用于复杂触发才用TRIGGER(有时可节省布线资源)。 - 调试流程:
Mark Debug->Set Up Debug (配置ILA)->实现->生成比特流->Program Device (包含debug)->Hardware Manager中运行触发/捕获。 - 其他调试核:
VIO (Virtual Input/Output)核可用于实时驱动FPGA内部信号(虚拟拨码开关、按钮)或读取信号值(虚拟LED),常与ILA配合使用。Integrated Logic Analyzer (ILA) (UltraScale/UltraScale+ only)提供更强大的功能。
简单案例分析:
假设你怀疑一个计数器 (count[7:0]) 在到达255 (8'hFF) 后没有正确清零,同时有一个使能信号 en。
Mark Debug:标记count[7:0]和en。Set Up Debug:- 时钟:选计数器使用的时钟
clk。 - 探针:添加
count[7:0](DATA),en(DATA)。 - 触发设置:
- Window Depth: 1024 (足够观测计数器从0到255的过程)。
- 触发位置:设置为窗口中间。
- 高级触发表达式:
count == 255 && en == 1(当计数器为255且使能有效时触发)。
- 时钟:选计数器使用的时钟
- 实现、生成bit流、下载到FPGA。
- 在Hardware Manager:
- 设置表达式:
{count[7:0]} == 8'hFF && en == 1。 - 点击 Run Trigger。
- 设置表达式:
- 观察波形:触发点位于窗口中间。往前看计数器如何从0增至255(查看是否在253/254/255等地方数据异常),往后看计数器在255之后的下一个时钟周期变成了什么值(是0还是别的?),同时观察
en信号的状态。
通过这种方式,你就可以深入观察FPGA内部信号的实时行为,诊断硬件描述语言设计中的错误了。
vivado时序分析相关经验
vivado综合后时序为例主要是有两种原因导致: 1,太多的逻辑级 2,太高的扇出 分析时序违例的具体位置以及原因可以使用一些tcl命令方便快速
集成逻辑分析仪(ILA)的使用方法
两大主流厂商的软件集成逻辑分析仪供使用,Altera的Quartus自带SignalTap、Xilinx的Vivado自带ILA
2023-10-01 17:08:00
在Vivado中使用逻辑分析仪ILA的过程
FPGA综合出来的电路都在芯片内部,基本上是没法用示波器或者逻辑分析仪器去测量信号的,所以xilinx等厂家就发明了内置的逻辑
2023-06-29 16:08:56
Vivado Design Suite用户指南:逻辑仿真
电子发烧友网站提供《Vivado Design Suite用户指南:逻辑仿真.pdf》资料免费下载
资料下载
佚名
2025-01-15 15:25:58
在Artix 7 FPGA上使用Vivado的组合逻辑与顺序逻辑
电子发烧友网站提供《在Artix 7 FPGA上使用Vivado的组合逻辑与顺序逻辑.zip》资料免费下载
资料下载
吴湛
2023-06-15 09:14:49
什么是Vivado?资料下载
电子发烧友网为你提供什么是Vivado?资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
资料下载
h1654155957.9921
2021-04-07 08:51:46
Vivado设计流程指导手册
Vivado 设计分为 Project Mode 和 Non-project Mode 两种模式,一般简单设计中,我们常用的是 Project Mode。在本手册中,我们将以一个简单的实验案例,一步一步的完成 Vivado
资料下载
姚小熊27
2021-03-22 11:39:53
Vivado逻辑分析仪使用教程
及打算进阶提升的职业开发者都可以有系统性学习的机会。系统性的掌握技术开发以及相关要求,对个人就业以及职业发展都有着潜在的帮助,希望对大家有所帮助。本次带来Vivado系列,Vivado
无法在Vivado逻辑分析仪中查看wavefrom
大家好, 我无法在Vivado逻辑分析仪中查看wavefrom,下面你可以找到图像附加的波形是如何准确的...可以帮助我解决这个问题。谢谢Nav
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览