SoC FPGA JTAG电路设计 要点
JTAG协议制定了一种边界扫描的规范,边界扫描架构提供了有效的测试布局紧凑的PCB板上元件的能力。边界扫描可以在不使用物理测试探针的情况下测试引脚连接,并在器件正常工作的过程中捕获运行数据。
SoC FPGA作为在同一芯片上同时集成了FPGA和HPS的芯片,其JTAG下载和调试电路相较于单独的FPGA或ARM处理器都有一些差异,但是同时两者又有紧密的联系。AC501-SoC开发板上的JTAG链同时连接了FPGA和HPS。使用时,仅需一个JTAG链路,就能同时调试FPGA和HPS。FPGA和HPS各自有其独立的JTAG信号引脚,电路设计时使用了一种串行链的方式来将两者连接到一起,如图xxx所示:

以下为4个JTAG信号的功能说明:
|
管脚名称 |
管脚类型 |
说明 |
|
TDI |
测试数据输入 |
指令以及测试和编程数据的串行输入管脚的。数据在TCK 的上升沿移入。如果在电路板上不需要JTAG 接口,可以通过将此管脚连接至VCC来禁用JTAG。TDI 管脚具有内部弱上拉电阻(通常为25KΩ)。 |
|
TDO |
测试数据输出 |
指令以及测试和编程数据的串行数据输出管脚。数据在TCK的下降沿移出。如果数据没有从器件中被移出,此管脚处于三态。如果在电路板上不需要JTAG接口,悬空此管脚以禁用 JTAG 电路。 |
|
TMS |
测试模式选择 |
提供的控制信号输入管脚,控制信号用来控制TAP状态机的跳变。状态机跳变发生在 TCK 的上升沿。因此,TMS必须在 TCK 的上升沿之前被设置。 TMS 在 TCK 的上升沿中被评估。如果在电路板上不需要 JTAG 接口,JTAG 电路被禁用连接此管脚至 VCC。 TMS 管脚具有内部弱上拉电阻 (通常为25KΩ)。 |
|
TCK |
测试时钟输入 |
边界扫描电路的时钟输入脚。一些操作发生在上升沿,而其它的则发生在下降沿。如果在电路板上不需要JTAG 接口,JTAG 电路被禁用连接此管脚至 GND。 TCK 管脚具有内部弱下拉电阻。 |
使用JTAG配置或调试一个器件时,根据用户选定的器件,编程软件(Quartus Programmer或DS-5中提供的调试器)会旁路所有其它的器件。在旁路模式下,器件通过一个旁路寄存器将编程数据从 TDI 管脚传至 TDO 管脚,即通过TDI送入器件的配置数据会在一个时钟周期之后呈现在TDO上。而如果将TDO端口输出的数据再次接入另个器件的TDI端口,则能够直接对下一个器件进行调试了。而每一个器件都有其JTAG ID,通过JTAG ID能够辨识具体调试哪个器件。
在图xxx(上图)可以看到,由USB Blaster的TDO输出的数据首先是接入到了HPS的TDI端口,然后由HPS的TDO端口流出的数据又接到了FPGA的TDI端口上,最后数据再由FPGA的TDO端口流出,回到USB Blaster的TDI端口,形成了完整的数据回路。
当需要通过Quartus Programer来配置或调试FPGA部分时,会设置直接旁路HPS部分,由HPS的TDI端口流入的数据会在一个时钟周期后出现在HPS的TDO端口上,再进入HPS的TDO端口所连接的FPGA的TDI端口。从而向FPGA的各个寄存器中写入或读取出数据,通过FPGA的TDO端口输出,流入到USB Blaster的TDI端口,完成对FPGA的调试。
当需要通过DS-5中的仿真器来调试HPS部分时,会设置直接旁路FPGA部分,由HPS的TDI端口流入的数据直接作用在HPS上,对HPS的相应的寄存器进行读写,结果数据从HPS的TDO端口流出,再流入FPGA的TDI端口,由于此时FPGA的JTAG功能处于旁路状态,TDI端口流入的数据会直接由FPGA的TDO端口流出,进入USB Blaster的TDI端口,完成对HPS的调试。
SoC FPGA JTAG电路设计 要点的更多相关文章
- SoC FPGA开发板的FPGA配置数据下载和固化
小梅哥编写,未经许可,严禁用于任何商业用途 2018年7月2日星期一 soc fpga的烧写和固化方式与传统的纯fpga固化方式即存在形式上的相同,也存在细节上的差异,特整理此文. AC501-So ...
- Intel Cyclone SoC FPGA介绍
3.1 Intel Cyclone SoC FPGA介绍 3.1.1 SoC FPGA的基本概念 Intel Cyclone V SoC FPGA是Intel PSG(原Altera)于2013年发布 ...
- 关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量
关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量 emesjx | 2014-08-13 13:13:30 阅读:1793 发布文章 当一个系统中含有多片(2片以上)Xil ...
- CPLD和FPGA中不同电压的JTAG电路设计注意事项
在初次的cpld电路设计的时候,遇到了这样的一个问题,整个系统是3.3V的系统,选用的cpld是XC9536-10VQ44C,芯片供电电压5V.他的io可以配置成3.3V和5V两种形式,因此,选用的时 ...
- [原创]FPGA JTAG工具设计(一)
先来看不同JTAG方案,下载配置QSPI Flash所耗时间 基于FTDI方案,JTAG下载时间为494sec JTAG chain configuration ------------------- ...
- 【转载】FPGA算法映射要点
近期一直在学习利用FPGA完成算法的定点运算,转载些相关的博客方面回顾查找.本博文原文链接为:https://blog.csdn.net/u013989284/article/details/7899 ...
- [原创]FPGA JTAG工具设计(二)
经过前期打样 基于FT2232H的JTAG &UART板级已经初步形成 在Viado环境和ISE(13.2+)环境可以使用 速度支持10MHz/15MHz/30MHz 在ISE iMpact下 ...
- sobel算法的Soc FPGA实现之框架分析(二)
重点分析一.AXI_VDMA_1 之前一直认为这个就是内含有DDR的ip核(......最近才搞懂是个啥),后来经过对FDMA的分析发现这就是个框架,通AXI总线挂载到bus总线,可以实现PL端FPG ...
- 《FPGA全程进阶---实战演练》第一章之FPGA介绍
1 什么是FPGA FPGA也即是Field Programmable Gate Array的缩写,翻译成中文就是现场可编程门阵列.FPGA是在PAL.GAL.CPLD等可编程器件的基础上发展起来的新 ...
随机推荐
- 在spring MVC 中关于session失效的判断 有一个类SessionStatus
SessionStatus status 表示的是当前Session的状态 status.isComplete()-->为true时,表示当前Session还未过期;-->false,表 ...
- hibernate中.常见的hql查询语句
hql是非常有意识的被设计为完全面向对象的查询 基本规则: 1.hql语法类似于sql,但它后面跟的不是表名和字段名,而是类名和属性名 2.hql大小写不敏感.但是设计java类名,包名,属性名时大小 ...
- 在命令提示符下启动并使用JVM时,简单设置堆
公司电脑内存太小了,只有8G:或者说JVM默认启动占用内存太大了,同时启动多个服务内存就炸了. 比如: java -Xmx128m -Xms64m -Xmn32m -Xss16m -jar eurek ...
- oozie错误:javax.servlet.jsp.el.ELException: variable [***] cannot be resolved
完整错误: javax.servlet.jsp.el.ELException: variable [compute] cannot be resolved at org.apache.oozie.ut ...
- KEGG下载某物种最新的版本信息(斑马鱼为例)
步骤一:打开链接并选择物种 http://www.genome.jp/kegg-bin/get_htext?hsa00001+3101 步骤二:对文件进行解析 步骤三:统计信息 一级结构(6大类): ...
- Hbase—学习笔记(一)
此文的目的: 1.重点理解Hbase的整体工作机制 2.熟悉编程api,能够用来写程序 1. 什么是HBASE 1.1. 概念特性 HBASE是一个数据库----可以提供数据的实时随机读写 HB ...
- 使用UUID方法生成全球唯一标识
需要生成唯一字符串,如生成应用标识等,可以直接用java.util.UUID类实现. UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字, ...
- Python globals() 函数
Python globals() 函数 Python 内置函数 描述 globals() 函数会以字典类型返回当前位置的全部全局变量. 语法 globals() 函数语法: globals() 参数 ...
- ECMAScript6新特性之继承
class Animal{ constructor(name){ this.name = name; } get name(){ return this._name; } set name(val){ ...
- RedisUtil工具类
转载:http://blog.csdn.net/liuxiao723846/article/details/50401406 1.使用了jedis客户端,对redis进行了封装,包括: 1)使用了re ...