具体实施方式
虽然本发明可以进行多种修改并能以不同的方式来实现,但是其具体形式已通过示例的方式在图中示出,并且将会给出详细说明。但是,应该清楚,这样做的目的不是为了将本发明限定在某种特定的实施例,而是想覆盖落入所附的权利要求限定的范围内的各种修改,等同物和替换物。
本发明可以被应用到与电子通信,特别是多通道间通信相关的各种电路及方法中。虽然本发明不是仅限制于这些应用,但通过对处在这样一种环境下的实例(应用)进行讨论就可以全面地体会到本发明的各个方面。
根据本发明的一个示例性实施例,边界扫描单元方法方便了对集成电路中逻辑电平交叉的检测。边界扫描单元方法包括:采用边界扫描单元来功能地实现对逻辑电平交叉的检测,一般产生了对与特定的电路条件相关的特定逻辑电平的断言(assertion)。
逻辑电平交叉是以一种或者多种形式产生的,对所连接的电路产生影响。例如,在很多实现中,逻辑电平交叉导致在节点或者电路元件上对特定逻辑电平(即,“0”或“1”)进行断言。短路或断路可以引起这样的断言。这样的交叉典型地导致特定逻辑电平从“1”转换到“0”或从“0”转换到“1”。在一些应用中,如果已经处在逻辑电平“1”的电路元件被断言为“1”,逻辑电平交叉并不一定使特定逻辑电平发生转换。
在一些应用中,逻辑电平交叉通常影响用来断言特定逻辑电平的电压电平,而并不必然导致特定电路元件中的逻辑电平的改变。例如,在逻辑电平“1”被断言为在一个电路元件中的一个特定电压电平时,电平交叉一般会引起电压电平的改变而不需要将逻辑电平由“1”转变到“0”。更显著的是,逻辑电平交叉对电路元件中电压电平有寄生影响,这种影响有可能会有也可能不会引起电压电平的显著变化而导致逻辑电平在“1”和“0”之间摆动。鉴于此,通过采用这种方法(或者下面描述的其他方法)检测的逻辑电平交叉效应并不必然导致逻辑电平的摆动。
在本发明的另一示例性实施例中,通过将逻辑加入到传统的边界扫描单元中去,而不用其他的(即,常规的)边界扫描方法来实现便于检测逻辑电平交叉的边界扫描单元特性。在这个实施例中,逻辑电平交叉作为边界扫描单元可用的信号的期望电平和实际电平的函数来进行检测。在一些应用中,通过比较逻辑电平的期望值和真实值来检测交叉,例如通过电气地(逻辑地或者其他)比较两个信号一样。
上述的一种或多种互联检测方法可以通过结合图1和图2所示的装置和方法来实现。
图1示出了根据本发明的一个示例性实施例在芯片100上实现的边界扫描装置和方法。在芯片100上实现多个边界扫描单元120-130,用于使用JTAG型分析法来测试核心逻辑电路110。边界扫描单元连接到端口150-170和各种电路140-147,用于实现输入和输出,并且连接到其它的边界扫描单元。测试接入端口(TAP)控制器115控制边界扫描单元的操作,部分116,117和118是为了访问TAP控制器而实现的。测试数据输入(TDI)端口102的测试数据输出(TDO)端口102和104分别用于测试数据的输入和输出,如同在此已讨论过的指示逻辑电平交叉。
电平交叉检测电路160同边界扫描单元124一起来检测电路中的逻辑电平交叉。在不同的实施方式中,该电平交叉检测电路同边界扫描单元中的不同或者其他边界扫描单元一起来检测核心逻辑110或检测通过端口150-155连接的其它电路接收到的信号。
图2示出了根据本发明的另一示例性实施例的边界扫描装置和方法,涉及连接到公共电路板205上的芯片210和230上的两个边界扫描实现的集成电路。芯片210和230的每一个以及每个芯片上的相应电路以与参照附图1所描述的方式相类似的方式来实现。在此,芯片230有一个用边界扫描单元124实现的电平交叉检测电路160,而芯片210不是以这样的电平交叉检测器来实现的。
在一些电路中,芯片210包括具有一个或多个边界扫描单元的电平交叉检测器。为了简明的目的,没有标出或者没有进一步描述芯片210和230中各个特定电路组件。
在图2所示的实施方式中,边界扫描单元124中的电平交叉检测器160可以用来检测芯片230或210上的电平交叉。例如,通过边界扫描单元123从芯片230上的核心逻辑输出的电平交叉可以通过电路142和143被馈送到边界扫描单元124中的电平交叉检测器160。类似地,通过边界扫描单元226从芯片210上的核心逻辑输出的电平交叉可以通过电路245,端口253和152以及电路143馈入到边界扫描单元124中的电平交叉检测器160。
图3示出了根据本发明的另一个示例性实施例为了检测与边界扫描单元连接的集成电路(IC)中的电平交叉而实现的边界扫描单元300。单元300包括:用于移位输入“SI”,真值输入“PI”322(表示正被测试的IC的实际逻辑电平),和时钟输入“TCK”324以及移位输出“SO”326的输入引脚320。单元300还包括逻辑电路,在这个实例中用2到1多路复用器310和312来表示。多路复用器310的输入是分别与“1”和“0”输入连接的移位输入“SI”320和移位输出“SO”326。多路复用器312的“1”输入是多路复用器310的输出,“0”输入是真实值输入322。
多路复用器310和312分别使得“1”和“0”输入中的一个通过,作为控制输入“c0”和“c1”的函数。例如,参照多路复用器310,当“c0”为“0”时,“SO”326被传递给多路复用器312;当“c0”为“1”时,“SI”320被传递给多路复用器312。同样地,当“c1”为“1”时,多路复用器310传递给多路复用器312的输出;当“c1”为“0”时,传递“PI”322。多路复用器312的输出则因此传递给捕获触发器(SFF)314。
输入“PI”322同样的被连接到一个两输入XOR门16的一个输入上,XOR(异或)门的另一个输入为一个期望值输入“lxd_expect”330。XOR门316的输出被连接到一个两输NAND(与非)门318的一个输入上,NAND(与非)门的另一个输入为使能输入信号“lxd_enable”332。NAND门318的输出则被连接到捕获触发器314的异步复位端。捕获触发器314因此输出一个移位输出“SO”326,作为多路复用器312的输出,“TCK”信号324和NAND门318的输出的函数(在触发器的异步复位端)。
在一个实施方式中,一个JTAG测试访问端口(TAP)控制器被编程以便提供控制输入“c0”和“c1”,以及“lxd_expect”和“lxd_enable”信号,它们可以从指令寄存器中获得。在一些实例中,利用在其上实现了单元300的集成电路所实现的驱动边界扫描(BS)单元驱动“lxd_expect”信号。而在另外的实例中,寄存器用于提供“lxd_expect”值或按照需要提供其它的值。
当进入测试电平交叉的模式中时,“SI”320输入和控制输入“c0”和“c1”都被断言为“1”。“SI”320的“1”从多路复用器310的“1”输入传递给多路复用器312的“1”输入,用“1”预加载SFF314。该预加载例如是使用EXTEST或者预加载指令来进行的,例如在单元300所实现的那个IC的JTAG TAP控制器的Shift-DR状态/模式期间。一旦SFF314被预加载为“1”,“c0”被置为“0”而“c1”则仍为“1”来保持SFF处的值。在这个预加载期间中(直到准备检测逻辑电平交叉),将“lxd_enable”保持为低来消除SFF314的非期望复位。
当准备检测电平交叉时,则进入到捕获模式(例如,JTAG TAP控制器的Capture-DR状态/模式起作用)。在此捕获模式中,当适当的指令被载入(例如,当载入指令“LXD”)时,在驱动边界扫描单元的更新信号之后的“TCK”324信号的上升沿处使能“lxd_enable”信号被置“1”。在具有边界扫描单元300的IC中的第二边界扫描单元可以提供期望值信号“lxd_expect”330。当在使能信号的转换期间之后(即,从“0”变到“1”)后,与期望值“lxd_expect”330相反的值出现在输入IC引脚“PI”322上,则触发器314被复位。特别的是,参考XOR门316,比较“PI”322和“lxd_expect”330的值,如果“PI”与“lxd_expect”不同,则XOR门316将“1”传递给NAND门318。当XOR门316的输出和“lxd_enable”322都为“1”时,NAND门318传递“0”。
在一些实施方式中,检查“PI”322的真实值来验证被指示为从SFF314移位输出的“0”逻辑电平交叉。在这样的实施方式中,检测到“SO”326为“0”时,TAP控制器断言“c1”为“0”,以便传递“PI”322的值给SFF314。通过“SO”326来将该值移位输出并验证此值。
采用上述方法,单元300因此可以在信号的实际更新之后“TCK”周期(“TCK”信号324的周期)的前一半检测非期望电平交叉。另外,单元300支持观测模式(即,正常模式),也就是“c1”被断言为“0”,多路复用器312因此将“PI”322传递给SFF314。而SFF314的值则可以因此通过“SO”326被移位输出(如果希望,则通过设置“c0”为“0”且“c1”为“1”来保持在SFF)。
在另一个实施例中,调整“TCK”信号的频率和工作周期(duty cycle)来查明当非期望电平交叉发生时的相关信息。调整“TCK”324,使得实现单元300的电路的周期被调整得较早或者较晚,从而“SO”326较早或者较晚地表示电路的条件。相对于逻辑电平交叉,电路的条件可以在不同的时刻来检测。这种方法可以通过多种方式来实现。例如,在采用“TCK”324的第一频率或者工作周期来检测电平交叉时,电路的时钟会针对迭代边界扫描而被重复地调整为较早,直到检测不到逻辑电平交叉。检测不到逻辑电平交叉的时间表示逻辑电平交叉尚未发生就是逻辑电平交叉没有发生而持续的时间(例如,较近的前一次迭代表示逻辑电平交叉)。可以利用这个时间将特定的电路和/或电路的操作条件同逻辑电平交叉相关联。也可以使用在此讨论的其它一些实施例来实施这个方法,例如下面参考图4和图5所讨论的实施例。
在更特定的实施方式中,一旦逻辑电平交叉如上所述已经被准确测量(pinpoint),则通过相对较小幅度调整“TCK”来进行边界扫描迭代。这样的迭代可以更准确的准确测量出逻辑电平交叉发生的时间,和与此逻辑电平交叉相对应的电路和电路操作条件。
这里的各个附图共享了类似的或者在不同的附图中以类似的方式实施的特征。鉴于此,为了简明,不再对后续附图中电路(和它们的功能)的细节做特别详细的说明。
图4示出了根据本发明的另一示例性实施例通过采用2个可复位触发器SFF414和SFF418来检测逻辑电平交叉的边界扫描单元400。边界扫描单元400的各个部分与图3中的边界扫描单元300相似。这里,在图4中,两个多路复用器410彼此连接,并且连接到输入和输出信号“SI”420输出信号“PI”422和SFF414的输出上。用多路复用器410和412来实现控制“c0”和“c1”。
多路复用器412的输出被连接到SFF414上,而SFF414的异步输出被连接到NAND门440上,并且由“TCK”424驱动。NAND门440具有作为其输入的“PI”422(反相)和“lxd_enable”信号432。SFF414的输出被传递给多路复用器410的“0”输入和两输入多路复用器416的“1”输入。两输入多路复用器416的“0”输入被连接到信号“SO”426上。多路复用器410的输出被传递给SFF418,作为被连接到多路复用器410和416上的控制“c0”的函数,SFF418的异步复位端被连接到NAND门442上,NAND门422具有作为其输入的“PI”422和“lxd_enable”432。
在使能信号“lxd_enable”432从“0”转变到“1”后,如果检测到“PI”422为“0”,则SFF414被复位。特别的,当“lxd_enable”为高(“1”)时,并且“PI”422处的“0”经反相后在NAND门440处为“1”,则SFF414的异步复位上就为“0”。如果“PI”422为“1”,则SFF418被复位,因为NAND门442的两个输入“lxd_enable”432和“PI”422均为“1”时,传给SFF418的值为“0”。利用输入引脚处的无错转换(从“0”到“1”或从“1”到“0”的转换),SFF414和SFF418中的一个会被复位并且包含“0”。触发器418和414均被预加载为“1”也属于扫描链的一部分。在Shift-DR期间来自触发器SFF414和SFF418每一个的输出被移位输出,其中SFF414和SFF418二者的复位条件(SFF414和SFF418均包含“0”)指示逻辑电平交叉。
有效地,由于SFF414和418的值依次通过“SO”426被移位输出,所以在不同实例中,“PI”422的值会产生不同的值分别传到在不同时间下NAND门440和442的输入,从而使得一对值通过“SO”426而进行顺序地移位输出。例如,当“lxd_enable”432从“0”转换到“1”时,“PI”422为“1”,则SFF418被复位而SFF414不被复位。但是,如果“PI”422的值从“0”转换到“1”(逻辑电平交叉)。而“lxd_enable”432为高(“1”),SFF414也被复位。同样地,当“lxd_enable”432从“0”转变到“1”,“PI”422为“0”时,但“PI”与“1”交叉而“lxd_enable”432仍保持高(“1”),则SFF414和SFF418相继被复位。在“PI”422从“0”变到“1”或从“1”变到“0”而检测出逻辑电平交叉发生的情况下,SFF414和SFF418的值都作为“0”而被移位输出并且因此检测出逻辑电平交叉。此方法如同在图5中将描述的方法一样,不需要通过知道期望逻辑电平来检测逻辑电平交叉。
图5示出了根据本发明的另一示例性实施例通过采用包含有从两个触发器(SFF414和SFF418)得到输出的异或(XOR)功能的方法来检测逻辑电平交叉的边界扫描单元500。图5所示的标号为410到442的各个电路可以以与图4所示的边界扫描单元400大致一致的方式来实现。
相对于图4所示的电路,图5中增加的电路包括:将SFF418的输出和“SO”426作为其输入的两输入异或门55。异或(XOR)门550的输出被连接到多路复用器552的“1”输入上,多路复用器552的“0”输入被连接到“PI”422上,多路复用器552的输出被连接到多路复用器412的“0”输入上。“lxd_capture”信号534用来控制多路复用器552。
相对于图4的电路,图5与图4中共有的电路之间的差异如下:多路复用器412的“0”输入被连接到多路复用器552的输出上,而不是连接到“422”上。SFF410的输出是“SO”426,而非SFF416的“1”输入(在此为“SI”420)。SFF418的输出不是“SO”,而是被连接到异或(XOR)门550的两输入之一上。
在图5中,两个触发器414和418的输出的XOR功能(在XOR门550处)用于检测在“lxd_enable”432(处于“1”)的断言期间是否观测到电平交叉。特别地,SFF414和418分别由与非门(NAND)440和442按照图4中所示的类似方法来实现。在SFF414和418被预加载为“1”后,并在“lxd_enable”432为“1”的断言期间内,“PI”422的逻辑电平交叉导致两个触发器都被复位。
在捕获模式(例如TAP控制器的Capture-DR模式)中当合适的指令(例如“LXD”)被激活(“1”)并且“c1”保持为低(“0”)时,在SFF414中捕获到XOR门550的值,它是通过多路复用器552和412而传递的。当该指令“LXD”被激活时,SFF414的输入由多路复用器552所选择的XOR门550的XOR输出来驱动。在这个应用中,SFF414可以选择为作为扫描链的一部分的触发器(即,单元500所应用的IC所实现的)。利用此方法,由如图4所示的外侧单元所执行的对SFF414和SFF418的值的比较,被XOR门550自动实现。也就是,当XOR门550的输出是“0”时,指示了逻辑电平交叉。
在一些实施方式中,参照图3和图5所示的示例性实施例,当“lxd_enable”和“lxd_capture”信号都保持低时,边界扫描单元表现为正常观测的BS单元。仅当选择“LXD”指令时,通过使得“lxd_enable”和“lxd_capture”信号激活来实现此方法。相似的方法前面已经描述过,其中依照多路复用器上断言的信号而被传递并且移位输出的“PI”信号馈送给提供移位输出信号的触发器。
上面描述的和图中所示的各种实施例,仅仅是对本发明的说明,而不应该解释为对本发明的限制。基于上述讨论和图示,本领域的普通技术人员很容易认识到可以对本发明进行各种修改和变化,而不用严格遵循这里所示的和所描述的示例性实施例和应用。例如,可以用各种电路,边界扫描单元装置和其他的方法来实现上述的示例性实施例和实施方式中的一个或者多个。图中所示或者所描述的表现为单个的或者集成的电路的其他电路功能可以使用其他的电路来实现类似的功能。例如,如参照附图所描述的利用触发器进行复位以及相关的NAND门控制复位端的方法,NAND门可以由AND门来替代,从而实现触发器复位方法(例如,“高”激活)。另外,触发器的复位功能可以用置位功能来实现,也就是“0”(而不是“1”)预加载在触发器中。这些修改和变化并没有超出后面所附的权利要求所限定的本发明的真实精神和范围。