CN102713864A - 用于基于分组转换的逻辑复制的方法和*** - Google Patents

用于基于分组转换的逻辑复制的方法和*** Download PDF

Info

Publication number
CN102713864A
CN102713864A CN2011800069124A CN201180006912A CN102713864A CN 102713864 A CN102713864 A CN 102713864A CN 2011800069124 A CN2011800069124 A CN 2011800069124A CN 201180006912 A CN201180006912 A CN 201180006912A CN 102713864 A CN102713864 A CN 102713864A
Authority
CN
China
Prior art keywords
logic
source
grouping
subchannel
channel
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.)
Granted
Application number
CN2011800069124A
Other languages
English (en)
Other versions
CN102713864B (zh
Inventor
R·埃里克森
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.)
Synopsys Inc
Original Assignee
Synopsys Inc
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 Synopsys Inc filed Critical Synopsys Inc
Publication of CN102713864A publication Critical patent/CN102713864A/zh
Application granted granted Critical
Publication of CN102713864B publication Critical patent/CN102713864B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

描述了一种用于对源电路的表示进行编译的方法和***,所述源电路的表示包括与由多个时钟域驱动的源逻辑的部分相关的一个或多个源子信道。每个源子信道可以产生分组,所述分组携带来自源逻辑的一个部分的信号数据。目的电路的表示可以被编译成包括与复制源逻辑的目的逻辑的部分相关的一个或多个目的子信道。每个目的子信道可以经由分组将信号数据转发到目的逻辑的一个部分。转换逻辑可以被配置成作为虚拟信道将源子信道映射到目的子信道,从而从源子信道将分组转发到目的子信道。单个队列可以被配置成与转换逻辑耦合,从而将来自源子信道的分组记录到分组流一段延迟期间,从而分配到目的子信道。目的逻辑可以仿真与延迟了延迟期间的多个时钟域同步的源逻辑。

Description

用于基于分组转换的逻辑复制的方法和***
技术领域
本发明的实施例涉及调试集成电路的领域,以及更具体地涉及使用基于分组转换的虚拟信道来复制逻辑的调试集成电路。
背景技术
设计集成电路(IC)或***通常需要验证和/或调试以确保设计正确性。一个通常的实践可以基于通过克隆模块并通过FIFO(快进快出)延迟缓冲器向模块输送(pipe)输入来为逻辑模块提供可视化的硬件辅助验证(HAV)。US专利No.7,213,216描述了这种实践的示例。可以使用缓冲的输入在克隆的逻辑模块上执行逻辑模块的测试用例的仿真。然而,如果模块包含多个时钟(或在多个时钟域),HAV可能需要对每个时钟域的所有输入以分开的FIFO来缓冲。所以,需要另外的硬件和复杂的软件来在每个时钟域中同步仿真操作。
而且,在片上RAM(随机存取存储器)中执行的FIFO可能受到未使用的存储器空间的可用性的限制。为了增加FIFO中的缓冲量,可以采用如DDR2(双倍数据速率2)或SDRAM(同步动态RAM)的片外存储器。然而,板上空间和/或引脚线限制可能会阻止对于每个时钟域使用单个物理存储器来实施FIFO。从而,可能需要从单个物理存储器构建用于不同的时钟域的多个FIFO。
然而,片外存储器可能受固定的数据宽度的限制。另外,对于每个FIFO的分开的地址空间可能具有严格的带宽限制,例如由存储器内容转换中的显著开销所引起。
所以,硬件辅助设计验证的传统数据缓冲没有提供有效的和可扩展的解决方案。而且,可以在下面的美国专利中找到关于逻辑设计或验证的背景信息:5,036,473;5,452,231;5,596,742;5,661,662;5,761,484;5,812,414;和6,581,191。
发明内容
本发明的实施例包括编译源电路的表示的方法和设备,所述源电路的表示包括与由多个时钟域驱动的源逻辑的部分相关的一个或多个源子信道。每个源子信道可以产生携带来自源逻辑的部分中的一个部分的信号数据的分组。目的(destination)电路的表示可以被编译成包括与复制源逻辑的目的逻辑的部分相关的一个或多个目的子信道。每个目的子信道可以经由分组将信号数据转发到目的逻辑的部分中的一个部分。转换逻辑可以被配置成作为虚拟信道将源子信道映射到目的子信道,以将分组从源子信道转发到目的子信道。单个队列可以被配置成与转换逻辑耦合,从而将来自源子信道的多个时钟域的分组记录到延迟期间的分组流中,以分配到目的子信道。目的逻辑可以对与延迟了延迟期间的多个时钟域同步的源逻辑进行仿真。
在本发明的另一个方面,可以产生分组来携带来自源逻辑的多个部分的信号数据以用于克隆源逻辑的部分的目的逻辑。分组可以包括标识符,该标识符对将源逻辑的多个部分映射到目的逻辑的多个部分的虚拟信道进行标识。队列可以将分组作为信号数据的轨迹存储一段期间。可以根据标识的虚拟信道将分组从队列中分配到目的逻辑的部分中。可以从分组中析取信号数据,以更新目的逻辑的部分,以用于目的逻辑仿真对于轨迹期间具有延迟的源逻辑。
在本发明的又另一个方面中,可以产生分组来表示来自由多个时钟域驱动的源逻辑的多个部分的信号数据。每个部分可以属于一个时钟域。可以根据包括报头字段和净荷字段的分组格式来格式化分组。净荷字段可以携带信号数据。报头字段可以携带标识符,所述标识符对将源逻辑的多个部分映射到目的逻辑的多个部分的虚拟信道进行标识,所述目的逻辑克隆源逻辑。每个分组可以存储在对应于源逻辑的多个部分的多个队列中的一个队列中。可以从交错到与每个时钟域同步的分组流中的多个队列仲裁(arbitrate)分组以用于根据虚拟信道到目的(或目标)逻辑的分配。
在本发明的又另一个方面中,集成电路可以包括在多个不同的时钟域下操作的源逻辑的多个部分,和复制源逻辑的目的逻辑的多个部分。集成电路中的存储可以存储将源逻辑的多个部分映射到目的逻辑的多个部分中的虚拟信道。集成电路中的集中器逻辑可以使得携带来自源逻辑的多个部分的信号数据的分组串行化成存储中的队列以用于延迟。每个分组可以标识虚拟信道中的一个虚拟信道。集成电路中的分配器逻辑可以根据延迟随后的虚拟信道来将来自从队列中获取的分组的信号数据分配到目的逻辑的部分中。
在本发明的又另一个方面中,可以从一个或多个IC选择源逻辑的多个部分以用于复制。组装(packing)逻辑可以***源逻辑中,以产生用于表示IC的所选择的部分的信号数据的分组。每个分组可以包括源标识符,所述源标识符标识一个所选择的部分。析取逻辑可以被***复制源逻辑的所选择的部分的目的逻辑。可以从在用于所复制部分的析取逻辑中的获得的分组中提取信号数据。每个接收的分组可以包括目的标识符,所述目的标识符标识所复制部分中的一个所复制部分。转换逻辑可以被配置成作为虚拟信道以将信号数据经由记录信号数据的轨迹的延迟逻辑在延迟期间从所选择的部分转发到所复制部分中,来将目的标识符映射到源标识符。可以在显示装置中显示IC的表示。可以编译硬件描述语言(HDL)代码来产生表示IC的技术独立的RTL(寄存器传递级)网表。
在本发明的又另一个方面中,分组转换集线器可以利用存储器(片外存储器)的接近全潜在带宽将携带来自源电路的不同时钟域的信号数据的数据分组汇集成单个缓冲器(例如FIFO)中的单个分组流。可以在存储器中以近似于他们实时发生的顺序(仲裁错误容限内)来被放入分组中以分配到目的电路。使用单个缓冲器的能力可以允许分组转换集线器消除同步对应于不同的时钟域的分开的缓冲器的复杂性。在其他实施例中,分组转换集线器可以从芯片到芯片给路由信号提供灵活性,获取特征数据,和/或发起用于***提出的测试矢量。
本发明包括方法和执行所述方法的设备,所述设备包括执行所述方法的数据处理***和当在数据处理***上执行时引起***执行所述方法的计算机可读介质。
根据附图和下面的详细描述,本发明的其他特征将会显而易见。
附图说明
以示例的方式而非限制的方式示出了本发明,其中在附图中,相同的参考数字指示相似的元件。
图1示出了本发明的逻辑仿真的一个实施例;
图2是示出了用于为了逻辑仿真或逻辑设计测试来转换分组的示例性***的框图;
图3是示出了用于建立源逻辑和目的逻辑之间的虚拟信道的示例性结构的框图;
图4是示出了用于转换分组的集线器控制逻辑的示例性结构的框图;
图5是示出了携带用于逻辑信道的数据的分组格式的示例的示意图;
图6是示出了用于分组转换集线器的示例性配置的框图;
图7是示出了根据本发明的一个实施例用于逻辑仿真的进程的流程图;
图8是示出了经由虚拟信道转发分组的进程的实施例的流程图;
图9是示出了汇聚和分配分组的进程的实施例的流程图;
图10是示出了可以实施本发明的某些方面的合适的计算环境的框图。
具体实施方式
描述了用于使用虚拟信道来复制逻辑的***和方法的实施例。在下面的描述中,提出了多个特定的细节。然而,可以理解,在没有所述特定细节的情况下可以实施本发明的实施例。在其他实例中,为了对本说明书的理解不模糊,没有详细显示已知的电路、结构和技术。
贯穿本说明书,关于“一个实施例”或“实施例”,意思是与实施例关联描述的特定的特征、结构或特性包括在至少一个本发明的实施例中。从而,贯穿本说明书在各处出现的短语“在一个实施例中”或“在实施例中”不是必须都指相同的实施例。而且,特定的特征、结构或特性可以在一个或多个实施例中以任何合适的方式结合。
在一个实施例中,分组转换集线器可以被编程为将来自原始电路(或源逻辑)的信号数据汇聚为单个分组流,该单个分组流被馈送到外部(例如片外)存储器中的FIFO(先入先出)缓冲器中。可以从FIFO获取分组流,或者可以将分组流转发到例如复制原始电路的克隆电路中。在一些实施例中,克隆电路可以不需要复制整个原始电路。而是,克隆电路可以复制原始电路的特定部分,例如,在特定的时钟域下操作。在美国专利No.7,213,216中描述了使用复制至少一部分原始电路的克隆电路的***的示例,上述专利以引用的方式结合于此。
在一个实施例中,分组转换集线器可以包括仲裁器逻辑和/或集线器控制逻辑。仲裁器逻辑可以汇聚成FIFO多分组,所述多分组在几乎相同的时间(例如,在某个时钟周期内)到达转换逻辑。集线器控制逻辑可以依序从FIFO获取用于以实质上等于分组的进入速率的速率分配的分组。单个FIFO(在单个时钟上操作)可以从源或原始电路中的多个时钟域缓冲分组,而不使用用于源或原始电路中的每个时钟域的多个小FIFO。该单个FIFO可以提供缓冲的分组到目的或克隆电路,所述目的或克隆电路包括多个时钟域,所述多个时钟域对应于(和同步于)源或原始电路中的多个时钟域。在一些实施例中,FIFO可以利用多于片外存储器的80%的带宽。
分组转换集线器可以定义在哪里经由虚拟信道从原始或源电路的一部分发送信号数据到目的电路的另一部分。通常,虚拟信道可以对应于一起从源电路转发以之后某刻在复制的目的电路中使用的信号数据组。来自不同的时钟域的信号数据可以属于分开的虚拟信道。分组转换集线器在源侧和目的侧两侧的两个或多个时钟域之间保持数据信号的同步。以这种方式,目的装置中的克隆的逻辑可以以同初始逻辑如何接收数据信号同步的方式来接收数据信号。
信号数据可以被组装成对应于数据路径或信道的分组。例如,具有64比特大小的16字的分组可以作为数据路径携带来自一千个信号的信号数据。分组可以包括用于集线器(或分组转换集线器)的信道标识符,以确定向哪转发分组。在一个实施例中,集线器可以在根据信道标识符来索引(或寻址)的ROM中存储信道描述符或虚拟信道定义,以指定例如分组的源、分组的目的地、分组中的字数(携带信号数据)、分组类型和/或其他描述信息等。
通常,信道描述符可以把用于分组的源和目的地组成一对。集线器可以依赖于信道描述符来确定向哪里转发在分组流中接收的每个分组。可选地,集线器可以基于分组类型对分组执行某些操作,如存储器读取/写入。
在一个实施例中,源电路和目的电路可以基于两个分开的可编程装置,如在转换逻辑间与集线器耦合的FPGA(现场可编程逻辑阵列)装置。在一些实施例中,源电路和目的电路可以基于外部耦合到集线器的一个单个FPGA装置,其中分组经由高速TDM(时域复用器)从FPGA装置出去到集线器并从集线器回到FPGA装置。
在一个实施例中,源电路中的每个芯片(如FPGA芯片)可以与源集中器逻辑合成,以从芯片中的不同数据路径或信道收集分组,并将分组穿过接口发送到分组转换集线器。目的电路中的每个芯片(如FPGA芯片)可以与目的分配器逻辑合成,以经由与分组转换集线器耦合的接口接收分组,并将分组分配到芯片中的不同数据路径中。
在一个实施例中,分组转换集线器可以以不同的时钟域展现来自电路的某些部分的信号数据的轨迹以用于设计验证。例如,设计者可以将电路配置成例如经由片外FIFO在一百万个周期上选择一千个信号来采样作为集线器中记录的分组流。可以在从集线器读取的分组流再生的信号数据上执行分析,来提取例如表征数据,如功率消耗(例如,基于信号转换率)、存储器缓存性能、或设计的其他方面等。
在另一个实施例中,分组转换集线器可以耦合到一个电路上。分组转换集线器可以提供携带来自片外存储器(例如,经由FIFO)的信号数据的分组流,以将测试矢量馈送到电路的某些部分上,例如,以确保输入的特定序列和产生已知的序列输出。在其他实施例中,分组转换集线器可以在分开的电路(例如,没有克隆关系)间(如在FPGA装置中)对信号数据进行路由。集线器可以被配置成在不需要改变物理电缆连接器的情况下在不同的装置中提供所需的连接。
在一个实施例中,分组可以按分组到达的顺序被写入存储器中(例如在单个时钟的控制下操作的片外FIFO)。当足够数量的分组被写入到存储器中时,存储器的读取可以以实质上等于分组到达的速率的速率开始。分组可以基于信道描述符随后被分配到各个目的地。在一些实施例中,可以使用一般的计时器或通过验证特定时钟的所有目的地都接收到数据来同步到达目的地的第一分组的声明。在对目的地处的第一分组同步之后,随后的分组可以通过使用原始电路的时钟的副本来保持同步。
图1示出了本发明的逻辑仿真的一个实施例。逻辑100可以被配置成用于调试用户逻辑130的***。在一个实施例中,逻辑100可以包括在一个或多个芯片中实施的电路,如ASIC(专用集成电路)芯片、FPGA芯片、PLD(可编程逻辑装置)芯片或其他装置。用户逻辑103可以基于同步和/或异步时钟由多个时钟域驱动。在一个实施例中,输入矢量101可以提供输入序列到用户逻辑103,以执行由多个时钟域驱动的逻辑操作,从而生成输出矢量105。
用户逻辑111可以是用户逻辑103的克隆,以复制逻辑操作,如用于调试或验证目的。用户逻辑111作为克隆可以根据原始用户逻辑103被修改,例如,由克隆中的逻辑上分开的时钟域修改。在一个实施例中,内部矢量107可以包括来自用户逻辑103的所选择的部分的信号数据。每个用户逻辑103的所选择的部分可以包括一个或多个寄存器,所述寄存器表示一个时钟域内的用户逻辑103的一个或多个状态。输入矢量101和内部矢量107可以携带由多个时钟域驱动的用户逻辑103中的信号数据。
在一个实施例中,逻辑100的配置可以启动用户逻辑111以执行对延迟了延迟期间Tdbf的用户逻辑103进行仿真的逻辑操作。输入矢量101和内部矢量107可以馈送来自随后与延迟了延迟期间Tdbf的用户逻辑103同步(例如,在一个或多个时钟周期内)的深度缓冲器109的用户逻辑111。随后,来自用户逻辑111的输出矢量113与来自用户逻辑103的输出矢量105相比可以延迟延迟期间Tdbf
在一个实施例中,逻辑100可以包括深度缓冲器109以将输入矢量101和内部矢量107记录为延迟期间Tdbf的信号的轨迹。深度缓冲器109可以基于固定宽度的队列,所述队列存储包括来自输入矢量101和内部矢量107的信号数据的分组。深度缓冲器109的容量或深度可以取决于用于用户逻辑103的输入矢量101和内部矢量107表示的信号数量。另外,对深度缓冲器109的容量需求可以取决于指定的延迟期间Tdbf和与输入矢量101和内部矢量107相关的时钟域。在一个实施例中,深度缓冲器109可以基于片外存储器,来提供用于适应设计和/或调试用户逻辑103中各个容量需求的可扩展性。
在一些实施例中,逻辑100可以包括触发器逻辑和控制逻辑,以允许基于存储在深度缓冲器109中的信号的轨迹来通过用户逻辑111单步执行指令(single-stepping),从而调试用户逻辑103。通常,触发器逻辑可以检测来自用户逻辑103的所选信号上的触发器条件的发生。控制逻辑可以控制例如在驱动用户逻辑103和用户逻辑111两者的不同的时钟域中的时钟。在检测到触发器条件时,在一个实施例中,控制逻辑可以停止时钟,以临时冻结用户逻辑103上的逻辑操作和/或使得用户逻辑111的执行暂停。从而,深度缓冲器109可以在先前的Tdbf期间提供信号轨迹以允许用户通过用户逻辑111来步进,所述用户逻辑111延迟了Tdbf以检测用户逻辑103的历史。
图2是示出了用于为了逻辑仿真或逻辑设计测试来转换分组的示例性***的框图。在一个实施例中,图1的逻辑100可以基于***200的一个或多个组件,例如,为图1的深度缓冲器109提供深度缓冲存储器223。***200可以包括配置在源芯片203、207中的原始用户逻辑201,和配置在目的芯片227、233中以用于克隆用户芯片201的用户逻辑237。芯片203、207、227、223可以是可编程装置,如FPGA装置。信号组205、209、211可以从用户逻辑201中选择,以更新相应的信号组229、231、235以用于用户逻辑237复制用户逻辑201。每个信号组可以包括一个或多个表示相应的用户逻辑的部分的信号。在一个实施例中,用户逻辑201可以由分开的时钟域中的多个时钟(同步的和/或异步的)来驱动。一个信号组内的信号可以属于一个单个的时钟域。
分组转换集线器215可以定义虚拟信道以将数据从原始用户逻辑201中的源信号组转发到克隆的用户逻辑237中的目的信号组,同时将数据记录为共享(share)公共存储器空间的信号轨迹。例如,虚拟信道217可以在信号数据作为延迟期间的信号轨迹停留在深度缓冲存储器223中之后允许来自源信号组205的信号数据更新目的信号组229。在一个实施例中,在不同的时钟域中的分组转换集线器215中用于分开的虚拟信道217、219和221的信号轨迹可以与一般的延迟期间同步,以允许克隆的用户逻辑237对延迟了一般的延迟期间的原始用户逻辑201进行仿真。
分组转换集线器215可以包括存储单元(如ROM(只读存储器)或RAM),用于经由标识源信号组和目的信号组的标识符来存储定义了虚拟信道的信道定义。标识符可以包括源标识符和目的标识符,所述源标识符标识源信号组,如信号组205,所述目的标识符标识目的信号组,如信号组229。分组转换集线器215可以通过将信号数据传递到虚拟信道中标识的目的信号组的接口地址来将从源信号组(如信号组205)接收的数据穿过虚拟信道(如虚拟信道217)转发到目的信号组(如信号组229)。
在一个实施例中,可以穿过虚拟信道(如虚拟信道217、219、221)经由分组转换接线器215在分组中携带来自原始用户逻辑201的数据以克隆逻辑237。每个分组可以根据已知的(或预先配置的)格式来组装,所述格式包括标识符,所述标识符标识虚拟信道和携带来自源信号组的数据的净荷。分组转换集线器215可以根据从接收的分组中提取的标识符来标识虚拟信道。
在一个实施例中,分组转换集线器215可以将从用于多个虚拟信道215、219、221的用户逻辑201接收到的分组推入深度缓冲存储器223中的单个队列中,以记录用户逻辑201的信号轨迹。如每个分组从队列中被弹出,分组转换集线器215可以将分组转发到虚拟信道中所定义的目的信号组。在一个实施例中,分组转换集线器215可以根据虚拟信道对从带有标识目的信号组的目的标识符的队列中获取的分组进行更新。
集中器逻辑213可以将来自原始用户逻辑201的数据组装成分组,以携带带有标识虚拟信道的标识符的信号数据到克隆的用户逻辑237。在一个实施例中,集中器逻辑213可以根据与原始用户逻辑201同步的临时顺序将多个虚拟信道的分组收集(或串行化)成分组流。临时顺序可以及时指示有序的关系内的差异。集中器逻辑213可以在队列内以线性顺序推动与用户逻辑201的分开的时钟域相关的分组。在一个实施例中,集中器逻辑213可以维持与分开的时钟域临时同步的线性顺序。
分配器逻辑225可以从达到用于虚拟信道(如虚拟信道217)的克隆的用户逻辑237的分组中析取信号数据,以更新在虚拟信道中标识的信号组,如信号组229。在一个实施例中,分配器225可以从深度缓冲存储器223中的队列中获取分组,以用能够使克隆的用户逻辑237用在队列中记录信号轨迹的延迟与原始用户逻辑201同步的速率来将信号数据从原始用户逻辑201分配到克隆的用户逻辑237。来自原始用户逻辑210的分组可以以和分组从队列被弹到克隆的用户逻辑237相同的速率被推入队列中,所述克隆的用户逻辑237与驱动原始用户逻辑201和克隆的用户逻辑237两者的一个或多个时钟域同步。用于目的信号组的虚拟信道(例如,用于信号组229的虚拟信道217)可以与目的芯片装置(例如,目的芯片227)相关。分配器225可以标识到目的芯片装置的接口地址以基于与分组相关的虚拟信道来传递分组。
图3是示出了用于建立源逻辑和目的逻辑之间的虚拟信道的示例性结构的框图。示例性结构300可以包括一个或多个用于支持图2中***200的组件。在一个实施例中,源芯片(例如,FPGA芯片)301、303可以包括源逻辑,所述源逻辑具有被标识为一个或多个源子信道(如子信道305、307)的信号组。类似地,目的芯片377、379可以包括目的(或汇点(sink))逻辑,例如克隆源逻辑,所述目的逻辑具有被标识为一个或多个目的子信道(如子信道375)的信号组。源子信道的数目可以与目的子信道的数目相同或不同。每个子信道可以由一个用于相应的逻辑(例如,源逻辑或目的逻辑)的时钟域(或时钟)驱动。
在一个实施例中,源芯片和目的芯片可以基于分开的可编程逻辑装置,每个所述可编程逻辑装置在分开的集成电路中。可替换地,源芯片和目的芯片可以共享在一个集成电路中实施的单个逻辑装置。在一个实施例中,集线器371可以是与源芯片和目的芯片301、303、377、379耦合的分组转换集线器,以作为虚拟信道(vch)(如用于源子信道ssch 403和目的子信道dsch375的vch 345)将信号数据从源子信道携带到目的子信道。集线器371可以基于用于源芯片和/或目的芯片301、303、377、379的相同的或分开的逻辑装置。
在一个实施例中,源芯片301、303可以被配置成具有源集中器逻辑,以用于建立用于源子信道305、307的虚拟信道。源集中器逻辑对于每个子信道可以包括例如组装逻辑(如组装309、311、323、325),从而根据预设分组格式将来自子信道的信号数据组装为分组序列。组装逻辑可以被配置成具有标识符,所述标识符标识相应的虚拟信道。组装逻辑可以形成一起包含标识符和信号数据的分组。
根据一个实施例,每个组装逻辑可以产生分组序列,所述分组序列携带来自时钟域中相应的源子信道的信号数据。源集中器逻辑可以包括源信道队列(例如基于FIFO数据顺序),如subch fifo(子信道先入先出)313、315、327、329,以用于每个源子信道存储从相应的组装逻辑产生的分组。例如,组装逻辑309可以产生分组进入相应的源信道队列subch fifo 313。源信道队列可以被分配以将来自分开的子信道的分组串行化,所述分开的子信道与驱动所述子信道的分开的时钟域同步。
在一个实施例中,每个源芯片(例如,源303)可以经由接口(如时分复用接口)与分组转换集线器(例如,集线器371)耦合以转发分组。源集中器逻辑在每个源芯片中可以包括发送逻辑(如源同步发送319、333),以经由接口将分组流从源芯片发送到集线器。源芯片中的发送逻辑可以与用于发送分组的集线器的时钟域同步。通常,集线器(例如,集线器371)的时钟域可以由比驱动源芯片中的源逻辑的时钟域更高的频率,从而允许集线器从源子信道中收集分组,并根据驱动源逻辑的时钟域来保持分组中携带的信号数据的临时顺序。
在一个实施例中,源集中器逻辑可以在每个源芯片中包括仲裁器逻辑(例如仲裁器317),以在用于发送逻辑(例如,源同步发送319)的源芯片内将分组从多个源信道队列(例如,subch fifo 313、315)仲裁成队列(或将分组串行化),从而转发到集线器(例如,集线器371)。仲裁器逻辑可以被配置成在分组中维持顺序或当在队列中彼此交错时允许分组与每个分别的源子信道同步。在一个实施例中,仲裁器逻辑可以以公平共享的方式(例如,基于公平共享算法)可替换地从多个源信道队列中选择分组。也可以应用其他选择方案。
集线器371可以是类似于例如图2的分组转换集线器215的分组转换集线器,集线器371配置有集中器逻辑367,该集中器逻辑367用于从每个源芯片(例如,源301、303)将分组收集到单个分组流,同时维持与驱动源芯片的多个时钟域同步的分组流中的分组中的顺序。在一个实施例中,集中器逻辑可以包括用于每个源芯片的源信道(如用于源303的sch 343)。源信道可以包括接收逻辑(例如源同步接收(rcv)335、339),该接收逻辑从耦合到源芯片的接口将分组收集成接收队列(例如,rcv fifo 337、341)。接收队列可以从源芯片中的多个子信道存储具有串行化的分组的分组流,以允许集线器从多个源芯片将分组流合并成一个单个队列,同时保持与驱动多个源芯片的多个时钟域同步的分组中的临时顺序。
在一个实施例中,集中器逻辑可以包括存储器仲裁器逻辑(例如仲裁器347),以将从多个源芯片301、303接收的分组仲裁成单个分组流,同时维持与驱动源芯片301、303的多个时钟域同步的分组流内的分组中的顺序。例如,仲裁器347可以采用轮询方案来确定接下来要从多个接收队列(例如,rcv fifo 337、341)获取哪个分组,所述每个接收队列对应于一个源芯片。可以应用其他获取方案。存储器仲裁器逻辑可以验证分组是否无序到达,从而确认从不同子信道大约同时到达的分组大约同时(例如,在已知的错误容限内)被转发到目的子信道。
在一个实施例中,集线器317可以包括集线器队列,例如集线器fifo 351,所述集线器队列在一个处理内容(例如,在不需要内容转换的情况下)内由存储控制逻辑管理。仲裁器347可以将来自源信道队列337、341......的分组流作为分组流合并成集线器队列351。根据一个实施例,集线器队列可以基于片外存储器(如图2的深度缓冲存储器223),从而衡量其容纳来自由不同源芯片中的多个时钟域驱动的多个源子信道的大量分组的能力。集线器队列可以与指示位于存储器中的集线器队列的大小和容量的可配置深度相关。
分组可以以实质上相等的速率(例如,在根据驱动集线器队列的时钟域和队列的存储器读取及写入突发大小的错误容限内)被推入集线器队列或从集线器队列弹出。从而,集线器队列可以用作穿过集线器队列的分组流中的每个分组的延迟。延迟的长度可以取决于例如驱动集线器队列和/或为集线器队列配置的深度(或大小)的时钟域。通常,集线器队列351可以以高于驱动源逻辑中的子信道307、305的多个时钟域的频率来由时钟域驱动,从而允许分组流穿过携带来自与多个时钟域同步的子信道307、305的信号数据的队列。
集线器371可以包括集线器逻辑,例如集线器ctrl 355,该集线器逻辑可以标识用于从集线器队列351获取(或弹出)的每个分组的虚拟信道,以根据虚拟信道将分组转发到目的地。集线器控制355可以以和仲裁器347将分组写入集线器队列351实质上相等的速率从集线器队列351读取分组。在一个实施例中,集线器控制逻辑可以被配置成当接线器队列满了或足够满了的时候开始从集线器队列读取或获取分组。如果存储在集线器队列中的分组流占据了超过分配给集线器队列的总存储器空间的一定级别(例如,基于可配置百分比)的存储器空间,则集线器队列可以是足够满的。
在一个实施例中,集线器控制355可以根据从分组获取的信道标识符获取存储在存储单元357中的虚拟信道的定义。集线器控制逻辑可以被配置有分组格式,所述分组格式指定用于每个分组的信道标识符。集线器控制逻辑可以查找目的地址,从而基于信道标识符转发分组。在一个实施例中,存储单元357可以是存储由信道标识符索引的虚拟信道的定义的ROM。
根据一个实施例,虚拟信道可以根据用于标识目的芯片(例如,目的377、379)和目的子信道(例如,目的芯片中的dsch(目的子信道)375)的目的芯片标识符和目的子信道标识符来指定分组的目的地。集线器控制355可以使用目的芯片标识符经由地址产生器逻辑(例如,addr gen(地址产生器)353)产生目的芯片的地址。在一个实施例中,集线器控制355可以利用虚拟信道中定义的目的子信道标识符来更新分组,从而允许目的芯片将更新的分组分配到目的子信道。
集线器371可以被配置有分配器逻辑369,该分配器逻辑369用于分配从源芯片(例如,源307、303)收集的分组流。分配器逻辑可以包括集线器控制逻辑(如集线器控制355),用于确定向哪里转发分组。在一个实施例中,分配器逻辑可以包括用于每个目的芯片的目的信道,如用于目的芯片379的dch(目的芯片)373。目的信道可以包括发送队列(如发送fifo 359、361),以用于存储为目的芯片从集线器控制逻辑分配的分组。每个目的信道可以包括发送逻辑(例如,源同步发送363、365),以用于经由耦合到目的芯片的接口将分组在序列中从发送队列发送达到目的芯片。在一个实施例中,地址产生器逻辑353可以基于目的芯片标识符为目的芯片(例如,目的芯片379)向发送队列(例如,发送fifo 361)提供带有地址的集线器控制。
目的芯片(例如,dest(目的)377、379)可以包括目的分配器逻辑以接收携带指定给目的芯片中的目的子信道的信号数据的分组。源分配器逻辑可以包括接收逻辑(例如,source(源)sync rcv 381、393),以接收在具有集线器371的接口上发送的分组。在一个实施例中,接收逻辑可以与集线器371同步,例如,共享时钟域,从而从集线器371接收分组。接收逻辑可以包括解复用器逻辑(例如,demux(解复用器逻辑)383、395),以将每个接收的分组分配到目的子信道。
解复用器逻辑可以从接收的分组中提取目的子信道标识符,从而将分组转发到目的信道队列,例如,subch fifo 385、387、397、399。每个目的子信道可以与分开的目的信道队列(例如,用于dsch 375的subch fifo 399)相关。目的信道队列可以存储分组,以允许根据用于目的子信道的时钟域将分组中携带的信号数据同步分配到目的子信道。
目的分配器逻辑对于每个目的子信道可以包括析取逻辑(如析取389、391、401、403),以用于从目的信道队列获取的分组析取数据,从而更新目的子信道。析取逻辑可以被配置有分组格式,该分组格式用于对从相应的目的信道接收的分组中的信号数据进行解码。在一个实施例中,析取逻辑和相关的目的子信道(例如,用于dsch 375的析取403)可以属于相同的时钟域。
在另一个实施例中,集线器375可以包括总线逻辑(例如,总线349),从而与例如外部数据处理***(如PC(个人计算机)或设计者工作站)进行接合。指令或数据可以作为分组在外部***与集线器371之间通信,以用于控制、命令、配置、监控、调试或其他目的。在一个实施例中,存储单元357可以存储定义,该定义指定用于响应于从外部***接收的分组来执行逻辑操作的分组格式。例如,存储单元357中的定义可以根据包括在分组中的标识符来指定存储器读取、存储器写入、时钟控制(停止/开始)、和/或其他逻辑操作。
在一些实施例中,集线器371可以对在多个目的芯片377、379处接收的第一分组的声明进行同步,从而确保例如以一段延迟在源逻辑与目的逻辑之间的同步。源逻辑和目的逻辑(例如,克隆源逻辑)可以由一般的时钟域驱动,例如,基于相同的时钟,从而如果第一分组同步则确保目的芯片中的子序列分组的同步。
在一个实施例中,集线器371和/或每个目的芯片可以被配置有计数器逻辑。一旦检测到(例如,集线器队列351是满的或足够满的)要开始从集线器队列351发送分组的情况,集线器371可以例如经由侧信号同时启动对每个目的芯片中的一般数量的计数器逻辑的计数。集线器371可以在发送第一分组之前同时开始对相同的一般数量进行计数。在另一个实施例中,集线器371可以通过将握手信号与每个个体目的芯片进行交换来对目的芯片中的同步进行仲裁。
图4是示出了用于转换分组的集线器控制逻辑的示例性结构的框图。例如,图3的集线器控制逻辑355可以基于结构400的部分。在一个实施例中,结构400可以被配置有集线器集中器逻辑(例如,集中器403),以如从图3中的集线器队列351或总线349为输入路由器逻辑(例如,输入路由器407)在序列中接收分组,从而路由到合适的队列中。输入路由器逻辑可以基于ROM(如在图3的存储单元357)中存储的信道定义对接收的分组进行解码,从而做出分组路由决策。信道描述符429可以包括用于输入路由器407的信道定义的副本。
在一个实施例中,输入路由器逻辑可以基于由从接收的分组中解码的标识符所标识的信道定义来标识接收的分组的类型,以确定向哪个队列转发接收到的分组。例如,当将分组从集线器转发到目的地时类型为“直接”的分组可以以高的优先级较低可能的延迟被路由到直接队列409中。
在一些实施例中,输入路由器逻辑可以基于信道定义根据与接收的分组相关的模式和/或存储器空间来确定向哪个队列转发接收的分组。例如,模式为“读取”或“写入”的分组可以根据模式和/或相关的存储器空间被分成分开的存储器队列,如FIFO写入队列411、fifo读取队列413、RAM写入对了415、RAM写入队列417,......。写入队列(如队列411、415)可以包含地址和数据。读取队列(如队列413、417)可以包括地址,而不包括数据。对于不同的存储器空间的分开队列,可以允许在多个存储体中交错存储器存取。在一个实施例中,FIFO队列(如队列411、413)可以包括保证在不同的存储体中以用于在最大的突发情况下使存储器存取交错的存储器存取地址(例如,读取或写入)。
存储器控制逻辑(例如,存储器控制419)可以在各个输入队列(如,队列411、413、415、417......)中仲裁以将经由存储器接口421从输入队列到存储器(如DDR存储器425)的存储器访问请求形成队列。在一个实施例中,存储器控制逻辑可以保持对存储器读取请求的跟踪,并对用于存储器读取请求的输出分组格式化,以及将输出分组***输出队列(如输出队列423)中。在一个实施例中,结构400可以包括输出仲裁器逻辑(例如输出仲裁器427),以根据信道描述符429在用于直接信道的直接队列409与用于存储器信道的输出队列423之间选择分组,从而例如经由图3的分配器逻辑369将分组转发给集线器分配器逻辑(例如,分配器431)以用于分组分配。
图5是示出了携带用于虚拟信道的信号数据的分组格式的示例的示意图。例如,图2的虚拟信道217、219、221可以基于根据格式500产生的分组。在一个实施例中,分组可以是源逻辑的一部分与目的逻辑的另一部分之间的通信的原子单位。分组可以包括各种数目的字,例如,达到16个字。分组中的每个字可以具有一般的宽度,例如,32比特、64比特等。通常,分组转换集线器中定义的信道(如图2中的集线器215)可以基于具有一般的字宽度的分组。
缓冲的分组501可以表示基于64比特的包括三个64比特的字的分组的示例。例如,缓冲的分组501可以以报头字开始,该报头字包括带有报头字的剩余部分和两个数据字503、507、509中携带的信号数据的报头(例如用于信道ID 505的8比特报头)。在一个实施例中,组装逻辑325可以基于缓冲的分组501产生要在图3中的集线器队列351中缓冲的分组。分组可以基于不同的比特大小(例如,根据信道的大小(或来自逻辑部分的信号的数目)和/或分组转换逻辑的配置)被指定具有不同数目的字。
在一个实施例中,信道ID 505可以对应于信道描述符511,如存储在图3的存储单元357中的ROM内的信道定义或说明。ROM中的信道描述符或信道定义可以包括多个由信道标识符索引的信道描述符。在一些实施例中,信道描述符可以存储在分组转换集线器(如图3的存储单元357)中的小的ROM内。源芯片和目的芯片的配置(如图3的源芯片301、303和目的芯片377、379)可以仅取决于分组转换集线器(如图3的集线器371)中的信道描述符的一部分。
信道描述符511可以包括多个字段,例如每个具有4比特宽度,存储用于标识信道的各个方面的标识符。信道的一个方面可以涉及存储器空间字段中标识的例如专用于基于时钟域的组装的存储器空间(如存储器空间515)。另一方面可以涉及在工作计数字段中指示的多个字(如,字计数517),所述多个字在分组中在报头后。另一方面可以涉及目的子信道字段中标识的目的逻辑中的目的子信道,如dest subch(目的子信道)519。另一个方面可以涉及目的芯片标识符字段中标识的物理目的芯片,如dest(目的)芯片521。另一个方面可以涉及源子信道字段中标识的源逻辑中的源子信道,如源subch(子信道)523。另一个方面可以涉及源芯片标识符字段中标识的源芯片,如源芯片525。还另一个方面可以涉及在分组类型标识符字段中标识的分组类型,如分组类型527。虽然示出了4比特字段中的示例性标识符,但是信道描述符可以包括其他可应用的比特宽度的字段,以及可以包括另外的信息字段。而且,信道描述符的格式可以根据信道分组类型来改变。
在一个实施例中,分组类型527可以包括要由分组转换集线器(如图3的集线器371中的集线器控制逻辑355)解释的代码,如下面的表格所示:
分配的分组531可以表示例如在穿过分组转换集线器中的队列(如图3的集线器队列531)的延迟之后的来自缓冲的分组501的基于64比特的重新格式化的分组的示例。在一个实施例中,分配的分组531可以携带缓冲器分组501中的相同的数据503、507、509以及报头,所述报头被重新格式化以携带字计数和标识符,所述标识符标识从相应的信道描述符中的字段(如字计数517和dest subch 519)复制的目的子信道。所以,缓冲的分组和分配的分组可以共享相同的分组信号数据,但携带分开的报头信息。
图6是示出了用于分组转换集线器的示例性配置的框图。例如,图3的结构300可以基于配置600中示出的一个或多个组件。在一个实施例中,源FPGA芯片为FPGA-A 625、FPGA-B627。FPGA芯片可以被配置有(源)用户逻辑601、603。目的FPGA芯片FPGA-C 663、FPGA-D 667可以被配置有克隆用户逻辑601、603的(目的)用户逻辑661、667。集线器和缓冲器板671可以为电路板,该电路板配置有虚拟信道,用于通过单个缓冲器将信号数据作为分组从源芯片转发到用于用户逻辑661、665的目的芯片以基于单个缓冲用带有延迟的同步方式克隆用户逻辑601、603。
在一个实施例中,板671可以经由HSTDM(高速时域复用器)接口621、623、641、643与FPGA芯片耦合。到源芯片的接口可以对应于源信道,如图3的源sch 343。在一个实施例中,接口可以包括异步FIFO,如AFIFO 629、631,所述异步FIFO可以执行和图3的rcv fifo 337、341类似的逻辑操作。每个源子信道(如源子信道A1 605、A2 607......An 609、Z1 613、Z2 615......Zn617)可以将信号数据从原始用户逻辑601、603的一部分(或子信道)经由目的子信道(如目的子信道A1 649、A2 651......An 653、Z1 655、Z2 657......Zn659)转发到克隆用户逻辑661、665中相应的部分。
源芯片A 625、B 627可以包括信道逻辑源芯片A 611、Z 619,以例如基于和包括图3的仲裁器317的源信道逻辑类似的逻辑将携带来自每个芯片中的源子信道的信号数据的分组串行化到集线器和缓冲器板671的接口。因而,目的芯片A 645、Z 647中的destchip(目的芯片)A 645、647可以例如基于和包括图3的多路分配器(demux)395的目的信道逻辑类似的逻辑将来自集线器和缓冲器板671的分组流分配到芯片中的每个个体目的子信道。集线器和缓冲器板671可以包括基于仲裁器逻辑(如图3的仲裁器347)的集中器667,以进一步将来自于对应于源信道的每个芯片的分组流串行化到存储器639中的单个延迟缓冲器中。另外,集线器和缓冲器板671中的分配器669可以例如基于和图3的集线器控制355类似的逻辑将来自于单个延迟缓冲器的分组分配到对应于目的信道的每个目的芯片。
在一个实施例中,集线器和缓冲器板671可以包括存储在存储器639中的虚拟信道定义,该虚拟信道定义将每个源子信道(如A1 605......Zn 617)映射到目的子信道(如A1 649......Zn 659)。MemCtrl 637可以是存储器控制,该存储器控制管理携带没有内容转换的一个单个存储器内容内的多个虚拟信道的不同地址空间中的信号数据的分组。总线控制(例如,UMRCtrl 635)可以控制耦合到数据处理***(如PC或工作站)的总线633。
图7是示出了根据本发明的一个实施例用于逻辑仿真的进程的流程图。可以通过处理逻辑来执行示例性进程700,所述处理逻辑可以包括硬件(电路、专用逻辑等)、软件(诸如在专用机器上运行的)或者其结合。例如,软件工具可以根据进程700被配置成自动合成或创建设计以仿真用于调试的逻辑。
在一个实施例中,在框701处,进程700的处理逻辑可以对源电路的表示进行编译,所述源电路包括用于调试的源逻辑。电路的表示可以基于硬件描述语言,如VHDL(超高速集成电路(VHSIC)硬件描述语言)、Verilog或其他HDL(硬件描述语言)等。进程700的处理逻辑可以产生网表,如RTL(寄存器传输级)网表或用于映射到一个或多个装置(如图2的源芯片203、207)的其他低级逻辑表示代码以实施源电路。
源电路可以包括一个或多个源子信道(例如图3的ssch 321),以选择用于调试的源逻辑的部分(如图3的子信道)。源电路中的源逻辑可以由多个时钟域或时钟驱动。在一个实施例中,每个源逻辑的所选择的部分可以仅由时钟域中的一个时钟域来驱动。源子信道可以被配置有预配置的分组格式和与源逻辑的相应部分相关的标识符。在一个实施例中,源子信道例如可以将来自源逻辑的相应部分的信号数据与用于标识目的逻辑的一部分的配置的标识符组装,以转发与驱动源逻辑的相关部分的相应的时钟域同步的信号数据。
在一个实施例中,在框703处,进程700的处理逻辑可以对包括复制源逻辑的目的逻辑的目的电路的表示进行编译。进程700的处理逻辑可以在一个或多个装置(如图2的目的芯片227、233)中合成目的电路。在一些实施例中,一个或多个芯片可以由源电路和目的电路两者共享。目的电路可以包括一个或多个目的子信道(例如,图3的dsch 375),以选择用于仿真源逻辑的目的逻辑的部分。目的逻辑和源逻辑二者可以都由用于逻辑仿真的一般或类似的时钟域驱动。目的子信道可以被配置有分组格式以接收携带来自源逻辑的信号数据,从而更新目的逻辑的相关部分。
在一个实施例中,在框705处,进程700的处理逻辑可以配置具有虚拟信道(如图2的虚拟信道217、219、221)的转换逻辑,将源子信道映射到目的子信道,从而将信号数据从源逻辑的部分转发到目的逻辑的相应部分。转换逻辑和源电路和/或目的电路可以基于分开的装置。在一些实施例中,转换逻辑可以基于实施源电路和/或目的电路的相同装置。进程700的处理逻辑可以定义或存储虚拟信道到转换逻辑,如图3的存储单元357中,包括标识源子信道和目的子信道的标识符。
在框707处,进程700的处理逻辑可以配置单个队列(如图2的深度缓冲存储器223),耦合到转换逻辑以将来自源子信道的分组记录到用于延迟期间的分组流中,从而分配到目的子信道。单个队列可以启动目的逻辑以仿真源逻辑以用于分组穿过单个队列,所述源逻辑与带有延迟的驱动源逻辑的多个时钟域同步。
进程700的处理逻辑可以指定单个队列的深度(或大小),以将来自分开的时钟域中的源逻辑的不同部分的分组作为单个分组流来适应,从而分配到用于仿真源逻辑的目的逻辑的相应部分。进程700的处理逻辑可以确保单个队列具有足够的容量以记录一些适于调试源逻辑的信号数据。
在一个实施例中,在框709处,进程700的处理逻辑可以通过用于调试在源逻辑中发生的错误的目的逻辑的复制部分中的逻辑操作序列步进。例如,源逻辑可以包括触发器逻辑,该触发器逻辑为了调试目的检测目标条件的发生。触发器逻辑如经由对驱动源逻辑和目的逻辑的时钟的控制可以使得源逻辑和目的逻辑暂停执行。进程700的处理逻辑可以根据来自源逻辑的信号数据的轨迹通过目的逻辑中的逻辑操作来步进,所述源逻辑留在记录对应于延迟期间的分组流的单个队列中。
图8是示出了经由虚拟信道转发分组的进程的实施例的流程图。示例性进程800可以由处理逻辑执行,所述处理逻辑可以包括硬件(电路、专用逻辑等)、软件(如在专用机器上运行的)或者其二者的结合。例如,进程800的处理逻辑可以基于图3的结构300。在框801处,在一个实施例中,进程800的处理逻辑可以产生分组(如在图3的组装309、311中),所述分组根据分组格式(例如,预先配置的)携带来自源逻辑的部分的信号数据。每个分组可以包括用于虚拟信道(如图2的虚拟信道217)的标识符,以用于更新克隆源逻辑的目的逻辑的部分。
在框803处,在一个实施例中,进程800的处理逻辑可以将来自由不同的时钟域驱动的源逻辑的多个部分的分组作为在一段期间对应于来自源逻辑的信号数据的轨迹的分组流来存储或收集成队列(如图3的集线器fifo351)。在框805处,进程800的处理逻辑可以根据每个分组中标识的虚拟信道将分组流从序列中的队列(如图3的集线器ctrl 355)分配到目的逻辑的部分。根据一个实施例,在框807处,进程800的处理逻辑可以对信号数据进行解码或析取以更新目的逻辑的部分(如在图3的析取389、391中),所述信号数据来自队列的分组,以用于目的逻辑用对应于队列中缓冲的信号数据的轨迹的延迟期间来仿真源逻辑。
图9是示出了汇聚和分配分组的进程的实施例的流程图。示例性进程900可以由处理逻辑执行,所述处理逻辑可以包括硬件(电路、专用逻辑等)、软件(如在专用机器上运行的)或者其二者的结合。例如,进程900的处理逻辑可以基于图3的集线器371。在一个实施例中,在框901处,响应于从源逻辑的部分接收分组,进程900的处理逻辑可以在多个接收器队列(如图3的rcv fifo 337、341)中存储分组。每个接收器队列可以对应于在一个装置(如图3的源fpga 303)中实施的源逻辑的一个或多个部分。分组可以携带来自源逻辑的信号数据,以用于目的逻辑克隆源逻辑。每个分组可以包括用于虚拟信道中的一个虚拟信道(如图3的存储单元357中定义的vch 345)的标识符,将源逻辑的部分映射到目的逻辑的相应部分。
在框903处,在一个实施例中,进程900的处理逻辑可以将存储在多个接收器队列中的分组(如在图3的仲裁器347中)作为一段期间(或延迟)的源逻辑的信号数据的轨迹来仲裁(或串行化)成缓冲器队列(如图3的集线器fifo 351)。在一个实施例中,在框905处,进程900的处理逻辑可以根据在分组中标识的虚拟信道更新来自具有目的标识符的缓冲器队列的分组,所述目的标识符标识目的逻辑的部分,如图3的dsch 375。随后在框907处,进程900的处理逻辑可以根据虚拟信道将分组分配到分组中标识的目的逻辑的部分中,如图3的集线器ctrl 355中。进程900的处理逻辑可以将分组中的信号数据转发到与由多个时钟域驱动的源逻辑同步的目的逻辑中。
图10显示了可以用于本发明的一个实施例的数据处理***的示例。注意,当图10示出了计算机***的各种组件的同时,不意在表示任意特定结构或互联组件的方式,如和本发明不是密切相关的那些细节。还可以理解的是,网络计算机和具有较少组件或也许更多组件的其他数据处理***也可以用于本发明。图10的计算机***例如可以是苹果Macintosh(麦金托什)计算机或者SUN SPARC工作站。
如图10所示,数据处理***形式的计算机***1001包括总线1002,该总线耦合到微处理器1003和ROM 1007和易失性RAM 1005和非易失性存储器1006。微处理器1003(可以是来自摩托罗拉公司或IBM的G3或G4微处理器)耦合到缓冲存储器1004中,如图10中的示例所示。总线1002将这些各种组件互连到一起,并且可以将这些组件1003、1007、1005和1006互连到显示控制器和显示装置1008以及***装置上,所述***装置如输入/输出(I/O)装置,可以为鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、视频相机和其他本领域中公知的装置。通常,输入/输出装置1010通过输入/输出控制器1009耦合到***。易失性RAM 1005通常作为动态RAM(DRAM)实施,所述动态RAM持续需要功率从而刷新和维持存储器中的数据。非易失性存储器1006通常为磁硬盘驱动或磁光盘驱动或者光驱动或者DVD RAM或者其他类型的甚至在从***移除供电之后还能维持数据的存储器***。通常,非易失性存储器还可以是随机存取存储器,虽然这不是必须的。当图10显示了非易失性存储器是直接耦合到数据处理***中的剩余组件的本地装置,可以理解,本发明可以使用远离***的非易失性存储器,如通过网络接口(如调制解调器或以太网接口)耦合到数据处理***的网络存储装置。总线1002可以包括通过本领域中公知的各个桥、控制器和/或适配器互相连接的一个或多个总线。在一个实施例中,I/O控制器1009包括用于控制USB***设备的USB(通用串行总线)适配器和/或用于控制IEEE-1394***设备的IEEE-1394总线适配器。
通过本说明书显而易见的是,本发明的方面至少可以一部分在软件中体现。也就是,可以响应于其处理器(如微处理器)在计算机***或其他数据处理***中执行技术,所述技术执行在机器或计算机可读存储介质的存储器(如ROM 1007、易失性RAM 1005、非易失性存储器1006或远程存储装置)中包含的指令的执行序列。在各种实施例中,硬件电路可以与软件指令结合起来使用,从而实施本发明。从而,技术不局限于硬件电路和软件的任意特定结合,也不局限于用于数据处理***执行的指令的任意特定源。另外,贯穿本说明书,按照软件代码执行和引起的描述各种功能和操作,从而简化说明。然而,本领域的技术人员将会意识到,这种表述意味着由处理器(如微处理器1003)执行代码来产生功能。
机器可读存储介质可以用来存储软件和数据,所述软件和数据当由数据处理***执行时,使得***执行本发明的各个方法。该可执行软件和数据可以存储在各个地方,包括例如图10中所示的ROM 1007、易失性RAM 1005或非易失性存储器1006。该软件和/或数据的部分可以存储在这些存储装置中的任意一者中。
从而,机器可读存储介质可以包括存储机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一套一个或多个处理器的任意装置等)可访问形式的信息的任意机构。例如,机器可读介质包括可记录/不可记录媒介(例如,只读存储器(ROM);随机存取存储器(RAM);磁盘存储媒介;光存储媒介;闪存存储器装置等)。
在上述说明中,已经参考特定的示例性实施例描述了本发明。显然,在不脱离所附权利要求所述的本发明的宽泛思想和范围的情况下,可以对其作出各种修改。因而,本说明书和附图应该认为是示例性的而不是限制性的。

Claims (40)

1.一种用于调试的方法,该方法包括:
编译源电路的表示,所述源电路的表示包括与由多个时钟域驱动的源逻辑的部分关联的一个或多个源子信道,每个源子信道用于产生携带来自源逻辑的一个部分的信号数据的分组;
编译目的电路的表示,所述目的电路的表示包括与复制所述源逻辑的目的逻辑的部分关联的一个或多个目的子信道,每个目的子信道用于经由所述分组将所述信号数据转发到所述目的逻辑的一个部分;
配置转换逻辑,所述转换逻辑作为虚拟信道将所述源子信道映射到所述目的子信道,以将所述分组从所述源子信道转发到所述目的子信道;以及
配置单个队列,所述单个队列与所述转换逻辑耦合,从而将来自所述源子信道的分组记录到延迟期间的分组流中,以分配到所述目的子信道,以使所述目的子信道对与具有延迟期间的所述多个时钟域同步的所述源逻辑进行仿真。
2.根据权利要求1所述的方法,其中所述转换逻辑基于一个或多个可编程逻辑装置,所述可编程逻辑装置装载有表示所述转换逻辑的二进制代码,该方法进一步包括:
编译表示所述转换逻辑的源代码以产生所述二进制代码。
3.根据权利要求2所述的方法,其中所述可编程逻辑装置为FPGA(场可编程逻辑阵列)装置。
4.根据权利要求1所述的方法,其中所述分组基于包括报头字段和净荷字段的分组格式,所述报头字段用于携带标识所述虚拟信道的信道标识符,以及所述净荷字段用于携带所述信号数据。
5.根据权利要求4所述的方法,其中每个分组包括信道标识符中的一个信道标识符,该一个信道标识符对将所述源子信道映射到所述目的子信道中的一个目的子信道的虚拟信道中的一个虚拟信道进行标识。
6.根据权利要求5所述的方法,其中所述源子信道包括组装逻辑,所述组装逻辑用于将所述信道标识符中的一个信道标识符组装成带有所述信号数据的分组。
7.根据权利要求5所述的方法,其中所述目的子信道中的一个目的子信道包括析取逻辑,所述析取逻辑用于从所述分组中析取所述信号数据。
8.根据权利要求7所述的方法,其中所述虚拟信道中的一个虚拟信道包括字计数,所述字计数指示所述分组中的所述信号数据的大小,以及其中所述析取逻辑从所述分组中析取所述字计数。
9.根据权利要求1所述的方法,其中来自所述源子信道的所述分组以实质上相等的速率从所述单个队列弹出和被推入所述单个队列中。
10.根据权利要求1所述的方法,其中所述转换逻辑包括存储所述虚拟信道的定义的只读存储。
11.一种用于逻辑设计测试的方法,该方法包括:
产生分组以携带来自源逻辑的多个部分的信号数据以用于克隆所述源逻辑的目的逻辑,所述分组包括标识符,该标识符对将所述源逻辑的所述多个部分映射到所述目的逻辑的多个部分的虚拟信道进行标识;
将所述分组在所述信号数据的队列中存储一段期间;
根据所标识的虚拟信道,从所述队列中分配所述分组到所述目的逻辑的所述部分;以及
从所述分组中析取所述信号数据,以更新所述目的逻辑的所述部分,从而使得所述目的逻辑对具有所述一段期间的延迟的所述源逻辑进行仿真。
12.根据权利要求11所述的方法,其中所述源逻辑由多个时钟域驱动,以及其中每个部分属于一个所述域。
13.根据权利要求11所述的方法,其中所述队列处于转换逻辑中,所述转换逻辑经由一个或多个接口与所述源逻辑耦合,其中所述源逻辑的所述多个部分与多个源信道队列关联,以及其中存储所述分组包括:
在所述多个源信道队列中的一个源信道队列中临时地存储每个分组;以及
经由所述接口中的一个接口从所述源信道队列中的至少一个源信道队列发送分组到所述转换逻辑。
14.根据权利要求13所述的方法,其中所述源逻辑被划分成一个或多个装置,以及其中每个装置包括所述接口中的一个接口。
15.根据权利要求13所述的方法,该方法进一步包括:
将来自所述源信道队列中的至少一个源信道队列的分组仲裁成序列,以用于共享与所述源逻辑同步的接口中的一个接口。
16.根据权利要求15所述的方法,其中所述转换逻辑由转换时钟域驱动,所述方法进一步包括:
与所述转换时钟域同步,以用于经由所述接口发送所述分组。
17.根据权利要求13所述的方法,其中所述转换逻辑包括对应于所述一个或多个接口的一个或多个接收器队列,以允许所述分组同时到达所述接口之中,该方法进一步包括:
将来自序列中的所述接收器队列的所述分组仲裁成与所述源逻辑同步的队列。
18.根据权利要求11所述的方法,其中所述转换逻辑包括存储单元,所述存储单元用于存储由标识符索引的所述虚拟信道的多个信道定义,其中所述分配包括:
从序列中的所述队列中获取所述分组;
对来自针对所述信道定义获取的所述分组的标识符进行解码。
19.根据权利要求18所述的方法,其中所述多个信道定义包括用于所述目的逻辑的多个部分的目的标识符,该方法进一步包括:
用所述目的标识符代替所述标识符来更新所述分组。
20.根据权利要求18所述的方法,其中所述多个信道定义对分别耦合到所述目的逻辑的一个或多个发送器队列进行标识,该方法进一步包括:
在所述发送器队列的一个发送器队列中临时地存储每个分组;以及
从所述发送器队列将所述分组并行发送到与所述源逻辑同步的所述目的逻辑。
21.根据权利要求20所述的方法,其中所述目的逻辑被划分成一个或多个装置,以及其中每个装置与所述发送器队列中的一个发送器队列关联。
22.根据权利要求20所述的方法,其中所述目的逻辑包括对应于目的逻辑的多个部分的多个目的信道队列,该方法进一步包括:
根据所述目的标识符将所述分组临时地存储到所述发送器队列中;以及
从所述发送器队列获取所述分组,其中所述析取基于从与所述源逻辑同步的所述发送器队列获取的分组。
23.根据权利要求18所述的方法,其中根据所述分组中的一个特定分组来索引所述信道定义中的一个特定信道定义,其中所述特定信道定义包括到所述目的逻辑的接口地址,该方法进一步包括:
如果所述特定信道定义指示直接的连接,则经由所述接口地址将所述特定分组直接发送到所述目的逻辑。
24.一种用于逻辑仿真的方法,该方法包括:
响应于经由接口从源逻辑串行接收分组,从每个分组解码标识符以对克隆所述源逻辑的目的逻辑的多个部分中的一个部分进行标识,根据包括报头字段和净荷字段的分组格式来格式化所述分组,所述报头字段用于携带所述标识符,所述净荷字段用于携带用于所述目的逻辑的所标识的部分的信号数据;
存储所述分组到多个队列中的一个队列中,所述一个队列与所述目的逻辑的所标识的部分关联;
根据所述分组格式从所述分组中析取所述信号数据,所述分组来自所述多个队列中的所述一个队列;以及
将所述信号数据提供到与所述源逻辑同步的所述目的逻辑的所标识的部分。
25.根据权利要求24所述的方法,其中所述分组在所述报头字段中包括字计数,所述字计数指示在所述净荷字段中携带所述信号数据的字的数目。
26.根据权利要求24所述的方法,其中所述目的逻辑和所述源逻辑由多个时钟域驱动,以及其中所述目的逻辑的每个部分属于所述时钟域中的一个时钟域。
27.一种用于逻辑仿真的方法,该方法包括:
响应于从源逻辑接收分组,在多个接收器队列中存储所述分组,所述分组携带来自所述源逻辑的多个部分的信号数据以用于在克隆所述源逻辑的目的逻辑的多个部分中进行复制,所述分组对将所述源逻辑的多个部分映射到所述目的逻辑的多个部分的虚拟信道进行标识;
在一段期间内将来自所述接收器队列的所述分组作为所述源逻辑的信号数据的轨迹仲裁成缓冲器队列;
根据所述虚拟信道利用标识所述目的逻辑的所述多个部分的目的标识符来更新从所述缓冲器队列获取的所述分组;以及
分配所述分组以将所述信号数据转发到与所述源逻辑同步的所述目的逻辑,所述分组是针对所标识的所述目的逻辑的所述多个部分来更新的。
28.根据权利要求27所述的方法,其中所述分配基于到所述目的逻辑的多个接口,所述多个接口与接口队列关联,所述分配包括:
根据所述目的标识符将所述分组存储到所述接口队列。
29.根据权利要求28所述的方法,其中所述目的逻辑包括多个芯片,每个接口用于与所述芯片中的一个芯片耦合。
30.根据权利要求28所述的方法,该方法进一步包括:
当所述缓冲器实质上为满时,同步用于接收所述分组的接口。
31.根据权利要求30所述的方法,其中所述同步包括:
对计数器计数,其中所述分配在完成所述计数之后进行。
32.根据权利要求27所述的方法,其中所述源逻辑由多个时钟域驱动,以及其中所述源逻辑的多个部分中的每个部分属于所述时钟域中的一个时钟域。
33.根据权利要求32所述的方法,其中所述目的逻辑由所述多个时钟域驱动。
34.根据权利要求27所述的方法,其中所述分组被格式化为具有包括用于所述信号数据的净荷字段的分组格式。
35.根据权利要求27所述的方法,其中所述分组以临时顺序到达,并且其中所述仲裁在所述缓冲器中维持所述分组的顺序,所述分组的顺序实质上跟随已知容限内的所述临时顺序。
36.根据权利要求27所述的方法,其中所述分组被格式化为具有报头字段,所述分组的更新包括:
从所述分组的所述报头字段中解码标识符,所述标识符对被格式化为具有分组类型字段的所述虚拟信道进行标识,其中所述分组根据所述分组类型字段的类型指示被分配到所述目的逻辑。
37.根据权利要求36所述的方法,其中所述虚拟信道被格式化为具有对于存储器空间标识符的存储器空间,其中用于所述分组中的一个分组的所述类型指示对存储器写入操作进行指示,所述方法进一步包括:
从所述一个分组解码存储器地址和数据;以及
将所述数据写入由一个所述存储器空间标识符来标识的存储器空间中的所述存储器地址。
38.一种产品,该产品包括:
机器可访问介质,该机器可访问介质包括当由机器访问时使得所述机器执行包括以下步骤的操作的内容:
选择源逻辑的多个部分以用于复制;
将组装逻辑***所述源逻辑中,所述组装逻辑产生表示所选择的部分的信号数据的分组,每个分组包括对一个所选择的部分进行标识的源标识符;
在目的逻辑中复制所述源逻辑的所选择的部分;
将析取逻辑***所述目的逻辑,所述析取逻辑对逻辑进行配置以从用于所复制的部分的接收到的分组中提取所述信号数据,每个接收到的分组包括目的标识符,所述目的标识符用于对一个所复制的部分进行标识;以及
配置转换逻辑,所述转换逻辑作为虚拟信道将所述目的标识符映射到所述源标识符,从而在延迟期间上经由记录所述信号数据的轨迹的延迟逻辑将所述信号数据从所选择的部分转发到所复制的部分。
39.一种设计多个集成电路(IC)的***,所述***包括:
用于在IC中选择源逻辑的多个部分以用于复制的装置;
用于将组装逻辑***所述源逻辑的装置,所述组装逻辑产生表示所选择的部分的信号数据的分组,每个分组包括对一个所选择的部分进行标识的源标识符;
用于将析取逻辑***复制所述源逻辑的所选择的部分的目的逻辑的装置,所述析取逻辑从用于所复制的部分的接收到的分组提取所述信号数据,每个接收到的分组包括对一个所复制的部分进行标识的目的标识符;
用于配置转换逻辑的装置,所述转换逻辑作为虚拟信道将所述目的标识符映射到所述源标识符,从而在延迟期间上经由记录所述信号数据的轨迹的延迟逻辑将所述信号数据从所选择的部分转发到所复制的部分;
用于显示所述IC的表示的装置;
用于编译硬件描述语言(HDL)代码以产生表示所述IC的技术独立的RTL(寄存器传递级)网表。
40.一种用于设计多个集成电路(IC)的数字处理***,所述数字处理***包括:
显示装置;
存储器;
处理器,该处理器耦合到所述存储器和所述显示装置,所述处理器被配置成产生包括一个或多个源子信道的源电路的表示,所述一个或多个源子信道与由多个时钟域驱动的源逻辑的部分关联,每个源子信道用于产生携带来自所述源逻辑的所述部分中的一个部分的信号数据的分组;
产生目的电路的表示,所述目的电路的表示包括一个或多个目的子信道,所述目的子信道与复制所述源逻辑的目的逻辑的部分关联,每个目的子信道用于经由所述分组将所述信号数据转发到所述目的逻辑的所述部分中的一个部分;
配置转换逻辑的表示,所述转换逻辑的表示作为虚拟信道将所述源子信道映射到所述目的子信道,从而将所述分组从所述源子信道转发到所述目的子信道;
显示所述IC的表示,所述IC的表示包括所述源电路的表示、所述目的电路的表示和所述转换逻辑的表示;
编译硬件描述语言(HDL)代码,以产生表示所述IC的技术独立的RTL(寄存器传递级)网表。
CN201180006912.4A 2010-01-22 2011-01-21 用于基于分组转换的逻辑复制的方法和*** Active CN102713864B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/692,562 US8397195B2 (en) 2010-01-22 2010-01-22 Method and system for packet switch based logic replication
US12/692,562 2010-01-22
PCT/US2011/022148 WO2011091320A2 (en) 2010-01-22 2011-01-21 Method and system for packet switch based logic replication

