CN104657306A - 具有高速调试访问端口的集成电路 - Google Patents

具有高速调试访问端口的集成电路 Download PDF

Info

Publication number
CN104657306A
CN104657306A CN201410674846.3A CN201410674846A CN104657306A CN 104657306 A CN104657306 A CN 104657306A CN 201410674846 A CN201410674846 A CN 201410674846A CN 104657306 A CN104657306 A CN 104657306A
Authority
CN
China
Prior art keywords
circuit
port
debug
user
speed serial
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
CN201410674846.3A
Other languages
English (en)
Other versions
CN104657306B (zh
Inventor
C·D·菲南
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.)
Altera Corp
Original Assignee
Altera Corp
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 Altera Corp filed Critical Altera Corp
Publication of CN104657306A publication Critical patent/CN104657306A/zh
Application granted granted Critical
Publication of CN104657306B publication Critical patent/CN104657306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]
    • G01R31/318519Test of field programmable gate arrays [FPGA]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明涉及一种具有高速调试访问端口的集成电路,该电路包括接口电路系统以及接口电路系统中的专用调试端口。接口电路系统包括功能电路块,其用于从耦合到集成电路的外部电路系统接收数据包。专用调试端口耦合到功能电路块并用于将所接收的数据包传输到集成电路上的调试电路系统。接口电路系统可包括外设部件互连高速(PCIe)接口电路。

Description

具有高速调试访问端口的集成电路
本申请要求2013年11月22日提交的美国专利申请14/087,690的优先权,其全部内容通过引用并入本文。
背景技术
可编程集成电路器件(诸如现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD))可被加载或配置有用户设计以执行各种功能中的任一种。通常,电路设计者或设计工程师使用电子设计自动化(EDA)工具,以便为集成电路器件创建电路设计(通常被称为用户设计)。
当设计电路时,电路设计者或设计工程师可使用EDA工具调试他们的设计。作为示例,EDA工具可自动地将调试电路系统插入用户设计中。当用户设计与所插入的调试电路系统一起被编译时,用户可经由集成电路器件上可用的联合测试行动组(JTAG)端口,执行设计的调试操作。
除了使用JTAG端口以外,可经由其他接口(诸如外设部件互连高速(PCIe)接口标准)调试集成电路。然而,用户或电路设计者可能需要包括特定调试通讯电路系统,诸如多路复用电路和解多路复用电路,以便允许PCIe接口用于调试目的。
此外,用户可能需要在PCIe器件的地址空间内留出地址,以用于其调试逻辑。这可包括将附加基地址寄存器(BAR)添加到用户的PCIe功能或者扩展用户现有BAR中的其中一个的大小。如此,尽管与典型的JTAG接口相比,PCIe接口可允许相对较快的调试访问,但是需要对用户设计进行很多修改,以使PCIe接口用于调试用户设计。
发明内容
公开了用于经由诸如外设部件互连高速(PCIe)接口的高速接口来调试用户设计的技术和电路系统。本发明的实施例包括在不修改用户的基础寄存器传输级(RTL)设计的情况下,将调试连接件插入用户设计中的方法。
应当理解的是,能够通过许多方式(诸如过程、装置、系统、器件或计算机可读媒介)实施本发明。下面描述本发明的若干创造性实施例。
一种具有高速调试访问端口的集成电路包括接口电路系统,其具有从外部电路系统接收数据包的功能电路块。作为一个示例,接口电路系统可包括用于PCIe接口的电路系统。接口电路系统进一步包括耦合到功能电路块的专用调试端口。专用调试端口将所接收的数据包传输到集成电路上的调试电路系统。
用于利用电子设计自动化(EDA)工具在集成电路中提供调试能力的一种方法包括在集成电路上的高速串行接口电路中提供专用调试端口。该方法进一步包括提供功能块,以访问高速串行接口电路中的专用调试端口。编译具有调试电路系统的用户设计,以形成从用户设计中的调试电路系统到专用调试端口的调试路径。
操作集成电路的一种方法包括在高速串行接口电路中的专用调试功能电路块处接收来自外部电路系统的调试信号。将调试信号传输到高速串行接口电路中的专用调试端口。因此,经由高速串行接口电路中的专用调试端口将调试信号传输到集成电路上的调试电路系统。在其中一个实施例中,可以通过直接存储器存取(DMA)控制器电路传输调试信号。
附图说明
图1为根据本发明实施例的集成电路的简化框图。
图2示出根据本发明的实施例的使用EDA工具为IC创建及编译电路设计的示例性方法。
图3示出根据本发明的实施例的具有调试电路系统和接口电路系统的示例性集成电路,其中接电路系统具有专用调试端口。
图4为示例性方框图,其示出根据本发明的实施例的具有耦合到集成电路器件的软件驱动器和应用程序的主机系统。
图5示出根据本发明的实施例的不具有专用调试功能的外设部件互连高速(PCIe)接口电路。
图6示出根据本发明的实施例的PCIe接口电路系统,其耦合到具有直接存储器存取(DMA)电路的逻辑块。
具体实施方式
本文提供的实施例包括调试集成电路设计的技术。
然而,对本领域技术人员将明显的是,可在没有这些具体细节中的一些或全部的情况下实践本发明的示例性实施例。在其他实例中,没有详细描述已知的操作,以免不必要地使本实施例晦涩。
IC器件(诸如现场可编程门阵列(FPGA)器件或专用集成电路(ASIC)器件)通常包括(除其他之外)存储器模块、逻辑块、时钟发生电路系统以及输入-输出元件。图1意为示例性的且不是限制性的,其示出IC 100的简化框图。IC 100包括核心逻辑区域115和输入-输出元件110。应当理解的是,如IC 100的单个器件能够潜在地支持各种不同接口,并且每个单独的输入-输出组110能够支持具有不同的接口或协议(诸如外设部件互连高速(PCIe)协议)的不同输入-输出标准。
用于时钟发生和时序的其他电路(诸如锁相环(PLL)125)也可位于核心逻辑区域115外部(例如,在IC 100的角落处或与输入-输出元件110邻近)。集成电路(IC)器件通常使用时钟信号以使器件中的不同电路元件同步。如此,IC 100可包括时钟网络(未示出),其可用于将时钟信号从时钟电路(例如,PLL 125)传输到IC 100的各个部件。
可将输入-输出元件110处从外部电路系统接收到的信号从输入-输出元件110路由到核心逻辑区域115、PLL 125或IC 100上的其他逻辑块(未示出)。核心逻辑区域115(或更具体地,核心逻辑区域115内的逻辑元件(LE)117或核心寄存器)可基于所接收的信号执行功能。因此,可将信号从核心逻辑区域115和IC 100的其他相关逻辑块发送到其他外部电路系统或部件,其中该外部电路系统或部件通过输入-输出元件110可连接到IC 100。
如图1所示,核心逻辑区域115可填充有逻辑单元,该逻辑单元可以包括除了其他电路以外的LE 117或核心寄存器。LE可进一步包括基于查找表的逻辑区域并可被分组为“逻辑阵列块”(LAB)。LE以及LE或LAB的组能够经配置以执行用户或电路设计者所需的逻辑功能。
作为一个示例,电路设计者可设计执行具体逻辑功能的电路。通常,电路设计者可在设计电路时使用电子设计自动化(EDA)工具。利用典型EDA工具可以在若干步骤中完成设计在IC器件(诸如IC 100)上实施的电路的过程。EDA工具因此可产生输出文件(例如,配置文件),其然后用于配置具有用户设计的IC器件。可选地,EDA工具还可产生输出文件(例如,二进制文件),以便(基于用户设计)生成IC器件的掩模。作为设计流程的部分,EDA工具可因此插入允许电路设计者调试电路设计的调试电路系统。在调试电路设计之后,(如果需要)电路设计者可在将更新的电路设计装载到IC器件之前,对所更新的电路设计作出调整。
图2示出根据本发明的实施例的使用EDA工具为IC器件创建和编译电路设计的示例性步骤。应当注意的是,EDA工具可以包括调试工具,其中用户可使用该调试工具验证电路设计。因此,利用用户的电路设计可以编译调试工具所包括的调试逻辑,并且将其下载到IC器件用于分析。
通常,电路设计者或工程师可创建在硬件描述语言(HDL)文件205中体现的电路设计。如所提及的,可将调试逻辑或调试文件208插入设计中。在综合步骤210期间,通过EDA工具可以综合HDL文件205以及调试文件208。例如,在步骤210处执行的综合操作可将HDL文件205和调试文件208中所体现的电路设计翻译成逻辑门基元的离散网表。然后,在步骤220的放置和路由操作期间,将电路设计中所综合的逻辑门放置并路由到目标IC器件上。通常,可添加线网以连接逻辑门和目标IC器件上的其他部件,从而在步骤220的放置和路由操作期间路由电路设计中的信号。
在放置和路由操作之后,在步骤230可以执行时序分析操作。应当理解的是,时序分析操作可计算电路设计中不同路径的延迟以及总电路设计的时序约束。然后在步骤240的汇编操作期间可以生成二进制配置文件245。二进制配置文件245包含电路设计的描述,并可用于在步骤260的配置操作期间对IC器件100编程(例如,将二进制配置文件245的内容下载到IC器件100)。
在其中一个实施例中,在将二进制配置文件245的内容下载到IC器件之后,可在步骤265调试IC 100,以确保满足用户的所需功能以及正确地操作电路设计。在其中一个实施例中,主机系统(例如,计算机系统)可经由PCIe总线建立与IC器件调试连接。如果所编译的设计满足用户的所需功能,则在该阶段完成电路设计过程。否则,用户可修改或更新HDL文件205,并且可重新编译所更新的电路设计,并且可重复步骤210-265,直到实现所需功能(例如,当纠正了电路设计中的现有错误时)。
图3示出根据本发明的实施例的具有调试电路系统和接口电路系统的示例性IC 300,其中接口电路系统具有专用调试端口。应当注意的是,IC 300为简化框图,其示出在电路设计中可存在的某些电路块以及在电路块和专用调试端口之间形成的连接,以允许到这些电路块中的一些的用户调试访问。
如图3所示,IC 300包括联合测试行动组(JTAG)接口305。JTAG接口电路系统305可以包括控制器电路(未示出)以及可用于连接到IC 300上的用户定义电路的JTAG枢纽307。由于IC 300中的不同电路或元件可能需要经由JTAG接口305通信,因此JTAG枢纽307为仲裁电路(例如,多路复用电路),其处理信号从不同电路到JTAG接口电路系统305的传输。如已知的,JTAG接口可将IC器件(诸如IC 300)连接到主机计算机系统,并且其广泛地用于调试和边界扫描测试目的。
在图3的实施例中,IC可经由PCIe接口电路360(或其他类似的高速接口)链接到主机计算机系统,而不是使用JTAG接口电路系统305调试IC 300内的电路系统。PCIe接口电路360可以包括耦合到专用调试端口362的调试功能块364,以及耦合到接口端口366的常规功能块368。应当理解的是,除了其他的以外,PCIe接口电路360可以包括图3中未示出的事务层、数据链路层和物理层。事务层管理与应用层和相关收发器通道的通信。通常位于物理层和事务层之间的数据链路层管理数据包传输,并通过在数据接收期间生成和检查循环冗余码(CRC)维持数据完整性。为了不使本发明晦涩,本文没有描述完整PCIe协议栈中的不同层的进一步细节。
在其中一个实施例中,PCIe接口电路360中的常规功能块368可经由连接369(以及核心功能层,诸如事务层、数据链路层和物理层)接收并传输常规用户数据包(例如,非调试信号)。经由接口端口366可以将所接收的常规用户数据包传输到IC 300内的用户应用层电路350。应当理解的是,这仅仅为示出如何将经由PCIe接口电路360接收到的信号传输到IC 300的其他部件的示例。为了避免不必要地使本发明晦涩,本文没有提供在处理常规用户数据包时,PCEe接口的实际操作的进一步细节。
当IC 300(例如,经由连接369从主机计算机系统)接收调试信号时,调试功能块364可用于访问专用调试端口362。在其中一个实施例中,专用调试端口362可为PCIe接口电路360中的存储器映射端口(基于地址的读取/写入接口),其允许(例如,在如上面参考图2所概括的电路设计编译过程期间)通过EDA工具添加调试连接(在图3中示出为点线)而不修改现有用户设计。因此,调试功能364可允许PCIe根联合体上的驱动器访问专用调试端口362,随后将参考图4说明其细节。如此,经由连接369从主机计算机系统接收到的调试信号可以经由专用调试端口362传输到IC 300的其他部件。
如图3所示,在专用调试端口362和JTAG接口电路305之间形成调试连接或调试路径(例如,如参考图2所描述的EDA工具可在编译期间自动地插入调试连接)。如此,PCIe接口360可访问IC 300上各个部件中的其他JTAG接口。在图3的实施例中,IC 300包括与JTAG接口逻辑305和用户部件340A和340B通信的处理器电路310、JTAG通用异步接收器/传输器(UART)电路320和流JTAG接口电路330。连接到JTAG接口电路系统305的每个电路(例如,处理器电路310、JTAG UART电路320和ST JTAG接口电路330)可具有其自身的JTAG接口逻辑(例如,分别为JTAG接口314、324和334)。
处理器电路310可为嵌入式处理器,其中利用IC 300中的可编程逻辑元件(例如,图1的LE 117)和存储器块(未示出)实施该嵌入式处理器。因此处理器电路310的设计可被定制为用户的应用程序或设计要求。JTAG UART电路320可为允许在外部器件(例如,耦合到IC 300的计算机主机系统)和处理器电路310之间传输串行通信流的接口。IC 300上的其他电路(诸如处理器电路310)可通过从JTAGUART电路320内的控制和数据寄存器(未示出)读取以及写入到JTAGUART电路320内的控制和数据寄存器(未示出)而与JTAG UART电路320通信。
应当注意的是,处理器电路310可包括主端口312,其耦合到JTAGUART处理器电路310上的从端口322。主端口312还可耦合到用户部件340A上的从端口342。流JTAG接口可以包括流源和接收接口(sinkinterface)332(支持单向数据流(诸如多路复用流、数据包等)的接口),其耦合到用户部件340B上的相应流源和接收接口344。在其中一个实施例中,用户部件340A和340B可为IC 300中编译的用户设计中的电路块。
即使图3中示出了具体电路部件,也可以在诸如IC 300的IC器件上存在不同的电路。例如,可存在与JTAG接口电路305和处理器电路310通信的多个JTAG UART电路。因此,应当指出的是,图3中所示的IC 300仅仅为高速输入-输出接口(诸如PCIe接口电路360)可以用于提供(经由各种调试连接)到IC 300上的不同电路元件的调试访问的方式的一个说明性示例。如此,为了不使本发明晦涩,本文没有详细示出和描述这些电路元件(处理器电路310、JTAG UART电路320、ST JTAG接口电路330,以及用户部件340A和340B)的进一步细节。
图4为示例性框图,其示出根据本发明的实施例的具有耦合到IC器件的软件驱动器和应用程序的主机系统。在图4中,主机系统410(例如,计算机)经由物理连接450耦合到IC 300。在其中一个实施例中,物理连接450可为PCIe电缆或连接器(PCIe卡槽等),其将主机系统410连接到IC 300(或更具体地,IC 300上的PCIe接口电路360)。如此,主机系统410可以包括根联合体器件(未示出),其为主机系统410生成事务请求,以访问IC 300中的专用调试端口362。
图4示出可与IC 300交互的主机系统410上的多种应用程序,诸如供应商应用程序414和用户应用程序424。这些应用程序可以包括它们自己的软件驱动器组。应当注意的是,软件驱动器可为主机系统410上的各个应用程序提供接口,以访问终端器件(IC 300)中的应用程序或设计。例如,供应商驱动器412允许供应商应用程序414与IC 300通信,并且用户驱动器422允许用户应用程序424与IC 300通信。
除了其他的以外,主机系统410上的供应商应用程序414可为EDA工具和IC 300的供应商提供的调试工具。作为一个示例,用户可使用主机系统410上的EDA工具(供应商应用程序414中的其中一个)创建电路设计、编译该设计以及经由物理连接450(例如,USB电缆、PCIe端口等)对目标器件(例如,IC 300)进行编程或配置。在其中一个实例中,相同的EDA工具可以包括调试工具(在其他实例中,可使用单独的调试工具),以经由物理连接450调试IC 300上加载的电路设计。因此,用户应用程序424可以包括经由PCIe接口电路360与IC 300上的用户设计交互的任何应用程序。
如图4所示,IC 300上的PCIe接口电路360包括专用调试功能块364和常规功能块368。通常,PCIe接口功能(例如,PCIe接口电路360内的调试功能364或常规功能368)可以包括识别寄存器(未示出),其允许主机系统410上的系统软件(例如,主机系统410上的操作系统)识别(PCIe接口中的)目标功能,以便选择与IC 300通信的适当驱动器。
作为一个示例,常规功能块368中的识别寄存器可配置有用户具体值,以允许启动用户驱动器422,以使用户应用程序424经由PCIe接口电路360与IC 300通信。相应地,在其中一个实施例中,调试功能364中的识别寄存器可配置有供应商具体值(例如,供应商器件识别号等),以允许选择供应商驱动器412。随后,供应商应用程序414将能够经由相同的PCIe接口电路360访问IC 300中的调试电路系统399。
如图4所示,物理连接450内的逻辑连接451A和451B(示为点线)将主机系统410上的不同应用程序和驱动器连接到IC 300上的PCIe接口电路系统360上的它们相应的功能。因此,当用户使用来自任何可用供应商应用程序414的调试工具调试IC 300时,供应商驱动器412将所选择的供应商应用程序414连接到专用调试功能364(示出为逻辑连接451A)。因此,通过调试功能364接收到的调试信号经由专用调试端口362传输到调试电路系统399。在其中一个实施例中,通过所选择的供应商应用程序414(例如,如图3中的点线所示的调试连接)可以自动地插入调试电路系统399。
因此,当用户利用任何用户应用程序424访问IC 300时,用户驱动器422将所选择的用户应用程序424连接到常规功能块368(示出为逻辑连接451B)。如以上参考图3所提及的,常规功能块368可在IC300和主机系统410之间接收并传输常规用户数据包。然后,可以经由接口端口366将所接收的常规用户数据包从PCIe接口电路360传输到用户应用层电路350。应当理解的是,即使图3和图4中仅示出了调试功能块364和常规功能块368,也可存在各种功能块在PCIe接口电路360中,并且对于PCIe接口电路360中的每个功能块,也可存在相应驱动器软件的一个实例。
由于PCIe接口电路360包括专用调试功能364,因此即使在通过用户应用程序424传输用户数据包时,用户也能够访问调试电路系统399并调试IC 300。也就是说,分别来自供应商应用程序414和用户应用程序424的调试数据信号和用户数据包可经由物理连接450传输到IC 300。在其中一个实施例中,由于是从调试电路系统399到专用调试端口362而不是到用户接口端口366形成连接,因此在PCIe接口电路360中具有专用调试端口362允许将调试电路系统399添加到IC 300中,而不影响用户设计。此外,当使用专用调试功能364时,可不影响用户驱动器422,这是因为不同的驱动器(在这种情况下,供应商驱动器412)用于允许供应商应用程序414访问IC 300中的调试电路系统399。
尽管在PCIe接口电路中具有专用调试功能可允许经由PCIe连接调试IC器件,但是可能存在具有专用调试功能不是成本高效的时候(例如,当限制IC器件中的逻辑资源时)。图5示出根据本发明的实施例的不具有专用调试功能的PCIe接口电路。在图5中,PCIe核心功能层510经由仲裁电路540A和540B耦合到调试端口552和用户端口554。
调试端口552可为专用调试端口,其提供到器件内调试电路系统的调试访问,类似于图3和图4的调试端口362。然而,不同于图3和图4的实施例中所示的PCIe接口电路360,PCIe接口电路500不包括专用调试功能块(例如,图3和图4的调试功能块364)。因此,在其中一个实施例中,为了支持经由PCIe链路的调试访问,PCIe接口电路500可能需要允许用户指定部分的器件存储器空间重定向到专用调试端口552。
如图5所示,PCIe核心功能层510耦合到仲裁电路540A。应当理解的是,除了其他的以外,PCIe核心功能层510可以包括事务层、数据链路层和物理层,用于处理数据包传输。为了不使本发明晦涩,没有详细描述PCIe协议栈中的层的实际操作。当PCIe接口电路500从物理链路599(例如,PCIe电缆、PCIe连接器等)接收数据包时,该数据包可通过PCIe核心功能层510传输到仲裁电路540A。因此,仲裁电路540可将所接收的数据包传输到DMA电路530,或直接传输到仲裁电路540B或用户端口554。
当所接收的数据包包括常规用户数据信号(例如,非调试信号)时,仲裁电路540A可将数据包传输到用户端口554。然后,经由用户端口554可以将用户数据信号传输到用户应用层(未示出)。当所接收的数据包包括调试信号时,仲裁电路540A可经由仲裁电路540B将所接收的数据包传输到专用调试端口552。然后,可以将调试信号从调试端口552传输到IC器件中的调试电路系统。应当注意的是,大部分PCIe主机中央处理单元(CPU)仅仅可发布四个字节或八个字节存储器读取和写入操作到所连接的PCIe器件(例如,PCIe接口电路500)。因此,为了提高吞吐量,DMA控制器530可以包括在PCIe接口电路500中。
在其中一个实施例中,经由物理链路599在PCIe核心功能层510处接收的数据包可以包括几个相对小的PCIe事务。因此,仲裁电路540A可将所接收的PCIe事务或指令传输到DMA电路530。所接收的PCIe指令可用于配置DMA电路530,其然后可以生成较大的PCIe事务用于较快的数据传输。例如,DMA电路530可向器件内的调试电路系统发出读取/写入请求。如图5所示,在将读取/写入请求传输到调试电路系统之前,可以通过仲裁电路540B将其传输到专用调试端口552。
在其中一个实施例中,仲裁电路540A和540B包括多路复用电路和解多路复用电路。因此,通过用户端口554和调试端口552可以分别接收由器件生成的常规用户信号和调试信号。仲裁电路540A和540B然后可以将各自的信号传输到PCIe核心功能层510,以经由物理链路599将信号从器件传输出去。
图6示出根据本发明的实施例的PCIe接口电路600,其耦合到具有DMA电路630的逻辑块650。应当理解的是,PCIe接口电路600与图5的PCIe接口电路500类似,并且因此,没有再次详细描述以上已经描述的元件(例如,PCIe核心功能层610、用户端口646、仲裁电路620A和620B等)。DMA电路630可被自动地插入,作为逻辑块650的部分(例如,通过EDA工具插入并被编译为将要加载到器件上的配置的部分),而不是在PCIe接口电路600中嵌入DMA电路。在其中一个实施例中,可基于被插入器件中的调试电路系统定制DMA电路630的功能。
如所说明的,PCIe核心功能层610可从外部元件(未示出)接收数据包。如果所接收的数据包包括用户数据信号,则仲裁电路620A可在信号被随后传输到用户应用层(图6中未示出)之前,将信号传输到用户端口646。如图6所示,PCIe接口电路600包括两个专用调试端口,即,调试存储器映射从端口642和调试存储器映射主端口644。应当注意的是,存储器映射主接口端口可开始传输,并且存储器映射从接口端口可响应传输请求。
当所接收的数据包包括调试信号或事务时,仲裁电路620A可将信号路由到调试存储器映射主端口644(如果数据包包括用于调试电路系统的调试信号)或调试存储器映射从端口642(如果数据包包括编程DMA电路630的多个PCIe事务)。在图6中,调试存储器映射从端口耦合到DMA电路630,或者更具体地耦合到DMA电路630上的主端口(未示出)。因此DMA电路630可经由PCIe接口电路600开始大数据传输事务。因此,DMA 630可发出读取请求,以从器件上的调试电路系统(未示出)读取数据,或者经由调试存储器映射从端口642向PCIe接口电路600写入数据包。逻辑块650中的仲裁电路620B因此可将信号从调试存储器映射主端口644或调试存储器映射从端口642路由到器件上的调试电路系统,并将信号从调试电路系统路由回到两个调试端口中的任一个。
到目前为止,描述了关于可编程逻辑电路的实施例。本文所描述的方法和装置可并入任何合适的电路中。例如,方法和装置还可并入许多类型的器件中,诸如微处理器或其他集成电路。示例性集成电路包括可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程逻辑器件(EPLD)、电可擦除可编程逻辑器件(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列(FPGA)、专用标准产品(ASSP)、专用集成电路(ASIC),这里仅举出了几例。
本文所描述的可编程逻辑器件可为数据处理系统的部分,该数据处理系统包括以下部件中的一个或更多个:处理器;存储器;I/O电路系统;以及外设器件。数据处理系统能够用于各种各样的应用中,诸如计算机网络、数据网络、仪器仪表、视频处理、数字信号处理,或其中期望使用可编程或可再编程逻辑的优点的任何合适的其他应用。可编程逻辑器件能够用于执行多个不同的逻辑功能。例如,可编程逻辑器件能够经配置作为与系统处理器协作运行的处理器或控制器。可编程逻辑器件还可用作仲裁器,用于仲裁到数据处理系统中的共享资源的访问。在另一个示例中,可编程逻辑器件能够经配置作为处理器和系统中其他部件中的一个之间的接口。在其中一个实施例中,可编程逻辑器件可为受让人所拥有的器件系列中的一种。
尽管以具体顺序描述了方法操作,应当理解的是,可在所描述的操作之间执行其他操作,可调整所描述的操作以使它们发生在略微不同的时间,或者所描述的操作可分布在允许处理操作发生在与处理关联的各个时间间隔的系统中,只要以期望的方式来执行覆盖操作的处理。
附加实施例:
附加实施例1.一种集成电路,其包括:高速串行接口电路系统,其具有从外部电路系统接收数据包的功能电路块;以及耦合到所述功能电路块的所述高速串行接口电路系统中的专用调试端口,其将所接收的数据包传输到所述集成电路上的调试电路系统。
附加实施例2.根据附加实施例1所述的集成电路,其中所述高速串行接口电路系统包括外设部件互连高速(PCIe)接口。
附加实施例3.根据附加实施例2所述的集成电路,其中所述功能电路块包括所述PCIe接口中的专用调试功能电路块,其中所述外部电路系统包括根联合体模块,并且其中所述专用调试功能电路块允许所述根联合体模块访问所述专用调试端口。
附加实施例4.根据附加实施例3所述的集成电路,其中所述数据包包括调试信号,并且其中所述高速串行接口电路系统进一步包括:用户功能电路块,其从所述外部电路系统接收用户数据包;以及所述高速串行接口电路系统中的用户端口,其将所接收的用户数据包传输到所述集成电路上的用户电路系统。
附加实施例5.根据附加实施例1所述的集成电路,进一步包括:耦合到所述专用调试端口的联合测试行动组(JTAG)电路块,其中经由所述JTAG电路块将所接收的数据包从所述专用调试端口传输到所述调试电路系统。
附加实施例6.根据附加实施例1所述的集成电路,其中所述数据包包括调试数据包,并且其中所述功能电路块包括适于接收所述调试数据包和用户数据包中的一个的用户功能电路块,集成电路进一步包括:耦合到所述功能电路块的仲裁逻辑电路系统,其中所述仲裁逻辑电路系统选择性地将所述用户数据包传输到所述高速串行接口电路系统中的用户端口,并选择性地将所述调试数据包传输到所述专用调试端口。
附加实施例7.根据附加实施例6所述的集成电路,进一步包括:所述高速串行接口电路系统中的直接存储器存取(DMA)控制器;以及耦合到所述专用调试端口的附加仲裁逻辑电路系统,其中所述附加仲裁逻辑电路系统在第一输入端接收所述调试数据包并从所述DMA控制器接收输出,并且其中所述附加仲裁逻辑电路系统选择性地将所述调试数据包和来自所述DMA控制器的所述输出中的其中一个传输到所述专用调试端口。
附加实施例8.根据附加实施例6所述的集成电路,其中所述专用调试端口包括主端口,其中所述高速串行接口电路系统进一步包括从端口,并且其中所述仲裁逻辑电路系统选择性地将多个配置指令传输到所述从端口。
附加实施例9.根据附加实施例8所述的集成电路,进一步包括:直接存储器存取(DMA)控制器,其接收来自所述从端口的多个配置指令;以及附加仲裁逻辑电路系统,其接收来自所述主端口的所述调试数据包并接收来自所述DMA控制器的输出,并且其中所述附加仲裁逻辑电路系统选择性地将所述调试数据包和来自所述DMA控制器的所述输出中的其中一个传输到所述调试电路系统。
附加实施例10.根据附加实施例1所述的集成电路,其中所述专用调试端口包括存储器映射主端口。
附加实施例11.一种用于在集成电路中提供调试能力的方法,该方法包括:在所述集成电路上的高速串行接口电路中提供专用调试端口;提供功能块,以访问所述高速串行接口电路中的专用调试端口;以及编译具有调试电路系统的用户设计,以形成从所述用户设计中的所述调试电路系统到所述专用调试端口的多个调试路径。
附加实施例12.根据附加实施例11所述的方法,进一步包括:在编译所述用户设计之前,在所述用户设计中插入所述调试电路系统。
附加实施例13.根据附加实施例11所述的方法,其中所述高速串行接口电路包括适于接收用户数据包和调试信号的外设部件互连高速(PCIe)接口电路,其中所述功能块包括专用调试功能块,并且其中所述用户设计包括多个用户应用电路块,该方法进一步包括:在所述高速串行接口电路中提供用户端口;提供用户功能以访问所述用户端口;以及在编译所述用户设计时,形成从所述用户端口到所述多个用户应用电路块的多个用户信号路径。
附加实施例14.根据附加实施例11所述的方法,进一步包括:在所述高速串行接口电路中提供直接存储器存取(DMA)控制器,以访问所述专用调试端口。
附加实施例15.根据附加实施例11所述的方法,进一步包括:在所述高速串行接口电路中提供用户端口;以及提供仲裁逻辑电路,以选择性地将功能块的输出端耦合到所述用户端口和所述专用调试端口中的其中一个。
附加实施例16.一种操作集成电路的方法,该方法包括:在高速串行接口电路中的专用调试功能电路块处接收来自外部电路系统的调试信号;将所述调试信号传输到所述高速串行接口电路中的专用调试端口;以及利用所述高速串行接口电路中的所述专用调试端口将调试信号传输到所述集成电路中的调试电路系统。
附加实施例17.根据附加实施例16所述的方法,其中所述高速串行接口电路包括外设部件互连高速(PCIe)接口电路,该方法进一步包括:利用所述调试电路系统,使用所述调试信号执行所述集成电路上的调试操作;以及当执行所述调试操作时,通过所述PCIe接口电路中的用户功能电路块接收数据包。
附加实施例18.根据附加实施例16所述的方法,其中所述专用调试端口包括存储器映射主端口,并且其中将所述调试信号传输到所述调试端口包括:利用所述高速串行接口电路中的直接存取存取(DMA)控制器电路传输所述调试信号。
附加实施例19.根据附加实施例18所述的方法,进一步包括:在传输所述调试信号之前配置所述DMA控制器电路。
附加实施例20.根据附加实施例16所述的方法,其中将所述调试信号传输到所述集成电路中的调试电路系统包括:利用所述专用调试端口,将所述调试信号传输到耦合到所述专用调试端口的联合测试行动组(JTAG)电路块;以及利用所述JTAG电路块,将所述调试信号传输到所述调试电路系统。
前述仅仅为本发明的说明性原理,并且在不脱离本发明的范围和精神的情况下,本领域的技术人员可作出各种修改。

Claims (20)

1.一种集成电路,其包括:
高速串行接口电路系统,其具有从外部电路系统接收数据包的功能电路块;以及
所述高速串行接口电路系统中的专用调试端口,其耦合到所述功能电路块并将所接收的数据包传输到所述集成电路上的调试电路系统。
2.根据权利要求1所述的集成电路,其中所述高速串行接口电路系统包括外设部件互连高速接口,即PCIe接口。
3.根据权利要求2所述的集成电路,其中所述功能电路块包括所述PCIe接口中的专用调试功能电路块,其中所述外部电路系统包括根联合体模块,并且其中所述专用调试功能电路块允许所述根联合体模块访问所述专用调试端口。
4.根据权利要求3所述的集成电路,其中所述数据包包括调试信号,并且其中所述高速串行接口电路系统进一步包括:
用户功能电路块,其从所述外部电路系统接收用户数据包;以及
所述高速串行接口电路系统中的用户端口,其将所接收的用户数据包传输到所述集成电路上的用户电路系统。
5.根据权利要求1所述的集成电路,进一步包括:
耦合到所述专用调试端口的联合测试行动组电路块,即JTAG电路块,其中经由所述JTAG电路块将所述所接收的数据包从所述专用调试端口传输到所述调试电路系统。
6.根据权利要求1所述的集成电路,其中所述数据包包括调试数据包,并且其中所述功能电路块包括适于接收所述调试数据包和用户数据包中的其中一个的用户功能电路块,所述集成电路进一步包括:
耦合到所述功能电路块的仲裁逻辑电路系统,其中所述仲裁逻辑电路系统选择性地将所述用户数据包传输到所述高速串行接口电路系统中的用户端口,并选择性地将所述调试数据包传输到所述专用调试端口。
7.根据权利要求6所述的集成电路,进一步包括:
所述高速串行接口电路系统中的直接存储器存取控制器,即DMA控制器;以及
耦合到所述专用调试端口的附加仲裁逻辑电路系统,其中所述附加仲裁逻辑电路系统在第一输入端接收所述调试数据包并从所述DMA控制器接收输出,并且其中所述附加仲裁逻辑电路系统选择性地将所述调试数据包和来自所述DMA控制器的所述输出中的其中一个传输到所述专用调试端口。
8.根据权利要求6所述的集成电路,其中所述专用调试端口包括主端口,其中所述高速串行接口电路系统进一步包括从端口,并且其中所述仲裁逻辑电路系统选择性地将多个配置指令传输到所述从端口。
9.根据权利要求8所述的集成电路,进一步包括:
直接存储器存取控制器,即DMA控制器,其从所述从端口接收多个配置指令;以及
附加仲裁逻辑电路系统,其从所述主端口接收所述调试数据包并从所述DMA控制器接收输出,并且其中所述附加仲裁逻辑电路系统选择性地将所述调试数据包和来自所述DMA控制器的所述输出中的其中一个传输到所述调试电路系统。
10.根据权利要求1所述的集成电路,其中所述专用调试端口包括存储器映射主端口。
11.一种用于在集成电路中提供调试能力的方法,所述方法包括:
在所述集成电路上的高速串行接口电路中提供专用调试端口;
提供功能块,以访问所述高速串行接口电路中的所述专用调试端口;以及
编译具有调试电路系统的用户设计,以形成从所述用户设计中的所述调试电路系统到所述专用调试端口的多个调试路径。
12.根据权利要求11所述的方法,进一步包括:
在编译所述用户设计之前,在所述用户设计中插入所述调试电路系统。
13.根据权利要求11所述的方法,其中所述高速串行接口电路包括适于接收用户数据包和调试信号的外设部件互连高速接口电路,即PCIe接口电路,其中所述功能块包括专用调试功能块,并且其中所述用户设计包括多个用户应用电路块,所述方法进一步包括:
在所述高速串行接口电路中提供用户端口;
提供用户功能以访问所述用户端口;以及
当编译所述用户设计时,形成从所述用户端口到所述多个用户应用电路块的多个用户信号路径。
14.根据权利要求11所述的方法,进一步包括:
在所述高速串行接口电路中提供直接存储器存取控制器,即DMA控制器,以访问所述专用调试端口。
15.根据权利要求11所述的方法,进一步包括:
在所述高速串行接口电路中提供用户端口;以及
提供仲裁逻辑电路,以选择性地将所述功能块的输出端耦合到所述用户端口和所述专用调试端口中的其中一个。
16.一种操作集成电路的方法,所述方法包括:
在高速串行接口电路中的专用调试功能电路块处接收来自外部电路系统的调试信号;
将所述调试信号传输到所述高速串行接口电路中的专用调试端口;以及
利用所述高速串行接口电路中的所述专用调试端口,将所述调试信号传输到所述集成电路中的调试电路系统。
17.根据权利要求16所述的方法,其中所述高速串行接口电路包括外设部件互连高速接口电路,即PCIe接口电路,所述方法进一步包括:
利用所述调试电路系统,使用所述调试信号执行所述集成电路的调试操作;以及
当执行所述调试操作时,利用所述PCIe接口电路中的用户功能电路块接收数据包。
18.根据权利要求16所述的方法,其中所述专用调试端口包括存储器映射主端口,并且其中将所述调试信号传输到所述调试端口包括:
利用所述高速串行接口电路中的直接存储器存取控制器电路,即DMA控制器电路,传输所述调试信号。
19.根据权利要求18所述的方法,进一步包括:
在传输所述调试信号之前配置所述DMA控制器电路。
20.根据权利要求16所述的方法,其中将所述调试信号传输到所述集成电路中的调试电路系统包括:
利用所述专用调试端口,将所述调试信号传输到耦合到所述专用调试端口的联合测试行动组电路块,即JTAG电路块;以及
利用所述JTAG电路块,将所述调试信号传输到所述调试电路系统。
CN201410674846.3A 2013-11-22 2014-11-21 具有高速调试访问端口的集成电路 Active CN104657306B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/087,690 2013-11-22
US14/087,690 US9255968B2 (en) 2013-11-22 2013-11-22 Integrated circuit with a high-speed debug access port

Publications (2)

Publication Number Publication Date
CN104657306A true CN104657306A (zh) 2015-05-27
CN104657306B CN104657306B (zh) 2019-03-15

Family

ID=53183746

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410674846.3A Active CN104657306B (zh) 2013-11-22 2014-11-21 具有高速调试访问端口的集成电路

Country Status (2)

Country Link
US (1) US9255968B2 (zh)
CN (1) CN104657306B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073830A (zh) * 2016-11-15 2018-05-25 华为技术有限公司 一种集成有安全组件的终端芯片
CN112541310A (zh) * 2020-12-18 2021-03-23 广东高云半导体科技股份有限公司 逻辑综合控制方法及装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10481990B2 (en) 2016-06-13 2019-11-19 Intel Corporation Apparatuses and methods for a multiple master capable debug interface
KR102504660B1 (ko) * 2018-02-05 2023-03-02 삼성전자주식회사 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치
US10866278B2 (en) 2019-03-28 2020-12-15 Intel Corporation Methods and apparatus for performing design for debug via protocol interface
KR102497801B1 (ko) * 2019-12-16 2023-02-10 한국전자통신연구원 시스템-온-칩 자동 설계 장치 및 이의 동작 방법
US11209483B2 (en) * 2020-02-28 2021-12-28 Micron Technology, Inc. Controller accessible test access port controls
US10949586B1 (en) * 2020-07-01 2021-03-16 Xilinx, Inc. Post-synthesis insertion of debug cores
CN111984494A (zh) * 2020-08-28 2020-11-24 思尔芯(上海)信息科技有限公司 一种多芯片的并行深度调试系统、调试方法、应用
US11809355B2 (en) * 2021-02-05 2023-11-07 SK Hynix Inc. UART aggregation and JTAG selection circuitry for a multi-solid state drive environment
US11755459B2 (en) * 2021-03-23 2023-09-12 Western Digital Technologies, Inc. Management of a debug buffer based on priority information

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154803A (en) * 1998-12-18 2000-11-28 Philips Semiconductors, Inc. Method and arrangement for passing data between a reference chip and an external bus
CN1307800C (zh) * 2003-10-09 2007-03-28 智慧第一公司 集成电路时序调试装置及方法
CN101419485A (zh) * 2008-11-24 2009-04-29 电子科技大学 一种功能可变的可穿戴计算机主板
CN102006200A (zh) * 2010-11-09 2011-04-06 华为技术有限公司 调试处理方法、系统和单板
CN102495359A (zh) * 2011-12-13 2012-06-13 曙光信息产业(北京)有限公司 一种fpga调试系统和方法
CN102750214A (zh) * 2011-04-19 2012-10-24 成都联星微电子有限公司 一种通过设备应用接口进行测试及编程的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483640A (en) * 1993-02-26 1996-01-09 3Com Corporation System for managing data flow among devices by storing data and structures needed by the devices and transferring configuration information from processor to the devices
WO2004006540A2 (en) * 2002-07-08 2004-01-15 Globespanvirata Incorporated System and method for packet transmission from fragmented buffer
US6903582B2 (en) * 2002-12-13 2005-06-07 Ip First, Llc Integrated circuit timing debug apparatus and method
US8415974B1 (en) * 2011-03-09 2013-04-09 Xilinx, Inc. Methods and circuits enabling dynamic reconfiguration
US9632895B2 (en) * 2012-06-18 2017-04-25 Intel Corporation Apparatus, system and method for a common unified debug architecture for integrated circuits and SoCs
US8873421B2 (en) * 2013-01-23 2014-10-28 Oracle International Corporation Integrated test packet generation and diagnostics

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154803A (en) * 1998-12-18 2000-11-28 Philips Semiconductors, Inc. Method and arrangement for passing data between a reference chip and an external bus
CN1307800C (zh) * 2003-10-09 2007-03-28 智慧第一公司 集成电路时序调试装置及方法
CN101419485A (zh) * 2008-11-24 2009-04-29 电子科技大学 一种功能可变的可穿戴计算机主板
CN102006200A (zh) * 2010-11-09 2011-04-06 华为技术有限公司 调试处理方法、系统和单板
CN102750214A (zh) * 2011-04-19 2012-10-24 成都联星微电子有限公司 一种通过设备应用接口进行测试及编程的方法
CN102495359A (zh) * 2011-12-13 2012-06-13 曙光信息产业(北京)有限公司 一种fpga调试系统和方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073830A (zh) * 2016-11-15 2018-05-25 华为技术有限公司 一种集成有安全组件的终端芯片
US11436376B2 (en) 2016-11-15 2022-09-06 Huawei Technologies Co., Ltd. Terminal chip integrated with security element
CN112541310A (zh) * 2020-12-18 2021-03-23 广东高云半导体科技股份有限公司 逻辑综合控制方法及装置
CN112541310B (zh) * 2020-12-18 2021-10-29 广东高云半导体科技股份有限公司 逻辑综合控制方法及装置

Also Published As

Publication number Publication date
US20150149843A1 (en) 2015-05-28
US9255968B2 (en) 2016-02-09
CN104657306B (zh) 2019-03-15

Similar Documents

Publication Publication Date Title
CN104657306A (zh) 具有高速调试访问端口的集成电路
US7124376B2 (en) Design tool for systems-on-a-chip
US7418681B2 (en) Simulation system, simulation method and simulation program for verifying logic behavior of a semiconductor integrated circuit
CN104050068B (zh) 在mcu芯片中调试fpga的方法和装置
US20100161309A1 (en) Apparatus and Methods Thereof for Configuration and Control of a System-On-Chip Emulation Platform
Panesar et al. Deterministic parallel processing
CN105008943A (zh) 对在fpga块内分组创建加速的测试仪
US7584456B1 (en) Method and apparatus for debugging embedded systems having read only memory
CN115102780B (zh) 数据传输方法、相关装置、系统及计算机可读存储介质
Siegmund et al. SystemC/sup SV: an extension of SystemC for mixed multi-level communication modeling and interface-based system design
US9880966B1 (en) Encapsulating metadata of a platform for application-specific tailoring and reuse of the platform in an integrated circuit
Klingauf et al. GreenBus: a generic interconnect fabric for transaction level modelling
Bacciarelli et al. Design, testing and prototyping of a software programmable I2C/SPI IP on AMBA bus
Bucknall et al. Zypr: End-to-end build tool and runtime manager for partial reconfiguration of fpga socs at the edge
US9075639B1 (en) Systems and methods for handling interrupts during software design simulation
Ruiz et al. Using FPGA-Based AMC Carrier Boards for FMC to Implement Intelligent Data Acquisition Applications in MTCA Systems Using OpenCL
Engel Development of a Read-Out Receiver Card for Fast Processing of Detector Data
Jeřábek Open-source and Open-hardware CAN FD Protocol Support
US11403449B1 (en) Systems and methods for configurable switches for verification IP
US8578075B1 (en) Performance constraints for system synthesis
US20230289500A1 (en) Method and system for building hardware images from heterogeneous designs for eletronic systems
Záhora Automobilová řídicí jednotka s rozhraními CAN, FlexRay a Ethernet
Fernandes et al. High level FPGA programming framework based on Simulink
CN117608686A (zh) 加速器的配置、传输方法、装置、设备、介质及服务器
Wieferink et al. Retargetable processor system integration into multi-processor system-on-chip platforms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant