第一章:Introduction to Tessent IJTAG

Tessent IJTAG是1687协议标准的Mentor Graphics实现。

包括下面三个主要方面:

  • Hardware Rules——使用于1687 instruments,包括端口功能,时序和连接规则。
  • Instrument Connectivity Language(ICL)——描述孤立节点或部分或完整网络。这允许retargeting pin/register read/writes到扫描命令。
  • Procedural Description Language(PDL)——在给定level描述instrument用法,并自动在任何更高level实现retargeting。
    第一章:Introduction to Tessent IJTAG_第1张图片

ICL and PDL Modeling

ICL Instrument Description

下面ICL代码为名为tdr1的instrument的完整描述。有一个scan in端口为si,一个scan out端口为so,有四个使能端口en、se、ce、和ue,测试时钟端口为tck。每个端口都是通过关键字定义的。
第一章:Introduction to Tessent IJTAG_第2张图片
这些关键字包括方向(input或output),但是更重要的是语义和timing(?)。例如,se是移位使能端口,这些语义有助于人们理解这些端口的意图,它们的用法和instrument的操作。从工具的观点来看,这些语义被所有的DRC检查所允许。例如scan in端口不能被其他instrument的数据输出端口所驱动,想能必须连接到scan output端口。

IEEE1687有明确的时序,例如,为了能够移入scan input端口,使能se信号必须高有效,扫描数据必须到si,并且在TCK上升沿附近满足setup和hold时间要求。时钟的速度和这些事件的正确时间取决于应用程序工具和硬件中的实现,在ICL和PDL没有定义时钟周期的方法。

在列出端口后,上面的例子显示了名为R的8位扫描寄存器,si被连到R[7],而so被连接到R[0](也就是有8位寄存器,从左到右为7到0,串成链)。

How to Build an ICL Netlist

下图(图1)一个ICL模块定义所有的instruments,TDR1、TDR、SIB和TAP。
第一章:Introduction to Tessent IJTAG_第3张图片
下面例化每个instrument,连接它们,创建top-level ICL描述,名为chip。top ICL module的名字必须匹配对应设计的模块名。top-level ICL模块中的所有端口都必须存在于设计模块中,尽管设计模块可能有额外的非ijtag端口。

How to Model Global Reset, Local Reset and Embedded TAPs

复位信号,可以被拦截或门控(不使用复位信号或选择是否使用),当电路的复位被置为复位状态时,只在设计的某些部分触发寄存器的复位,其他的寄存器可以被阻止获得复位脉冲(这些寄存器不会被复位)。TAP控制器可以停留在要么是reset或者idle状态。

所有的话题同以下ICL描述中三种类型的信号有关:reset信号、trst信号和tms信号。这些信号要么在ICL描述中明确的连接,要么通过工具连接。

为了完整性起见,下面几页显示了确定reset 信号,trst信号,tms信号和具有ResetValue规格的寄存器(也是起到复位功能?)的一组规则。如果要求某些特殊的属性,例如局部复位或者嵌入式TAP的隔离,这些信号通常必须在ICL中显式连接,但是为了在全部复位或局部复位期间理解IJATG网络的模型化行为,知道工具对不同部分的隐式连接是重要的。

ResetPort和ToResetPory类型的端口隐性连接规则

如果ICL模块的ResetPort,没有在例化这个模块时适应inputPort明确连接,工具将根据下面的规则连接ResetPort:

  • 如果在parent module上只有一个ResetPort,则instance ResetPort连接到这个parent module的端口。
  • 如果parent module没有ResetPort但是在同一个parent module的instance中总共只有一个ResetPort,则instance 的ResetPort连接到该instance的输出端口。
  • 如果在parent module中没有ResetPorts或者在instances中没有ToResetPort(在同一个parent module),ResetPort连接到Global Reset,一个虚拟信号(Global Reset)只有在iReset情况下有效。
  • 如果上述情况均不符合,ResetPort是不明确的,会触发DRC违例ICL124(instance输入端口来源不明确)。如果DRC的handling被降低到wraning,ResetPort连接到Global Reset。

如果ICL的ToResetPort没有使用ToresetPort规格的Source属性显式(可以知道是如何连接的)连接,工具将遵循以下规则连接ToResetPort:

  • 如果在同一module上只有一个ResetPort,将ToResetPort连接到该端口上。
  • 如果在同一个module中没有ResetPort中没有ResetPOrt,但是在instances总共有一个ToResetPort,ToResetPort被连接到这个instance的输出端口。
  • 如果在同一个模块中没有ResetPort,在instances中也没有ToResetPort,ToResetPort连接到Global Reset。
  • 如果上述情况均不符合,ToResetPort的来源是不明确的,会触发违例ICL123。

How to Define an iProc

ICL instrument大多数具有PDL,描述instrument应该如何测试或操作。

在instruments的IO边界处描述了PDL,然后由tessent IJTAG将这些PDL命令重新定位到所选的ICL层次结构level,称为current design,并使用set_current_design命令定义。下面是iProc用法的两个简单例子。
第一章:Introduction to Tessent IJTAG_第4张图片
首先PDL要求iProc绑定到一个ICL模块,这个绑定是通过PDL关键子iProcesForModule完成的,iProcsForModule关键字后面的所有PDL iproc都绑定到指定的模块,绑定的范围一直到iProcsForModule的下一次使用,并且不会以任何链接方式指定它的文件。

How to Call an iPro

通过使用iProc绑定ICL模块,iProc对模块的每个instance可用。
假设tdr1的一个instance MyTdr,被例化在Core3的一个ICL模块的instance中,因此,完整的分层ICL例化路径为Core3.Block1.MyTdr。因为模块tdr1的每个instance都可以访问iProc write_data,可以调用它:
在这里插入图片描述

你可能感兴趣的:(IJTAG,网络)