Publications (2)

Publication Number Publication Date
CN102713864A true CN102713864A (zh) 2012-10-03
CN102713864B CN102713864B (zh) 2016-06-15

Family

ID=44307623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180006912.4A Active CN102713864B (zh) 2010-01-22 2011-01-21 用于基于分组转换的逻辑复制的方法和***

Country Status (5)

Country Link
US (1) US8397195B2 (zh)
EP (1) EP2526490B1 (zh)
CN (1) CN102713864B (zh)
TW (1) TWI475382B (zh)
WO (1) WO2011091320A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107544833A (zh) * 2016-06-24 2018-01-05 柯尼卡美能达株式会社 图像处理装置、调试支援方法以及记录有调试支援程序的计算机可读取的记录介质
CN107851074A (zh) * 2015-07-21 2018-03-27 高通股份有限公司 多个接口对存储器空间的并发访问
CN109697016A (zh) * 2017-10-20 2019-04-30 伊姆西Ip控股有限责任公司 用于改进容器的存储性能的方法和装置
CN111506467A (zh) * 2019-01-31 2020-08-07 上海诺基亚贝尔股份有限公司 信号处理方法、电子设备和计算机可读存储介质
CN112257362A (zh) * 2020-10-27 2021-01-22 海光信息技术股份有限公司 逻辑代码的验证方法、验证装置以及存储介质
US10936289B2 (en) 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations
CN113740851A (zh) * 2021-09-07 2021-12-03 电子科技大学 一种分时复用单ddr的sar成像数据处理***
CN113919254A (zh) * 2021-11-13 2022-01-11 奇捷科技(深圳)有限公司 寄存器传输级信号映射构建方法、装置、设备和存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467429A (zh) * 2010-11-11 2012-05-23 上海华虹集成电路有限责任公司 智能卡芯片仿真器
US8607181B1 (en) * 2012-02-07 2013-12-10 Applied Micro Circuits Corporation Method for converting a single channel hardware module into a multi-channel module
US9893999B2 (en) 2013-11-26 2018-02-13 Macom Connectivity Solutions, Llc Multiple datastreams processing by fragment-based timeslicing
US9767237B2 (en) 2015-11-13 2017-09-19 Mentor Graphics Corporation Target capture and replay in emulation
US9990452B2 (en) * 2015-11-13 2018-06-05 Mentor Graphics Corporation Low power corruption of memory in emulation
US9898563B2 (en) 2015-11-13 2018-02-20 Mentor Graphics Corporation Modeling memory in emulation based on cache
US20190155645A1 (en) * 2019-01-23 2019-05-23 Intel Corporation Distribution of network traffic to processor cores
CN111741235B (zh) * 2020-08-17 2020-12-01 成都智明达电子股份有限公司 基于fpga的多路视频切换方法
CN113032295B (zh) * 2021-02-25 2022-08-16 西安电子科技大学 一种数据包二级缓存方法、***及应用

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613069A (en) * 1994-12-16 1997-03-18 Tony Walker Non-blocking packet switching network with dynamic routing codes having incoming packets diverted and temporarily stored in processor inputs when network ouput is not available
US6000022A (en) * 1997-10-10 1999-12-07 Micron Technology, Inc. Method and apparatus for coupling signals between two circuits operating in different clock domains
US20030076831A1 (en) * 2000-05-31 2003-04-24 Van Doren Stephen R. Mechanism for packet component merging and channel assignment, and packet decomposition and channel reassignment in a multiprocessor system
CN101097508A (zh) * 2006-06-27 2008-01-02 三星电子株式会社 使用先进先出器件的数据处理装置和方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0651343B1 (en) * 1988-10-05 2004-04-28 Quickturn Design Systems, Inc. Method of using electronically reconfigurable gate array logic and apparatus formed thereby
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
US5596742A (en) * 1993-04-02 1997-01-21 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
US5761484A (en) * 1994-04-01 1998-06-02 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
US5805610A (en) * 1997-04-28 1998-09-08 Credence Systems Corporation Virtual channel data distribution system for integrated circuit tester
US6259699B1 (en) * 1997-12-30 2001-07-10 Nexabit Networks, Llc System architecture for and method of processing packets and/or cells in a common switch
US6618839B1 (en) * 1999-11-30 2003-09-09 Synplicity, Inc. Method and system for providing an electronic system design with enhanced debugging capabilities
EP2320372A1 (en) * 2000-04-13 2011-05-11 Superderivatives Inc A method for pricing financial instruments
JP4410921B2 (ja) * 2000-09-22 2010-02-10 富士通株式会社 回線再配置方法およびそのための回路
US20020161923A1 (en) * 2001-04-27 2002-10-31 Foster Michael S. Method and system for reconfiguring a path in a communications network
US7213216B2 (en) * 2002-08-09 2007-05-01 Synplicity, Inc. Method and system for debugging using replicated logic and trigger logic
US7398445B2 (en) * 2002-08-09 2008-07-08 Synplicity, Inc. Method and system for debug and test using replicated logic
US6904576B2 (en) * 2002-08-09 2005-06-07 Synplicity, Inc. Method and system for debugging using replicated logic
US7197680B2 (en) * 2003-04-17 2007-03-27 Arm Limited Communication interface for diagnostic circuits of an integrated circuit
US7000036B2 (en) * 2003-05-12 2006-02-14 International Business Machines Corporation Extended input/output measurement facilities
US20070038782A1 (en) * 2005-07-26 2007-02-15 Ambric, Inc. System of virtual data channels across clock boundaries in an integrated circuit
US6920586B1 (en) * 2004-01-23 2005-07-19 Freescale Semiconductor, Inc. Real-time debug support for a DMA device and method thereof
US7434192B2 (en) * 2004-12-13 2008-10-07 Altera Corporation Techniques for optimizing design of a hard intellectual property block for data transmission
US7739424B2 (en) * 2005-04-18 2010-06-15 Integrated Device Technology, Inc. Packet processing switch and methods of operation thereof
US7375550B1 (en) * 2005-07-15 2008-05-20 Tabula, Inc. Configurable IC with packet switch configuration network
US7596743B2 (en) * 2005-09-28 2009-09-29 Ati Technologies Inc. Method and apparatus for error management
US7787484B2 (en) * 2006-05-29 2010-08-31 Freescale Semiconductor, Inc. Method for transmitting data from multiple clock domains and a device having data transmission capabilities
US8001307B1 (en) * 2007-04-27 2011-08-16 Network Appliance, Inc. Apparatus and a method to eliminate deadlock in a bi-directionally mirrored data storage system
US7904859B2 (en) * 2007-05-09 2011-03-08 Synopsys, Inc. Method and apparatus for determining a phase relationship between asynchronous clock signals
US8756557B2 (en) * 2007-05-09 2014-06-17 Synopsys, Inc. Techniques for use with automated circuit design and simulations
US8121825B2 (en) * 2008-04-30 2012-02-21 Synopsys, Inc. Method and apparatus for executing a hardware simulation and verification solution
US7861070B2 (en) * 2008-06-12 2010-12-28 National Tsing Hua University Trace compression method for debug and trace interface wherein differences of register contents between logically adjacent registers are packed and increases of program counter addresses are categorized
US7962458B2 (en) * 2008-06-12 2011-06-14 Gravic, Inc. Method for replicating explicit locks in a data replication engine
US8484613B2 (en) * 2010-01-28 2013-07-09 Synopsys, Inc. Optimizing bounds checking using computer algebra

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613069A (en) * 1994-12-16 1997-03-18 Tony Walker Non-blocking packet switching network with dynamic routing codes having incoming packets diverted and temporarily stored in processor inputs when network ouput is not available
US6000022A (en) * 1997-10-10 1999-12-07 Micron Technology, Inc. Method and apparatus for coupling signals between two circuits operating in different clock domains
US20030076831A1 (en) * 2000-05-31 2003-04-24 Van Doren Stephen R. Mechanism for packet component merging and channel assignment, and packet decomposition and channel reassignment in a multiprocessor system
CN101097508A (zh) * 2006-06-27 2008-01-02 三星电子株式会社 使用先进先出器件的数据处理装置和方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107851074A (zh) * 2015-07-21 2018-03-27 高通股份有限公司 多个接口对存储器空间的并发访问
US10936289B2 (en) 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations
US11347484B2 (en) 2016-06-03 2022-05-31 Ab Initio Technology Llc Format-specific data processing operations
CN107544833A (zh) * 2016-06-24 2018-01-05 柯尼卡美能达株式会社 图像处理装置、调试支援方法以及记录有调试支援程序的计算机可读取的记录介质
CN109697016A (zh) * 2017-10-20 2019-04-30 伊姆西Ip控股有限责任公司 用于改进容器的存储性能的方法和装置
CN109697016B (zh) * 2017-10-20 2022-02-15 伊姆西Ip控股有限责任公司 用于改进容器的存储性能的方法和装置
CN111506467A (zh) * 2019-01-31 2020-08-07 上海诺基亚贝尔股份有限公司 信号处理方法、电子设备和计算机可读存储介质
CN111506467B (zh) * 2019-01-31 2023-07-11 上海诺基亚贝尔股份有限公司 信号处理方法、电子设备和计算机可读存储介质
CN112257362A (zh) * 2020-10-27 2021-01-22 海光信息技术股份有限公司 逻辑代码的验证方法、验证装置以及存储介质
CN113740851A (zh) * 2021-09-07 2021-12-03 电子科技大学 一种分时复用单ddr的sar成像数据处理***
CN113740851B (zh) * 2021-09-07 2023-06-13 电子科技大学 一种分时复用单ddr的sar成像数据处理***
CN113919254A (zh) * 2021-11-13 2022-01-11 奇捷科技(深圳)有限公司 寄存器传输级信号映射构建方法、装置、设备和存储介质

Also Published As

Publication number Publication date
US8397195B2 (en) 2013-03-12
WO2011091320A2 (en) 2011-07-28
TW201145017A (en) 2011-12-16
EP2526490A4 (en) 2015-07-15
US20110184717A1 (en) 2011-07-28
WO2011091320A3 (en) 2011-10-27
CN102713864B (zh) 2016-06-15
EP2526490B1 (en) 2021-12-22
EP2526490A2 (en) 2012-11-28
TWI475382B (zh) 2015-03-01

Similar Documents

Publication Publication Date Title
CN102713864A (zh) 用于基于分组转换的逻辑复制的方法和***
TWI447578B (zh) 用於以封包切換為基礎的邏輯複製之方法和系統
US10062422B2 (en) Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets
EP1738267B1 (en) System and method for organizing data transfers with memory hub memory modules
CN102637157B (zh) 一种片上数字模板***dtsoc
US8165120B2 (en) Buffering architecture for packet injection and extraction in on-chip networks
US7779286B1 (en) Design tool clock domain crossing management
CN102576303B (zh) 伪同步时分复用
CN101866308B (zh) 基于fpga扩展的皮卫星星务管理***
WO2011109305A1 (en) Various methods and apparatuses for optimizing concurrency in multiple core systems
CN103198856A (zh) 一种ddr控制器及请求调度方法
CN101344870B (zh) 一种复用性强的fifo控制模块及其管理内存的方法
CN105162512A (zh) 多通道卫星遥感数据处理与存储***及测试方法
CN103324591B (zh) 用于处理跟踪信息的***和方法
CN107391422A (zh) 多路异步串行通讯数据访问***及方法
CN101529404B (zh) 用于时间戳消息的方法
US11561925B2 (en) Tensor partitioning and partition access order
US9588734B2 (en) Translation layer for controlling bus access
CN105930222A (zh) 错误响应电路、半导体集成电路以及数据传输控制方法
CN102521180A (zh) 一种多通道实时直读存储器结构
Wodey et al. LOTOS code generation for model checking of STBus based SoC: the STBus interconnection
CN111552662B (zh) 基于线性光纤令牌总线的片上网络表单化存储***及方法
CN104035748A (zh) 包括打包源字段和目的地字段的微操作
SU734654A1 (ru) Устройство св зи дл вычислительной системы
Friedmann Faculty of Physics and Astronomy

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant