首页 > 其他分享 >第八章 IJTAG概念

第八章 IJTAG概念

时间:2023-08-25 20:33:42浏览次数:31  
标签:SIB IP 第八章 概念 PDL 寄存器 TDR IJTAG

1 IJTAG的概念

1.1 背景介绍

 

         

  •  JTAG框架
    1. 基本目标:实现芯片间互联线的测试
    2. 扩展功能:实现芯片内各种IP的调试
      • 通过TDR(数据寄存器)操纵和观测IP
      • 通过指令集激活某一个IP的TDR
  • JTAG缺点
    1. 片上IP数量导致JTAG指令集的增加
    2. 片上IP数量导致指令解码器变得非常复杂
    3. 广播架构不利于PR
    4. 测试模式在芯片设计阶段固定下来,缺乏灵活性
    5. JTAG标准并未定义TDR如何操纵IP,而是使用document描述指导施加激励与获取结果的过程

1.2 IJATG架构

         

 图 1.2.1 IJTAG的基本框架

 

 

 图1.2.2 IJATG Network

  •  IJTAG完全兼容JTAG网络
  • 描述TDR到TAP之间的网络结构
  • 串行TDR链路,通过SIB灵活配置
  • 规范了TDR和IP之间的交互语言
  • 即插即用

1.2.1 IJTAG标准

  • IEEE 1687 Standard
  • 2005年起草,2014年颁布,众多IC/EDA公司参与
  • 包含三个部分:
    • 灵活的串行TDR链路,用以测试片上IP
    • IJTAG网络连接语言:ICL(Instrument Connectivity Language),描述整个IJTAG网络结构
    • IJATG程序描述语言:PDL(Propcedural Description Language),描述TDR与IP之间的交互

 

2 SIB的结构

2.1 SIB概念

 

  1. SIB:Segment-insertion-Bit
  2. SIB是单比特的TDR
  3. SIB有开和关两种状态
  4. 插入SIB来实现任意层次化结构
  5. 利用SIB可以实现对IJTAG网络的灵活配置

2.2 SIB的结构

2.2.1 总体结构

  •  ShiftEn打开,TDI经过两个选择器经过Shift寄存器,最终到达TDO,数据不进入下一级SIB;
  • ShiftEn打开,UpdateEn打开,TDI输入后经过Shift寄存器、Update寄存器,最终Select影响输入部分的Select信号(我理解两个select信号为同个端口),Select打开后,数据可进入下一级SIB。路径为:TDI→ToTDI→FromTDO→经过Shift寄存器→TDO;

2.2.2 RESET:关闭到下一级SIB网络入口

  •  除了上述说到的关闭打开Update寄存器外,还可以使用Reset信号对Update寄存器进行复位;
  • 复位信号打开后,TDI输入的数据只能经过当前SIB,无法进入下一级SIB网络;

2.2.3 Close:关闭到下一级SIB网络的入口

  •  TDI输入0,Select为0,移位数据进入Shift寄存器,使得Shift寄存器输出为0,然后打开UpdateEn信号,使得Update寄存器输出为0,然后关闭UpdateEn信号,如此使得Update寄存器一直保持0,测试时下一级SIB网络使用不会打开;
  • 目的:让该SIB的下一级SIB网络在测试时始终不接入测试;

2.2.4 Open:打开到下一级SIB网络的入口

  • 经过TDI移入1,使得Shift寄存器输出为1,打开UpdateEn信号,使得Update寄存器输出Select信号为1,Select为1后,第一个MUX选择器选择上方通路;
  • 数据路径:TDI输入数据→ToTDI(下一级SIB网络)→FromTDO(接收下一级SIB出来的数据)→经过两个MUX和Shift寄存器→TDO输出;

3 SIB的网络

3.1 SIB多级网络结构(plug-and-play)

 

 

 

  •  通过TDR与SIB的组合,对芯片进行整体测试;
  • 上图中,可以看做Level0(2个TDR+SIB),Level1(1个TDR);
  • Level0中的两个TDR连接的instrumentA、B一定会被测试到,在shift数据时就需要移入instrumentA、B的测试向量位宽,SIB可以控制后面的TDR与instrumentsC是否需要被测试;

3.2 配置SIB的网络结构

  •  串联两个SIB;
  • 每个SIB后面分别挂一组TDR和instrument;
  • TDR1长度为10;
  • TDR2长度为5;
  • 如何通过TDI扫描数据来配置该网络?
    • 激活TDR1
    • 激活TDR2

3.2.1 系统初始化

RESET状态:

  •  移入2bit数据,将SIB1与SIB2状态均置为0;

  •  步骤一:
    • 移入2bit数据,将SIB1置为1,SIB2置为0;(红色箭头)
    • 打开Ijtag_update;
    • 激活打开TDR1网络;(黄色箭头)
  • 步骤二:
    • 移入12bits数据,因为IP1长度10,再加上SIB1、2的两个bit;
    • 保持SIB1打开;
    • 保持SIB2关闭;
    • 操纵TDR1(10bits);
  • 步骤三:
    • 移入12bit数据,将SIB1置为0,将SIB2置为1;
    • 打开Ijtag_update;
    • 关闭TDR1网络,打开TDR2网络;

  •  步骤四:
    • 移入7bit数据;
    • 保持SIB1关闭,保持SIB2打开,操纵TDR2(5bits);

4 ICL语法

4.1 基本概念

 

  •  ICL:Instrument Connection Language;
  • ICL描述IJTAG网络的连接关系;
  • ICL是可读文件;

4.2 描述Instrument

  •  Instrument表示该器件的例化名;
  • DataInPort DI、DataOutPort DO、ClockPort CLK:描述该模块的对外接口;
  • Alias enable表示部分端口的作用,{}内我理解表示有效取值范围;
  • Enum用于解释,二进制对应的工作模式;

4.3 描述TDR

  •  描述TDR的对外接口;
  • ScanOutPort SO{Source SR[0]}表示SR的第0bit连接至SO;
  • ScanRegister SR[7:0] {ScanInSource SI}表示SR的位宽10bit,扫描输入的源头是SI;

4.4 描述SIB

  •  ScanOutPort    so{Source sib;},so的数据源头是sib;
  • ScanOutPort     tsi;{Source si},对下一级输出端口tsi,源头是si;
  • ScanInterface    Client {},当前SIB对上一级的接口;
  • ScanInterface     Host {},当前SIB对下一级的接口;
  • ScanRegister sib {},设置sib的输入源,captrue的源头信号,reset的源头信号;
  • ScanMux设置sib的Q端口控制MUX的信号输出到sib,Q端为1‘b0,si信号送入sib,Q端为1‘b1,fso信号送入sib;(这部分逻辑较混乱,正确性待考证)

4.5 描述chip

5 PDL语法

5.1 基本概念

 

  •  PDL:Procedural Description Language
  • PDL描述如何配置和操作片上IP/instrument(如何激励与观测IP)
  • EDA工具可以将IP的PDL按照层次结构retargeting到更上一级IJTAG网络指导chip层;
  • retargeting:将IP的接口通过PDL逐层的向上MAP到chip的端口上,完成测试;

5.2 PDL命令

  • iWrite:向对象中写入数据
  • iRead:从对象中读取数据
  • iApply:执行PDL命令
  • iNote:添加注释
  • iProc:定义PDL的procedure
  • iCall:调用定义好的proc
  • iMerge:并行执行多个proc
  • iRunLoop:执行指定数目的时钟周期

6 实例讲解

 

标签:SIB,IP,第八章,概念,PDL,寄存器,TDR,IJTAG
From: https://www.cnblogs.com/jihexiansheng/p/17645113.html

相关文章

  • 中间件学习 - Rabbit MQ 概念及特殊MQ实现
    RabbitMQ官方文档介绍RabbitMQ是一个消息队列组件,使用Erlang开发,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题安装使用安装Erlang(RabbitMQ基于Erlang开发)Downloads-Erlang/OTP配置Erlang环境erl-version验证安装rabbitMQDownl......
  • 架构:第八章:架构师之路
                更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120615813 ......
  • Hadoop概念地图
    Hadoop发展史及生态圈1,hadoop的发展史,基于GFS,MAPREDUCE,BIGDATA---->Hive2,hadoop生态圈。core,hdfs,mapreduce,hive,zookeeper.hbase,kafka,Flume,Sqoop,Mahout,Pig等3,hadoop版本,并行的基线,1.x和2.XHDFS1,分布式文件系统以及与传统型数据库的比较2,hdfs作用3,hdfs原理(把......
  • §1. 数列极限概念
    1. 掌握数列极限的定义,并会用语言证明给定数列的极限。如何用语言证明 :任给,研究,通过放缩得到一个比较简单的形式,然后分析得到n满足什么条件,能够使得.最后用语言总结:对任给的,只要取,则当时,.注意:N不一定限于正整数,只要是正数即可。2.掌握数列极限的几何意义和由此产生的新的定义......
  • 显微镜分辨率:概念、因素和计算
    在显微镜学中,‘分辨率’一词用于阐述显微镜对细节进行区分的能力。换言之,这是样本内两个能被观察人员或者显微镜摄像头区分的实体点之间的理想的距离。显微镜的分辨率本质上与光学元件的数值孔径(NA)以及用于观察样本标本的光波长有关。此外,我们必须考虑ErnstAbbe于1873年......
  • 显微镜的几个概念:分辨率,放大率,最大分辨率,分辨极限
      “本文主要介绍有关显微镜的一些重要概念,不论是在科研,还是日常生活当中,这些概念都十分容易混淆。分辨这些概念有助于我们避免误解,更好、更合理地使用显微镜。”01分辨率   分辨率是指能够分辨出的相邻两个物点间的最小距离的能力,这种距离称为分辨距离。一般来......
  • 了解ASP.NET Core中的中间件概念
    当谈到构建强大且高度可定制的Web应用程序时,ASP.NETCore是一个备受推崇的选择。其灵活性和可扩展性使开发人员能够以更有创意的方式构建应用程序,其中的中间件概念是实现这种灵活性的关键。什么是中间件?中间件是ASP.NETCore应用程序处理HTTP请求和响应的组件。它们在请求到达应用......
  • 第八章 SMS--短信服务
    8.1短信服务介绍短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力。产品优势:覆盖全面、高并发处理、消息堆积处理、开发管理简单、智能监控调度产品功能:短信通知、短信验证码、推广短信、异步通知、数据统计应用场景:短信验证码、系统信息推送、推......
  • OS(二):进程管理的基本概念
    进程是资源分配和独立运行的基本单位。引入进程的目的在于,使多道程序并发执行,提高系统的资源利用率和吞吐量;而引入线程,是为了减少程序在并发时的时空开销,提高系统的并发性,线程相对于进程,大大降低了创建、撤销和切换可执行实体的成本和难度。1、进程的定义与特征1.1、定......
  • C语言的小概念
    C程序的结构:1.一个程序由一个或多个源程序文件组成2.函数是C程序的主要组成部分,程序的几乎全部工作都是由各个函数组成的,函数是C语言的基本单位。3.一个C语言程序由一个或多个函数组成的,其中必须包含一个main函数(有且只能有一个main函数)。函数包括2个部分:函数头+函数体。4.程序总是......