【vivado】debug相关时钟及其约束关系

一、前言

在xilinx fpga的degug过程中,经常出现由于时钟不对而导致的观测波形失败,要想能够解决这些问题需要了解其debug的组成环境以及之间的数据流。本文主要介绍debug过程中需要的时钟及各时钟之间的关系。

二、debug相关时钟

Vivado 硬件管理器使用 JTAG 接口与 Vivado Debug 内核进行通信,Debug Hub在 FPGA 器件的 JTAG 边界扫描 (BSCAN) 接口和 Vivado Debug 内核之间提供接口。因此,要想完成完整的数据流需要了解三个时钟,即JTAG时钟、Debug Hub时钟和Debug Core时钟。

2.1 JTAG时钟

该时钟同步JTAG边界扫描(BSCAN)接口的内部状态机操作。在连接到目标器件时,通常会在 Vivado 硬件管理器中选择 JTAG 时钟频率。

可以使用 Open New Hardware Target 向导(使用时需要先关闭hardware mannger)或以下 Tcl 命令来修改 JTAG 频率:

set_property PARAM.FREQUENCY 250000 [get_hw_targets*/xilinx_tcf/Digilent/210203327962A]

使用要求:如果设计包含调试内核,需要确保JTAG时钟比debug hub时钟慢2.5倍。

2.2 Debug Hub时钟

Vivado Debug Hub 内核,在 FPGA 器件的 JTAG 边界扫描 (BSCAN) 接口和 Vivado Debug 内核之间提供接口。如果 Vivado IDE 在设计实现(implementation)步骤中检测到调试内核,则会自动插入 Debug Hub 内核。Vivado IDE 在设计实现步骤中自动选择驱动 Debug Hub 内核的时钟。

Xilinx 推荐 debug hub时钟频率在 100MHz 左右或更低,因为 JTAG 时钟速度不需要特别高的频率。

如果需要改变debug hub时钟频率可以在设计编译后实现前通过TCL指令更改:

connect_debug_port dbg_hub/clk [get_nets <clock_net_name>]

也可以在设计编译后实现前通过TCL命令将debug hub的时钟缩减到100M(对于具有非常高速度时钟的设计,建议这样做):

set_property C_CLK_INPUT_FREQ_HZ 200000000 [get_debug_cores dbg_hub]

set_property C_ENABLE_CLK_DIVIDER true [get_debug_cores dbg_hub]

这两条命令允许在debug hub内核中包含基于MMCM的时钟分频器,以实现100 MHz的时钟频率。

2.3 Debug Core时钟

Vivado IP 目录中提供的所有调试内核都需要一个时钟,以确保与被监控的输入信号或由调试内核驱动的任何输出信号同步。在内核发现和调试测量阶段,需要时钟是自由运行和稳定的。此外,时钟还应与被监控或驱动的信号同步。否则可能会导致周期性的数据错误。

2.4 调试流程及时钟要求

Debug Hub IP 在主机(通过支持串行接口的 BSCAN Primitive)和芯片上的调试内核(通过支持并行接口的 XSDB 接口)之间架桥。BSCAN  Primitive 时钟将数据串行移入和移出芯片到Debug Hub  IP。Debug Hub IP 收集数据,并使用Debug Hub时钟将其发送到并行接口上的所有调试内核,反之亦然。如果任何调试内核时钟不能自由运行或不稳定,则最终会得到损坏的数据,从而导致vivado 输出"Debug Cores not detected"消息。为了避免任何数据损坏,在调试内核检测过程中,必须确保JTAG时钟和debug hub时钟稳定且自由运行。

  1. Debug Hub时钟必须是自由运行且稳定的。Xilinx 推荐时钟由适当约束且满足时序的时钟驱动器驱动。
  2. 如果时钟由MMCM/PLL驱动,则在进行任何调试内核测量之前,需要确保MMCM/PLL锁定信号为高电平。如果时钟连接到Debug Hub或任何调试内核,并且 MMCM/PLL LOCKED 信号在调试操作中间转换为 0,则时钟可能会出现明显的抖动,从而可能会导致调试逻辑出现不可预测行为。
  3. 需要让所有相关的时钟自由运行和稳定,才可以正常进行调试,获取数据。

整个调试周期内各个时钟的要求如下表:

注:我自己在接手一个别人JESD204B建链不稳定的工程时,就发现 Vivado 时常会报ILA 时钟相关的错误,其原因就是该工程将JESD204B的恢复时钟作为了ILA核的时钟,而建链不稳定则恢复时钟也不稳,因此不满足上表中最后一行最后一列的 debug core clock应是稳定的要求,因此会导致vivado报错或者采不到波形。

三、相关报错

如果JTAG时钟处于非活动状态或不可用,将无法连接到硬件目标(hardware target)。

如果Debug Hub时钟处于非活动状态或不可用,Vivado硬件管理器会发出以下错误消息:

INFO: [Labtools 27-1434] Device xxx (JTAG device index = 0) is programmed 
with a design that has no supported debug core(s) in it.WARNING: [Labtools 27-3123] The debug hub core was not detected at User Scan Chain 1 
or 3. 
Resolution:1. Make sure the clock connected to the debug hub (dbg_hub) core is a free 
running clock and is active OR2. Manually launch hw_server with -e "set xsdb-user-bscan 
<C_USER_SCAN_CHAIN scan_chain_number>" to detect the debug hub at User Scan Chain of 2 or 4. To determine the user scan chain setting, open the implemented design and use: 
get_property C_USER_SCAN_CHAIN [get_debug_cores dbg_hub].

如果任何调试核心时钟处于非活动状态或不可用,Vivado 硬件管理器会发出以下错误消息:

INFO: [Labtools 27-2302] Device xxx (JTAG device index = 1) is programmed 
with a design that has 1 ILA core(s).CRITICAL WARNING: [Labtools 27-1433] Device xxx (JTAG device index = 1) is 
programmed with a design that has an unrecognizable debug core (slave type = 17) at 
user chain = 1, index = 0.Resolution: 1) Ensure that the clock signal connected to the debug core and/or debug hub is clean and 
free-running.2) Ensure that the clock connected to the debug core and/or debug hub meets all timing constraints.3) Ensure that the clock connected to debug core and/or debug hub is faster than the JTAG clock frequency.

 注:在实际过程中还会有其他debug相关报错,不过大概率都是时钟的问题,从报错提示和上面时钟的要求入手解决即可。

四、参考资料

ug908:Vivado Design Suite User Guide Programming and Debugging

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

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

相关文章

【CCF-CSP】202403-3 化学方程式配平

输入格式&#xff1a; 从标准输入读入数据。 输入的第一行包含一个正整数 n&#xff0c;表示需要判断的化学方程式的个数。 接下来的 n 行&#xff0c;每行描述了一个需要被配平的化学方程式。包含空格分隔的一个正整数和全部涉及物质的化学式。其中&#xff0c;正整数 m 表…

KMeans,KNN,Mean-shift算法的学习

1.KMeans算法是什么&#xff1f; 在没有标准标签的情况下&#xff0c;以空间的k个节点为中心进行聚类&#xff0c;对最靠近他们的对象进行归类。 2.KMeans公式&#xff1a; 2. 1.关键分为三个部分&#xff1a; 1.一开始会定义n个中心点&#xff0c;然后计算各数据点与中心点…

企业活动想联系媒体报道宣传如何联系媒体?

在企业的宣传推广工作中,我曾经历过一段费事费力、效率极低的时期。那时,每当公司有重要活动或新项目需要媒体报道时,我便要一家家地联系媒体,发送邮件、打电话,甚至亲自登门拜访,只为求得一篇报道。然而,这样的过程充满了不确定性和挑战,时常让我感到焦虑和压力山大。 记得有一…

在CentOS 7服务器及Windows 10客户端间建立并配置NFS服务

在CentOS 7服务器及Windows 10客户端间建立并配置NFS服务 引言 网络文件系统(Network File System)&#xff0c;简称NFS&#xff0c;是一种分布式文件系统协议。它允许网络上的客户端机器像访问本地磁盘文件一样&#xff0c;通过网络访问服务器上的文件。在某些特定的业务场景中…

鸿蒙内核源码分析(文件句柄篇) | 你为什么叫句柄

句柄 | handle int open(const char* pathname,int flags); ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, const void *buf, size_t count); int close(int fd);只要写过应用程序代码操作过文件不会陌生这几个函数,文件操作的几个关键步骤嘛,跟把大…

202466读书笔记|《一天一首古诗词》——借问梅花何处落,风吹一夜满关山

202466读书笔记|《一天一首古诗词》——借问梅花何处落&#xff0c;风吹一夜满关山 上册下册 《一天一首古诗词》作者李锡琴&#xff0c;蛮早前加入书架的已购买书籍&#xff0c;这次刚好有点时间&#xff0c;利用起来读完。 赏析没有细看&#xff0c;只读了诗词部分&#xff0…

上海AI Lab开源首个可替代GPT-4V的多模态大模型

与开源和闭源模型相比&#xff0c;InternVL 1.5 在 OCR、多模态、数学和多轮对话等 18 个基准测试中的 8 个中取得了最先进的结果。 上海AI Lab 推出的 InternVL 1.5 是一款开源的多模态大语言模型 (MLLM)&#xff0c;旨在弥合开源模型和专有商业模型在多模态理解方面的能力差距…

药物代谢动力学学习笔记

一、基本概念 二、经典房室模型 三、非线性药物代谢动力学 四、非房室模型 五、药代动力学与药效动力学 六、生物等效性评价 七、生物样品分析方法 基本概念 生物样品&#xff1a;生物机体的全血、血浆、血清、粪便、尿液或其他组织的样品 特异性&#xff0c;specificity&…

ntfs文件系统的优势 NTFS文件系统的特性有哪些 ntfs和fat32有什么区别 苹果电脑怎么管理硬盘

对于数码科技宅在新购得磁盘之后&#xff0c;出于某种原因会在新的磁盘安装操作系统。在安装操作系统时&#xff0c;首先要对磁盘进行分区和格式化&#xff0c;而在此过程中&#xff0c;操作者们需要选择文件系统。文件系统也决定了之后操作的流程程度&#xff0c;一般文件系统…

鸿蒙内核源码分析(VFS篇) | 文件系统和谐共处的基础

基本概念 | 官方定义 VFS&#xff08;Virtual File System&#xff09;是文件系统的虚拟层&#xff0c;它不是一个实际的文件系统&#xff0c;而是一个异构文件系统之上的软件粘合层&#xff0c;为用户提供统一的类Unix文件操作接口。由于不同类型的文件系统接口不统一&#x…

Spark Streaming笔记总结(保姆级)

万字长文警告&#xff01;&#xff01;&#xff01; 目录 一、离线计算与流式计算 1.1 离线计算 1.1.1 离线计算的特点 1.1.2 离线计算的应用场景 1.1.3 离线计算代表技术 1.2 流式计算 1.2.1 流式计算的特点 1.2.2 流式计算的应用场景 1.2.3 流式计算的代表技术 二…

Photoshop中选区工具的应用

Photoshop中选区工具的应用 前言Photoshop中选区工具的基本操作创建选区的工具及方法选择、取消、隐藏选区选区的增加、减少选区的应用变换扩大选取与选取相似 Photoshop中采用快速选择工具来创建选区Photoshop中采用色彩范围命令来创建选区Photoshop中采用快速蒙版来创建选区P…

【算法基础实验】排序-最小优先队列MinPQ

优先队列 理论知识 MinPQ&#xff08;最小优先队列&#xff09;是一种常见的数据结构&#xff0c;用于有效管理一组元素&#xff0c;其中最小元素可以快速被检索和删除。这种数据结构广泛应用于各种算法中&#xff0c;包括图算法&#xff08;如 Dijkstra 的最短路径算法和 Pr…

【雅思写作】刘洪波——《最简化雅思写作2.0》笔记——【1. 概述篇】第一章:一些预备知识、第二章:谁对中国考生的写作低分负责

文章目录 第一章 一些预备知识考试类型大作文议论文&#xff08;Argumentation 80%&#xff09;报告&#xff08;Report 20%&#xff09;评分标准写作流程其他格式缩写数字标点符号英式和美式拼写I, My, We, You的使用范文背诵反模板时代机经与预测 第二章 谁对中国考生的写作低…

车载电子电器架构 —— 应用软件开发(中)

车载电子电器架构 —— 应用软件开发(中) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

二、SPI协议

文章目录 总述1.SPI接口2. SPI工作模式3. SPI通信时序4. SPI协议 对比 UART协议&#xff08;上一篇文章刚介绍过uart协议&#xff0c;这里来对比一下&#xff09; 总述 SPI&#xff08;Serial Peripheral Interface&#xff09;是一种高速的、全双工、同步的串行通信总线&…

详解分布式锁

知识点&#xff1a; 单体锁存在的问题&#xff1a; 单体锁&#xff0c;即单体应用中的锁&#xff0c;通过加单体锁&#xff08;synchronized或RentranLock&#xff09;可以保证单个实例并发安全 单体锁是JVM层面的锁&#xff0c;只能保证单个实例上的并发访问安全 如果将单…

基于springboot实现疾病防控综合系统项目【项目源码+论文说明】

基于springboot实现疾病防控综合系统演示 摘要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以&…

浅谈云计算资源和服务

目录 前言 正文 专有名词及其首字母缩写 轻量级应用服务器 云服务器ECS 专有网络VPC 其他类服务 尾声 &#x1f52d; Hi,I’m Pleasure1234&#x1f331; I’m currently learning Vue.js,SpringBoot,Computer Security and so on.&#x1f46f; I’m studying in University o…

如何在您的WordPress网站上安装和设置W3 Total Cache

本周有一个客户&#xff0c;购买Hostease的虚拟主机&#xff0c;询问我们的在线客服&#xff0c;如何在您的WordPress网站上安装和设置W3 Total Cache&#xff1f;我们为用户提供相关教程&#xff0c;用户很快解决了遇到的问题。在此&#xff0c;我们分享这个操作教程&#xff…