CN102855147A - 用于局部重配置模拟的方法和系统 - Google Patents

用于局部重配置模拟的方法和系统 Download PDF

Info

Publication number
CN102855147A
CN102855147A CN2012102289286A CN201210228928A CN102855147A CN 102855147 A CN102855147 A CN 102855147A CN 2012102289286 A CN2012102289286 A CN 2012102289286A CN 201210228928 A CN201210228928 A CN 201210228928A CN 102855147 A CN102855147 A CN 102855147A
Authority
CN
China
Prior art keywords
design
source file
interface
operate
designs
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
CN2012102289286A
Other languages
English (en)
Other versions
CN102855147B (zh
Inventor
D·W·孟德尔
M·A·哈拉夫
夏任新
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 CN102855147A publication Critical patent/CN102855147A/zh
Application granted granted Critical
Publication of CN102855147B publication Critical patent/CN102855147B/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/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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
    • 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

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明的各实施方式涉及用于局部重配置模拟的方法和系统。具体地,公开了一种模拟可编程逻辑器件(PLD)的局部重配置的方法。包装器模块被合并到可在PLD中实现的逻辑描述。包装器模块代表第一逻辑设计。响应于接收参数,包装器模块改变以代表第二逻辑设计。根据各种实施方式,逻辑描述是可模拟源文件。可模拟源文件是如下源文件:模拟程序使用所述可模拟源文件来模拟逻辑设计的局部重配置。可模拟源文件的包装器模块接收运行时间参数。在各种实施方式中,逻辑描述是可合成源文件。可合成源文件是如下源文件:合成工具使用所述可合成源文件来将源文件编译到硬件中。可合成源的包装器模块接收编译时间参数。

Description

用于局部重配置模拟的方法和系统
优先权和相关申请数据
本申请要求于2012年2月8日提交的David Mendel等人的标题为“METHOD AND SYSTEM FOR PARTIAL RECONFIGURATIONSIMULATION”的美国专利申请No.13/369,218(律师案卷号ALTRP280/A03570)和共同未决且共同受让的于2011年7月1日提交的David Mendel等人的标题为“METHOD AND SYSTEM FORPARTIAL RECONFIGURATION SIMULATION”的美国临时专利申请61/504,117(律师案卷号No.ALTRP280P/A03570)的优先权和权益,这两份专利申请的全部内容以引用方式并且出于所有目的并入此处。
技术领域
本公开一般地涉及集成电路。更具体地,本公开涉及用于模拟和实现集成电路的技术和系统。
背景技术
可编程逻辑器件(PLD)是包含如下逻辑电路的半导体集成电路:所述逻辑电路可被编程用以执行许多逻辑功能。在通常情境下,逻辑设计者使用计算器辅助设计(CAD)工具来设计定制逻辑电路。这些工具使用关于给定的可编程逻辑器件的硬件能力的信息来帮助设计者使用在该给定的可编程逻辑器件上可用的多个资源实现定制逻辑电路。在许多情况下,可编程逻辑器件可以支持局部重配置,或在PLD的其它部分保持活动的同时将其逻辑的一部分配置成其它功能的能力。
局部重配置提供如下能力:在不同的时间利用不同的逻辑或代码来配置可编程逻辑器件的一部分。然而,常规硬件模拟器不支持如下能力:在模拟中途利用不同版本的逻辑或代码来配置可编程逻辑器件的一部分。因此,用于模拟局部重配置的机制受到限制和阻碍。
发明内容
本发明的实施方式针对可编程逻辑器件的模拟局部重配置。局部重配置是如下过程:在该过程中,可利用新功能来重配置可编程逻辑器件的一个或多个可重配置区域,而可编程逻辑器件的一个或多个其它区域保持固定并且继续执行已实现的功能。
根据各种实施方式,恒定(constant)接口提供在固定区域和可重配置区域之间。在各种实施方式中,恒定接口可指固定区域和可重配置区域之间的通信接口,所述通信接口提供在区域之间通信的能力,而无论在局部重配置期间在可重配置区域内实现何种设计。当一个或多个不同的可重配置区域被重配置时,模拟仍旧运行并且继续起作用。在具体实施方式中,包装器模块代表一个或多个可重配置区域。基于输入或参数,可重配置区域的功能可以不同。
根据各种实施方式,输入可由计算系统接收以模拟可编程逻辑器件。输入可指示可在可编程逻辑器件上实现的逻辑描述的配置。输入可包括如下信号:所述信号指示彼此共享公共接口的第一设计和第二设计。可根据用户提供的输入或根据由用来产生逻辑描述的设计工具所执行的自动过程来将第一和第二设计参数化。基于计算系统接收到的输入,可产生逻辑描述。包装器模块可包括可编程逻辑器件的可重配置区域内的第一设计并且可被包括在逻辑描述中。包装器模块可接收如下参数:所述参数指示由包装器模块所代表的设计应从第一设计改变至第二设计。改变可在模拟运行的同时发生。
在各种实施方式中,可产生可模拟源文件。当在硬件模拟器中模拟逻辑描述时,可使用可模拟源文件。可模拟源文件的包装器模块可被配置用以响应于接收运行时间参数而从第一设计改变至第二设计。
根据具体实施方式,可产生可合成源文件。当将逻辑描述编译到诸如可编程逻辑器件之类的硬件中时,可使用可合成源文件。可合成源文件的包装器模块可被配置用以响应于接收编译时间参数而从第一设计改变至第二设计。
附图说明
图1示出根据一个实施方式的用于产生源文件来模拟可编程逻辑器件(PLD)的局部重配置的示例性过程。
图2示出根据一个实施方式的用于接收输入以产生用于局部重配置模拟的源文件的示例性过程。
图3示出根据一个实施方式的用于模拟源文件的示例性过程。
图4示出根据一个实施方式的用于实现可编程芯片的示例性技术。
图5示出根据一个实施方式的计算机系统的一个例子。
具体实施方式
现在将详细地参考本发明的实施方式。这些实施方式中的例子在附图中示出。当结合这些实施方式来描述发明时,应理解,并非旨在将本发明限制于所描述的实施方式。相反,旨在涵盖如可能被包括在所附权利要求所定义的本发明的精神和范围内的替代方案、修改、和等同物。
例如,本发明的技术和机制将在具体类型的器件的上下文中描述。然而,应当注意,本发明的技术和机制适用于各种不同类型的器件。在下面的描述中,阐明了许多具体的细节以便提供对本发明的彻底的理解。本发明的特定示例性实施方式可以在没有一些或所有这些具体细节的情况下实现。在其它情况下,为了不对本发明造成不必要的模糊,未对熟知的过程操作做出详细描述。
为清楚起见,有时将以单数形式来描述本发明的各种技术和机制。然而,应当注意,各种实施方式可包括技术的多次重复或机制的多个实例(instantiation),除另有指明之外。例如,系统可以在各种背景下使用处理器。然而,应了解,系统能够使用多个处理器,而仍在本发明的范围内,除另有指明之外。此外,本发明的技术和机制有时将描述两个实体之间的连接。应当注意,两个实体之间的连接不一定意味着直接无阻碍连接,因为各种其它实体可能存在于这两个实体之间。例如,处理器可连接到存储器部件,但是应了解,各种桥接器和控制器可以存在于处理器和存储器之间。因此,除另有指明之外,连接不一定意味着直接无阻碍连接。
局部重配置是如下过程:在该过程中,可利用新功能来配置可编程逻辑器件的一个多个可重配置逻辑区域,而可编程逻辑器件的一个或多个固定逻辑区域保持固定并且继续执行已实现的功能。可以在可编程逻辑器件运行时发生局部重配置。
常规硬件模拟器不能有效地支持模拟局部重配置的能力。各种常规硬件模拟系统缺乏如下能力:在硬件模拟器运行的同时,切换代表逻辑的不同实例的不同版本的代码。相应地,如果用常规方法来模拟局部重配置,则模拟必须在第一源文件中运行第一段代码。然后必须停止模拟并编译一段新代码来创建新源文件。一旦已经编译了所述一段新代码,就可模拟新源文件。在局部重配置期间中断对逻辑描述的模拟阻止对已实现的逻辑描述的临时行为的有效模拟。
本发明的实施方式允许在硬件模拟器运行的同时模拟局部重配置。因此,根据各种实施方式,可以在模拟中途改变代表逻辑的不同实例的不同版本的代码。这可以通过将包装器(wrapper)模块合并到源文件中来完成。包装器模块可将第一设计与将要经历局部重配置的逻辑区域联系起来。包装器模块可接收参数。该参数可识别第二设计,包装器模块会将该第二设计与逻辑区域联系起来。因此,响应于接收参数,包装器模块可将第二设计与逻辑区域联系起来,并且可以执行一段新代码。在模拟继续运行的同时,可以发生改变。
在各种实施方式中,源文件可以是可模拟源文件,在硬件模拟正在硬件模拟程序中运行的同时,该可模拟源文件可接收参数。在各种实施方式中,源文件可以是可合成源文件,当逻辑描述被编译到诸如可编程逻辑器件的硬件中时,该可合成源文件可接收参数。
图1示出根据一个实施方式的用于产生源文件来模拟可编程逻辑器件(PLD)的局部重配置的示例性过程。根据本发明的各种实施方式,当器件经历局部重配置时,可以模拟可编程逻辑器件的操作。
在步骤102中,接收如下输入:所述输入识别将在PLD中实现的逻辑描述的配置。可在被用来模拟PLD的局部重配置的计算系统的接口处接收该输入。在一个实施列中,输入可识别所有被包括在逻辑描述中的设计。设计可以例如与具体硬件部件或具体逻辑功能相关联。因此,设计可指当在PLD中实现时可以是活动的逻辑设计、逻辑设计的实例化、逻辑功能、或硬件部件。设计可在固定逻辑区域或可重配置逻辑区域中实现。在模拟逻辑描述的背景下,设计可以是被包括在可模拟源文件中的代码的模块。代码的模块可具有相关联的输入和输出。与代码的模块相关联的输入和输出可模拟诸如硬件部件或逻辑功能的设计的输入和输出的行为。
在步骤104中,基于由在计算系统中所接收到的输入所识别的配置,过程100可产生逻辑描述。逻辑描述可包括第一设计和第二设计。当产生逻辑描述时,在步骤106中,过程100可产生可模拟源文件。可模拟源文件可以是如下源文件:所述源文件包括在模拟程序中被模拟的逻辑描述。模拟程序可模拟设计随时间的行为。可模拟源文件可包括由在计算系统中所接收到的输入识别的所有设计。
在各种实施方式中,可模拟源文件包括包装器模块。包装器模块可在模拟程序和正被模拟的设计之间提供恒定接口。如先前所讨论的,恒定接口可指固定区域和可重配置区域之间的通信接口,该通信接口提供在区域之间通信的能力,而无论在局部重配置期间在可重配置区域内实现何种设计。例如,包括包装器模块的已编译源代码可以保持恒定。然而,响应于接收参数,包装器模块可将对应于不同设计的不同输入和输出与已编译的代码模块联系起来。因此,响应于接收参数,并且在模拟继续运行的同时,包装器模块可将不同的设计以及那些设计的不同实例与已编译的代码模块联系起来。因为可模拟源文件包括由在计算系统中所接收到的输入所识别的所有设计的所有实例,所以当模拟从第一设计过渡到第二设计时,可模拟源文件的重新编译不是必须的。
在步骤108中,过程100可产生可合成源文件。可合成源文件可以是如下源文件:所述源文件包含被编译到硬件中的逻辑描述。因此,可合成源文件可被编译到诸如电子设计互换格式(EDF)文件之类的物理可实现的门级网表,所述文件可在可编程逻辑器件上被实现。
在具体实施方式中,可合成源文件的包装器模块在程序和待实现的设计之间提供恒定接口,所述程序诸如被用来编译源文件的合成工具。包装器模块可包括第一设计的逻辑描述。根据各种实施方式,编译器将可合成源文件编译到硬件中而包装器模块包括第一设计。在局部重配置期间,可以重新编译可合成源文件来实现包括新功能的第二设计。在重新编译期间,包装器模块可接收编译时间参数,所述编译时间参数识别第二设计。包装器模块可产生代码来将第二设计的逻辑描述包括到可合成源文件中。因此,编译器可以重新编译可合成源文件而包装器模块包括第二设计。
根据各种实施方式,设计可被分组成:同时物理地存在于器件中的设计;以及不同时物理地存在的设计。对于同时物理地存在的设计,响应于接收运行时间参数,多路复用逻辑可以通过引导设计之间的切换来确定哪些设计是活动的。对于不同时物理地存在的设计,响应于接收编译时间参数,局部重配置可以通过引导设计之间的切换来确定哪些设计是活动的。
根据各种实施方式,如果所有设计均被包括单个组中,则所有设计可以实现为使得它们同时物理地存在于PLD中。在具体实施方式中,如果每个设计是本身的独立组,则设计不同时物理地存在于PLD中。在另一个例子中,一些设计被包括在相互相同的组中,而其余的设计则被包括在其它组中。被包括在同一组中的设计同时物理地存在于PLD中。因此,运行时间参数可经由多路复用逻辑来引导被包括在同一组中的设计之间的切换。编译时间参数可以经由局部重配置来引导属于不同组的设计之间的切换。
图2示出根据一个实施方式的用于接收输入以产生用于局部重配置模拟的源文件的示例性过程。在各种实施方式中,在步骤202中,设计工具可经由到计算系统的输入来接收可在PLD中被实现的包括在逻辑描述中的所有设计的列表。每个设计可以是可参数化的。因此,在计算系统中接收到的输入另外可以修改与被包括在设计中的硬件部件相关联的各种参数。示例性参数可以是延迟、功率消耗、和硬件部件的吞吐量等等。在步骤204中,一旦已经接收到设计的列表,输入也可识别源文件的配置。例如,当逻辑描述在PLD上被实现时,信号可识别将被实现和活动的设计的实例。
在步骤208中,设计工具可接收与设计的设计接口相关联的允许的自动采纳(automatic adoption)的列表。在各种实施方式中,自动采纳可指由设计工具根据预定的设置并且响应于接收设计所作出的自动选择。根据各种实施方式,每个设计可包括充当通信接口的设计接口。如果在第一逻辑区中实现第一设计,并且在相邻于第一设计逻辑区域的第二逻辑区域中实现第二设计,则两个设计可以经由它们相应的设计接口彼此通信。当被包括在第一设计中的第一设计接口的接口的类型与被包括在第二设计中的第二设计接口相同时,两个设计之间的通信可以是可能的。因此,允许的自动采纳的列表可识别仲裁器(arbiter)可自动地将设计接口转换成的若干类型的设计接口。对具体类型的设计接口的自动转换确保不同的设计将具有相同类型的设计接口并且将能够相互通信。
在210中,基于允许的自动采纳的列表,仲裁器可自动地将设计接口从第一设计接口改变至第二设计接口。例如,诸如Avalon接口的设计接口可被自动采纳的列表识别。Avalon接口指特定类型的总线结构(bus fabric),所述总线结构可在第一设计和诸如第二设计的可编程逻辑器件的另一部分之间提供通信接口。仲裁器可自动地将诸如高级微控制器总线架构(AMBA)接口之类的不同的设计接口转换成Avalon接口。在计算系统中所接收到的输入可指定:当接收到设计的列表时,设计工具自动地执行该转换。一旦已经接收到自动采纳的列表,过程200就可继续到步骤214。
根据各种实施方式,在步骤214中,设计工具可接收输入和输出信号的列表。在模拟期间,设计工具可配置源文件来接收和提供已识别的输入和输出信号。例如,输入信号的列表可识别子系统重置输入。子系统重置输入可允许输入信号重置被模拟的系统的特定部分,诸如在可重配置逻辑区域中实现的设计。例如,如果刚刚已经对在逻辑区域中实现的设计进行了重配置,则子系统重置输入可将该逻辑区域重置,而系统的其余部分继续不中断地运行。此外,根据各种实施方式,源文件可提供输出信号,所述输出信号提供关于正在经历局部重配置的逻辑区域的信息。例如,如果处理器核心在可重配置逻辑区域中实现,并且该可重配置逻辑区域经历局部重配置,则来自该可重配置逻辑区域的输出信号可指示处理器核心正在经历局部重配置。这样的输出信号可被提供给如下固定逻辑区域:所述固定逻辑区域与该可重配置逻辑区域在相同可编程逻辑器件上实现。而且,在具体实施方式中,信号的列表可包括在局部重配置期间具有预定的属性的信号的列表。例如,来自逻辑的可重配置区域的输出可被保持在对应于不确定状态的值“X”、上一个已知值、“1”、和“0”。
根据具体实施方式,在步骤220中,设计工具可继续到设计过程的下一阶段。在各种实施方式中,设计工具可继续以产生可模拟源文件。设计工具也可产生可合成源文件。
图3示出根据一个实施方式的用于模拟源文件的示例性过程。在各种实施方式中,在步骤302中,过程300可确定源文件是可模拟源文件还是可合成源文件。如果源文件是可模拟源文件,过程300可继续到步骤304。
根据具体实施方式,在步骤304中,过程300可以开始模拟被包括在可模拟源文件中的逻辑描述。在步骤304中,过程300可以开始模拟逻辑描述的局部重配置。因此,根据各种实施方式,在模拟继续运行的同时,可模拟源文件的逻辑描述可被局部重配置。如上所讨论的,被包括在可模拟源文件中的包装器模块可与可编程逻辑器件的可重配置逻辑区域相关联。在局部重配置期间,可利用新功能重配置可重配置逻辑区域。因此,包装器模块可以初始地将第一设计与可重配置逻辑区域联系起来。在模拟期间,包装器模块可接收运行时间参数。该参数可识别第二设计。响应于接收参数,包装器模块可将第二设计与可重配置逻辑区域联系起来。因此,在模拟PLD的局部重配置期间,参数可以引导从第一设计到第二设计的切换。
例如,可以模拟多路转发器中的可重配置逻辑区域的逻辑描述。多路转发器可接收若干线路(lane),所述线路中的每一个承载某一频率的信号并且根据联网协议独立地运行。多路转发器可将线路多路复用成在较高速度或频率下运行的单个组合协议。可重配置逻辑区域可确定在多路转发器处所接收到的线路的联网协议。被包括在可模拟源文件中的包装器模块可与可重配置逻辑区域相关联。因此,包装器模块可将第一设计与可重配置逻辑区域联系起来。第一设计可对在多路转发器处接收到线路进行配置以根据以太网协议运行。在对局部重配置的模拟期间,包装器模块可接收识别SDI协议的参数。响应于接收该参数,包装器模块可将第二设计与可重配置逻辑区域联系起来。第二设计可对线路进行配置以根据SDI协议运行。
在步骤306中,在重配置过程期间,经历局部重配置的逻辑区域的所有输出或输出的已识别的子集可被保持在预定值。在步骤308中,过程300可以确定模拟是否已经完成了模拟源文件的局部重配置。如果确定模拟尚未完成对局部重配置的模拟,则在步骤310中,在与模拟工具通信的测试台处所接收到的信号可指定对源文件的模拟如何继续。如果在步骤308中确定模拟已经完成了局部重配置,则在步骤314中,在对逻辑区域的模拟已经完成了局部重配置之后,模拟工具可以将逻辑区域的输出或输出的已识别的子集设置为值“X”。在各种实施方式中,可继续断言该值,直到子系统重置发生为止。在已经将逻辑区域的输出或其子集设置到值“X”之后,在步骤310中,过程300可以按在测试台处所接收到的信号所指定的那样继续模拟逻辑描述。
如果在步骤302中确定源文件是可合成源文件,则在步骤316中编译器可以将该可合成源文件编译到诸如可编程逻辑器件之类的硬件中。在各种实施方式中,可合成源文件可包括与可编程逻辑器件的可重配置逻辑区域相关联的包装器模块。包装器模块可包括第一设计。在局部重配置期间,编译器可重新编译可合成源文件以实现新功能。因此,在步骤318中,在对可合成源文件的重新编译期间,包装器模块可接收识别第二设计的参数。响应于接收该参数,包装器模块可将第二设计与可重配置逻辑区域联系起来。在步骤320处,编译器可完成对现在包括第二设计并且可在可编程逻辑器件中实现的可合成源文件的重新编译。
例如,可以实现多路转发器中的可重配置逻辑区域的逻辑描述。逻辑描述可包括包装器模块。包装器模块可包括第一设计,该第一设计对在多路转发器处所接收到的线路进行配置以根据以太网协议操作。在局部重配置期间,可对可重配置逻辑区域的逻辑描述进行重新编译以实现新功能。在重新编译期间,包装器模块可接收参数。该参数可识别SDI协议。响应于接收参数,包装器模块可包括第二设计并且对在多路转发器处所接收到的线路进行配置以根据SDI协议操作。编译器可完成对逻辑描述的重新编译,并且逻辑描述可在可编程逻辑器件中实现。在已经实现了逻辑描述之后,在多路转发器处所接收到的线路可根据SDI协议操作。
Figure BSA00000743617500111
表1
表1包含用于模拟和编译两者的源文件的示例性并列说明。如先前所讨论的,源文件可包括包装器模块。
表1的编译侧示出如下包装器模块:所述包装器模块可被包括在由例如过程200所产生的可合成源文件中。如编译侧所示,可合成源文件可包括具有各种相关联的输入和输出的包装器模块。而且,在计算系统中所接收到的输入可以设置参数(在该例子中为协议),从而识别包装器模块将设计的哪个实例与可重配置逻辑区域联系起来。可合成源文件的包装器模块的内部变量的设置可能需要跨越模块接口。相应地,参数值的随后的变化可能需要对硬件描述语言代码的重新编译。
模拟侧示出如下包装器模块:所述包装器模块可被包括在也由例如过程200所产生的可模拟源文件中。在可模拟源文件中,不设置参数。相应地,模块的功能接口保持恒定,因为对以诸如Verilog和VHDL之类的硬件描述语言编写的源文件的模拟允许一个模块直接在另一个模块中设置变量,而没有模块接口的跨越。相应地,没有必要重新编译。
Figure BSA00000743617500121
Figure BSA00000743617500131
表2
表2示出执行如上所述的包括包装器模块的可模拟源文件的示例性测试台。表2进一步示出可模拟源文件的包装器模块可以如何被调用以及参数值如何改变与包装器模块相关联的各种输入和输出。更具体地,表2示出每次参数值改变时代表不同设计的不同的代码被实例化。例如,参数的第一值可调用实例化以太网协议的以太网模块,而参数的第二值可调用实例化SDI协议的SDI模块。根据各种实施方式,设计并非完全不同。例如,相同的设计可以用不同的参数来实例化。例如,可以实现乘法器。响应于接收参数,具有不同硬件属性的乘法器可被实例化,所述不同硬件属性诸如延迟、功率消耗、或吞吐量。
图4示出根据一个实施方式的用于模拟和实现可编程芯片的示例性技术。这样的技术可用来模拟和实现如上所述的可编程逻辑器件(PLD)。输入阶段401通常从用户接收诸如处理器核心以及其它将在电子器件上实现的部件之类的逻辑的选择信息。在一个例子中,所接收到的输入是高级语言程序的形式。生成器程序405产生逻辑描述403并且将逻辑描述403连同其它定制逻辑提供给各种合成工具、布局和布线程序、以及逻辑配置工具中的任一种或多种,从而允许在电子器件上实现逻辑描述。
在一个例子中,输入阶段401往往允许选择并参数化将在电子器件上使用的部件。输入阶段401还允许配置硬编码逻辑。在一些例子中,提供到输入阶段的部件包括知识产权功能、宏功能、以及知识产权核心。输入阶段401可以是图形用户界面使用向导,用于允许信息的高效或方便输入。输入阶段也可以是读取数据文件以取得选择信息的文本接口或程序,所述数据文件诸如电子表格、数据库表、或示意图。输入阶段401产生如下输出:所述输出包含关于所选择的各种模块的信息。在这个阶段,用户可以输入关于需要被孤立的独立部件的安全信息。例如,可以输入不同等级的部件安全以及哪些部件被允许相互通信。
在典型的实施方式中,生成器程序405能够识别选择并且产生具有用于实现各种模块的信息的逻辑描述。生成器程序405可以是Perl脚本,所述Perl脚本从由用户输入的模块信息创建HDL文件,所述HDL文件诸如Verilog、Abel、VHDL、以及AHDL文件。在一个例子中,生成器程序识别高级语言程序的部分以加速。其他代码被留下用于在处理器核心上执行。根据各种实施方式,生成器程序405识别指针并且为每个指针提供端口。具有生成器程序能力的一个工具是可从Altera Corporation of San Jose,CA获取的System on aProgrammable Chip(SOPC)Builder。生成器程序405还向合成工具407提供信息从而允许HDL文件自动地合成。在一些例子中,逻辑描述直接由设计者提供。由用户选定的各种部件之间的接线(hookup)也通过生成器程序互连。可用合成工具中的一些是可从Mentor Graphics Corporation of Wilsonville,Oregon获取的LeonardoSpectrum以及可从Synplicity Corporation of Sunnyvale,California获取的Synplify。HDL文件可包含仅可通过合成工具读取的技术特定代码。此时HDL文件还可被传递到模拟工具。
如本领域技术人员将认识到的,输入阶段401、生成器程序405、和合成工具407可以是独立的程序。独立程序之间的接口可以是数据库文件、日志、或仅仅在程序之间传输的消息。例如,代替将文件写入到存储器,输入阶段401能够直接发送消息给生成器程序405,以允许生成器程序创建逻辑描述。类似地,代替编写HDL文件,生成器程序能够直接向合成工具提供信息。类似地,输入阶段401、生成器程序405、和合成工具407能够被集成到单个程序中。
用户可以选择各种模块,并且集成的程序然后能够接受用户选择并且以合成网表的形式输出逻辑描述而无中间文件。用于描述将在电子器件上实现的逻辑的任何机制在此处被称为逻辑描述。根据各种实施方式,逻辑描述是HDL文件,诸如VHDL、Abel、AHDL、或Verilog文件。逻辑描述可能在部件和参数的用户选择到器件的最终配置之间的各个处理阶段中。根据其它实施方式,逻辑描述是合成网表,诸如电子设计互换格式输入文件(EDF文件)。EDF文件是能够由合成工具407输出的合成网表文件一个例子。
合成工具407能够接受HDL文件和输出EDF文件。用于合成的工具允许在电子器件上实现逻辑设计。可用合成工具中的一些是可从Mentor Graphics Corporation of Wilsonville,Oregon获取的Leonardo Spectrum以及可从Synplicity Corporation of Sunnyvale,California获取的Synplify。本领域的技术人员能够认识到各种合成网表格式。
验证阶段413通常跟随合成阶段407。验证阶段检查设计的准确性以确保中间或最终设计实现预期的要求。验证阶段通常包括模拟工具和定时分析工具。用于模拟的工具允许施加输入以及观察输出,而无需实现物理器件。模拟工具向设计者提供用于设计的功能和定时验证两者的节省成本且高效的机制。功能验证涉及独立于定时考虑的电路的逻辑运算。诸如门延迟之类的参数被忽略。
定时验证涉及对具有定时延迟的设计的运算的分析。用于诸如触发器之类的顺序器件的建立、保存、和其它定时要求被确认。一些可用的模拟工具包括可从Synopsys Corporation of Sunnyvale,California获取的Synopsys VCS、VSS、和Scirocco以及可从CadenceDesign Systems of San Jose,California获取的Cadence NC-Verilog和NC-VHDL。在验证阶段413之后,能够将合成网表文件提供给物理设计工具419,所述物理设计工具包括布局和布线工具以及配置工具。布局和布线工具根据所提供的逻辑和安全在目标硬件器件的特定逻辑元件上定位逻辑单元并且连接各种逻辑元件的输入和输出之间的连线,以实现电子设计。根据本发明的各种实施方式,布局和布线工具可执行本发明的技术以实现如由用户定义的各种安全要求和规则。重复的技术对用户是可以透明的,但是在423中能够对所得的器件物理地进行测试。
对于可编程逻辑器件,可编程逻辑配置阶段能够采取布局和布线工具的输出来编程具有用户选定且参数化的模块的逻辑器件。根据各种实施方式,布局和布线工具以及逻辑配置阶段在QuartusDevelopment Tool中提供,该工具可Altera Corporation of San Jose,California获得。如本领域的技术人员将认识到的,使用本发明的各种技术,能够使用各种合成、布局和布线、以及可编程逻辑配置工具。
如上所指出的,不同的阶段和程序能够以各种方式集成。根据一个实施方式,输入阶段401、生成器程序405、合成工具407、验证工具413、以及物理设计工具419被集成到单个程序中。各阶段自动地运行并且对用户透明。程序能够接收用户选定的模块、产生描述用于实现各种选定的模块的逻辑的逻辑描述、以及实现电子器件。如本领域的技术人员将认识到的,HDL文件和EDF文件仅仅是逻辑描述的例子。其它文件格式以及内部程序表示是逻辑描述的其它例子。
图5示出根据一个实施方式的计算机系统的一个例子。在各种实施方式中,计算系统可用来模拟PLD的局部重配置。计算机系统500包括任何数目的处理器502(也被称为中央处理单元,或CPU),所述处理器耦合到包括存储器部件506(通常为随机存取存储器、或“RAM”)、存储器部件504(通常为只读存储器,或“ROM”)的器件。处理器502能够被配置用以产生电子的设计。如本领域中所熟知的,存储器部件504起到单向地向CPU传递数据和指令的作用,并且存储器部件506通常用来以双向方式传递数据和指令。
这两个存储器件均可包括任何适当类型的上述计算机可读介质中。大容量存储器件508还双向地耦合到CPU 502并且提供另外的数据存储能力并且可包括上述计算机可读介质中的任一计算机可读介质。大容量存储器件508可用来存储程序、数据等,并且通常是比存储器慢的诸如硬盘之类的次要存储介质。大容量存储器件508能够用来保存预先封装的逻辑的厍或数据库或知识产权功能,以及关于产生具体配置的信息。应了解,保存在大容量存储器件508内的信息在适当的情况下可以按标准方式合并为作为虚拟存储器的存储器部件506的一部分。诸如CD-ROM 514的特定大容量存储器件也可以单向地将数据传递到CPU。
CPU 502还耦合到接口510,所述接口包括一个或多个输入/输出设备,所述输入/输出设备诸如视频监视器、轨迹球、鼠标、键盘、麦克风、触摸感应显示器、换能器读卡器、磁读取器或纸带读取器、平板、触笔、语音识别器或手写识别器,或其它众所周知的输入设备,当然包括其它计算机。CPU 502可以是设计工具处理器。最后,CPU 502可选地可使用如在512处一般所示的网络连接而耦合到计算机或电信网络。利用这样的网络连接,可以想到的是,执行上述过程步骤期间,CPU可能从网络接收信息,或可能输出信息到网络。应当注意,系统500可能还与用于将完成的设计转移到可编程芯片上的设备相关联。上述设备和材料对于计算机硬件和软件领域的技术人员来说将是熟悉的。
虽然为了方便,上述部件和过程中的许多以单数形式描述,但是本领域的技术人员应了解,多个部件和重复过程也能够用来实践本发明的技术。
虽然已经参考本发明的特定实施方式对本发明的具体实施方式做出了具体的展示和描述,但是本领域的技术人员应当理解,在不脱离本发明的精神和范围的情况下,可以改变所公开的实施方式的形式或细节。例如,本发明的实施方式可利用各种部件运用并且不应受到上述部件的限制。因此,预期本发明将被解释为包括落入本发明的真正精神和范围内的所有变体和等同物。

Claims (16)

1.一种用于模拟和实现集成电路的方法,包括:
在计算系统中模拟包括固定逻辑区域和多个可重配置逻辑区域的器件,所述固定逻辑区域可操作用以执行固定的功能,并且所述多个可重配置逻辑区域可重配置用以执行与多个设计相关联的功能,其中所述多个设计包括第一设计和第二设计;以及
在所述器件的模拟运行的同时接收运行时间参数以重配置从所述第一设计到所述第二设计的所述多个可重配置逻辑区域中的至少一个可重配置区域。
2.根据权利要求1所述的方法,其中所述固定逻辑区域以及所述多个可重配置逻辑区域中的分别实现所述第一设计和所述第二设计的两个可重配置逻辑区域共享公共接口。
3.根据权利要求1所述的方法,其中可重配置逻辑区域包括包装器模块,所述包装器模块可操作用以接收所述运行时间参数,所述运行时间参数引导从所述第一设计到所述第二设计的切换。
4.根据权利要求1所述的方法,进一步包括:
接收所述多个设计的列表;
接收识别所述多个设计的配置的信号;
接收在局部重配置期间具有预定的属性的信号的列表;以及
接收可操作用以将第一接口转换成第二接口的允许的自动采纳的列表。
5.根据权利要求1所述的方法,进一步包括:
接收将设计重置的信号;以及
接收识别所述多个可重配置逻辑区域中的生成输出信号的至少一个可重配置逻辑区域的信号,其中所述输出信号向所述固定逻辑区域通知所述多个可重配置逻辑区域中的所述至少一个可重配置逻辑区域正在经历局部重配置。
6.根据权利要求4所述的方法,其中所述第一接口是高级微控制器总线结构AMBA接口,并且所述第二接口是Avalon接口。
7.根据权利要求1所述的方法,进一步包括:
确定所述第一设计具有不同于所述第二设计的第二接口的第一接口;以及
响应于具有不同于所述第二设计的所述第二接口的所述第一接口的所述第一设计,应用仲裁器来将所述第一接口转换成与所述第二接口相同。
8.根据权利要求1所述的方法,进一步包括:
产生可合成源文件,所述可合成源文件可操作用以响应于接收编译时间参数而从所述第一设计切换到所述第二设计;以及
产生可模拟源文件,所述可模拟源文件可操作用以响应于接收运行时间参数而从所述第一设计切换到所述第二设计。
9.根据权利要求8所述的方法,其中所述可模拟源文件可操作用以:
识别对具有指定属性的包装器模块的输入;
识别至少一个输出信号在局部重配置期间的值,其中所述值选自由下列各值组成的组:“X”、上一个值、1和0,其中所述至少一个输出信号源于所述至少一个可重配置逻辑区域;以及
识别至少一个在局部重配置之后并且在子系统重置之前具有值“X”的输出信号。
10.根据权利要求1所述的方法,进一步包括将所述多个设计中的每个设计分配为组,
其中被包括在第一组中的设计响应于接收运行时间参数而被切换,并且
其中被包括在第二组中的设计响应于接收编译时间参数而被切换。
11.一种用于模拟和实现集成电路的系统,包括:
处理器,其可操作用以模拟包括固定逻辑区域和多个可重配置逻辑区域的器件,所述固定逻辑区域可操作用以执行固定的功能,并且所述多个可重配置逻辑区域可重配置用以执行与多个设计相关联的功能,其中所述多个设计包括第一设计和第二设计;以及
接口,其可操作用以在所述器件的模拟运行的同时接收运行时间参数以重配置从所述第一设计到所述第二设计的所述多个可重配置逻辑区域中的至少一个可重配置区域。
12.根据权利要求11所述的系统,其中可重配置逻辑区域包括包装器模块,所述包装器模块可操作用以接收所述运行时间参数,所述运行时间参数引导从所述第一设计到所述第二设计的切换。
13.根据权利要求11所述的系统,其中所述接口可操作用以:
接收所述多个设计的列表;
接收识别所述多个设计的配置的信号;
接收在局部重配置期间具有预定的属性的信号的列表;以及
接收可操作用以将第一接口转换成第二接口的允许的自动采纳的列表。
14.根据权利要求11所述的系统,其中所述处理器可操作用以:
产生可合成源文件,所述可合成源文件可操作用以响应于接收编译时间参数而从所述第一设计切换到所述第二设计;以及
产生可模拟源文件,所述可模拟源文件可操作用以响应于接收运行时间参数而从所述第一设计切换到所述第二设计。
15.根据权利要求14所述的系统,其中所述可模拟源文件可操作用以:
识别对具有指定属性的包装器模块的输入;
识别至少一个输出信号在局部重配置期间的值,其中所述值选自由下列各值组成的组:“X”、上一个值、1和0,其中所述至少一个输出信号源于所述至少一个可重配置逻辑区域;以及
识别至少一个在局部重配置之后并且在子系统重置之前具有值“X”的输出信号。
16.根据权利要求11所述的系统,其中所述接口可操作用以接收输入,所述输入将所述多个设计中的每个设计分配为组,
其中被包括在第一组中的设计响应于接收运行时间参数而被切换,并且
其中被包括在第二组中的设计响应于接收编译时间参数而被切换。
CN201210228928.6A 2011-07-01 2012-06-29 用于局部重配置模拟的方法和系统 Active CN102855147B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161504117P 2011-07-01 2011-07-01
US61/504,117 2011-07-01
US13/369,218 US8751998B2 (en) 2011-07-01 2012-02-08 Method and system for partial reconfiguration simulation
US13/369,218 2012-02-08

Publications (2)

Publication Number Publication Date
CN102855147A true CN102855147A (zh) 2013-01-02
CN102855147B CN102855147B (zh) 2017-06-16

Family

ID=46545620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210228928.6A Active CN102855147B (zh) 2011-07-01 2012-06-29 用于局部重配置模拟的方法和系统

Country Status (3)

Country Link
US (1) US8751998B2 (zh)
EP (1) EP2541448B1 (zh)
CN (1) CN102855147B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107533473A (zh) * 2015-05-04 2018-01-02 美商新思科技有限公司 用于仿真的高效波形生成

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8476926B1 (en) * 2012-02-08 2013-07-02 Altera Corporation Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration
WO2017188416A1 (ja) * 2016-04-28 2017-11-02 Necソリューションイノベータ株式会社 回路装置、回路書き換え方法、及びコンピュータ読み取り可能な記録媒体
US10394990B1 (en) * 2016-09-27 2019-08-27 Altera Corporation Initial condition support for partial reconfiguration
US10303648B1 (en) * 2017-05-19 2019-05-28 Xilinx, Inc. Logical and physical optimizations for partial reconfiguration design flow

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1241275A (zh) * 1996-10-30 2000-01-12 爱特梅尔股份有限公司 配置逻辑器件阵列的方法和系统
US20070198240A1 (en) * 2006-02-17 2007-08-23 National Instruments Corporation Solver for simulating a system in real time on a programmable hardware element
US7490311B1 (en) * 2004-11-12 2009-02-10 Xilinx, Inc. Reset manager
CN101593169A (zh) * 2008-05-30 2009-12-02 国际商业机器公司 可配置逻辑阵列的配置管理器和配置方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8554972B2 (en) * 2007-09-13 2013-10-08 Friedrich-Alexander-Universitaet-Erlangen-Nuernberg Logic chip, method and computer program for providing a configuration information for a configurable logic chip

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1241275A (zh) * 1996-10-30 2000-01-12 爱特梅尔股份有限公司 配置逻辑器件阵列的方法和系统
US7490311B1 (en) * 2004-11-12 2009-02-10 Xilinx, Inc. Reset manager
US20070198240A1 (en) * 2006-02-17 2007-08-23 National Instruments Corporation Solver for simulating a system in real time on a programmable hardware element
CN101593169A (zh) * 2008-05-30 2009-12-02 国际商业机器公司 可配置逻辑阵列的配置管理器和配置方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107533473A (zh) * 2015-05-04 2018-01-02 美商新思科技有限公司 用于仿真的高效波形生成
CN107533473B (zh) * 2015-05-04 2021-03-02 美商新思科技有限公司 用于仿真的高效波形生成

Also Published As

Publication number Publication date
US8751998B2 (en) 2014-06-10
EP2541448B1 (en) 2016-09-14
US20130007687A1 (en) 2013-01-03
CN102855147B (zh) 2017-06-16
EP2541448A1 (en) 2013-01-02

Similar Documents

Publication Publication Date Title
US7353162B2 (en) Scalable reconfigurable prototyping system and method
US6857110B1 (en) Design methodology for merging programmable logic into a custom IC
EP2216722B1 (en) Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets
US9041431B1 (en) Partial reconfiguration and in-system debugging
US7865346B2 (en) Instruction encoding in a hardware simulation accelerator
US9298865B1 (en) Debugging an optimized design implemented in a device with a pre-optimized design simulation
US20090019416A1 (en) Customizable synthesis of tunable parameters for code generation
US10782995B2 (en) Flexible physical function and virtual function mapping
US7225416B1 (en) Methods and apparatus for automatic test component generation and inclusion into simulation testbench
US8904333B2 (en) Mixed signal IP core prototyping system
CN102855147A (zh) 用于局部重配置模拟的方法和系统
CN101689216B (zh) 压缩型电路仿真输出
CN110785761B (zh) 存在时钟动态重编程时仿真时间线的压缩方法
JP2007164780A (ja) 方法、システムおよびプログラム(設計を検証する方法およびシステム)
EP1859372B1 (en) Cross-bar switching in an emulation environment
US9824173B1 (en) Software development-based compilation flow for hardware implementation
JP5056511B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US7302667B1 (en) Methods and apparatus for generating programmable device layout information
JP4979329B2 (ja) 回路構成情報生成装置、制御装置、回路検証システム、回路検証方法、回路構成情報生成プログラム及び制御プログラム
CN106560819A (zh) 通过集成电路器件中的ip迁移来减小控制块尺寸
CN116227396A (zh) 用于对片上系统进行后仿真的方法和仿真平台
JP2008186229A (ja) 半導体集積回路の設計装置
CN114254578A (zh) 集成电路设备中的电路设计可见性
Liu et al. An Application-Oriented Top-Down Scheme for FPGA-Based Embedded System Design with 3D Graphics Applications
Chang et al. Creating Derivative Designs

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