专利名称:通过单个测试访问端口连接多个测试访问端口控制器的制作方法
技术领域:
本发明一般涉及电子系统,具体而言涉及通过单个测试访问端口连接单个集成电路上的多个测试访问端口控制器的方法和装置。
背景技术:
半导体制造技术以及数字系统体系结构的发展导致设计和生产结合有比过去更加功能性的大集成电路的能力。包含至少一些产生高级功能性的大功能块的集成电路的一种具体分类称为芯片上的系统(SoC)。所述SoC集成电路通常包括一个或多个处理器和用于存储将由所述处理器执行的程序代码的存储器,以及一个或多个实施不同高层外设功能的电路块。所述大、复杂和高功能性集成电路在设计工作和测试方面存在许多急待解决的问题。
为了减少设计复杂集成电路诸如SoC所需的时间和工作量,工程师们经常试图重复利用功能块(有时候称为IP内核)。实际上,许多设计组保留了所述预设计的和预验证的IP内核的程序库。为保持使用所述预设计和预验证的IP内核的优点,不修改所述内核的内部设计是优选的。
针对可测试性的需求,许多工作指向测试体系结构的发展,诸如由电子和电气工程师协会定形的JTAG规范,即IEEE标准1149.1测试访问和边界扫描体系结构。通过测试访问端口(TAP)控制器和不同寄存器向整个集成电路或其一部分提供测试访问。TAP控制器与诸如例如IP内核的多个大功能块中的一个相关联。
一些预设计的IP内核包括TAP控制器,在其他情况中,当一个或多个IP内核包含在产品设计中时,工程师们必须将TAP控制器添加到集成电路设计中。
需要的是用于访问单个集成电路上的多个测试访问端口控制器的方法和装置。
发明内容
简单地说,本发明的实施例提供访问单片上的多个测试访问端口(TAP)控制器的电路和方法,重要的是符合IEEE 1149.1标准。本发明的实施例通过保持以下特征来达到一致,即对于外部观测器来说仅具有单个测试访问端口。通过向多个TAP控制器的每一TAP控制器的数据寄存器以及直接组合胶合逻辑添加单个位,能够访问多个TAP控制器而无需额外的芯片管脚,并且无需在分级或主从组合中布置额外的TAP控制器。
图1是SoC的高层示意方块图,所述SoC包括一对IP内核,每一内核具有相关的TAP控制器/JTAG电路;以及逻辑和外部连接,为测试访问而在该对IP内核的每一个之间进行切换。
图2是SoC的高层示意方块图,所述SoC包括一对IP内核,每一内核具有根据本发明的相关的开关寄存器;以及为测试访问而内部产生用于在该对IP内核的每一个之间切换的信号的逻辑。
图3是根据本发明的SoC的高层示意方块图,所述SoC具有说明其间的菊花链数据流的一对TAP控制器。
图4是用于实施图3所述的菊花链数据流的逻辑,以及基于模式信号的切换机制的示意图。
图5示出了传统的JTAG寄存器以及本发明的开关寄存器和链寄存器的高层示意方块图。
图6是根据本发明的说明性处理的流程图。
具体实施例方式
当设计包括多个IP内核和相关的TAP控制器时,期望能够控制哪一个TAP控制器被启用以与外部观测器进行通信。也期望访问多个TAP控制器,同时仍然符合IEEE 1149规范,而不向集成电路添加额外的管脚。本发明不同的实施例允许通过在每一TAP控制器的数据寄存器中包括一个位连同简单的组合逻辑,经由单个TAP控制器以控制方式访问单个集成电路上的多个TAP控制器。根据IEEE 1149规范允许附加这种用户数据寄存器。
在此的参考“一个实施例”、“实施例”或相似的模式意指与实施例相关描述的具体特征、结构、操作或特性包含于本发明的至少一个实施例中。所以,在此出现的所述短语或表述没有必要全部涉及为相同的实施例。此外,在一个或多个实施例中可以以任一合适的方式组合不同的具体特征、结构、操作或特性。
术语首字母缩写词ASIC是指专用集成电路。
措辞“IP内核”是上下文有关的并涉及高层功能块的设计(例如,示意性的硬件描述语言,网表)、或高层功能块的实际物理实施。除了用于实施期望的功能的电路之外,IP内核还包括用于实施测试和调试器件的电路。
首字母缩写词JTAG是指联合测试行动小组。电气电子工程师协会(IEEE)已经批准了IEEE标准1149.1,即测试访问端口和边界扫描体系结构。
首字母缩写词SoC是指片上系统,同时SoCs是多个SoC。
有时候在该领域中可互换地使用术语芯片、半导体器件、集成电路、LSI器件、单片式集成电路、ASIC、SoC、微电子器件以及相似的措辞。微电子器件被认为是最宽泛的术语,其包括其余上述术语。关于这些微电子器件,在它们和其他电路元件之间经由物理、电传导连接来耦合信号。有时候将连接点称为输入、输出、终端、线路、管脚、焊盘、端口、接口、或相似的变形和组合。
遵循JTAG的设备包括用于时钟、输入数据、输出数据和模式选择的管脚,且分别称为TCK、TDI、TDO和TMS。TCK是指作为遵循JTAG设备的一个终端的测试时钟输入,其接收与系统时钟相分离的时钟信号。TDI是指测试数据输入,其作为一个终端,经由该终端而将数据移入到遵循JTAG的设备。TDO是指测试数据输出,其作为一个终端,经由该终端而将数据移出遵循JTAG的设备。TMS是指测试模式选择,其作为一个终端接收数据以确定遵循JTAG的设备以一个或多个测试模式中的哪个测试模式运行。遵循JTAG的设备可以是任一类型的集成电路,诸如例如微处理器、ASIC或SoC。遵循JTAG的设备也可以包括接收低有效复位信号的管脚,称之为TRST#。遵循JTAG的设备包括边界扫描寄存器和TAP控制器。所述TAP控制器是一种控制JTAG功能的状态机。所述边界扫描寄存器由多个串联连接的位构成,其中这些位的每一位也耦合到遵循JTAG的设备的数字管脚。遵循JTAG的设备也可以包括其他的寄存器,诸如数据寄存器、指令寄存器和旁路寄存器。
IEEE 1149.1规范定义的逻辑装置通常用于边界扫描和系统调试。
本发明的不同实施例提供一种访问SoC内多个TAP控制器的一个或多个控制器的机制,同时符合IEEE 1149.1规范。本发明简单的实施例允许可编程地从默认的TAP控制器切换到第二个TAP控制器。这样当从SoC外测观测时,SoC的状态在启动(也就是系统实施复位之后)时是符合IEEE 1149.1规范的。更加复杂的实施例允许以下设置,诸如在单独的TAP控制器之间来回切换;以及将所有的TAP控制器以菊花链链接在一起。
本发明的应用是提供对单芯片上的多个TAP控制器的访问,同时符合IEEE 1149.1规范中阐述的标准。每一TAP控制器依次控制相关IP内核的测试逻辑(例如边界扫描测试)或调试特征。根据本发明,不需要额外的控制器(例如最高层TAP、分级TAP、主TAP或TAP链接模块)和额外的管脚以强加对芯片的特定操作模式。例如通过标准的JTAG端口可编程本发明的实施例。本发明的实施例特别有利于以下情况,即分开地或在不同的时间点上进行TAP控制器和IP内核的设计。本发明的一些实施例有利地提供模块化的、可扩展的方案以将多个TAP控制器集成到SoC。
为了理解本发明的上下文,参考图1,并且考虑IP积分器希望将两个或多个IP内核放置到一个SoC上。IP内核能够是处理器、DSP、高度集成功能块、或上述任一组合。假设这些IP内核的每一IP内核具有TAP控制器和相关的JTAG模块以如下方式设置,即如果其本身在芯片上,那么该TAP-JTAG组合形成遵循IEEE 1149.1的设备。用于通过JTAG接口观测两个IP内核的直接实施将使用如图1所示的逻辑选通、多路复用以及“模式”管脚。
参考图1,假设TAP1 102是默认的TAP控制器,并且假设从模式管脚104接收到的模式信号在启动时被设置为零。注意TAP1 102和TAP2 106的TDI和TMS输入被逻辑选通,以致于当所述模式信号是逻辑零时,TAP1 102接收实际的TDI和TMS信号,同时TAP2为这些输入接收零;并且当模式信号是逻辑一时,TAP2 106接收实际的TDI和TMS信号,同时TAP1 102为这些输入接收零。所述逻辑电路的物理实施是本领域技术人员容易理解的方式。应该注意,仅TAP1102或TAP2 106的输出是TDO。TAP控制器102、106的其他管脚是输入。同样应该注意,如果从TMS管脚接收到的信号是零,那么TAP控制器102、106的有限状态机(FSM)在TCK管脚上接收的时钟信号的五个周期内将默认为运行-测试-空闲状态。在TAP控制器102、106之间可以自由共享TDI、TCK、TRSTN信号(但是如图1所示除了TMS之外还逻辑选通TDI)。当作为与TDO输出相关联的三态缓冲器的两个使能信号(未示出)时,所述TDO输出由2-1多路复用器108多路复用。分别地并且在不同的时间点上设计TAP控制器、JTAG模块以及IP内核并不是罕见的实践。IP积分器具有适当连接标准化接口的任务。
参考图2,假设每一JTAG模块202、204包含一些JTAG寄存器,诸如例如指令寄存器206、旁路寄存器208、以及IDCODE寄存器210。IEEE 1149.1标准允许通过用户定义的数据寄存器来扩展JTAG模块202、204。在本发明的不同实施例中,将一位数据寄存器212添加到至少默认的TAP控制器。这样的一位数据寄存器在此称为开关寄存器212。图2示出了结合到本发明说明性实施例的两个JTAG模块202、204每一个中的开关寄存器212。每一一位开关寄存器212的输出耦合到XOR门214以产生控制图1所示的逻辑选通和多路复用的模式信号。也就是说,根据本发明,集成电路中产生的模式信号替换了图1所示的外部提供的模式信号以及相应的模式管脚。
根据本发明,两个TAP控制器对于芯片外的观测器诸如JTAG探针来说将呈现为一个TAP控制器。这是因为在TCK时钟边沿期间,更新数据寄存器的状态利用TMS上再一个高层的值转变为运行-测试-空闲状态。当探针与JTAG协议交涉时,硬件对其自身进行重新配置,并且不同的TAP控制器连接到SoC的外部接口管脚。为改变TAP控制器的连接的目的而能够在该具体状态转变期间使用所述协议的事实被本发明的实施例所利用。
JTAG操作的特性在于通常当旧值被移出并且在芯片外被捕捉时,将新值移入寄存器。在一些情况中,例如当移入新指令时,不同的值被移出。为了具有多个JTAG模块上一致的可预测开关机制,期望JTAG探针将不再需要为不同开关寄存器212跟踪当前值。所以,在本发明的实施例中,当移入逻辑一时,反转开关寄存器212的内容。所以不管开关寄存器212的当前值,如果正好反转一个输入,那么模式信号将切换。所述设置适合于在单芯片上集成两个TAP控制器的本发明实施例。
假设根据本发明能够在两个TAP控制器之间来回地切换,那么提供TAP控制器的菊花链接也是所希望的。在图3和4所示的菊花链接的说明性实施例中,扩展图2所示的技术以提供与菊花链接相关的数据流。特别是,通过仅提供从TDI到TDO的流而在图3中示出了与菊花链接相关联的一般数据流。为实现根据本发明的菊花链接,通过一位数据寄存器来进一步扩展TAP控制器(例如TAP1 102),所述一位数据寄存器在下文中称为链寄存器。图5说明了传统的指令、旁路、和IDCODE JTAG寄存器206、208、210,以及本发明的开关和链寄存器212、502。
应该注意根据本发明,尽管能够向单个集成电路上的多个TAP控制器的一个以上TAP控制器添加链位,但是这增加了控制所需要的组合逻辑的复杂性。可以理解本领域技术人员和具有该公开内容权益的人能够很容易地合成所述控制逻辑,并且因此这些细节将不再进一步描述。
如图4所指示的那样,除了模式信号之外现在还能够使用链信号以便为TDI1、TDI2、TD01和TD02实施合适的逻辑选通和多路复用。假设当链=1时,模式=0,那么图4逻辑上等效于图3。可以理解这是本发明的说明性实施例,并且如果模式信号的值例如选择为不同的值,那么示例性的逻辑可以不同。这是本领域技术人员很容易理解的。
图6说明了根据本发明的处理流程。将两个或多个TAP控制器中的开关寄存器位复位602为已知状态。处于其复位状态的开关寄存器位的输出逻辑组合控制外部观测器能够访问哪个TAP控制器。接着,写入选择的TAP控制器的开关寄存器位以导致位翻转(也就是使其当前状态反相)。开关寄存器位的新状态用于产生或导出604至少一个模式信号。至少部分地基于模式信号的状态,选择606下一TAP控制器以用于与外部观测器进行通信。在两个TAP控制器的情况中,所述模式信号始终选择所述两个TAP控制器中的一个。
为在两个TAP控制器之外进行扩展,可以导出模式总线,以致于任一开关寄存器中的变化值引起下一被调度的TAP控制器被选择。以下将更加详细地描述所述实例。
在接下来的部分中,描述一种具有三个TAP控制器(称为TAP1、TAP2和TAP3)的说明性实施例。每一TAP控制器具有复位为零的1位开关寄存器。代替使用单个XOR来产生模式位(如与具有两个TAP控制器相关的上述内容),而使用模式总线。
对于TAP1、TAP2和TAP3之间的切换,假设实施循环调度算法以提供所有TAP控制器之间的访问。(应该指出,从多个TAP中选择一个TAP是一种与链接不同的功能,并且这些功能是不同目的所希望的。本发明的不同实施例支持选择和链接。)在该说明性实施例中,默认选择TAP1,并且当选择的TAP控制器的开关寄存器被写入时,选择下一控制器,例如TAP1->TAP2->TAP3->TAP1等等。所述模式总线具有相应于最高限度[log2(#TAP)]的宽度,在该实施例中其总计为两位,并且如表1那样定义这两位。
表1
如表2所示,模式总线的逻辑仅仅取决于三个开关寄存器位S1、S2和S3的值。
表2
在该说明性实施例中,通过3输入AND门来选通TDI和TMS(参见表1)。该输入中的两个是模式[1]和模式
位,利用一些反相,以致于仅选择的TAP控制器从最高层管脚接收TDI或TMS信号。同样,使用模式[1:0]位来多路复用三个TDO信号,以致于仅选择的TAP控制器向最高层管脚提供TDO信号。能够使用各种已知的电路来实施先前的逻辑和多路复用。用于模式总线的输入-输出表(参见表2)能够很容易地合成和产生相对小数量的逻辑门。
在随后的部分中,描述一种具有四个TAP控制器(在该实施例中称为TAP1-TAP4)的说明性实例。
对于不同TAP控制器之间的切换,假设在所有TAP控制器之间实施循环调度。在该说明性实施例中,默认选择TAP1。当选择的TAP控制器的开关寄存器被写入时,选择下一控制器,例如TAP1->TAP2->TAP3->TAP4->TAP1等等。
在该说明性实施例中,模式总线具有相应于最高限度[log2(#TAP)]的宽度(其仍旧合计为两位),并且表3中定义了所述模式位。
表3
如表4所示那样,模式总线的逻辑仅取决于四个开关寄存器位S1、S2、S3和S4的值。
表4
注意存在多个未使用的输入组合(也称为输入状态)。
在该说明性实施例中,通过3输入AND门来选通TDI和TMS(参见表3)。该输入的其中两个是模式[1]和模式
位,利用一些反相,以致于仅选择的TAP控制器从最高层管脚接收TDI或TMS信号。同样,使用模式[1:0]位来多路复用四个TDO信号,以致于仅选择的TAP控制器向最高层管脚提供TDO信号。能够使用各种已知的电路来实施先前的逻辑和多路复用。
如果使用更多的TAP控制器,那么模式位的数量以log2速率而增长。也就是说,对于多达8个TAP控制器来说,三个模式位是足够的,对于多达16个TAP控制器来说,四位是足够的,等等。定义和使用的输入状态的数量也缓慢地增加,每增加一个TAP控制器而仅增加两个状态。
关于不同TAP控制器之间的链,除了上述的切换,需要随后的变化配置链中的每一TDI以从两个源接收信号,也就是(1)最高层TDI管脚如果其是选择的TAP控制器的TDI,或者如果是链的情况则是来自于前面的TAP控制器的TDO信号。在所述链的开始和结尾处存在一些小规定,但是复杂性并未随添加更多的TAP控制器而增加。例如,即使利用包含十个TAP控制器的链,所述链中任一TAP控制器的TDI也仍旧仅来自于两个可能的源,如上所述,两个源为(1)选择控制器的TDI情况中的最高层TDI,或者(2)菊花链TAP控制器的TDI情况中前面的TAP控制器的TDO信号。同样,在该说明性实施例中,通过个别选择的TAP控制器(使用n-1多路复用器)来驱动TDO管脚,或者,如果所有的TAP控制器被菊花链,那么TDO通过所述链中最后一个TAP的TOD信号来驱动。
虽然在获得可编程开关的目标过程中存在一些复杂性问题,但是本发明的实施例可以使用除了循环之外的其他调度算法。在该情况中,可以将系统状态存储在每一TAP控制器或中央位置。这与上述说明性实施例是不同的,其中在上述说明性实施例中,在TAP控制器的数据寄存器的组合开关中/链位中编码状态。
结论根据IEEE 1149规范,通过保持对于外部观测器来说是仅具有单个测试访问端口的外部特征,访问单片上的多个测试访问端口(TAP)控制器。通过向多个TAP控制器的每一TAP控制器的数据寄存器以及直接组合胶合逻辑添加单个位,能够访问所述多个TAP控制器,而无需额外的芯片管脚,并且无需额外的TAP控制器。通过向至少一个TAP控制器添加一个第二位,能够获得适于控制多个TAP控制器的期望的功能的内部派生信号。切换多个TAP控制器的相应数据寄存器中的添加位的状态以提供用于多个TAP控制器的切换或菊花链的控制信息。
可以理解,本发明不是限于上述的实施例,而是包括附加权利要求的范围内的任何和所有实施例。
权利要求
1.一种将多个测试访问端口(TAP)控制器耦合到单个外部接口的方法,包括将多个TAP控制器(102,106)的每一个中的第一位复位为已知状态;至少部分地基于多个TAP控制器(102,106)的每一个中第一位的状态产生第一信号;至少部分基于第一信号选择多个TAP控制器中的一个(108);将外部输入端耦合到多个TAP控制器中选择的一个的输入端;以及将多个TAP控制器中选择的一个的输出端耦合到外部输出端。
2.如权利要求1的方法,其中TAP控制器包括有限状态机和多个寄存器。
3.如权利要求2的方法,进一步包括翻转多个TAP控制器中选择的一个中的第一位;以及重复步骤(b)至(e)。
4.如权利要求3的方法,进一步包括向多个TAP控制器的每一个提供时钟信号、测试模式选择信号(104)以及测试复位信号。
5.如权利要求3的方法,其中多个TAP控制器布置在单个集成电路上。
6.如权利要求5的方法,其中在单个集成电路内产生第一信号。
7.如权利要求6的方法,进一步包括从单个集成电路外部的源接收时钟信号。
8.一种集成电路,包括多个功能块,每一功能块具有耦合于此的测试访问端口(TAP)控制器;每一TAP控制器包括第一寄存器位,每一第一寄存器位适于响应复位信号产生已知输出状态,每一第一寄存器位进一步适于响应寄存器写操作进行翻转;以及路由选择逻辑适于至少部分地基于多个第一寄存器位的状态,选择性地提供在外部输入信号源与选择的其中一个TAP控制器的输入端之间的通信路径。
9.如权利要求8的集成电路,其中路由选择逻辑进一步适于至少部分地基于多个第一寄存器位的状态,选择性地提供外部输出端与选择的一个TAP控制器的输出端之间的通信路径。
10.如权利要求8的集成电路,其中至少一个TAP控制器进一步包括第二寄存器位;其中路由选择逻辑至少部分地基于第一和第二寄存器位的状态,进一步提供第一TAP控制器的输出来作为第二TAP控制器的输入。
11.如权利要求9的集成电路,其中选择性提供的通信路径之间的转换对于外部观测器来说是透明的。
12.一种集成电路(IC),包括布置在IC上的多个TAP控制器,多个TAP控制器的每一个具有适于接收数据输入信号的第一输入端和适于提供数据输出信号的输出端,多个TAP控制器的每一个进一步具有至少一个开关位;第一接口,用于接收外部提供的输入信号;第二接口,用于传输内部产生的输出信号;路由选择逻辑,适于至少部分地基于所述多个TAP控制器的开关位的状态,选择性提供多个TAP控制器中预定的一个的输入端与第一接口之间的第一通信路径,以及所述输出端与第二接口之间的通信路径。
13.如权利要求12的集成电路,进一步包括分别耦合到多个TAP控制器的每一个的多个功能块。
14.如权利要求13的集成电路,其中多个TAP控制器的每一个具有适于接收时钟信号的第二输入端,适于接收模式选择信号的第三输入端,以及适于接收复位信号的第四输入端;其中共同耦合多个第二输入端,共同耦合多个第三输入端,以及共同耦合多个第四输入端。
15.如权利要求14的集成电路,进一步包括布置在多个TAP控制器中的第一TAP控制器上的链位。
全文摘要
保持对于外部观测器来说是仅具有单个测试访问端口的外部特征,访问单片上的多个测试访问端口(TAP)控制器。通过向多个TAP控制器(102,106)的每一TAP控制器的数据寄存器(212)以及直接组合胶合逻辑添加单个位,能够访问所述多个TAP控制器,而无需额外的芯片管脚,并且无需额外的TAP控制器。切换多个TAP控制器的相应数据寄存器中的添加位的状态以提供用于选择多个TAP控制器的一个TAP控制器或菊花链的控制信息。
文档编号G01R31/3185GK1729401SQ200380106839
公开日2006年2月1日 申请日期2003年12月15日 优先权日2002年12月20日
发明者O·施泰因布什 申请人:皇家飞利浦电子股份有限公司