首页> 中国专利> 用于调试任何片上系统状态、功率模式、重置、时钟和复杂数字逻辑的基于异步可编程JTAG的接口

用于调试任何片上系统状态、功率模式、重置、时钟和复杂数字逻辑的基于异步可编程JTAG的接口

摘要

公开了异步调试接口,其允许JTAG代理、基于JTAG的调试器、固件和软件调试、访问和覆盖正在被测试的核心逻辑的任何功能寄存器、中断寄存器、功率/时钟选通使能等等。所述异步调试接口在宽范围的时钟频率下工作,并且允许读事务和写事务在不切换到调试或测试模式的情况下在侧通道上以及片上处理器结构内发生。所述异步调试接口使用双线和四线JTAG控制器配置工作,并且符合诸如1149.1、1149.7等等IEEE标准,并且提供调试复杂的片上系统状态和片上产品的有效和无缝的方式。

著录项

  • 公开/公告号CN104246712A

    专利类型发明专利

  • 公开/公告日2014-12-24

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201280071797.3

  • 发明设计人 H·林甘纳加利;V·凯里格哈塔姆;

    申请日2012-03-25

  • 分类号G06F11/22;G06F11/36;

  • 代理机构永新专利商标代理有限公司;

  • 代理人王英

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 08:15:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-11-10

    授权

    授权

  • 2015-01-14

    实质审查的生效 IPC(主分类):G06F11/22 申请日:20120325

    实质审查的生效

  • 2014-12-24

    公开

    公开

说明书

技术领域

本申请涉及在1149标准下的测试设备体系结构。

背景技术

联合测试行动组(JTAG)是稍后被标准化为IEEE 1149.1“Standard Test  Access Port and Boundary-Scan Architecture”的内容的通用名称,其中IEEE 是电气与电子工程师学会的简称。IEEE 1149.7标准是IEEE 1149.1的补充 标准,增加了额外的功能。JTAG最初被设计用于使用边界扫描来测试印刷 电路板并且仍然广泛用于这一应用。

IEEE 1149的“边界扫描体系结构”使用用于设置并读取管脚上的值的 5管脚串行协议而不直接访问核心逻辑。被称为边界扫描寄存器(BSG)的 串行扫描路径拦截位于核心逻辑和管脚之间的信号。当系统不在测试模式 中时,边界扫描寄存器将核心逻辑的信号透明地连接到管脚。在测试模式 中,BSR可以用于设置和/或读取值。在外部模式中,被设置或读取的值将 是也被称为“管脚”的I/O焊盘的值。在内部模式中,被设置或读取的值 将是核心逻辑的值。

BSR是移位寄存器,其形成位于核心逻辑周围的路径。正在被测试的 系统的核心逻辑的信号管脚连接到构成BSR的单元,这些单元围绕核心逻 辑(边界)。移位寄存器连接到测试设备的输入和出口,允许将测试向量发 送到BSR,因而测试核心逻辑。

尽管这一标准化方案,但是由于在测系统处于“测试”模式中,一些 实时情形没有使用边界扫描体系结构被测试。

因而,存在对于一种克服现有技术的缺点的用于执行核心逻辑的实时 测试的机制的持续需要。

附图说明

通过参照结合附图的下面详细描述,本文档的前述方面和许多伴随的 优点将变得更好理解,因此将变得更容易被认识到,其中相似的附图标记 在各种视图中始终表示相似的部件,除非以其它方式规定。

图1是根据一些实施例的异步调试接口的简化方框图;

图2是根据一些实施例包括图1的核心逻辑和TAP控制器的在IEEE 1149下的边界扫描体系结构的简化方框图;

图3是根据一些实施例对于构成图1的核心逻辑的不同芯片复制的图 2的边界扫描体系结构的方框图;

图4是根据一些实施例由图1的异步调试接口的TAP控制器使用的状 态机;

图5是根据一些实施例的图1的异步调试接口的读接口的示意图;

图6是根据一些实施例的图1的异步调试接口的写接口的示意图;

图7是表示根据一些实施例图1的异步调试接口的读接口和写接口与 优先级仲裁器之间的连接的示意性方框图;

图8是根据一些实施例由图1的异步调试接口使用的优先级仲裁器的 示意图;

图9是根据一些实施例在图1的异步调试接口中由软件使用来管理 TAP控制器中的空闲状态的查找表;以及

图10是根据一些实施例由图1的异步调试接口执行的写操作的流程 图。

具体实施方式

根据本文描述的实施例,公开了异步调试接口,其允许JTAG代理、 基于JTAG的调试器、固件和软件调试、访问和覆盖正在被测试的核心逻 辑的任何功能寄存器、中断寄存器、功率/时钟选通使能等等。异步调试接 口在宽范围的时钟频率下工作,并且允许读事务和写事务发生在侧通道上 以及片上处理器结构内而不必切换到调试或测试模式中。异步调试接口使 用双线和四线JTAG控制器配置进行工作,并且符合IEEE标准,例如 1149.1、1149.7等等,并且提供调试复杂的片上系统状态和片上系统产品的 有效和无缝的方式。

在下面的详细描述中,参照通过说明的方式示出可以在其中实践本文 描述的主题的具体实施例的附图。然而,应该理解,本领域中的普通技术 人员在阅读本公开时,其它实施例将变得明显。下面的详细描述因此不应 该在限制的意义上被解释,因为主题的范围由权利要求限定。

根据一些实施例,图1中描绘了异步调试接口100的简化方框图。异 步调试接口100由读接口200、写接口300、优先级仲裁器400和智能单元 350组成。异步调试接口100在核心逻辑500上按照两种方式实时地操作: 1)经过到核心逻辑的侧通道连接260,以及2)通过经过JTAG接口250 利用JTAG调试器250和TAP控制器600。异步调试接口100因而被嵌入 在JTAG网络中(例如JTAG调试器250和一个或多个TAP控制器600) 中。

如在本文使用的,当正在被测试的核心逻辑500在其正常状态中操作 时,即,在其操作中没有任何中断时,异步调试接口100被认为实时地运 行。因而,异步调试接口100在不改变在核心逻辑500内操作的任何时钟 的速度的情况下并且在不改变由核心逻辑接收的功率的情况下进行操作,。 关于最后一点,当异步调试接口100正在核心逻辑上实时地运行测试时, 核心逻辑500未被置于低功率操作状态中。

JTAG调试器250和TAP或测试访问端口、控制器600被设计为在包 括但不局限于IEEE 1149.1和IEEE 1149.7(在本文被称为JTAG标准)的 IEEE 1149标准下进行操作。尽管JTAG调试器250能够在核心逻辑500处 于测试模式中时在该核心逻辑上执行测试,但是异步调试接口100在核心 逻辑500上实时地进行操作。异步调试接口100因而利用JTAG调试器250 和TAP控制器600的能力,但是包括没有由JTAG调试器250提供的额外 的能力,以便在不干扰核心逻辑500的正常操作的情况下便于执行实时测 试。

异步调试接口100的读接口200和写接口300处理位于TAP控制器600 和核心逻辑500之间的协议。核心逻辑500至少包括主机CPU 220。在图1 的简化表示中,核心逻辑500包括主机CPU 220和通过开放核心协议(OCP) 总线230耦合到主机的一个或多个额外的CPU 240。为了简单起见,核心 逻辑500中的其它电路未在图1中重点介绍,但是核心逻辑可以包括额外 的功能,包括但不局限于联网能力、图形和视频能力、易失性和非易失性 存储介质以及外围设备电路。优先级仲裁器400解决在JTAG调试器250 和主机CPU 220或核心逻辑500的其它CPU 240之间的冲突,当这二者同 时试图访问OCP总线230时。

智能单元350可以由硬件逻辑和/或由处理器(未示出)执行的软件程 序构成。在一些实施例中,智能单元350包括结合JTAG调试器250使用 来测试核心逻辑500的测试套件450和查找表550。

在一些实施例中,如下所述,智能单元350包括被发送到JTAG调试 器250的查找表550。查找表550使JTAG调试器250能够获得TAP控制 器600在等待来自优先级仲裁器400的总线访问许可时需要处于空闲状态 中的时钟周期的数量。在一些实施例中,查找表550中的值由在确定空闲 状态时钟周期时采用TAP控制器600和核心逻辑500的相对时钟速率的新 颖公式确定。

常规调试方法是将也被称为在测系统的正在被测试的系统置于特定的 测试或调试模式中,固定频率下的单个时钟用于在测系统和测试逻辑二者。 在图1中,例如,核心逻辑500是在测系统。在常规调试下,核心逻辑500 因而在其功能模式和测试模式之间进行切换,在其功能模式中,核心逻辑 如所设计的进行操作,而在测试模式中,调试操作被执行。对于这一常规 方案存在许多缺点,其中之一是,在测试模式中操作的核心逻辑没有忠实 地实时代表核心逻辑的操作。

相反,异步调试接口100具有在不将核心逻辑500置于测试模式中的 情况下调试或覆盖任何片上系统状态或特征的能力。使用这一接口,不需 要减慢用于访问核心逻辑500内的任何功能逻辑的该核心逻辑的锁相环时 钟。异步调试接口100在宽范围的JTAG以及功能时钟频率下工作,并且 使用唯一的握手机制和异步协议来在功能域和测试时钟域之间传输数据。 异步调试接口100因而提供在不需要昂贵的片上逻辑分析器的情况下实时 地调试功能逻辑的强大的机制。

在进一步描述异步调试接口之前,对在IEEE 1149下的边界扫描体系 结构的介绍是适当的。图2示出了根据一些实施例符合1149的系统700的 简化示意图。(图1的JTAG调试器250是符合1149的系统的示例。)围绕 核心逻辑500的是形成边界扫描寄存器(BSR)的多个边界扫描单元 760A-760J(共同地,“边界扫描单元760”)、相对应的I/O焊盘770A-770J 加上接收测试数据输入(TDI)的输入的I/O焊盘770K、指令寄存器710 和指令解码器740、旁路寄存器720、ID寄存器730、一个或多个设计专用 外部测试数据寄存器750以及测试访问端口控制器或者首先在图1中介绍 的TAP控制器600。TDI输入经过I/O焊盘770K被馈送到第一边界扫描单 元760A,经过每一个随后的边界扫描单元760B、760C…760J被传递到测 试数据输出(TDO)输出。

因为仅存在单个数据输入(TDI),因此图2的边界扫描体系结构是串 行的。符合1149的系统700使用测试时钟信号(TCK)来为数据输入、测 试模式状态信号(TMS)和可选的测试重置信号(TRST)以及TDI和TDO 信号计时。TAP控制器600是状态机,转换由TMS信号进行控制。TAP 控制器600的状态机能够完成重置操作,访问指令寄存器并且访问由指令 寄存器选择的数据。对于每一个TCK脉冲,数据的一个比特被传输到TDI 输入中并且被传输离开TDO输出。

在核心逻辑500的正常操作期间,边界扫描单元760是不可见的。系 统700可以处于两种测试模式,外部测试模式和内部测试模式,之一中。 在外部测试模式中,边界扫描单元760用于设置并读取I/O焊盘770的值。 在内部测试模式中,边界扫描单元760用于设置并读取核心逻辑500的值。

JTAG标准想象至少两个测试数据寄存器,围绕核心逻辑500的边界扫 描寄存器760和旁路寄存器720。此外,可以包括设计专用测试数据寄存器 以便实现设计专用测试。这些设计专用测试数据寄存器可以是公共可访问 的,但是不要求是这样的。在一些实施例中,每当异步调试接口100将被 使用时,测试套件450使用用户定义的(定制)指令对指令寄存器710进 行编程。

TAP控制器600可以由单个TAP控制器或彼此串联布置的多个TAP 控制器组成。图3例如以具有N个单独的TAP控制器的TAP控制器600 为特征。这些单独的TAP控制器中的每一个可以连接到核心逻辑500内部 的不同电路(500A、500B…500N)。为了简单起见,在本文被称为“TAP 控制器600”的控制器可以由单个TAP控制器或多个TAP控制器组成。

返回到图2,符合1149的系统700的几个寄存器被显示为并联连接在 公共串行输入(TDI)和公共串行输出(TDO)之间的基于移位寄存器的元 件的集合。指令寄存器710控制哪一个寄存器,边界扫描寄存器760、设备 ID寄存器730、设计专用测试数据寄存器750之一或旁路寄存器720,在 给定的时间形成位于TDI和TDO之间的串联路径。复用器790控制在TDI 和TDO之间的串联路径,尽管可以替代地使用其它设备来控制串行输出。

当没有选择其它测试数据寄存器中的任意一个时,旁路寄存器720经 过该电路提供单比特串联连接。因为可能存在几个TAP控制器600,每一 个TAP控制器串联连接到不同的测试电路(图3),旁路寄存器720允许测 试数据在不影响其它部件的正常操作的情况下经过设备流到该其它部件。 因而,在其中电路500A未被测试但是电路500B被测试的图3中,旁路寄 存器720将与第一电路一起使用,使得测试数据本质上完全绕过第一电路, 并且继续到第二测试电路。边界扫描寄存器760允许板互连的测试并且检 测诸如开路和短路的生产缺陷。边界扫描寄存器760还允许在测试它们的 系统逻辑或流经系统输入和输出的信号的采样时访问部件的输入和输出。 设备识别寄存器730是允许确定制造商、零件号和部件的变体的可选的测 试数据寄存器。

图2还示出了设计专用测试数据寄存器750。在1149.1和1149.7下可 选的这些寄存器中的一个或多个允许访问诸如自测试、扫描路径等等的设 计专用测试支持特征。它们可以是公共可用的或完全私有的,仅由例如接 下来的安全认证可访问。

当指令寄存器710指示用户定义的指令时,设计专用测试数据寄存器 被激活。在一些实施例中,异步调试接口100与这些外部测试数据寄存器 750通过接口进行连接。再次,基于设计要求,用户定义的指令可以是公共 的或私有的。

例如,如上所述,用户定义的指令可以被发送到指令寄存器710(通 过测试套件450中的程序之一),使得通过第一外部测试数据寄存器750的 方式在串行输入(TDI)和输出(TDO)之间创建路径。在下文中,执行系 统调试所需的数据和控制可以经过外部测试数据寄存器750被移位。异步 调试接口100读取外部测试数据寄存器750的内容,并且执行核心逻辑500 的系统调试。因而,使用用户定义的(定制)指令的指令寄存器710的编 程触发异步调试接口100以便执行核心逻辑500的实时测试。

在一些实施例中,通过异步调试接口100获得的调试结果可以在TAP 控制器600处于“捕获DR”状态中时被装入测试数据寄存器750中,并且 可以在“移位DR”状态期间被移位到输出(TDO)上。图4示出了根据一 些实施例的TAP控制器600的状态图。状态机的最右边部分与指令寄存器 710(IR)有关。状态机600的这一右侧因而用于配置一个或多个TAP控 制器600,以便通过选择设计专用测试数据寄存器750通过指令寄存器710 的方式来执行某一任务。通过为指令寄存器710装入用户定义的指令,外 部测试数据寄存器750之一被激活,并且从异步调试接口100的智能单元 350接收指令,其中该指令可以由测试套件450组成。

JTAG调试器250因而本质上将异步调试接口100的测试套件450转换 为经过测试数据输入(TDI)和TMS JTAG端口发送的串行测试向量。每 当要执行实时读或实时写操作时,该测试套件450将用户定义的定制指令 编程到TAP控制器600。这或者激活读接口200或者激活写接口300,并 且允许读取和写入经过侧通道260发生。读操作和写操作可以例如包括覆 盖核心逻辑500内的功能寄存器,打开核心逻辑内的调制解调器,关闭到 核心逻辑中的音频块的功率,等等。

异步调试接口100的读接口200和写接口300处理TAP控制器600和 核心逻辑500之间的协议。此外,可编程优先级仲裁器400被设计为解决 TAP控制器600和核心逻辑500内的CPU之间的冲突。

图5是根据一些实施例的异步调试接口100的读接口200的示意图。 在智能单元350实时地执行寄存器、存储器单元或核心逻辑500的I/O管 脚的读操作的情况下,使用读接口200。读接口200使用由TAP控制器600 使用的相同测试时钟TCK。在发生读取和写入之间的冲突的情况下,优先 级仲裁器400解决它们。

图5中的读接口200的简化图将电路分为TCK域(左侧)和功能时钟 域(右侧),TCK是由JTAG逻辑(JTAG调试器250和TAP控制器600) 使用的时钟,并且功能时钟是核心逻辑500的操作时钟。读接口200包括 五个D触发器20A-20E和二到一复用器(MUX)60A和60B。最初,优先 级仲裁器400确保OCP总线230在发出在图5中被表示为read_grant的读 许可之前不被使用。

JTAG读选择寄存器JTAG_read_sel_reg控制MUX 60B的选择线,MUX 60B经过该MUX将“常高”输入(1’b1)馈送到MUX 60A。当用户定义 的指令被发送到JTAG调试器250的指令寄存器710时,JTAG_read_sel_reg 被置位。MUX 60A由来自D触发器20A的输出控制。同时,离开功能时 钟域,读许可被馈送到D触发器20B中,通过D触发器20A被计时(使 用测试时钟,TCK),D触发器20A控制MUX 60A。

因为MUX 60A具有常低输入(1'b0),D触发器20C的输入仅在 JTAG_read_sel_reg被激活并且read_grant由优先级仲裁器400发出之后才 被馈送到Q输出。这产生read_select信号,其经过两个额外的D触发器20D 和20E由功能时钟(例如核心逻辑500的功能时钟)计时。读接口200的 操作因而完成。

图6是根据一些实施例的异步调试接口100的写接口300的示意图。 在智能单元350正在执行寄存器、存储器单元或核心逻辑500的I/O管脚 的实时写操作时,使用写接口300。

如同读接口200一样,图6中的写接口300的简化图将电路分为TCK 域(左侧)和功能时钟域(右侧)。写接口200包括五个D触发器40A-40E 和二到一复用器(MUX)70A和70B。最初,优先级仲裁器400确保OCP 总线230在发出在图6中被表示为write_grant的写许可之前不被使用。

JTAG写选择寄存器JTAG_write_sel_reg控制MUX 70B的选择线, MUX 70B将“常高”输入(1’b1)馈送到MUX 70A。当用户定义的指令 被发送到JTAG调试器250的指令寄存器710时,JTAG_write_sel_reg被置 位。MUX 70A由来自D触发器40A的输出控制。同时,离开功能时钟域, 写许可被馈送到D触发器40B,通过D触发器40A被计时(使用测试时钟, TCK),D触发器40A控制MUX 70A。

因为MUX 70A具有常低输入(1'b0),D触发器40C的输入仅在 JTAG_write_sel_reg被激活并且write_grant由优先级仲裁器400发出之后才 被馈送到Q输出。这产生write_select信号,其经过两个额外的D触发器 40D和40E由功能时钟(例如核心逻辑500的功能时钟)计时。写接口300 的操作因而完成。

图7是表示在接收到read_select或write_select信号之后优先级仲裁器 400如何生成read_grant或write_grant信号的简化图。根据一些实施例,在 图8中说明了优先级仲裁器400。

在核心逻辑500和异步调试接口100的智能单元350分别请求地址/数 据总线(例如作为核心逻辑500的一部分的OCP总线230)的使用的情况 下,优先级仲裁器400解决冲突。在图8中,优先级仲裁器400由两个D 触发器80A、80B、两个与门90A、90B和反相器92组成。D触发器80A、 80B二者由功能(核心逻辑)时钟控制。

每当实时读操作或实时写操作要由异步调试接口100执行时,智能单 元350请求访问核心逻辑500的OCP总线230。当请求经过D触发器80A 被计时时,Q结果与D输入相同,并且因而经过与门90A被馈送,与门90A 接着由反相器92反转。与门的另一输入来自对于来自核心逻辑500的总线 访问的请求。

同时,核心逻辑500也可以请求对OCP总线230的访问,如在电路图 的下部分中指示的。该请求经过D触发器80B由功能时钟计时,并且被馈 送到与门90C中,与门90C的另一输入来自对于总线访问的JTAG代理请 求(例如TAP控制器600或异步调试接口100的智能单元350)。

回忆到图1,在一些实施例中,异步调试接口100的智能单元350包 括测试套件450和查找表550,它们二者都在核心逻辑500上执行测试时被 装入JTAG调试器250中。测试套件450由JTAG调试器250或另一JTAG 代理执行并且与符合JTAG的TAP控制器600一起操作。基于从核心逻辑 500接收的数据,异步调试接口100从核心逻辑500的寄存器读取并且写入 核心逻辑500的寄存器。

如它的名称表明的,异步调试接口100异步地操作。JTAG调试器250 和核心逻辑500使用不同的时钟进行操作。因而,在一些实施例中,异步 调试接口100使用查找表550来在这些读操作和写操作期间插入等待状态。

图9是根据一些实施例由异步调试接口100使用的如在图1中介绍的 查找表550。查找表550示出了在由TAP控制器600使用的测试时钟TCK 和由核心逻辑500使用的功能时钟之间的许多可能频率组合的小的集合。 查找表550还概述了TAP控制器600在每一个读事务和写事务之间需要停 留在空闲状态中以便允许主机CPU正确地处理侧通道260事务的额外的 TCK时钟周期的数量。如本文使用的,侧通道事务指代异步调试接口100 和核心逻辑500中的主机CPU 220之间的任何事务,不涉及JTAG接口270。 主机CPU 220一次通过OCP总线230与一个或多个额外的处理器(被表示 为CPU 240)进行通信以便执行事务。

在一些实施例中,查找表550在计算TAP控制器空闲周期的数量时使 用下面的公式:

N_idle_cycles=(TCK/clk)*MCF

其中TCK是TAP控制器600的时钟,clk是核心逻辑500的时钟,并 且MCF是乘法时钟因子。在查找表550中,MCF为四。MCF是基于核心 逻辑500的设计的常数。MCF可以取决于各种因素而改变,该各种因素例 如是多TAP JTAG网络中的TAP控制器的数量、核心逻辑时钟的频率、侧 通道260数据路径的时延以及其它操作条件和设计考虑因素。

假设核心逻辑500时钟clk在100MHz下操作。如在查找表550中指 示的,测试时钟TCK可以在50MHz(蓝色)或在20MHz(黄色)下操作。 在测试逻辑在50MHz(蓝色)下操作的情况下,TAP控制器600所需要的 空闲周期的数量为:

N_idle_cylces=(TCK/clk)*MCF=50/100*4=1/2*4=2

因而,当测试时钟在50MHz下操作并且核心逻辑时钟在100MHz下操 作时,TAP控制器600将在每一个读事务和写事务之间的两个时钟周期内 停留在空闲状态中。

在测试时钟在20MHz(黄色)下操作的情况下,TAP控制器600所需 要的空闲周期的数量为:

N_idle_cylces=(TCK/clk)*MCF=50/100*4=1/5*4=0.8

在这种情况下,0.8的值被四舍五入到1。因而,当测试时钟在20MHz 下操作并且核心逻辑时钟在100MHz下操作时,TAP控制器600将在每一 个读事务和写事务之间的单个时钟周期内停留在空闲状态中。

当在测试时钟TCK速率和核心逻辑clk速率之间存在明显差异时,空 闲状态的数量明显升高。例如,在核心逻辑500在1MHz下操作并且TAP 控制器600在50MHz(粉红)下操作的情况下,TAP控制器600所需要的 空闲周期的数量为:

N_idle_cylces=(TCK/clk)*MCF=50/1*4=50*4=200

因而,当测试时钟在20MHz下操作并且核心逻辑时钟在1MHz下操作 时,TAP控制器600将在每一个读事务和写事务之间的两百个时钟周期内 停留在空闲状态中。

替代地,在核心逻辑500在1MHz下操作并且TAP控制器600在20MHz (绿色)下操作的情况下,TAP控制器600所需要的空闲周期的数量为:

N_idle_cylces=(TCK/clk)*MCF=20/1*4=20*4=80

因而,当测试时钟在20MHz下操作并且核心逻辑在1MHz下操作时, TAP控制器600将在每一个读事务和写事务之间的八十个时钟周期内停留 在空闲状态中。

因为核心逻辑500可以在不同的时钟频率下操作,因此异步调试接口 100的智能单元350使用查找表550来确定多少空闲状态要插入在每一个读 事务和每一个写事务之间。图4中所示的状态机允许通过将零发送到TAP 控制器600来引入这些空闲状态。只要TAP控制器接收到零,状态机就将 保持在运行-测试/空闲状态中。

图10是根据一些实施例表示多个写操作如何由异步调试接口100执行 的流程图。智能单元350将测试套件450和查找表550装入JTAG调试器 250中(块102)。使用TAP控制器600、边界扫描寄存器760和JTAG接 口270,JTAG调试器250在核心逻辑500上的测试套件450上运行一个或 多个测试。

回忆到JTAG调试器250在外部测试模式或者内部测试模式中进行操 作,在外部测试模式中,边界扫描单元760用于设置并读取I/O焊盘770 的值,而在内部测试模式中,边界扫描单元760用于设置并读取核心逻辑 500的值。然而,在这种情况下,异步调试接口100实时地操作。因而,在 测试套件450的执行期间,一定存在来自核心逻辑500的读操作或者到核 心逻辑的写操作,这会导致在核心逻辑内部发生的操作的冲突。

例如,当将发生实时写操作(块106)时,智能单元350将用户定义 的指令装入JTAG调试器250中(块108)。回忆到当用户定义的指令被发 送到指令寄存器710时,这产生通过外部测试数据寄存器750之一的方式 位于串行输入(TDI)和串行输出(TDO)之间的路径。因而,外部测试数 据寄存器750被激活(块110)。基于JTAG指令寄存器710中的定制指令 以及外部测试数据寄存器750的内容,异步调试接口100的智能单元350 得到写请求并且将它存储在寄存器JTAG_write_sel_reg中,其中这一寄存 器驱动MUX 70B(图6)的选择线。类似地,在外部测试数据寄存器750 包含读请求的情况下,异步调试接口100的智能单元350得到读请求并且 将它存储在寄存器JTAG_read_sel_reg中,其中这一寄存器驱动MUX 60B (图5)的选择线。

一旦外部测试数据寄存器750被激活,智能单元350就使用写接口300 来在寄存器、存储器单元或核心逻辑500的I/O端口上执行写操作(块112)。 因为这实时地发生,因此优先级仲裁器400保持由智能单元350发起的写 入,直到OCP总线可用为止(块114)。一旦OCP总线可用(块116),优 先级仲裁器400就经过侧通道通路260将写操作释放到OCP总线(块118)。 因为JTAG调试器250不考虑实时操作,因此,如上所述,智能单元350 替代地使用写接口300来执行到核心逻辑500的写操作。

在多个写操作被执行(块120)的情况下,智能单元350触发JTAG调 试器250和TAP控制器300以便将空闲周期插入在接下来的写操作之间(块 122)。因而,TAP控制器600保持在运行测试/空闲状态中(在如由查找表 550确定的周期数量内),同时读/写操作经过侧通道260在核心逻辑500上 执行。

因为JTAG调试器250和TAP控制器300使用测试时钟进行操作并且 核心逻辑500使用功能时钟进行操作,因此空闲周期使测试套件450能够 在不干扰核心逻辑的正常操作的情况下在该核心逻辑上执行操作,因而使 异步调试接口100能够获得较高质量的测试结果。换句话说,测试结果反 映核心逻辑500的实时操作。

异步调试接口100因而允许JTAG代理和固件或软件在没有对昂贵的 片上探测逻辑的依赖性的情况下调试系统的功能逻辑,并且提供调试复杂 的片上系统状态和基于片上系统的产品的有效和无缝的方式。

尽管关于有限数量的实施例描述了本申请,但是本领域中的技术人员 将意识到根据其的许多修改和变形。意图是所附权利要求涵盖落在本发明 的真实精神和范围内的所有这样的修改和变形。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号