强大的JTAG边界扫描(5):FPGA边界扫描应用

文章目录

      • 1. 获取芯片的BSDL文件
      • 2. 硬件连接
      • 3. 边界扫描测试
      • 4. 总结

上一篇文章,介绍了基于STM32F103的JTAG边界扫描应用,演示了TopJTAG Probe软件的应用,以及边界扫描的基本功能。本文介绍基于Xilinx FPGA的边界扫描应用,两者几乎是一样。

1. 获取芯片的BSDL文件

FPGA的BSDL文件获取方式,可以参考之前的文章:BSDL文件获取。

以Xilinx Kintex-7系列FPGA XC7K325T为例,可以在BSDL Library网站(www.bsdl.info )获取,或者在ISE、Vivado的安装目录获取,

D:\Program\Xilinx\14.7\ISE_DS\ISE\kintex7\data
D:\Program\Xilinx\Vivado\Vivado\2018.3\ids_lite\ISE\kintex7\data

2. 硬件连接

首先需要准备好以下硬件:

  • JTAG调试器,如JLink V9标准版
  • 一块FPGA板子,如Xilinx XC7K325T

Xilinx的JTAG接口和Jlink的JTAG接口线序不一致,需要使用单独的杜邦线分别连接TCK、TMS、TDI、TDO和VREF、GND信号。

3. 边界扫描测试

打开TopJTAG新建工程,选择JTAG设备为JLink

如果连接正常,会显示当前连接芯片的IDCODE

指定BSDL文件路径,并进行IDCODE校验。

初始状态为stop状态,

初始默认为Sample状态,点击RUN按钮,就可以看到所有管脚的实时状态,黑色的是电源管脚,黑色的是高电平,蓝色的是低电平。闪烁的说明当前为高低电平翻转状态。

在左侧Pins窗口或右侧芯片视图,选择一个芯片管脚,右键,可以选择添加到Watch窗口或Waveform窗口

Watch窗口可以看到管脚实时状态,并且可以统计电平翻转的次数,Waveform窗口可以显示实时的波形。

Waveform支持放大、缩小、暂停等基本操作。

Pins窗口,选择一个管脚右键之后,可以进行命名,输出高、低电平或高阻状态。

支持多选之后,批量控制电平状态

支持多选之后,批量添加到Waveform窗口

4. 总结

和单片机不同,大多数FPGA芯片都是BGA封装的,管脚个数从200至1000不等,这也就意味着需要多层PCB来进行硬件设计,密集的引脚和PCB的内层走线,会导致故障的排查越来越困难,通过边界扫描,可以方便、快捷的判断出故障点,在产品研发、生产、测试阶段可以大大提高效率。

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

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

相关文章

华为云云耀云服务器 L 实例评测|配置教程 + 用 Python 简单绘图

文章目录 Part.I IntroductionChap.I 云耀云服务器 L 实例简介Chap.II 参与活动步骤 Part.II 配置Chap.I 初步配置Chap.II 配置安全组 Part.III 简单使用Chap.I VScode 远程连接华为云Chap.II 简单绘图 Reference Part.I Introduction 本篇博文是为了参与华为“【有奖征文】华…

Java手写希尔排序和算法案例拓展

Java手写希尔排序和算法案例拓展 1. 希尔排序的思维导图和实现思路原理 #mermaid-svg-d8kw3WO2lcmScRAo {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-d8kw3WO2lcmScRAo .error-icon{fill:#552222;}#mermaid-svg-…

力扣207、课程表 【图】

题目 课程与课程之间的先决条件组成有向图,课程是图中的顶点,课程之间的先决条件是图中的有向边。对于数组 prerequisites 中的元素 [a,b],表示在学习课程 a 前必须先完成课程 b,对应从 b 指向 a 的有向边,b 是 a 的前…

Makefile基础

迷途小书童 读完需要 4分钟 速读仅需 2 分钟 1 引言 下面这个 C 语言的代码非常简单 #include <stdio.h>int main() {printf("Hello World!.\n");return 0; } 在 Linux 下面&#xff0c;我们使用下面的命令编译就可以 gcc hello.c -o hello 但是随着项目的变大…

【第200篇原创文章】解决低于1%概率出现的芯片VPSS模块跑飞的问题

在发布SDK内测的时候&#xff0c;我们发现在切换视频分辨率的时候有低概率出现VPSS模块跑飞的情况&#xff0c;概率低于1%&#xff0c;试个两三百次&#xff0c;能出1~2次。切换视频分辨率这个功能在安防产品上也确实存在需求&#xff0c;网络带宽不大好的地方分辨率可以适当下…

CKA真题分析-2023年度

补充信息 #补全 # apt install bash-completion source <(kubectl completion bash)# kubectl config get-contexts # cat ~/.kube/config |grep current# kubectl config current-context kubectl config use-context复制粘贴 ctrlshiftc ctrlshiftv # edit编辑时只能使…

dns电脑服务器发生故障怎么修复

DNS电脑服务器发生故障可能会导致网络连接问题、网页无法访问、或者电子邮件无法发送等情况。修复DNS电脑服务器故障可以采取多种方法&#xff0c;例如检查网络连接、更换DNS服务器等措施。当DNS电脑服务器发生故障时&#xff0c;可以采取以下修复措施&#xff1a; 尝试刷新DNS…

linux动态扩容系统盘(非lvm磁盘)

查看磁盘状态 执行df -Th查看磁盘情况 [rootiotdbtest1 ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 7.7G 0 7.7G 0% /dev tmpfs tmpfs 7.7G 0 7.7G 0% /dev/shm tmpfs tmpfs …

uni-app监听页面滚动

在uni-app中可以通过监听页面滚动事件来实现滚动效果或响应滚动事件 在需要监听滚动的页面或组件中&#xff0c;添加一个scroll元素&#xff0c;用于容纳内容并实现滚动效果。 <template><view class"container"><scroll-view scroll-y scroll"…

目标检测YOLO实战应用案例100讲-基于YOLOv3多模块融合的遥感目标检测(下)

目录 基于Transformer的轻量级网络模型的设计与实现 4.1 引言 4.2 轻量级特征提取网络

从collections库的Counter类看items()方法和enumerate()方法

下面的代码是针对文件的词频统计&#xff0c;使用了collections库及其Counter类 import collections def count_word_frequency(text): words text.lower().split() word_counts collections.Counter(words) return word_counts def count_fileword_frequency(fi…

Windows开机密码破解

Windows11以及Windows10(21H2)以上版本 先开机&#xff0c;不进行任何操作&#xff0c;静静的等待登录界面 按住Shift重启 进入“选择一个选项”界面&#xff0c;点击疑难解答 点击高级选项 点击命令提示符 输入两行命令 copy C:\windows\system32\uti1man.exe C: \Window…

spark 精华总结

面试题&#xff1a; Hadoop 的基于进程的计算和 Spark 基于线程方式优缺点&#xff1f; 答案&#xff1a; Hadoop中的MR中每个map/reduce task都是一个java进程方式运行&#xff0c;好处在于进程之间是互相独立的&#xff0c;每个task独享进程资源&#xff0c;没 有互相干扰&…

vue2.0 elementui 封装表单

1.封装表单 <template><div><el-form :model="numberValidateForm" ref="numberValidateForm" label-width="80px" :disabled="type===click"><div v-for="item in formConfig" :key="item.id&q…

YOLO物体检测-系列教程6:YOLOV3源码解读4之 YOLO层

&#x1f388;&#x1f388;&#x1f388;YOLO 系列教程 总目录 上篇内容&#xff1a; YOLOV3项目实战1之 整体介绍与数据处理 YOLOV3提出论文&#xff1a;《Yolov3: An incremental improvement》 6、yolo层 6.1 yolo层 class YOLOLayer(nn.Module):"""Det…

竞赛 基于机器视觉的银行卡识别系统 - opencv python

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的银行卡识别算法设计 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng…

Vue知识系列(7)每天10个小知识点

目录 系列文章目录Vue知识系列&#xff08;1&#xff09;每天10个小知识点Vue知识系列&#xff08;2&#xff09;每天10个小知识点Vue知识系列&#xff08;3&#xff09;每天10个小知识点Vue知识系列&#xff08;4&#xff09;每天10个小知识点Vue知识系列&#xff08;5&#x…

Android 格式化存储之Formatter

格式化存储相关的数值时&#xff0c;可以用 android.text.format.Formatter 。 Formatter.formatFileSize(Context context, long sizeBytes) 源码说明&#xff0c;在 Android O 后&#xff0c;存储单位的进制是 1000 &#xff0c;Android N 之前单位进制是 1024 。 /*** Fo…

【ARM Coresight 系列文章 21 -- SoC-400 介绍 】

文章目录 1. Coresight SoC-4001.1 DAP 组件1.2 SWJ-DP1.3 DAPBUS互联1.4 AXI-AP1.5 APB-AP2. 互联2.1 APB互联组件2.2 ATB互联组件2.2.1 replicator2.2.2 funnel2.2.3 upsizer2.2.4 downsizer2.2.5 asynchronous bridge2.2.6 synchronous bridge3. Timestamp 组件4. ECT组件&l…

C【动态内存管理】

1. 为什么存在动态内存分配 int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 2. 动态内存函数的介绍 2.1 malloc&#xff1a;stdlib.h void* malloc (size_t size); int* p (int*)malloc(40); #include <stdlib.h> #incl…