CN103870390A - 用于支持统一的调试环境的方法和装置 - Google Patents

用于支持统一的调试环境的方法和装置 Download PDF

Info

Publication number
CN103870390A
CN103870390A CN201310687283.7A CN201310687283A CN103870390A CN 103870390 A CN103870390 A CN 103870390A CN 201310687283 A CN201310687283 A CN 201310687283A CN 103870390 A CN103870390 A CN 103870390A
Authority
CN
China
Prior art keywords
processor
debugging
instrument
fpga
hard
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
CN201310687283.7A
Other languages
English (en)
Other versions
CN103870390B (zh
Inventor
M·阿梅德
M·雷亨纳斯
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 CN103870390A publication Critical patent/CN103870390A/zh
Application granted granted Critical
Publication of CN103870390B publication Critical patent/CN103870390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明涉及用于支持统一的调试环境的方法和装置。一种现场可编程门阵列(FPGA),包括由在FPGA上的可编程逻辑实施的软处理器和软处理器调试单元。FPGA包括片上系统(SOC),该片上系统包括硬处理器和硬处理器调试单元。FPGA包括耦合到FPGA的输入输出(IO)的总线桥,该总线桥可用于在IO和软处理器调试单元以及硬处理器调试单元之间传输数据。

Description

用于支持统一的调试环境的方法和装置
技术领域
本发明的实施例涉及用于在目标器件上设计系统的工具,该目标器件包括可编程逻辑和包括处理器的集成电路。更具体而言,本发明的实施例涉及用于支持统一的调试环境的方法和装置,该方法和装置用于调试在由可编程逻辑实现的处理器上执行的代码和在集成电路上的处理器上执行的代码。
背景技术
调试器或调试工具是用于测试及调试其他程序的计算机程序,通常被称为在目标处理器上运行的“目标”程序。在目标程序中的代码可以在指令集模拟器上运行。在指令集模拟器中运行代码允许在遭遇特定条件时暂停代码的运行。当由于编程缺陷程序不能正常地继续时发生“崩溃(crash)”。例如,程序可能已经试图使用了处理器的当前版本上不可用的指令,或者尝试访问不可用的或受保护的存储器。当程序崩溃或达到预设条件时,如果这是源级调试器或符号调试器,则调试器通常示出在原代码中的位置。如果调试器是低阶调试器或机器语言调试器,则它可以示出在反汇编中的行。
一些调试器提供诸如一步接一步地(“单步(single stepping)”运行程序、借助于断点(“中断(breaking)”)在某一事件处或特定指令处停止、以及追踪变量的值之类的功能。一些调试器具有在程序运行期间改变程序状态的能力。这些调试器还可以有可能在程序中的不同的位置处继续执行以绕过崩溃或逻辑错误。
为了使调试器或调试工具分析在目标处理器上运行的目标程序,调试器或调试工具需要了解对调试目标程序可用的工具,并且需要具有对目标处理器的访问权限。
发明内容
根据本发明的实施例,公开了一种用于支持统一的调试环境的方法和装置。这些实施例允许设计器使用如下单个调试环境调试在现场可编程门阵列(FPGA)上实施的软处理器上以及在片上系统(SoC)上的硬处理器上运行的程序,在该单个调试环境中,在单个主机计算机上执行的单个调试程序被连接到与器件关联的单个端口。
根据本发明的实施例,FPGA包括软处理器和由FPGA上的可编程逻辑实施的软处理器调试单元。FPGA包括片上系统(SOC),该片上系统包括硬处理器和硬处理器调试单元。FPGA还包括耦合到FPGA的输入输出(IO)的、可操作用于在IO和软处理器调试单元以及硬处理器调试单元之间传输数据的总线桥。硬处理器调试单元包括存储器,该存储器标识在硬处理器调试单元上可用的、用于调试硬处理器的工具。软处理器调试单元包括存储器,该存储器用于标识可用于调试软处理器的工具。
根据本发明的实施例,用于设计目标器件上的系统的方法包括综合用于系统的设计,系统包括具有用于调试系统中的软处理器的工具的调试单元。在目标器件上布置系统。在目标器件上对系统布线。生成调试单元标识文件,以便编程在目标器件上的存储器以标识工具及工具在目标器件上的位置。存储器可以由主机调试器在稍后时间读取以发现可用于调试软处理器的工具。根据本发明的方面,对系统布线包括生成用于将总线桥连接到用于调试软处理器的工具的总线。
根据本发明的实施例,用于调试系统的方法包括读取在现场可编程门阵列上的片上系统(SOC)上的系统上的第一存储器,以标识可用于调试在SOC上的硬处理器的工具。读取在FPGA上并且在SOC外部的第二存储器。由第一存储器标识第二存储器,并且第二存储器标识可用于调试使用在FPGA上的可编程逻辑实施的软处理器的工具。
附图说明
本发明的实施例的特征和优点以示例的方式图示,并且并不旨在将本发明的实施例的范围限制于所示出的具体实施例。
图1图示了根据本发明的实施例的片上系统(SoC)现场可编程门阵列(FPGA)硬处理器系统。
图2图示了根据本发明的实施例的示例性FPGA部件。
图3图示了根据本发明的实施例的用于示例性SoC FPGA的调试环境。
图4是图示了根据本发明的实施例的用于在目标器件上设计系统的方法的流程图。
图5是图示了根据本发明的实施例的用于调试系统的方法的流程图。
图6图示了根据本发明的实施例的实施系统设计器的计算机系统的框图。
图7是根据本发明的实施例的系统设计器的框图。
具体实施方式
在以下描述中,为了说明的目的阐述特定的命名法,以提供对本发明的实施例的透彻理解。可以并不要求在描述中特定的细节以实践本发明的实施例,这对本领域技术人员将是明显的。在其它情况下,以框图的形式示出熟知的电路、器件、步骤和程序以避免不必要地模糊本发明的实施例。
图1图示了包括根据本发明的实施例的片上系统(SoC)现场可编程门阵列(FPGA)硬处理器的目标器件100。根据本发明的实施例,SoC FPGA可以还被称作“混合FPGA”。目标器件100集成了(HPS)110和使用高频带-带宽互连骨干的FPGA结构120,硬处理器系统包括硬处理器、外围设备和存储器控制器。
根据本发明的实施例,硬处理器系统110被实施为SoC。硬处理器系统110包括一个或多个硬处理器111。一个或多个硬处理器111中的每一个可以包括一个或多个处理器核以及一个或多个1级高速缓存。硬处理器系统110包括嵌入式外围器件112,该嵌入式外围设备消除了在可编程逻辑中实施功能的需求。这为特定于应用的定制逻辑留下了更多的FPGA资源,并且减少了功率消耗。硬处理器系统110还实施多端口存储器控制器113,该存储器控制器可以由硬处理器和FPGA结构120上的逻辑共享。存储器控制器可以支持多种存储器和各种存储器协议。应当认识到,硬处理器系统110可以包括支持其它操作和其它功能的其它部件。尽管在连接到FPGA结构120的SoC上实施硬处理器系统110,硬处理器系统110并不被认为是FPGA结构120的一部分,因为在硬处理器系统110中的部件中没有一个是使用来自FPGA结构120的可编程逻辑实施的。
根据本发明的实施例,FPGA结构120包括允许实施定制IP或现成的预配置IP的可编程逻辑。FPGA结构120的灵活性允许设计器适合于变化的或改变的接口和协议标准,并且通过使用可编程逻辑来增加定制硬件以促进时间关键的算法。在图2中图示了FPGA结构120的示例性实施例。
目标器件上的SoC FPGA硬处理器系统将嵌入式处理器与可编程逻辑组合以提供许多优势。这些优势包括在领域中通过消除对分离嵌入式处理器的需求,在硬件和软件两者上区分最终产品,在FPGA中增加对虚拟接口标准的支持,以及通过硬件和软件更新延长产品寿命和收益来减少系统功率、成本和电路板空间。
图2示出了根据本发明的一个实施例的、可以用于实施在图1中图示的FPGA结构120的器件200的一部分。器件200包括多个逻辑阵列块(LAB)。每一个LAB可以由多个逻辑块、进位链、LAB控制信号、查找表(LUT)链以及多个寄存器链连接线形成。逻辑块是提供有效用户逻辑功能实施的小型逻辑单元。逻辑块包括一个或多个组合的组元(cell)和寄存器,其中每个组合的组元具有单个输出。根据本发明的一个实施例,逻辑块可以与逻辑元件(LE)或组合逻辑块(CLB)相似地运作,该逻辑元件诸如在阿尔特拉公司(
Figure BDA0000437229030000051
Corporation)制造的Stratix或Cyclone器件中找到的那些逻辑元件,该组合逻辑块诸如在由Xilinx公司制造的Virtex器件中找到的那些元件。在这一实施例中,逻辑块可以包括具有可配置寄存器的四输入LUT。根据本发明的一个备选实施例,逻辑块可以与自适应逻辑模块(ALM)相似地运作,该自适应逻辑模块诸如在由阿尔特拉公司制造的Stratix器件中提供的那些自适应逻辑模块。LAB被分组为跨器件200的排和列。LAB的列被示出为211-216。应当认识到,逻辑块可以包括附加的或备选的部件。
器件200包括存储器块。存储器块例如可以是以多达各种频率向专用真双端口、简单双端口或单个端口存储器提供多达各种位宽的双端口随机存取存储器(RAM)块。存储器块可以在被选择的LAB之间被跨器件分组为列,或者单独地或成对地位于器件200内。存储器块的列被示出为221-224。
器件200包括数字信号处理(DSP)块。DSP块可以被用于实施有加或减特征的各种配置的乘法器。DSP块包括移位寄存器、乘法器、加法器和累加器。DSP块可以跨器件200被分组成列,并且被示出为231。
器件200包括多个输入/输出元件(IOE)240。每一个IOE馈送在器件200上的IO引脚(未示出)。IOE240环绕器件200的外围位于LAB的行和列的末端。每一个IOE可以包括用于寄存输入信号、输出信号和输出使能信号的双向IO缓冲器和多个寄存器。
器件200可以包括诸如LAB本地互连线、行互连线(“H型导线”)和列互连线(“V型导线”)(未示出)之类的路由资源,以在目标器件上的部件之间路由信号。
应当认识到,被图示为120和220的FPGA结构可以被用于实施软处理器。软处理器是可以使用逻辑综合实施的微处理器。软处理器可以与使用专用硬件部件实施的硬处理器相似地执行代码、运作以及执行功能。
图3图示了根据本发明的实施例的用于示例性SoC FPGA310的调试环境300。可以通过图1中所图示的目标器件100来部分地实施SoC FPGA310。具有与目标器件100上的部件相似的参考标号的SoCFPGA310上的部件可以执行相似的功能。调试环境300包括主机调试器320。主机调试器320是执行如下计算机程序的计算机系统,该计算机程序可以用于测试和调试在硬处理器系统110上的硬处理器111和/或使用FPGA结构120上的可编程逻辑实施的软处理器340上运行的程序。主机调试器320经由一个或多个连接和/或连接器321连接到SoC FPGA120。根据本发明的实施例,可以由通用串行总线(USB)/以太网到联合测试行动组(JTAG)连接器来实施连接321。
在硬处理器系统110上的硬处理器111以及在FPGA结构120上的软处理器340两者具有与它们关联的调试单元。硬处理器调试单元330和软处理器调试单元350包括还可以被称作“调试工具(debug tools)”的调试部件。调试部件操作以允许主机调试器320对接、传达及控制目标处理器,以及在目标处理器执行目标程序时从目标处理器取回数据。硬处理器调试单元330包括存储器(未示出),用在硬处理器调试单元330中标识调试部件的信息及其位置写入该存储器。为了使主机调试器320测试并调试在硬件存储器111上运行的程序,主机调试器320必须在对其的使用可用的硬处理器系统110上标识调试部件。主机调试器320通过读取存储器的内容来发现硬处理器系统110的调试能力。在硬处理器调试单元330中的存储器可以标识并指向在软处理器调试单元350中的存储器(未示出),该在软处理器调试单元350中的存储器标识在调试单元350中的其它调试部件及其位置。这允许主机调试器320进一步发现软处理器340调试能力,从而主机调试器320还可以测试并调试在软处理器340上运行的程序。根据本发明的实施例,在存储器中写入的信息包括调试部件的简档和调试部件的地址。应当认识到,在硬处理器调试单元330中的存储器和在软处理器调试单元350中的存储器可以指向与其它处理器的其它调试单元关联的其它存储器,以进一步标识对主机调试器320可用的调试部件。这将进一步向主机调试器320提供用于测试并调试在其它目标处理器上执行的目标程序的能力。
通过标识调试元件和调试元件在存储器中的位置、并提供在其中可以将存储器菊花链接在一起的指向系统(pointing system),主机调试器320可以发现FPGA结构120的调试能力,该能力在SoC流片的时候并不已知。主机调试器320还可以发现与可以以后连接到SoC FPGA310的其它处理器关联的其它调试单元的调试能力。
可以将总线桥360实施为使其耦合到SoC FPGA310的输入输出端口(未示出)。总线桥360经由输入输出端口接收从主机调试器320传输的数据。总线桥360包括地址解码器(未示出),该解码器标识标识出特定的数据应当被路由到硬处理器调试单元330和软处理器调试单元350中的哪个。总线桥360还包括数据多路复用器和解复用器(未示出),该数据多路复用器和解复用器对来自硬处理器调试单元330和软处理器调试单元320的数据进行封装,并且将从主机调试器320接收的封装数据反汇编。可以在单个数据流上经由输入输出端口和连接器321在主机调试器320和总线桥360之间传输经封装的数据。总线桥360允许主机调试器321通过单个输入输出端口与硬处理器调试单元330和软处理器调试单元350通信。这减少了在主机调试器320和SoC FPGA310之间的连接和连接器的数目,并且允许使用单个主机调试器320实现对硬处理器111和软处理器340的调试。实施专用总线361以在总线桥360和软处理器调试单元350之间提供连接。
如在图3中所图示,使用来自FPGA结构120的可编程逻辑实施总线桥360。应当认识到,可以使用其他技术来实现总线桥360。例如,可以使用驻留在SoC中的硬处理器系统110上的部件实施总线桥360。备选地,可以由连接到FPGA结构120的独立芯片来实施总线桥360。
主机调试器320可以利用包括来自硬处理器调试单元330和软处理器调试单元350的数据的单个数据流,以独特地分析正在硬处理器111和软处理器340上执行的代码的关系。主机调试器320可以能够确定来自一个处理器的代码如何影响在另一个处理器上执行的代码。主机调试器320还可以呈现关于在何处并列(side by side)分析在硬处理器111上执行的目标程序和在软处理器340上执行的目标程序的独到观点。
图4是图示了根据本发明的实施例的用于在目标器件上设计系统的方法的流程图。目标器件可以是SoC FPGA。根据实施例,可以由在计算机系统上实施的计算机辅助设计(CAD)/电子设计自动化(EDA)工具履行图4中图示的过程。在401,在设计捕获过程中生成对系统的描述。根据本发明的实施例,生成用于描述系统的硬件描述语言(HDL)设计定义。响应于设计器提供的系统规范,生成HDL。可以通过设计入口工具提供规范。规范可以描述系统中的部件和互连。根据本发明的实施例,在设计捕获过程期间生成用于软处理器和软处理器调试单元的设计。调试单元包括一个或多个调试部件(调试工具),该调试部件可以由主机调试器用于对接、传达、以及控制软处理器,并且在软处理器执行目标程序时从软处理器取回数据。根据本发明的实施例,工具中的一个包括保持处理器操作的交叉触发接口。其它调试工具例如可以包括跟踪端口接口、嵌入式跟踪缓冲器/宏单元、和/或其它部件。还生成用于在目标器件的输入输出和软处理器调试单元以及硬处理器调试单元之间路由数据的总线桥的设计。
在402,综合包括软处理器、软处理器调试单元和总线桥的系统。综合包括生成将由目标器件实施的系统逻辑设计。根据本发明的实施例,综合生成来自HDL设计定义的系统的优化的逻辑表示。综合还包括映射经优化的逻辑设计。映射包括确定如何用目标器件上的特定的资源实施在经优化的逻辑表示中的逻辑门和逻辑元件。根据本发明的实施例,根据映射生成网表。这一网表可以是根据HDL生成的优化的技术映射的网表。
在403,布置系统。根据本发明的实施例,布置涉及在目标器件上布置经映射的逻辑系统设计。布置作用于技术映射的网表上,以为功能块中的每一个产生布置。根据本发明的实施例,布置包括通过确定逻辑器件上的哪些资源将被用于特定的逻辑元件和其他功能块、哪些资源将被确定为在综合期间实施系统而将系统适配到目标器件。布置可以包括群集化,该群集化涉及将逻辑元件分组在一起以形成在目标器件上呈现的逻辑群集。根据本发明的实施例,在布置的早期阶段执行群集化,并且在布置预备阶段期间紧接着综合之后发生群集化。
在404,所布置的设计被布线。在布线期间,分配目标器件上的布线资源以在目标器件上的逻辑门、逻辑元件和其它部件之间提供互连。根据本发明的实施例,布线包括生成用于将总线桥连接到软件调试单元以调试软处理器的总线。还可以在所布置的逻辑设计上执行可布线性的优化。根据本发明的实施例,可布线性优化的目标是减少用于在所布置的逻辑设计中连接部件的布线的量。可布线性优化可以包括执行扇出分裂、逻辑复制、逻辑重布线或其它流程。应当认识到,过程中的一个或多个可以在所布置的逻辑设计上执行。
在405,在由过程401-404设计的系统上执行定时分析。根据本发明的实施例,定时分析确定是否满足系统的定时约束。
在406,响应于定时分析而修改用于系统的设计。根据本发明的实施例,响应于确定定时约束尚未被满足,可以修改用于系统的设计。可以由设置者手动地修改用于系统的设计,或者备选地可以通过重执行一个或多个流程402-404而由EDA工具自动地修改设计。还应当认识到,每个过程可以通过在其执行期间执行分析而在其第一次调用中执行该优化。
在407,生成软处理器调试单元标识文件。可以将软处理器调试单元标识文件用于在目标器件上编程存储器,以标识调试部件(调试工具)和调试部件在目标器件上的位置。软处理器调试单元标识文件可以包括与软处理器及其地址相关联的调试元件的简档。根据本发明的实施例,还为调试部件中的每一个生成配置文件,其中配置文件为调试部件标识外围设备标识寄存器。
在408,执行汇编过程。汇编过程涉及创建数据文件,该数据文件包括由在401-407所述的过程确定的信息。数据文件可以是位流,该位流可以用于编程目标器件。根据本发明的实施例,可以由在第一计算机系统上执行的EDA工具执行图4图示的过程。所生成的数据文件可以被传输至第二计算机系统以允许进一步处理对系统的设计。备选地,数据文件可以被传输至第二计算机系统,该第二计算机系统可以用于根据系统设计编程目标器件。应当认识到,还可以以其它形式(诸如在显示设备或其它介质上)输出系统的设计。可以用数据文件编程目标器件。通过用数据文件编程目标,将在目标器件上的部件进行物理变换以实施系统。
图5是图示根据本发明的实施例的用于调试系统的方法的流程图。根据一个实施例,可以由在计算机系统上实施的主机调试器执行在图5中图示的过程。在501,发现与硬处理器调试单元相关联的调试部件。根据本发明的实施例,通过读取在硬处理器调试单元上的存储器来发现调试部件。存储器存储调试部件的标识和位置。根据本发明的实施例,存储器存储调试部件中每一个的简档和地址,并且存储标识用于调试部件的外围设备标识寄存器的配置文件。
在502,确定是否参考附加的存储器。根据本发明的实施例,附加存储器可以被之前读取的存储器所参考,并且确定附加存储器是否被参考可以通过读取之前的存储器来达成。附加的存储器可以驻留在与之前的存储器相同的芯片上,或者可以驻留在片下或者驻留在不同的芯片上。如果参考附加的存储器,则控制前进到503。如果不参考附加的存储器,控制前进到504。
在503,通过读取被参考的存储器而发现附加的调试部件。附加的调试部件可以被关联到之前的处理器,或者可以被关联到不同的处理器。被参考的存储器存储附加的调试部件的标识和位置。根据本发明的实施例,存储器存储调试部件中每一个的简档和地址,以及标识用于调试部件的外围设备标识寄存器的配置文件。应当认识到,本文描述的方法学允许将n个存储器链接在一起,其中存储器中的每一个可以标识与唯一的存储器关联的调试部件。数字n可以是可以由连接到一个或多个电路板上的系统支持的存储器或处理器的任意数目。
在504,为所发现的调试部件构建图形化用户界面(GUI)。根据本发明的实施例,使用与在503读取的与调试部件关联的信息、并且根据驻留在主机调试器上的信息来构建GUI。
在505,分析在目标处理器上执行的目标程序。根据本发明的实施例,使用在501和503发现的调试部件来分析目标程序。
本发明的实施例允许设计器向FPGA结构添加能够与主机调试器交互的调试部件。设计器可以许可标准调试部件、并且将它们添加到FPGA结构和/或设计它们自己的调试部件。本发明的实施例提供过去不可用的解决方案,其中主机调试器被限制为只使用固定在由流片的SoC实施的硬处理器系统上的调试部件。
图4和图5是图示本发明的实施例的流程图。可以由计算机系统实施的EDA工具执行在图4中描述的过程。可以由另一个计算机系统实施的主机调试器执行在图5中描述的过程。所图示的技术中的一些可以被顺序地、并行地或与所述顺序不同地执行,并且所述过程可以被重复。应当认识到,并不要求执行所有所述技术,可以增加附加的技术,并且所图示的技术中的一些可以用其它技术替代。
图6是本发明的示例实施例驻留于其中的示例性的计算机系统600的框图。计算机系统600包括处理数据信号的处理器610。处理器610耦合到总线601或者如下其他交换结构,该交换结构在处理器610和计算机系统600中的其它部件之间传输数据信号。计算机系统600包括存储器620。存储器620可以存储可以被处理器610执行的数据信号所表示的指令和代码。数据存储设备630也耦合到总线601。
网络控制器640耦合到总线601。网络控制器640可以将计算机系统600链接到计算机网络(未示出),并且支持在机器之间的通信。显示设备控制器650耦合到总线601。显示设备控制器650允许显示设备(未示出)耦合到计算机系统600,并且充当显示设备和计算机系统600之间的接口。数据接口660耦合到总线601。输入接口660允许输入设备耦合到计算机系统601并且将来自输入设备的数据信号传输至计算机系统600。应当认识到,具有不同的架构的计算机系统也可以被用于实施计算机系统600。
系统设计器621可以驻留在存储器620中,并且由处理器600执行。系统设计器621可以操作以执行设计捕获并且生成用于系统的设计,综合系统,在目标器件上布置系统,在目标器件上对系统布线,执行定时分析,生成标识文件,以及汇编系统。备选地,调试程序621可以驻留于存储器620中,并且被处理器600执行。调试程序621可以运行以发现目标器件上的硬处理器的和软处理器的调试部件。调试程序621可以利用硬处理器和软处理器两者的调试部件,以提供统一的调试环境。
图7图示了根据本发明的实施例的系统设计器700。系统设计器700可以是用于设计在目标器件(诸如SoC FPGA或其它电路装置)上的系统的EDA工具。图7图示了实施系统设计器700的实施例的模块。根据一个实施例,模块表示软件模块,并且系统设计可以由计算机系统(诸如图6中图示出的执行由在图7中示出模块所表示的指令队列的计算机系统)执行。指令队列的执行促使计算机系统如将在下文中所述的那样支持系统设计。在备选实施例中,可以将硬件布线电路装置用于替换软件指令或者与软件指令组合,以实施本发明的实施例。因此,本发明的实施例并不局限于任意特定的硬件电路装置和软件的组合。
系统设计器700包括设计器管理器710。设计器管理器710连接到系统设计器700的部件并且在系统设计器700之间传输数据。
系统设计器700包括设计捕获单元720。根据本发明的实施例,生成硬件描述语言(HDL)设计定义以描述系统。响应于由设计器提供的系统的规范而生成HDL。规范可以描述系统中的部件和互连。根据本发明的实施例,在设计捕获过程中生成用于软处理器和软处理器调试单元的设计。调试单元包括一个或多个调试部件(调试工具),该调试部件可以由主机调试器使用以对接、传达及控制软处理器,并且在该软处理器执行目标程序时从该软处理器取回数据。根据本发明的实施例,工具中的一个包括搁置处理器操作的交叉触发接口。其它调试工具可以包括例如跟踪端口接口、嵌入式跟踪缓冲器/宏单元、和/或其他部件。还生成用于在目标器件外的输入和软处理器调试单元以及硬处理器调试单元之间路由数据的总线桥。
系统设计器700包括执行综合的综合单元730。综合单元730生成将在目标器件上实施的系统的逻辑设计,该系统包括软处理器、软处理器调试单元和总线桥。根据系统设计器700的实施例,综合单元730采取概念HDL设计定义,并且生成系统的优化的逻辑表示。由综合单元730生成的系统的优化的逻辑表示可以包括具有减少数目的系统所要求的功能块和寄存器(诸如逻辑门和逻辑元件)的表示。备选地,由综合单元730生成的系统的优化的逻辑表达可以包括具有减少的逻辑深度并且生成更低的信号传播延迟的表达。
综合单元730还执行技术映射。技术映射设计涉及确定如何利用特定的资源(诸如在目标器件上的组元)在优化的逻辑表达中实施功能块和寄存器,由此创建优化的“技术映射”网表。技术映射网表图示了如何利用目标器件上的资源(组元)以实施系统。在其中目标器件是FPGA的实施例中,技术映射网表可以包括诸如逻辑阵列块(LAB)、寄存器、存储器块、数字信号处理(DSP)块、输入输出(IO)元件或其它部件之类的组元。
系统设计器700包括布置单元740,该布置单元处理优化的技术映射网表,以产出用于功能块中的每一个的布置。布置标识目标器件上的哪些部件或区域将被用于特定的功能块和寄存器。
系统设计器700包括执行布线的布线单元750。布线单元750确定目标器件上要使用的布线资源,以提供在实施逻辑设计的功能块和寄存器的部件之间的互连。根据本发明的实施例,布线单元750生成用于将总线桥连接到软件调试单元以调试软处理器的总线。
系统设计器700包括时序分析单元760,该时序分析单元执行时间分析,以确定是否系统的时序约束是否被满足。
系统设计器700包括标识单元770。根据本发明的实施例,标识单元770生成软处理器调试单元标识文件。软处理器调试单元标识文件可以用于编程目标器件上的存储器,以标识调试部件(调试工具)和调试部件在目标器件上的位置。软处理器调试单元标识文件可以包括与软处理器及其地址相关联的调试部件的简档。根据本发明的实施例,还为调试部件中的每一个生成配置文件,其中配置文件标识为调试部件标识外围设备的标识寄存器。
系统设计器700包括汇编单元780,该汇编单元执行创建包括由系统设计器700生成的系统的设计的数据文件的汇编过程。数据文件可以是位流,该位流可以用于编程目标器件。汇编单元780可以输出数据文件,从而数据文件可以被存储或备选地传输到用于编程目标器件的分离的机器。应当认识到,汇编单元780还可以以其它形式(诸如在显示设备或其它介质上)输出系统的设计。
应当认识到本发明的实施例可以被提供为计算机程序产品或软件,该计算机程序产品或软件包括计算机可读或机器可读的具有指令的介质。在计算机可读或及其可读的介质上的指令可以用于编程计算机系统或其它电子设备。机器可读介质可以包括但不限于,软盘、光盘、CD-ROM和磁光碟或其它类型的适合于存储电子指令的介质/机器可读介质。本文描述的技术不限于任何特定的软件配置。这些技术可以在任意计算或处理环境中找到适用性。本文使用的术语“计算机可读介质”或“机器可读介质”应包括能够存储或编码用于由计算机执行、并且该执行促使计算机执行本文所述方法中的任意一个的指令序列的任何介质。此外,在采取动作或引发结果时,以一种或另一种形式(例如,程序、过程、进程、应用、模块、单元、逻辑,等等)提及软件在本领域中是常见的。这类表达方式仅仅是表述软件由处理系统的执行导致处理器执行动作以产生结果的简略方式。
在以上说明中,参考发明的实施例的特定示例性实施例来描述发明的实施例。然而明显的是,可以在不脱离发明的实施例的更宽的精神和范围的情况下,对其作出各种修改和改变。例如,路径延迟被描述为根据从由信号的电压功能生成的每元件功能的延迟而被标识。应当认识到,其它延迟影响的参数功能可以用于替换或附加到电压功能。其它延迟影响的参数可以包括温度和其它参数。因此,说明和附图应被认为是说明性的而非限制性的意义。

Claims (21)

1.一种混合现场可编程门阵列(FPGA),包括:
软处理器和软处理器调试单元,由所述FPGA上的可编程逻辑实施;
片上系统(SOC),其包括硬处理器和硬处理器调试单元;以及
总线桥,耦合到所述FPGA的输入输出(IO),可操作用于在所述IO和所述软处理器调试单元以及所述硬处理器调试单元之间传输数据。
2.根据权利要求1所述的混合FPGA,其中所述硬处理器调试单元包括存储器,所述存储器标识在所述硬处理器调试单元上可用的、用于调试所述硬处理器的工具。
3.根据权利要求1所述的混合FPGA,其中所述硬处理器调试单元包括标识另一存储器的存储器,所述另一存储器标识可用于调试所述硬处理器和另一处理器之一的工具。
4.根据权利要求1所述的混合FPGA,其中所述软处理器调试单元包括存储器,所述存储器标识可用于调试所述软处理器的工具。
5.根据权利要求4所述的混合FPGA,其中所述存储器标识暂停所述软处理器的操作的关闭触发接口。
6.根据权利要求1所述的混合FPGA,还包括专用总线,所述专用总线将所述总线桥连接到所述软处理器调试单元。
7.根据权利要求1所述的混合FPGA,其中所述总线桥包括地址解码器,所述地址解码器可操作用于标识用于向所述软处理器调试单元以及向所述硬处理器调试单元传输的数据。
8.根据权利要求1所述的混合FPGA,其中所述总线桥包括数据多路复用单元,所述数据多路复用单元可操作用于在单个数据流中在所述IO外格式化来自所述软处理器和所述硬处理器的数据。
9.一种用于设计在目标器件上的系统的方法,包括:
综合用于所述系统的设计,所述系统包括具有用于调试在所述系统中的软处理器的工具的软件调试单元;
在所述目标器件上布置所述系统;
在所述目标器件上对所述系统布线;以及
在所述目标器件上生成用于编程存储器的调试单元标识文件,以标识所述工具及所述工具在所述目标器件上的位置。
10.根据权利要求9所述的方法,还包括为所述工具中的每一个生成配置文件,其中所述配置文件为工具标识外围设备标识寄存器。
11.根据权利要求9所述的方法,其中所述工具之一包括搁置所述处理器的运行的关闭触发接口。
12.根据权利要求9所述的方法,其中所述软处理器由在所述目标器件上的可编程逻辑实施。
13.根据权利要求9所述的方法,其中所述目标器件包括片上系统,所述片上系统包括硬处理器和用于调试所述硬处理器的工具。
14.根据权利要求13所述的方法,其中所述目标器件包括总线桥,所述总线桥耦合到所述目标器件的输入输出(IO),以便在所述IO和所述用于调试所述软处理器的工具以及所述用于调试所述硬处理器的工具之间路由数据。
15.根据权利要求14所述的方法,其中在所述目标器件上对所述系统布线包括生成用于将所述总线桥连接到所述用于调试所述软处理器的所述工具的总线。
16.一种用于调试系统的方法,包括:
读取在现场可编程门阵列上的片上系统(SOC)上的第一存储器,以标识可用于调试在所述SOC上的硬处理器的工具;以及
读取由所述第一存储器标识的第二存储器,以标识可用于调试使用所述FPGA上的可编程逻辑实施的软处理器的工具,所述第二存储器在所述FPGA上并且在所述SOC的外部。
17.根据权利要求16所述的方法,还包括为可用于调试所述软处理器的每个工具构建图形用户界面。
18.根据权利要求16所述的方法,其中读取所述第二存储器以标识可用于调试所述软处理器的工具包括读取工具类型的标识以及所述工具的位置。
19.根据权利要求16所述的方法,还包括经由SOC上的总线桥在所述FPGA外部的主机调试器、和可用于调试所述硬处理器的工具、以及可用于调试所述软处理器的工具之间传输数据。
20.根据权利要求16所述的方法,还包括在单个数据流上经由SOC上的总线桥从可用于调试所述硬处理器的工具和可用于调试所述软处理器的工具接收数据。
21.根据权利要求16所述的方法,还包括读取多达第n个存储器以标识可用于调试在所述系统上的处理器的工具,所述第n个存储器由n-1个之前读取的存储器之一标识,其中n是由所述系统支持的处理器的数目。
CN201310687283.7A 2012-12-14 2013-12-13 用于支持统一的调试环境的方法和装置 Active CN103870390B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/715,161 US9053232B2 (en) 2012-12-14 2012-12-14 Method and apparatus for supporting a unified debug environment
US13/715,161 2012-12-14

Publications (2)

Publication Number Publication Date
CN103870390A true CN103870390A (zh) 2014-06-18
CN103870390B CN103870390B (zh) 2017-11-10

Family

ID=50908944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310687283.7A Active CN103870390B (zh) 2012-12-14 2013-12-13 用于支持统一的调试环境的方法和装置

Country Status (2)

Country Link
US (1) US9053232B2 (zh)
CN (1) CN103870390B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104735824A (zh) * 2015-02-28 2015-06-24 华为技术有限公司 数据处理系统
CN116991642A (zh) * 2023-06-26 2023-11-03 南京奕斯伟计算技术有限公司 芯片调测方法、芯片、系统及存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665468B2 (en) 2013-08-19 2017-05-30 Intel Corporation Systems and methods for invasive debug of a processor without processor execution of instructions
US9632947B2 (en) * 2013-08-19 2017-04-25 Intel Corporation Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early
US9619382B2 (en) 2013-08-19 2017-04-11 Intel Corporation Systems and methods for read request bypassing a last level cache that interfaces with an external fabric
US9361227B2 (en) 2013-08-30 2016-06-07 Soft Machines, Inc. Systems and methods for faster read after write forwarding using a virtual address
CN104536867B (zh) * 2015-01-22 2017-01-25 浪潮(北京)电子信息产业有限公司 实现多片现场可编程门阵列调试的系统及方法
US20160267591A1 (en) * 2015-03-12 2016-09-15 Matrix Trading Technologies, LLC Automated securities trading engine
US20160371166A1 (en) * 2015-06-19 2016-12-22 International Business Machines Corporation Stream-based breakpoint for too many tuple creations
CN110232883A (zh) * 2019-06-06 2019-09-13 深圳市福瑞达显示技术有限公司 一种光信号数据传输的风扇屏显示系统
CN110223618A (zh) * 2019-06-06 2019-09-10 深圳市福瑞达显示技术有限公司 一种基于风扇屏的显示器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826717B1 (en) * 2000-06-12 2004-11-30 Altera Corporation Synchronization of hardware and software debuggers
CN101369226A (zh) * 2007-08-13 2009-02-18 北京大学深圳研究生院 一种基于开源处理器与开源操作系统的SoC开发方法
CN102331733A (zh) * 2010-07-14 2012-01-25 中国科学院沈阳计算技术研究所有限公司 基于片上可编程系统的数控系统逻辑控制器及其实现方法
CN102722457A (zh) * 2012-05-30 2012-10-10 中国科学院微电子研究所 总线接口转换方法及总线桥接装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) * 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US7539900B1 (en) * 2003-07-29 2009-05-26 Altera Corporation Embedded microprocessor for integrated circuit testing and debugging
KR100626663B1 (ko) * 2004-12-14 2006-09-25 한국전자통신연구원 인터넷 전화용 시스템온칩 개발 및 검증 장치
US20070168749A1 (en) * 2005-12-19 2007-07-19 Stewart James B Iii Method and system for tracing program execution in field programmable gate arrays

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826717B1 (en) * 2000-06-12 2004-11-30 Altera Corporation Synchronization of hardware and software debuggers
CN101369226A (zh) * 2007-08-13 2009-02-18 北京大学深圳研究生院 一种基于开源处理器与开源操作系统的SoC开发方法
CN102331733A (zh) * 2010-07-14 2012-01-25 中国科学院沈阳计算技术研究所有限公司 基于片上可编程系统的数控系统逻辑控制器及其实现方法
CN102722457A (zh) * 2012-05-30 2012-10-10 中国科学院微电子研究所 总线接口转换方法及总线桥接装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
章伟: "多处理器系统芯片的层次化总线通讯架构设计与实现", 《中国优秀硕士学位论文全文数据库》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104735824A (zh) * 2015-02-28 2015-06-24 华为技术有限公司 数据处理系统
WO2016134632A1 (zh) * 2015-02-28 2016-09-01 华为技术有限公司 数据处理系统
CN104735824B (zh) * 2015-02-28 2018-03-13 华为技术有限公司 数据处理系统
CN116991642A (zh) * 2023-06-26 2023-11-03 南京奕斯伟计算技术有限公司 芯片调测方法、芯片、系统及存储介质
CN116991642B (zh) * 2023-06-26 2024-06-11 南京奕斯伟计算技术有限公司 芯片调测方法、芯片、系统及存储介质

Also Published As

Publication number Publication date
US9053232B2 (en) 2015-06-09
CN103870390B (zh) 2017-11-10
US20140173343A1 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
CN103870390A (zh) 用于支持统一的调试环境的方法和装置
US5448496A (en) Partial crossbar interconnect architecture for reconfigurably connecting multiple reprogrammable logic devices in a logic emulation system
EP0437491B1 (en) Method of using electronically reconfigurable gate array logic and apparatus formed thereby
US11726545B2 (en) Methods and apparatus for selectively extracting and loading register states
US9041431B1 (en) Partial reconfiguration and in-system debugging
TW201428521A (zh) 設計及模擬系統、裝置及方法
CN103258074A (zh) 使用部分重构在可编程电路上实施外围器件的方法和装置
US20030040898A1 (en) Method and apparatus for simulation processor
JP5779237B2 (ja) 合成中に非同期および同期リセット解除を実行するための方法および装置
JP2009031933A (ja) スケーラブル再構成可能型プロトタイプシステムと方法
US20070195716A1 (en) Ring bus in an emulation environment
CN110728098B (zh) Fpga重配置分区优化方法及系统
US7703054B2 (en) Circuit emulation and debugging method
CN116227396B (zh) 用于对片上系统进行后仿真的方法和仿真平台
US20230213581A1 (en) Techniques For Capturing Signals From Logic Circuits At A Logic Analyzer
Rettkowski et al. An event-based Network-on-Chip debugging system for FPGA-based MPSoCs
CN116227396A (zh) 用于对片上系统进行后仿真的方法和仿真平台

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant