CN116368478A - 通过高速并行总线实施的高带宽ijtag - Google Patents

通过高速并行总线实施的高带宽ijtag Download PDF

Info

Publication number
CN116368478A
CN116368478A CN202180071337.XA CN202180071337A CN116368478A CN 116368478 A CN116368478 A CN 116368478A CN 202180071337 A CN202180071337 A CN 202180071337A CN 116368478 A CN116368478 A CN 116368478A
Authority
CN
China
Prior art keywords
network
data
networks
circuit
coupled
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180071337.XA
Other languages
English (en)
Inventor
J-F·科特
J·布尔夏德
J·高德特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SIEMENS INDUSTRY SOFTWARE Ltd
Original Assignee
SIEMENS INDUSTRY SOFTWARE Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SIEMENS INDUSTRY SOFTWARE Ltd filed Critical SIEMENS INDUSTRY SOFTWARE Ltd
Publication of CN116368478A publication Critical patent/CN116368478A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1206Location of test circuitry on chip or wafer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements

Abstract

一种电路中的系统包括:第一网络(710),其可配置为在电路中并行地传输数据,第一网络(710)包括电路块接口设备,每个电路块接口设备耦合到电路中的一个电路块的端口;多个第二网络(720、725、727),所述多个第二网络(720、725、727)中的每一者可配置为在电路中的一个电路块中串行地传输数据;第三网络(730),其可配置为在耦合到所述多个第二网络(720、725、727)时在电路中串行地传输数据;以及多个网络交换接口设备(740、745、747),所述多个网络交换接口设备(740、745、747)中的每一者可配置为基于存储在所述多个接口设备(740、745、747)中的每一者中的控制信号来将第一网络(710)或第三网络(730)耦合到所述多个第二网络(720、725、727)中的一者。

Description

通过高速并行总线实施的高带宽IJTAG
相关申请
本申请要求于2020年8月19日提交的且将Jean-Francois Cote等人命名为发明人的第63/067,534号美国临时专利申请的权益,该美国临时专利申请以引用的方式全文并入本文。
技术领域
当前公开的技术涉及集成电路设计、验证、制造和测试领域。所公开技术的各种实施方式对于增加电路中的串行网络的带宽可能特别有用。
背景技术
随着功能集成到单个半导体器件中的持续进行,半导体器件中的功能单元的数量持续显著增加。功能单元可以是温度传感器或电压传感器、时钟控制电路(例如锁相环(Phase-Locked Loop,PLL))、扫描配置控制器、或用于存储或逻辑测试的整个内建自测试(Built-In Self-Test,BIST)引擎。接入、控制、观察、或(以更一般的术语来说)“操作”大量这些功能单元对设计者来说是一个挑战。
传统上,功能单元在单个串行接入网络中是菊花链式的。这导致用于将数据位移入和移出这些功能块的许多扫描操作。为了减少接入时间,可以采用可重新配置的扫描网络来代替传统的串行接入网络。基于接入网络的特殊元件的某些编程操作,可重新配置扫描网络的一些部分可以进入和离开扫描路径。符合IEEE 1687-2014和IEEE 1149.1-2013的典型可重新配置扫描网络被称为IJTAG网络。
由于是动态可重新配置的,因此IJTAG网络可使操作期望功能单元(例如设置电路的测试模式的所有方面)所需的移位操作的数量最小化。随着器件的复杂性增加以及需要提取的诊断数据量的增长,IJTAG扫描网络的低速和串行性质成为瓶颈并且使得测试时间增长。
已经尝试通过在控制的转换前后引入时钟间隙(时钟拉伸)或通过在控制信号上添加流水线级以及在扫描路径上添加匹配级来提高移位速度。不幸的是,这两种技术是相互排斥的。虽然这些解决方案可以帮助达到低的100MHz范围中的移位速度,但是由于解决方案的串行性质和在跨越时钟域时使用的两个边沿时序,增加的带宽仍然比它需要的低几个数量级。
IEEE 1687-2014标准支持使用多链扫描接口,但跨物理块边界路由许多扫描链是昂贵的、非常混乱的并且与现代的基于核心的设计流程不兼容。
发明内容
所公开技术的各个方面涉及增加串行网络的带宽。在一个方面,存在一种电路中的系统,包括:第一网络,其可配置为在电路中并行地传输数据,第一网络包括电路块接口设备,每个电路块接口设备耦合到电路中的一个电路块的端口;多个第二网络,所述多个第二网络中的每一者可配置为在电路中的一个电路块中串行地传输数据;第三网络,其可配置为在耦合到所述多个第二网络时在电路中串行地传输数据;以及多个网络交换接口设备,所述多个网络交换接口设备中的每一者可配置为基于存储在多个接口设备中的每一者中的控制信号来将第一网络或第三网络耦合到所述多个第二网络中的一者。
存储在多个接口设备中的每一者中的控制信号可以在第三网络耦合到所述多个第二网络中的一者时使用第三网络来更新,或者在第一网络耦合到所述多个第二网络中的一者时使用第一网络来更新。
所述多个第二网络可以是可配置的,以便以菊花链模式、并行模式、广播模式或其任何组合耦合到第一网络。
第一网络可以以是所述多个第二网络操作的时钟频率的倍数(大于1)的时钟频率操作,并且所述多个第二网络可以以时隙复用模式耦合到第一网络。
所述多个第二网络中的第二网络可以包括可配置来并行传输数据的部分,所述部分可配置以并行耦合到第一网络。
所述多个第二网络中的一个或多个第二网络可以采用时钟拉伸技术来提高移位速度。
第三网络和所述多个第二网络可以符合IEEE 1687标准(IJTAG,内部联合测试行动组)。
第一网络还可包括复用设备、流水线设备、或两者,复用设备可配置为基于通过耦合到第一网络或第三网络的多个第二网络可递送到复用设备的另一控制数据来改变第一网络的数据流路径。
所述多个第二网络中的每一者可以包括配置接口设备,所述配置接口设备耦合到其中一个电路块接口设备,用于所述配置接口设备的配置数据通过耦合到第一网络或第三网络的多个第二网络中的每一者而可递送,所述配置数据包括用于确定电路块接口设备中的电路块接口设备是否被激活的数据以及用于确定在第一网络中传输的数据的哪一部分将被所激活的电路块接口设备中的每一者捕获、替换、或捕获和替换的数据。
电路块接口设备可包括寄存器和时钟信号生成逻辑,并且第一网络包括数据信道且可配置为连续地传输多个数据包,所述多个数据包中的每一者具有多个位,多个位中的每一者被分配给其中电路块接口设备被激活的其中一个电路块,所述多个位的数量等于或大于用于传输所述多个数据包的数据信道的数量。所述多个数据包中的每一者可以包括用于测试一个或多个电路块的测试模式的或经压缩的测试模式的一个或多个位,耦合到其中一个电路块的端口的电路块接口设备中的时钟信号生成逻辑可配置以生成用于基于扫描的测试的时钟信号,并且所述其中一个电路块的端口可以包括扫描链的输入和输出、一个或多个测试控制器的输入和输出、或其组合,所述一个或多个测试控制器中的每一者包括解压缩器和压缩器。
在另一方面,存在存储计算机可执行指令的一个或多个非瞬态计算机可读介质,所述计算机可执行指令用于使得计算机执行方法,所述方法包括:在电路设计中生成上述系统。
在又一方面,存在一种用于测试电路的方法,包括:经由耦合到多个第二网络的第三网络传输网络配置数据,第三网络被配置为在电路中串行传输数据,所述多个第二网络中的每一者被配置为在电路中的其中一个电路块中传输数据,所述网络配置数据包括用于多个网络交换接口设备的第一网络交换接口控制数据,第一网络交换接口控制数据使得多个网络交换接口设备中的每一者能够将所述多个第二网络中的一者从第三网络解耦且将所述多个第二网络中的所述一者耦合到第一网络,第一网络被配置为在电路中并行传输数据;经由耦合到所述多个第二网络的第一网络传输设置数据,所述设置数据包括用于电路块的测试设置数据、用于第一网络与电路块之间的通信的网络设置数据、以及用于多个网络交换接口设备的第二网络交换接口控制数据,第二网络交换接口控制数据使得所述多个网络交换接口设备中的每一者能够将所述多个第二网络中的一者与第一网络解耦并且将所述多个第二网络中的所述一者耦合到第三网络;以及经由第一网络将测试数据传输到电路块。
该方法还可以包括:经由耦合到所述多个第二网络的第三网络来传输接口启用数据,以在传输测试数据之前启用第一网络与电路块之间的接口设备。
网络配置数据还可以包括用于多个复用设备的网络重新配置数据,所述网络重新配置数据使得第一网络绕过其中零个、其中一个或其中多个所述电路块。
在所附独立权利要求和从属权利要求中阐述了某些创新方面。从属权利要求的特征可以与独立权利要求的特征以及其它从属权利要求的特征适当地组合,而不仅仅是如权利要求中所明确阐述的那样。
上文已经描述了本发明的各个方面的某些目的和优点。当然,应当理解,不必所有这些目的或优点都可以根据公开技术的任何特定实施例来实现。因此,例如,本领域技术人员将认识到,本公开技术可以以实现或优化如本文所教导的一个优点或一组优点的方式来具体实施或进行,而不必实现如本文所教导或建议的其他目的或优点。
附图说明
图1例示了IJTAG网络的示例。
图2例示了电路中的数据流系统的示例,其中,串行网络用于设置用于与并行数据流网络通信的核心接口。
图3例示了图2中的并行数据流网络的数据信道的位分配的示例。
图4例示了可以根据所公开技术的各种实施例实施的电路块接口设备(例如图2中的第一接口设备)的示例。
图5例示了可以根据所公开技术的各种实施例实施的流水线设备的示例。
图6例示了可以根据所公开技术的各种实施例实施的复用设备的示例。
图7例示了可以根据所公开技术的各种实施例实施的利用数据流网络来增加串行网络带宽的系统的示例。
图8例示了根据所公开技术的各种实施例的网络交换接口设备的示例。
图9例示了根据所公开技术的各种实施例的网络交换接口设备的详细框图的示例。
图10例示了根据所公开技术的各种实施例的以菊花链模式耦合到三个本地串行网络的数据流网络的示例。
图11例示了符合IEEE 1149.1-2013标准的TAP状态机的示例。
图12例示了表,所述表描述图10中的其中一些扫描/存储元件在19个连续时钟周期(0-18)中的位的示例。
图13例示了根据所公开技术的各种实施例的以广播模式耦合到三个本地串行网络的数据流网络的示例。
图14例示了根据所公开技术的各种实施例的以并行模式耦合到两个本地串行网络的数据流网络的示例。
图15例示了根据所公开技术的各种实施例的以时隙复用模式耦合到两个本地串行网络的数据流网络的示例。
图16例示了根据所公开技术的各种实施例的可配置为并行耦合到数据流网络(第一网络)的本地网络的存储器BIST(内建自测试)部分的示例。
图17例示了流程图,所述流程图示出可以根据所公开技术的各种示例实施的经由由数据流网络启用的高带宽串行网络来设置电路测试的过程。
图18例示了可以根据所公开技术的各种实施例实施的描述用于提高IJTAG网络的移位速度的时钟拉伸技术的一些时钟和控制信号的波形的示例。
图19例示了可以与所公开技术的各种实施例一起采用的可编程计算机系统。
具体实施方式
一般考虑
所公开技术的各个方面涉及增加电路中的串行网络的带宽。在以下描述中,出于解释的目的阐述了许多细节。然而,本领域普通技术人员应当认识到,可以在不使用这些具体细节的情况下实践所公开的技术。在其它情况下,没有详细描述公知的特征,以避免混淆本公开的技术。
方法或设备的详细描述有时使用像“传输”和“启用”的术语来描述所公开的方法或设备功能/结构。这些术语是高级抽象概念。对应于这些术语的实际操作或功能/结构将根据特定实施方式而变化,并且容易被本领域普通技术人员所辨别。本领域普通技术人员还应当理解,术语“耦合”意味着“直接连接或间接连接”。
尽管为了方便呈现而以特定的顺序次序描述了所公开的方法的操作,但是应当理解,除非下面阐述的特定语言需要特定的排序,否则这种描述方式涵盖重新排列。例如,在一些情况下,按顺序描述的操作可以重新排列或同时执行。而且,为了简单起见,所公开的流程图和框图通常不示出特定方法可结合其它方法使用的各种方式。
可重新配置的扫描网络
符合IEEE 1687-2014的可重新配置扫描网络(IJTAG)尤其提供对用于制造测试的嵌入式测试和测试设置的接入。图1例示了IJTAG网络100的示例。在IJTAG网络100中,段插入位(SIB)123在测试数据输入(TDI)端口115与测试数据输出(TDO)端口117之间的两个不同接入路径之间切换,这两个端口都属于测试接入端口(TAP)110。较短的接入路径直接将SIB 123连接到SIB 121,而较长的接入路径通过两个测试数据寄存器(TDR)135和136将SIB123连接到SIB 121。ScanMux(复用器)140基于所接收的控制数据选择接入网络100的两个扫描段(一个通过TDR 133,另一个通过TDR 134)中的一者。对于这两个要接入的扫描段,SIB 121和122需要相应地编程。扫描路径还可以绕过TDR 132、133和134,并直接从TDR 131到达SIB 122。
如图1所示,扫描网络100中的可重新配置扫描网络的可编程组件(例如SIB 121、122和123以及ScanMux 140)允许动态配置接入网络,以将特定功能块带入接入网络的范围内。这些可编程组件可以通过将配置数据移位到控制寄存器的移位触发器中并且将移位的位锁存到它们中的并行锁存器中来编程。电路的功能块由TDR 131-136控制。这种动态接入网络配置使操作期望的功能块所需的移位操作的数量最小化。
这种可重新配置的扫描网络的其它优点源自于根据功率和时钟域配置接入网络的能力。例如,将SIB放置在功率域之前允许该功率域之外的接入网络的部分在功率域被关闭时保持可操作。以类似的方式,分层设计实体可以被带入和带出接入网络的范围,从而使得能够绕过相应设计层次实体内的每个功能对象。
数据流网络
随着集成电路在某些情况下增长到包括数十亿个晶体管,实际上不可能将其设计成平坦的而没有分区。电子设计自动化(EDA)工具将不能够高效地处理它们。另外,从一种设计到另一种设计,存在知识产权(IP)的显著重复使用。被称为片上系统(SOC)的大型设计包括用作构建块(也称为电路块)的大量“核心”。通常首先单独设计和验证每个核心,然后与其他核心集成以形成整个SOC。这被称为分层设计。理想地,尽可能多的设计和验证工作在更小且更易管理的核心级完成,集成和芯片级验证留在顶级完成。在核心级完成的所有工作也可以在处理核心时更早完成,并且在SOC一起更接近下线截止日期时被移出关键路径。
随着设计的增长,核心层次级别的数量也在增长。分层设计从两个层次级别开始:核心级和芯片级/顶级。越来越多地,首先将核心集成到较大尺寸的核心或子系统中,然后集成到芯片中。这表示了三个核心层次级别。一些大的设计可能具有甚至更多的核心层次级别。
正如设计采用分层设计来管理复杂度一样,扫描测试也是如此。在分层测试方法中,将扫描链和压缩逻辑插入到每个核心中。在核心级生成并验证测试模式以测试核心中的大部分逻辑。随后,将来自多个核心的模式重新定标或映射到顶级。它们也与同时要测试的其它核心的重新定标模式合并。除了重新定标为测试每个核心的大部分内容而生成的模式之外,测试模式生成还在下一级运行,直到测试核心之间的外围逻辑以及集成核心时涉及的该级的逻辑。如果该较高的级别不是芯片级,则这些模式也将必须被重新定标到芯片级。
不管层次级别如何,递归地应用相同的测试模式生成和重新定标方法,但是当使用传统的扫描接入方法时,可测性设计(DFT)的规划和设计会随着额外的层次结构而变得更加复杂。
在SOC中规划和实施分层扫描测试具有几个挑战,大多数涉及提供对核心中的扫描信道的接入。扫描信道是连接到扫描链的输入/输出、用于测试压缩的测试控制器的输入/输出、或其组合的信道。当将核心级模式重新定标并合并到顶级时,通常由于两个原因在任何给定时间测试核心的子集:首先,功率耗散可能不允许同时测试所有核心;其次,有限数量的芯片级输入/输出(I/O或端口)不允许同时接入所有的核心级信道。
对于要同时测试的任何核心群组,当采用传统的点对点扫描接入方法(有时称为星形或开关拓扑)时,它们的信道输入和信道输出需要连接到不同的芯片级I/O。由于通常存在更多的芯片级I/O可用于扫描的核心级信道,引脚可用性限制了可同时测试的核心的数量,并增加了群组(测试会话)的数量。每个顶级I/O可以连接到每个群组中的不同核心级引脚。随着核心的数量增长以及可用于扫描测试的芯片级I/O的数量减少,可以从芯片级I/O直接接入并同时测试的核心越来越少。
SOC设计(被称为基于图块的布局)中的相对最近的趋势是进一步增加DFT架构的复杂性和约束。在基于图块的设计中,实际上所有逻辑和布线都在核心内完成而不是在顶级完成。当集成到芯片中时,核心彼此抵接,连接从一个核心流向下一个核心。核心之间的任何连接必须流经它们之间的核心。逻辑上处于顶级的逻辑必须被推入核心中并被设计为核心的一部分。
已经提出了一种通用的基于包的核心接入架构来克服测试接入挑战。在这种架构中,每个并行字包括信息所去往的核心(或核心群组)的地址、指示如何处理该数据的操作码以及实际有效载荷。这种架构可以对异构的核心和相同的核心都起作用。对于相同的核心,该架构支持激励和期望值(良好机器响应)的高效广播、片上比较、以及通过/失败数据的累积,使得可以在接近恒定的时间内测试多个相同的核心。然而,由于该架构在每个并行字中的显著开销,这种架构不是高效的。不是有效载荷的信息(即地址和操作码)占用一定数量的位。非常窄的总线将不能支持这种架构。
另一种基于包的核心接入架构保留所有用于实际有效载荷的流式包,并采用单独的串行网络来设置用于与并行数据流网络通信的核心接口。图2例示了电路中的这种数据流系统200的示例。数据流系统200包括第一网络220和第二网络230。第一网络220包括第一数据信道227(第一数据总线)和第一接口设备225(也称为电路块接口设备)。第二网络230包括一个或多个第二数据信道237(第二数据总线)和第二接口设备235。第一接口设备225包括寄存器和时钟信号生成逻辑。每个第一接口设备225耦合到电路200中的其中一个电路块210的端口。每个第一接口设备225还耦合到其中一个第二接口设备235。第一数据信道227的输入和输出可以连接到一些芯片级I/O(GPIO焊盘)。一个或多个第二数据信道237的输入和输出也可以连接到一些其它芯片级I/O(GPIO焊盘)。虽然在图2中仅示出了一个第一网络220和一个第二网络230,但是电路可以具有多个第一网络220和一个或多个第二网络230。
第一网络220中的第一数据信道可以由充当流水线级的触发器的链形成。这些触发器中的一些触发器在第一接口设备225中。第一网络220可配置为连续地传输多个数据包。所述多个数据包中的每一者都具有m位,并且m位中的每一者都被分配给预配置为工作模式的其中一个电路块210。第二网络230可配置为向第一接口设备传输配置数据。所述配置数据包括用于确定第一接口设备230中的第一接口设备是否被激活的数据以及用于确定所述多个数据包中的每一者的哪个位或哪些位将被所激活的每个第一接口设备捕获、替换、或捕获和替换的数据。第二网络230可符合IEEE 1687标准(IJTAG,内部联合测试行动组)。
电路块的工作模式可以是用于测试的模式或用于加载/卸载数据的模式。在此,m等于或大于用于输送多个数据包的第一数据信道225的数量。虽然用于制造的电路的第一数据信道的总数通常是固定的,但是用于输送多个数据包的第一数据信道的数量可以小于该总数。例如,用于晶片测试的设置可能不需要所有第一数据信道225,而用于测试系统中的同一电路的设置可以利用所有第一数据信道225。
假设用于输送数据包的第一数据信道的数量是n。第一网络220以每个时钟周期一个n位字的速率输送数据包,并且如果m大于n,则根据所公开技术的各种实施例,针对特定n位字(总线字)的对处于工作模式的电路块210的位分配每LCM(m,n)/n个时钟周期重复一次。在此,LCM(m,n)为m和n的最小公倍数。在一些位分配中,将所述多个数据包中的每一者中的位划分为位块,除了在块的两端的位之外,每个位块中的位彼此相邻,并且将每个位块分配给预配置为工作模式的其中一个电路块。被激活的每个第一接口设备可以被配置为跟踪其数据位在每个总线字中的位置。
图3例示了用于输送数据包的第一数据信道225的位分配的示例。在该示例中,两个电路块(核心A和核心B)被驱动通过第一网络——与第一网络交换数据。它们中的一个在电路块的每个移位周期加载/卸载四位,而另一个加载/卸载五位。因此,每个数据包的尺寸是九位。在图中,“AI”意指用于核心A的数据位,“BI”意指用于核心B的数据位。对于要移位一次的两个电路块,必须递送九个位(m=9)。用于数据流的第一数据信道的数量是八个,即,用于递送数据的总线是八位宽(n=8)。因此,9位包在每个8位总线字内的位置随每个包轮换,以使用每个总线字的每个位,而不使用浪费的填充。因此,每九个时钟周期,包在相同的总线位位置开始,即,每九个时钟周期重复相同的位分配。进一步地,每个数据包被分成两个位块。例如,图3中的数据包310被分成由AI64-AI60构成的位块和由BI60-BI63构成的位块。
数据包的宽度可以根据需要而定,并且可以根据需要占用尽可能多的总线字。内部信道要求(在图3所示的示例中为9位)与芯片级的可用扫描引脚(在这种情况下为用于扫描的8x2个I/O)解耦。如果包比总线宽并占据多个总线字,则电路块可以比每个总线移位周期一次更少地移位,但是将可以驱动所需的所有电路块。因为扫描总线通常可以以比电路块内部移位更高的速率来移位数据,所以即使电路块并不每个总线时钟周期移位,也可以保持电路块以其最大速率移位。总线(第一数据信道)可被重新编程以减少其有效宽度,使得当分组尺寸(m)小于物理总线宽度(n)时,其不超过包中的位数。
根据所公开技术的各种实施例实施的用于在电路中流式数据的系统可以用于在电路中递送不同类型的数据,例如要存储在存储电路中的数据和用于电路测试的数据。如前所述,现今广泛使用分层设计。基于所公开技术的基于包的流可以极大地提高SOC设计的测试效率和灵活性。为了测试一个或多个电路块,每个数据包包括测试模式的或经压缩的测试模式的一个或多个位。用于测试不同电路块的多个测试模式的位可以包含在每个数据包中,如图3例示。
图4例示了第一接口设备(电路块接口设备)400的示例。第一接口设备400具有标记为IJTAG静态寄存器的多个静态寄存器410。在流开始之前,编程(配置)多个静态寄存器410。IJTAG或其它接入机制可用于递送用于编程的数据。如果接口设备400被激活,则从bus_in 420接收的总线字中的位将被选择并递送到scan_in端口430,而从scan_out端口440接收的位将在总线字通过接口设备400的bus_out 450输送出之前被添加到总线字。因为属于给定核心的字内的数据位在包宽度不是总线宽度的倍数时可轮换,所以接口设备400可使用移位器来接入正确位。另外,由于包内去往核心的位可以跨多个总线字分布,所以在核心内的一个移位周期可以发生之前,数据可能必须跨多个总线时钟周期来收集。对于卸载的数据也会发生同样的情况。从核心的一个周期卸载的数据将被插入到包中。该数据可以占用总线字的一部分、整个总线字或者跨多个总线字分布的位。接口设备400具有用于生成edt_clock 475和shift_cap_clock 480的时钟生成电路470。有限状态机490(FSM)用于生成scan_en 492和edt_update 495的信号。如果接口设备400未被激活,则原始总线字将绕过内部逻辑且由复用器460选择以用于输出。由此可见,接口设备400充当第一网络内的流水线级。
参考图2,第一网络220还可以包括复用设备、流水线设备或两者。图5例示了可以根据所公开技术的各种实施例实施的流水线设备500的示例。流水线设备500可用于满足时序要求。如果在两个核心之间或者在核心与芯片级I/O之间存在长的路线,则通过该路线的传播延迟可能妨碍以高频率操作总线的能力。为了减小数据在一个周期内传播通过的路线的长度,可以插入一个或多个流水线设备。一旦数据开始通过第一网络220传播,并且网络中的节点被数据填充,则不存在由于额外节点(例如那些流水线级)的存在而导致的吞吐量损失。这些节点的存在可能稍微增加测试应用开始时的时延。
图6例示了可以根据所公开技术的各种实施例实施的复用设备600的示例。复用设备600可选择两个在前节点中的哪一者连接到其输出。该节点可以服务于与段插入位(SIB)节点在IJTAG标准中相同的目的。这种节点允许网络的一部分被包括在网络中,或者在不工作时被绕过。这尤其使得能够:1)通过在不使用时绕过网络的一部分来提高效率;2)通过允许例如包括网络的不工作部分的核心被断电而不中断网络的工作部分的操作,来提高操作灵活性;3)当在网络的一部分中存在制造缺陷时,在不禁用整个网络的情况下绕过网络的该部分;以及4)链接网络的不同宽度部分,从而允许在绕过较小宽度部分时使用整个较宽宽度。
利用数据流网络来增加串行网络带宽的架构
图7例示了可以根据所公开技术的各种实施例实施的利用数据流网络来增加串行网络带宽的系统700的示例。系统700包括可配置为在电路中并行传输数据的第一网络710(数据流网络)。第一网络710包括电路块接口设备(图中未示出)。每个电路块接口设备耦合到电路中的一个电路块的端口。图4示出了电路块接口设备的示例。第一网络710可被配置为经由电路块接口设备将测试数据传输到电路块中和将测试响应数据传输到电路块之外。图7示出了电路包括三个电路块:电路块750、电路块755和电路块757。
第一网络710可以使用先前讨论的两个基于包的核心接入系统来实施,例如图2所示的数据流系统200。与数据流系统200一样,第一网络710可以是可重新配置的—能够绕过一个或多个电路块以用于数据流。为了实现可配置性,可以采用类似于图6所示的复用设备600的设备。
系统700还包括:多个第二网络,其包括第二网络720、725和727;以及第三网络730。多个第二网络中的每一者可配置为在电路中的其中一个电路块中串行地传输数据。如图7所示,第二网络720、725和727分别位于电路块750、755和757中。第三网络730可配置为在耦合到所述多个第二网络的同时在电路中串行地传输数据。多个第二网络和第三网络730可以是可重新配置的。传统上,第二网络720、725和727永久地耦合到第三网络730,以形成可用于例如测试设置的单个网络。这种网络的示例是IJTAG网络。
系统700还包括多个网络交换接口设备,例如图7所示的网络交换接口设备740、745和747。多个网络交换接口设备中的每一者都可配置为基于存储在多个接口设备中的每一者中的控制信号将第一网络710或第三网络730耦合到所述多个第二网络中的一者。例如,网络交换接口设备740可以允许第二网络720耦合到第一网络710或第三网络730。第一网络710本质上是并行的,并且能够以比由第三网络730和多个第二网络的组合形成的串行网络高得多的频率操作。因此,将第一网络710耦合到第二网络720、725和727的能力可显著增加用于将数据传输到由第二网络720、725和727服务的设备的电路块750、755和757中和从其中传输出数据的带宽。
图8例示了根据所公开技术的各种实施例的网络交换接口设备800的示例。网络交换接口设备800被配置为基于存储在寄存器840中的控制信号将本地网络820(第二网络)耦合到串行网络830(第三网络)或并行网络810(第一网络)。存储在寄存器840中的控制信号可以在串行网络830耦合到本地网络820时使用串行网络830来更新,或者在并行网络810耦合到本地网络820时使用并行网络810来更新。由此可见,可以动态地改变经由并行网络810或串行网络830对本地网络820的接入。
图9例示了根据所公开技术的各种实施例的网络交换接口设备900的详细框图的示例。网络交换接口设备900被配置为根据存储在SIH使能寄存器950中的控制位将本地IJTAG网络920(第二网络)耦合到串行网络930(第三网络)或并行网络910(第一网络)。存储在SIH使能寄存器950中的控制位可根据更新操作之前的存储位经由第一网络910或第三网络930来更新。第一网络910具有八个数据信道SiN-SoN(N=0-7)。在此,当本地IJTAG网络920耦合到第一网络910时,数据信道Si0-So0用于传输TMS信号(tms)。测试模式选择(TMS)信号是由符合联合测试行动组(JTAG,IEEE 1149.1)的TAP控制器提供的控制信号。网络交换接口设备900可以使用TMS信号来驱动有限状态机(FSM)949,该有限状态机控制数据寄存器的移位、捕获和更新操作。当本地IJTAG网络920耦合到第一网络910时,其它七个数据信道SiN-SoN(N=1-7)可用于将数据传输到本地IJTAG网络920中和将数据从其中传输出去。
网络交换接口设备900包括用于第一网络910的两个寄存器940和945。寄存器940和945中的每一者可包括八个触发器,一个触发器用于第一网络910的一个数据信道。寄存器940和945中用于每个信道的两个触发器串联连接,从而充当第一网络910的两个流水线级。
网络交换接口设备900还包括复用器设备947、主机SIB 960、配置SIB 970、广播控制单元980和配置单元990。复用器设备947被配置为选择七个数据信道SiN-SoN(N=1-7)中的一者以耦合到本地IJTAG网络920。主机SIB 960和配置SIB 970是典型的IJTAG段插入位设备,如图1所示的设备。主机SIB 960确定是否绕过本地IJTAG网络920。配置SIB 970确定是否绕过配置单元990。配置单元990被配置为存储控制位,其包括确定本地IJTAG网络920在哪个时钟周期(存储在寄存器991中)以及从第一网络910的哪个数据信道接收数据(存储在寄存器992中)的控制位和表示全局时钟频率与本地时钟频率之间的比率的控制位(存储在寄存器993中)。广播控制单元980被配置为存储控制位,以便在广播模式下从本地IJTAG网络920输出,这将在下面讨论。
当数据流网络(例如,图7中的第一网络710)耦合到本地串行网络(例如,图7中的第二网络720、725和727)时,可以采用至少三种耦合模式。图10例示了根据所公开技术的各种实施例的以菊花链模式耦合到三个本地串行网络1020、1030和1040的数据流网络1010的示例。数据流网络1010具有八个数据信道。最右边的数据信道1060被配置为传输TMS信号,并且第二最右边的数据信道1050被配置为将数据传输到三个本地串行网络1020、1030和1040中和将数据从其中传输出去。三个本地串行网络1020、1030和1040中的每一者都具有两位移位元件(1025、1035和1045)。三个两位移位元件1025、1035及1045中的每一者并联耦合到存储元件(锁存元件)(1027、1037和1047)。在菊花链模式中,当基于在数据信道1060中移位的TSM位选择本地串行网络时,在数据信道1050中移位的数据位可以被移位到本地串行网络中。菊花链模式还可以允许基于在数据信道1060中移位的TSM位将由本地串行网络捕获的数据位移位回到数据信道1050中。
图11例示了符合IEEE 1149.1-2013标准的TAP状态机1100的示例。TAP状态机1100在测试时钟(TCK)沿上前进,其中测试模式选择(TMS)引脚的值控制该行为。假设TAP状态机1100在测试-逻辑-复位处开始,那么当TMS=0时,测试时钟将TAP状态机1100移动到运行-测试/空闲状态中,且然后当TMS=1时,将TAP状态机1100移动到选择路径的状态中,从而进入数据寄存器路径1110或进入可进入指令寄存器路径1120的选择-IR状态。数据寄存器路径1110包括三个重要状态:捕获-DR、移位-DR和更新-DR。在捕捉-DR状态中,数据寄存器的移位元件加载存在于其并行输入处的数据位。在移位-DR状态中,数据寄存器的移位元件沿着从TDI到TDO的扫描路径移位数据位。在更新-DR状态中,数据寄存器的移位元件中的数据位被锁存到数据寄存器的存储元件中。
图12例示了表1200,表1200描述图10中的其中一些扫描/存储元件在19个连续时钟周期(0-18)中的位的示例。TMS行指示本地串行网络1020的TAP状态机的状态改变顺序:运行-测试/空闲(1)→选择-DR-扫描(0)→捕获-DR(0)→移位-DR(0)→移位-DR(0)→移位-DR(0)→移位-DR(0)→移位-DR(0)→移位-DR(1)→退出1-DR(1)→更新-DR(1)→选择-DR-扫描(0)→捕获-DR(0)→移位-DR(0)→移位-DR(0)→移位-DR(0)→移位-DR(0)→移位-DR(0)→移位-DR(0)。在此,括号中的数字是TMS值。两位移位元件1025在时钟周期4捕获C5和C4,并随后移出这些值。类似地,两位移位元件1035捕获并移出C3和C2,并且两位移位元件1045捕获并移出C1和C0。“C0 C1 C2 C3 C4 C5”的序列最终经由数据流网络1010移出。同时,S5和S4移位至两位移位元件1025中且然后在时钟周期12锁存至存储元件1027中,S3和S2移位至两位移位元件1035中且然后在时钟周期16锁存至存储元件1037中,并且S1和S0移位至两位移位元件1045中且然后在时钟周期18锁存至存储元件1047中。
图13例示了根据所公开技术的各种实施例的以广播模式耦合到三个本地串行网络1320、1330和1340的数据流网络1310的示例。类似于图10所示的设置,数据流网络1310的最右边的数据信道1360被配置为传输TMS信号,并且第二最右边的数据信道1350被配置为将数据传输到三个本地串行网络1320、1330和1340中。然而,与菊花链模式不同,广播模式的本地串行网络通常接收并锁存相同的数据位(S1和S0用于本地串行网络1320、1330和1340中的每一者,与之相对,S1和S0用于本地串行网络1040,S3和S2用于本地串行网络1030,以及S5和S4用于本地串行网络1020)。而且,仅最后一个本地串行网络1340经由数据流网络1310捕获并移出数据位。TAP状态机的状态改变序列可以是:运行-测试/空闲(0)→运行-测试/空闲(1)→选择-DR-扫描(0)→捕获-DR(0)→移位-DR(0)→移位-DR(1)→退出1-DR(1)→更新-DR(0)→运行-测试/空闲(0)→运行-测试/空闲(0)→运行-测试/空闲(0)→运行-测试/空闲(0)→运行-测试/空闲(0)→运行-测试/空闲(0)→运行-测试/空闲(0)。
图14例示了根据所公开技术的各种实施例的以并行模式耦合到两个本地串行网络1420和1430的数据流网络1410的示例。在该设置中,数据信道1440被配置为将数据传输到本地串行网络1420中和将数据从其中传输出来,并且另一数据信道1450被配置为将数据传输到本地串行网络1430中和从其中传输出来。根据所公开技术的各种实施例,上述三种模式(菊花链模式、广播模式和并行模式)可以单独使用或以任何组合使用。例如,一些本地网络可以以广播模式耦合到数据流网络,并且其余本地网络可以经由数据流网络的不同数据信道以菊花链模式耦合到数据流网络。
图15例示了根据所公开技术的各种实施例的以时隙复用模式耦合到两个本地串行网络1520和1530的数据流网络1510的示例。数据流网络通常可以在高100MHz范围内操作,而IJTAG网络由于各种限制经常在20MHz操作。使用一些技术,例如在一些特殊时钟周期周围的时钟拉伸,IJTAG网络可在低100MHz范围内操作。为了匹配本地IJTAG网络,数据流网络可以以降低的时钟速度操作。当需要更多带宽时,可以使用时隙复用模式。在图15所示的示例中,假设数据流网络1510在400MHz操作,而假设本地串行网络1520和1530在100MHz操作。本地串行网络1520和1530可以被预配置为每由数据流网络1510扫描四个位就扫描输入一位一次。也可以对每四个位内待扫描的位的特定位置(称为相位)进行编程。在图15所示的设置中,两个本地串行网络1520和1530的相位相同。两个本地串行网络1520和1530可以以菊花链模式或广播模式操作。为了针对不同的本地网络使用不同的相位,本地网络可以以并行模式耦合到数据流网络1510,如图13所示,即耦合到数据流网络1510的不同数据信道。
本地网络主要串行地传输数据。在一些情况下,本地网络可以包括可配置为并行地传输数据的部分。该部分可以并行地耦合到数据流网络。图16例示了根据所公开技术的各种实施例的可配置为并行耦合到数据流网络1630(第一网络)的本地网络1620的存储器BIST(内建自测试)部分1610的示例。网络交换接口设备1640具有两个设备1645和1647。当设备1645将本地网络1620耦合到第三网络1650时,存储器BIST部分1610可以经由组合串行网络接入。当设备1647将本地网络1620耦合到数据流网络1630时,设备1647可将存储器BIST部分1610并行耦合到数据流网络1630,即,耦合到数据流网络1630的多个数据信道。这可以进一步增加带宽,因为可以同时接入多个存储器BIST控制器。
图17例示了流程图1700,流程图1700示出可以根据所公开技术的各种示例实施的经由由数据流网络启用的高带宽串行网络来设置电路测试的过程。为了便于理解,将参考图7中的系统700和图17例示的流程图1700来描述根据所公开技术的各种实施例可以采用的、用于经由由数据流网络启用的高带宽串行网络来设置电路测试的方法。然而,应当理解,根据所公开技术的各种实施例,利用数据流网络来增加串行网络带宽的系统的替代实施方式可以用于执行用于经由由流程图1700例示的数据流网络启用的高带宽串行网络来设置电路测试的方法。同样,根据所公开技术的各种实施例,系统700可以被用来执行用于经由由数据流网络启用的高带宽串行网络来设置电路测试的其他方法。
在流程图1700的操作1710中,经由耦合到包括第二网络720、725和727的多个第二网络的第三网络730传输网络配置数据。网络配置数据包括用于包括网络交换接口设备740、745和747的多个网络交换接口设备的第一网络交换接口控制数据。第一网络交换接口控制数据使得多个网络交换接口设备中的每一者能够将多个第二网络中的一者与第三网络730解耦且将多个第二网络中的一者耦合到第一网络710。网络配置数据还可以包括用于多个复用设备的网络重新配置数据。网络重新配置数据可使得第一网络710绕过其中零个、其中一个、或其中多个所述电路块。多个第二网络是可重新配置的,并且最初被配置为绕过除了用于启用多个网络交换接口设备的设备之外的大多数设备,并且可能是复用设备。因此,即使使用第三网络730,数据传输的速度也不会太慢。
在操作1720中,经由耦合到包括第二网络720、725和727的多个第二网络的第一网络710来传输设置数据。该设置数据包括用于电路块的测试设置数据、用于第一网络与电路块之间的通信的网络设置数据、以及用于多个网络交换接口设备的第二网络交换接口控制数据。测试设置数据可以包括用于设置各种测试控制器、片上时钟控制器、锁相环(PLL)时钟生成器或其任意组合的数据。网络设置数据可用于设置例如电路块接口设备(例如,图2所示的第一接口设备225)的设备。与经由第三网络730相比,特别考虑到所传输的数据量,经由第一网络710的数据传输速度显著提高。第二网络交换接口控制数据在设置之后使得多个网络交换接口设备中的每一者能够将多个第二网络中的一者与第一网络710解耦且将多个第二网络中的一者耦合到第三网络730。
可选地,在操作1730中,经由耦合到所述多个第二网络的第三网络730传输接口启用数据,以在传输测试数据之前启用第一网络710中的电路块接口设备。为了确保某些类型的第一网络710的适当操作,在电路块接口设备被接通之前,第一网络710应为空闲的。
在操作1740中,经由第一网络710将测试数据传输到电路块。然后可以测试电路块。
所公开的技术可以允许电路块中的本地网络不仅受益于电路中的数据流网络的并行性质和高速能力,而且通过在被流水线化的同时使用时钟拉伸技术来提高它们自己的操作速度。图18例示了描述时钟拉伸技术的一些时钟和控制信号的波形的示例。为了满足一些时钟控制信号的时序要求,用于IJTAG网络的时钟通常运行得慢于100MHz。然而,当没有控制信号在转换时,通过增加时钟频率可以显著地减轻这种限制。如图18所示,ToCaptureEn信号1810和ToShiftEn信号1820在捕获DR状态1850期间和紧跟捕获DR状态1850的移位DR状态1860期间转换,而ToShiftEn信号1820和ToUpdateEn信号1830在退出1DR状态1870和更新DR状态1880期间转换。因此,tck_stretched时钟信号1840仅需要针对四个状态拉伸。在图中,该信号被拉伸以便以慢三倍的速度运行。应注意,图18仅为示例,并且可将时钟拉伸为以比所示速度快或慢的速度运行。
在图10中拉伸全局时钟1070是不可行的,因为本地串行网络1020、1030和1040被流水线化,并且不同时变为相同的状态。另一方面,用于这些本地串行网络1020、1030和1040的本地生成的时钟可被拉伸以用于捕获DR状态、紧跟在捕获DR状态之后的移位DR状态、退出1DR状态、以及更新DR状态,同时全局时钟1070保持运行。因此,每个本地串行网络可以利用所公开技术的各种实施方式以200MHz或更高的移位速率操作,这比大型电路中的典型IJTAG网络快得多。图9中的配置单元990中的寄存器995可用于存储控制信号,该控制信号确定对于这四个状态将被拉伸的时钟周期的数量。
说明性计算环境
涉及在电路设计中生成流式数据的系统的所公开技术的一些实施例可以通过由计算设备(例如可编程计算机)执行软件指令来实施。图19示出了这种可编程计算机(计算设备1901)的说明性示例。如该图中看到的,计算设备1901包括具有处理单元1905和系统存储器1907的计算单元1903。处理单元1905可以是用于执行软件指令的任意类型的可编程电子设备,但是通常将是微处理器。系统存储器1907可以包括只读存储器(ROM)1909和随机存取存储器(RAM)1911。如本领域普通技术人员将理解的,只读存储器(ROM)1909和随机存取存储器(RAM)1911两者都可以存储用于由处理单元1905执行的软件指令。
处理单元1905和系统存储器1907直接或通过总线1913或替代的通信结构间接地连接到一个或多个外围设备。例如,处理单元1905或系统存储器1907可以直接或间接地连接到一个或多个额外的存储储存设备,例如“硬”磁盘驱动器1915、可移动磁盘驱动器1917、光盘驱动器1919或闪存卡1921。处理单元1905和系统存储器1907也可以直接或间接地连接到一个或多个输入设备1923和一个或多个输出设备1925。输入设备1923可以包括例如键盘、定点设备(例如鼠标、触摸板、触笔、轨迹球或操纵杆)、扫描仪、相机和麦克风。输出设备1925可以包括例如监视器显示器、打印机和扬声器。对于计算机1901的各种示例,一个或多个外围设备1915-1925可以用计算单元1903容纳在内部。替代性地,一个或多个外围设备1915-1925可以在计算单元1903的壳体的外部,并且通过例如通用串行总线(USB)连接而连接到总线1913。
对于一些实施方式,计算单元1903可以直接或间接地连接到一个或多个网络接口1927,以用于与组成网络的其他设备通信。网络接口1927根据例如传输控制协议(TCP)和因特网协议(IP)的一个或多个通信协议将来自计算单元1903的数据和控制信号转换成网络消息。而且,接口1927可以采用任意合适的连接代理(或代理的组合)来连接到网络,包括例如无线收发器、调制解调器或以太网连接。这样的网络接口和协议在本领域中是公知的,因此在此将不进行更详细的讨论。
应当理解,计算机1901仅作为示例例示,并且其并非旨在是限制性的。所公开技术的各种实施例可以使用一个或多个计算设备来实施,该一个或多个计算设备包括图19中例示的计算机1901的组件,仅包括图19中例示的组件的子集,或者包括组件的替代组合,包括图19中未示出的组件。例如,可以使用多处理器计算机、布置到网络中的多个单处理器和/或多处理器计算机或两者的某种组合来实施所公开技术的各种实施例。
结论
虽然已经关于包括执行所公开技术的当前优选模式的特定示例描述了所公开技术,但是本领域技术人员将理解,存在落入如所附权利要求中阐述的所公开技术的精神和范围内的上述系统和技术的许多变化和置换。例如,虽然图2所示的数据流网络已经被用于描述所公开的技术,但是应当理解,可以利用其他并行网络来增加串行网络带宽。

Claims (15)

1.一种电路中的系统,包括:
第一网络,其可配置为在所述电路中并行地传输数据,所述第一网络包括电路块接口设备,每个所述电路块接口设备耦合到所述电路中的其中一个电路块的端口;
多个第二网络,所述多个第二网络中的每一者可配置为在所述电路中的其中一个所述电路块中串行地传输数据;
第三网络,其可配置为在耦合到所述多个第二网络时在所述电路中串行地传输数据;以及
多个网络交换接口设备,所述多个网络交换接口设备中的每一者可配置为基于存储在所述多个接口设备中的每一者中的控制信号来将所述第一网络或所述第三网络耦合到所述多个第二网络中的一者。
2.根据权利要求1所述的系统,其中,存储在所述多个接口设备中的每一者中的所述控制信号可以在所述第三网络耦合到所述多个第二网络中的所述一者时使用所述第三网络来更新,或者在所述第一网络耦合到所述多个第二网络中的所述一者时使用所述第一网络来更新。
3.根据权利要求1所述的系统,其中,所述多个第二网络是可配置的,以便以菊花链模式、并行模式、广播模式、或其任何组合耦合到所述第一网络。
4.根据权利要求1所述的系统,其中,所述第一网络以是所述多个第二网络操作的时钟频率的倍数(大于1)的时钟频率操作,并且所述多个第二网络以时隙复用模式耦合到所述第一网络。
5.根据权利要求1所述的系统,其中,所述多个第二网络中的第二网络包括可配置来并行传输数据的部分,所述部分可配置以并行耦合到所述第一网络。
6.根据权利要求1所述的系统,其中,所述多个第二网络中的一个或多个第二网络采用时钟拉伸技术来提高移位速度。
7.根据权利要求1所述的系统,其中,所述第三网络和所述多个第二网络符合IEEE1687标准(IJTAG,内部联合测试行动组)。
8.根据权利要求1所述的系统,其中,所述第一网络还包括复用设备、流水线设备、或两者,所述复用设备可配置为基于通过耦合到所述第一网络或所述第三网络的所述多个第二网络可递送到所述复用设备的另一控制数据来改变所述第一网络的数据流路径。
9.根据权利要求1所述的系统,其中,所述多个第二网络中的每一者包括配置接口设备,所述配置接口设备耦合到其中一个所述电路块接口设备,用于所述配置接口设备的配置数据通过耦合到所述第一网络或所述第三网络的所述多个第二网络中的所述每一者而可递送,所述配置数据包括用于确定所述电路块接口设备中的电路块接口设备是否被激活的数据以及用于确定在所述第一网络中传输的所述数据的哪一部分将被所激活的所述电路块接口设备中的每一者捕获、替换、或捕获和替换的数据。
10.根据权利要求1所述的系统,其中,所述电路块接口设备包括寄存器和时钟信号生成逻辑,并且所述第一网络包括数据信道且可配置为连续地传输多个数据包,所述多个数据包中的每一者具有多个位,所述多个位中的每一者被分配给其中所述电路块接口设备被激活的其中一个所述电路块,所述多个位的数量等于或大于用于传输所述多个数据包的所述数据信道的数量。
11.根据权利要求10所述的系统,其中,所述多个数据包中的每一者包括用于测试一个或多个所述电路块的测试模式的或经压缩的测试模式的一个或多个位,耦合到其中一个所述电路块的端口的电路块接口设备中的所述时钟信号生成逻辑可配置来生成用于基于扫描的测试的时钟信号,并且所述其中一个所述电路块的所述端口包括扫描链的输入和输出、一个或多个测试控制器的输入和输出、或其组合,所述一个或多个测试控制器中的每一者包括解压缩器和压缩器。
12.存储计算机可执行指令的一个或多个计算机可读介质,所述计算机可执行指令用于使计算机执行方法,所述方法包括:
在电路设计中生成根据权利要求1至11中任一项所述的系统。
13.一种用于测试电路的方法,包括:
经由耦合到多个第二网络的第三网络传输网络配置数据,所述第三网络被配置为在所述电路中串行传输数据,所述多个第二网络中的每一者被配置为在所述电路中的其中一个电路块中传输数据,所述网络配置数据包括用于多个网络交换接口设备的第一网络交换接口控制数据,所述第一网络交换接口控制数据使得所述多个网络交换接口设备中的每一者能够将所述多个第二网络中的一者从所述第三网络解耦且将所述多个第二网络中的所述一者耦合到第一网络,所述第一网络被配置为在所述电路中并行传输数据;
经由耦合到所述多个第二网络的所述第一网络传输设置数据,所述设置数据包括用于所述电路块的测试设置数据、用于所述第一网络与所述电路块之间的通信的网络设置数据、以及用于所述多个网络交换接口设备的第二网络交换接口控制数据,所述第二网络交换接口控制数据使得所述多个网络交换接口设备中的每一者能够将所述多个第二网络中的一者与所述第一网络解耦并且将所述多个第二网络中的所述一者耦合到所述第三网络;以及
经由所述第一网络将测试数据传输到所述电路块。
14.根据权利要求13所述的方法,其中,所述网络配置数据还包括用于多个复用设备的网络重新配置数据,所述网络重新配置数据使得所述第一网络绕过其中零个、其中一个、或其中多个所述电路块。
15.根据权利要求13所述的方法,还包括:
经由耦合到所述多个第二网络的所述第三网络来传输接口启用数据,以在传输测试数据之前启用所述第一网络与所述电路块之间的接口设备。
CN202180071337.XA 2020-08-19 2021-06-24 通过高速并行总线实施的高带宽ijtag Pending CN116368478A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063067534P 2020-08-19 2020-08-19
US63/067,534 2020-08-19
PCT/US2021/038797 WO2022039831A1 (en) 2020-08-19 2021-06-24 High bandwidth ijtag through high speed parallel bus

Publications (1)

Publication Number Publication Date
CN116368478A true CN116368478A (zh) 2023-06-30

Family

ID=76921361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180071337.XA Pending CN116368478A (zh) 2020-08-19 2021-06-24 通过高速并行总线实施的高带宽ijtag

Country Status (5)

Country Link
US (1) US20230297534A1 (zh)
EP (1) EP4182801A1 (zh)
JP (1) JP2023538595A (zh)
CN (1) CN116368478A (zh)
WO (1) WO2022039831A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11635463B1 (en) * 2020-07-15 2023-04-25 Marvell Asia Pte Ltd System and methods for IJTAG reduced access time in a hierarchical design

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425101B1 (en) * 1998-10-30 2002-07-23 Infineon Technologies North America Corp. Programmable JTAG network architecture to support proprietary debug protocol
US10775436B1 (en) * 2017-03-17 2020-09-15 Mentor Graphics Corporation Streaming networks efficiency using data throttling

Also Published As

Publication number Publication date
WO2022039831A1 (en) 2022-02-24
EP4182801A1 (en) 2023-05-24
US20230297534A1 (en) 2023-09-21
JP2023538595A (ja) 2023-09-08

Similar Documents

Publication Publication Date Title
US10545189B2 (en) Granular dynamic test systems and methods
US20160349320A1 (en) Remote bus wrapper for testing remote cores using automatic test pattern generation and other techniques
US7725791B2 (en) Single lead alternating TDI/TMS DDR JTAG input
US10788530B1 (en) Efficient and flexible network for streaming data in circuits
JP4966974B2 (ja) Icテスト方法及びその装置
US11899063B2 (en) Generating multiple pseudo static control signals using on-chip JTAG state machine
US20060090110A1 (en) Connecting multiple test access port controllers on a single test access port
JP2007524088A (ja) 検査アーキテクチャ及び方法
US11680985B2 (en) Falling clock edge JTAG bus routers
Côté et al. Streaming scan network (SSN): An efficient packetized data network for testing of complex SoCs
JP2003222656A (ja) 半導体集積回路装置とその設計方法
US7185251B2 (en) Method and apparatus for affecting a portion of an integrated circuit
CN116368478A (zh) 通过高速并行总线实施的高带宽ijtag
Jagannadha et al. Advanced test methodology for complex SoCs
Larsson et al. IEEE Std. P1687. 1: Translator and protocol
US20040139377A1 (en) Method and apparatus for compact scan testing
Xu et al. Wrapper design for testing IP cores with multiple clock domains
US20240027526A1 (en) Method, system and device of serializing and de-serializing the delivery of scan test data through chip i/o to reduce the scan test duration of an integrated circuit
JP2013088400A (ja) 半導体集積回路の検査方法および半導体集積回路
Yi et al. Core test wrapper design to reduce test application time for modular SoC testing
QURAISHI et al. Design of an Efficient Test Circuit for Effective Scan Test Bandwidth Management for Circuits with EDT
Ebadi et al. Design and implementation of reconfigurable and flexible test access mechanism for system-on-chip
JP2004159071A (ja) クロック生成回路および半導体集積回路
JP2001042007A (ja) テスト回路

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination