CN102708221A - 用于对局部重配置模块进行布局和布线的方法和设备 - Google Patents
用于对局部重配置模块进行布局和布线的方法和设备 Download PDFInfo
- Publication number
- CN102708221A CN102708221A CN2012100461530A CN201210046153A CN102708221A CN 102708221 A CN102708221 A CN 102708221A CN 2012100461530 A CN2012100461530 A CN 2012100461530A CN 201210046153 A CN201210046153 A CN 201210046153A CN 102708221 A CN102708221 A CN 102708221A
- Authority
- CN
- China
- Prior art keywords
- module
- instance
- static logic
- resource
- target devices
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
- G06F30/3953—Routing detailed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/06—Spare resources, e.g. for permanent fault suppression
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及用于对局部重配置模块进行布局和布线的方法和设备。一种用于在目标器件上设计系统的方法,包括将该目标器件上的资源指定给系统中的静态逻辑模块和局部重配置(PR)模块。使用来自所指定资源的资源来并行地对该PR模块中的一个的实例进行布局和布线。还公开了其他实施例。
Description
技术领域
本发明的实施例涉及用于在目标器件上设计系统的工具。更具体地,本发明的实施例涉及一种用于在目标器件上对局部重配置(PR)模块进行布局和布线的方法和设备。
背景技术
利用诸如现场可编程门阵列(FPGA)、结构化专用集成电路(ASIC)和专用集成电路的目标器件用于实现可包括百万个门和兆位的嵌入式存储器的大系统。大系统的复杂性通常需要利用电子设计自动化(EDA)工具来创建和优化物理目标器件上的系统设计。在由计算机辅助设计(CAD)中的EDA工具执行的过程中,编译流程是系统的硬件描述语言(HDL)创建和系统在目标器件上的综合、布局和布线。
局部重配置(PR)涉及在编译期间在可编程目标器件上设计PR模块的多个实例。PR模块的每个实例表示对于该PR模块可实现的不同电路描述。所选PR模块可从第一实例被重配置为第二实例,而该可编程目标器件上的其他PR模块和静态模块仍保持有效运行。
PR允许系统的一部分由仅表示该目标器件的一部分的、EDA工具创建的编程文件来重配置,该编程文件与表示整个可编程目标器件的典型的编程文件不同。PR还允许在无需使用于重编程的可编程目标器件断电的情况下重新配置系统。PR可被用于功能升级或改变、错误修复或器件上的需要重编程的任何其他操作,而对于该器件的不受影响部分则无需花费停机时间。
发明内容
公开了一种用于在目标器件上对局部重配置(PR)模块进行布局和布线的方法和设备。根据本发明第一实施例,该目标器件上的资源被指定为供系统中的特定PR模块使用的候选者。根据该实施例的方面,在对PR模块的实例进行布局和布线之前对静态逻辑模块进行布局和布线,而且静态逻辑模块未使用的资源被指定为供PR模块使用的候选者。在该目标器件上使用所指定资源对PR模块的实例进行并行布局和布线。根据本发明实施例,在该目标器件上对PR模块进行并行布局和布线可涉及在时间上同时对PR模块进行布局和布线。
根据本发明第二实施例,对静态逻辑模块和PR模块执行初始布局和布线,以发现将由模块使用的资源的候选集合。该初始布局和布线用目标器件上的资源自由地适配该模块,而对使用哪些资源不加限制。识别由于被选择以由多于一个模块使用而导致冲突的资源,并将其仲裁给对于该资源产生竞争的静态逻辑模块和PR模块。初始适配未使用的资源被指定给有冲突的静态逻辑模块和PR模块。用所仲裁和所指定的资源对有冲突的静态逻辑模块和PR模块执行随后的布局和布线(重新适配)。
根据本发明第三实施例,对静态逻辑模块和PR模块执行初始适配。该初始适配使用目标器件上的资源自由地对该静态逻辑模块和该PR模块进行布局和布线,而对于使用哪些资源不加限制。识别由多于一个模块使用而导致冲突的资源。对有冲突的静态逻辑模块和PR模块执行一个或多个随后的布局和布线(重新适配),直到没有这样的冲突存在。
附图说明
通过示例描述本发明实施例的特征和优点,并且其并不旨在将本发明实施例的范围限制在所示的特定实施例内。
图1是示出了根据本发明实施例的示例性局部重配置(PR)设计的图。
图2是示出了根据本发明示例性实施例的用于使用静态资源分配在目标器件上设计具有PR模块的系统的方法的流程图。
图3示出了根据本发明实施例的用于静态资源分配的设计的示例性布图规划。
图4是示出了使用图3中所示方法的示例性编译调度的表格。
图5是示出了根据本发明的示例性实施例的用于使用静态资源分配和重新分配在目标器件上设计具有PR模块的系统的方法的流程图。
图6是示出了使用图5所示的方法的示例性编译调度的表格。
图7示出了根据本发明实施例的用于静态资源分配的设计的示例性修改后的布图规划。
图8是示出了根据本发明示例性实施例的用于使用自动发现的静态资源分配在目标器件上设计具有PR模块的系统的方法的流程图。
图9是示出了使用图8所示方法的示例性编译调度的表格。
图10是示出了根据本发明示例性实施例的使用动态资源分配在目标器件上设计具有PR模块的系统的方法的流程图。
图11A和图11B是示出了使用图10所示方法的示例性编译调度的表格。
图12示出了根据本发明实施例的实现系统设计者的计算机系统的框图。
图13示出了根据本发明实施例的示例性目标器件。
具体实施方式
在下面描述中,为了解释说明的目的,描述了具体术语来提供对本发明实施例的全面理解。本领域普通技术人员应该理解,说明书中的具体细节并不是实现本发明实施例所必须的。在其他实例中,以框图形式示出了公知的电路、器件和程序以避免不必要地使本发明实施例难以理解。
图1是示出了根据本发明实施例的使用局部重配置(PR)的系统的示例性设计100的图。设计100包括顶级模块110,其实例化为5个较低级模块A-E。每个模块包括多个以寄存器传输级描述的组件。模块A、C和E和顶级模块110是静态逻辑模块。根据本发明实施例,在静态逻辑模块被编程到目标器件上后,其不发生改变。模块B和D是PR模块。PR模块B具有4个可能实例,标记为B1-B4。PR模块D具有3个可能实例,标记为D1-D3。根据本发明实施例,PR模块包括多个可能实例,其中在PR模块被编程到目标器件上后,PR模块的第一实例可以被改变为PR模块的第二实例。PR模块的每个实例表示对于PR模式能够实现的不同寄存器传输级(RTL)。
根据本发明实施例,PR模块的每个实例包括一个或多个输入端口和一个或多个输出端口。每个输入端口和输出端口与目标器件上的同一静态逻辑联接,使得PR模块的边界逻辑上一致。PR模块的每个实例的输入端口可由可配置随机存取存储器(CRAM)位编程以在PR模块的边界接收来自静态逻辑的数据。类似地,PR模块的每个实例的输出端口可由CRAM位编程以在PR模块的边界传送数据到静态逻辑。应该理解,PR模块的边界处的静态逻辑可以用寄存器、查找表(LUT)、线或其他组件来实现。
图2是示出了根据本发明实施例的用于使用静态资源分配在目标器件上设计具有PR模块的系统的方法的流程图。目标器件可以是现场可编程门阵列(FPGA)、专用集成电路(ASIC)、结构化ASIC或其他可编程器件。根据一个实施例,图2所示的过程可以由在计算机系统上实现的计算机辅助设计(CAD)/电子设计自动化(EDA)工具来执行。在201,生成硬件描述语言(HDL)设计定义来描述该系统。HDL的生成响应于设计者提供的该系统的规格说明。该规格说明可以由设计者通过设计输入工具来提供。该规格说明可描述系统中的组件和互连。根据本发明实施例,设计者还提供将被实现为静态逻辑模块和PR模块的规格说明部分的标识。
在步骤202,综合该系统。综合包括生成将由目标器件实现的系统的逻辑设计。根据本发明实施例,综合生成系统的优化逻辑表示,其包括来自HDL设计定义的静态逻辑模块和PR模块。综合还包括映射优化逻辑设计。映射包括确定如何用该目标器件上的具体资源实现优化逻辑表示中的逻辑门和逻辑元件。根据本发明实施例,从映射生成网表。该网表可以是从HDL生成的优化技术映射网表。
在203,生成布图规划用于系统设计。根据本发明实施例,布图规划在目标器件上为在202生成的综合逻辑指明物理位置(“布图规划区域”)。根据本发明实施例,目标器件上的布图规划区域可被指定给从综合生成的每个静态模块和PR模块。
图3示出了图1所示的设计100的示例性布图规划300。布图规划区域310、312、314和315被分别指定给静态模块A、C、E和顶级模块。布图规划区域311被指定给PR模块B,并因此隐含被指定给实例B1-B4。布图规划区域313被指定给PR模块D,并因此隐含被指定给实例D1-D3。根据本发明实施例,布图规划区域可具有任意尺寸或形状,并且无需是不间断的。应该理解,布图规划可以是由CAD/EDA工具响应于设计者所提供的、关于指定模块的布图规划区域的大小、形状和/或位置的输入而生成的。替代地,布图规划可以由CAD/EDA工具通过单独分析综合输出网表而独立于设计者所提供的任意输入来生成。
回来参考图2,在204,目标器件上的布线资源被分配给静态逻辑模块和PR模块。根据本发明实施例,指定给模块的布图规划区域用于静态资源分配。在该实施例中,允许模块仅使用位于其指定布图规划区域内的布线资源。通过将布线资源静态地分配和指定给系统中的静态模块和PR模块,可以在对静态逻辑模块进行布线的过程中或者之后,以任意顺序对PR模块进行布线。另外,可以并行执行PR模块的实例的布线。可以采用多个计算节点来方便并行编译。根据本发明实施例,计算节点包括处理资源来执行诸如布局和布线的编译过程。计算节点可以由计算机系统中的处理器或处理器核来实现。
在205,生成编译调度。该编译调度确定何时以及通过哪个计算节点编译设计中的静态逻辑模块和PR模块。所执行的编译可包括对静态逻辑模块和PR模块的布局和布线。根据本发明实施例,调度编译以使得采用最大数目的可用计算节点来并行执行一样多的编译。根据本发明实施例,编译调度对在第一编译中、第一计算节点上的所有静态逻辑模块和每个PR模块的第一实例的一起编译进行调度。随后编译调度对在第二编译中、将在可用计算节点上并行编译的每个PR模块的剩余实例的编译进行调度。在同一编译期间,不同PR模块的实例可以由同一计算节点一起编译。在同一编译期间,同一PR模块的实例可以不由同一计算节点一起编译,因为多个这样的模块由于它们不是被同时编程到芯片,所以可利用相同资源。可以调度其他编译来编译尚未被编译的PR模块的实例。在替代实施例中,仅一个计算节点可用,且调度过程命令编译在单个计算节点上顺序地编译。
图4是示出了用于图1所示设计100的使用图3所示方法的示例性编译调度的表格。如图4所示,在两个编译中,使用3个计算节点P 1-P3编译设计100中的静态逻辑模块和PR模块。在编译1期间,第一计算节点P1编译顶级模块(Top)、模块A、B1、C、D1和E。在编译2期间,第一计算节点P1编译模块B2和D2,第二计算节点P2编译模块B3和D3,第三计算节点P3编译模块B4。
回来参考图2,在206,对该系统进行布局。根据本发明实施例,布局涉及将所映射的逻辑系统设计布局在目标器件上指定给模块的布图规划区域。布局根据技术映射网表而工作以产生每个功能块的布局。根据本发明实施例,布局包括通过确定逻辑设计上的哪些资源将用于具体逻辑元件以及如在综合期间所确定的那样确定为实现该系统的其他功能块,而将系统适配在目标器件上。布局可包括涉及将逻辑元件分组到一起以形成在目标器件上呈现的逻辑簇的聚集。根据本发明实施例,在布局的早期执行聚集,并且聚集发生在布局准备阶段期间的综合之后。
在207,对所布局的设计进行布线。根据本发明实施例,在204使用分配给模块的布线资源来提供逻辑门、逻辑元件和静态逻辑模块和PR模块中的其他组件之间的互连。也可在所布局的逻辑设计上执行可布线性优化。根据本发明实施例,可布线性优化的目的是减小用于连接所布局的逻辑设计中的组件的接线的数量。可布线性优化可包括执行扇出分割、逻辑复制、逻辑重接线或其他过程。应该理解,这些过程中的一个或多个可以在所布局的逻辑设计上执行。
根据本发明实施例,在206和207描述的布线和布局过程根据在205生成的编译调度来执行。在该实施例中,计算节点用于执行一个或多个编译的处理过程和布局的实例。每个计算节点被指定给具体模块以在特定编译序号期间进行布局和布线。通过利用多个计算节点,可以对PR模块的实例进行并行布线。
在208,执行组装过程。组装过程涉及创建包括由所述编译过程确定的信息的多个数据文件。数据文件可以是可用于编程整个目标器件的位流,或者可用于仅编程目标器件的具体部分的位流。根据本发明实施例,图2中所示过程可以由在第一计算机系统上执行的EDA工具执行。所生成的数据文件可以被传送到第二计算机系统以允许该系统的设计被进一步处理。替代地,数据文件可被传送到可用于根据系统设计编程目标器件的第二计算机系统。应该理解,系统的设计还可以以其他形式输出,例如输出到显示装置或其他媒介上。还可以用包括编程或初始化整个芯片的信息的数据文件来编程目标器件,而且可以使用包括仅编程芯片的一部分的信息的其他数据文件来重新编程芯片的该部分。通过用数据文件编程该目标器件,物理地变形了该目标器件上的组件以实现该系统。
图5是示出了根据本发明实施例的用于使用静态资源分配和重新分配在目标器件上设计具有PR模块的系统的方法的流程图。在501,生成系统的HDL设计。在502,在该系统上执行综合。在503,生成系统的布图规划。在504,将布线资源分配给系统中的静态逻辑模块和PR模块。根据本发明实施例,参考图2描述的过程201-204可用于实现过程501-504。
在505,生成编译调度。该编译调度确定何时以及通过哪个计算节点来编译该设计中的静态逻辑模块和PR模块。所执行的编译可包括对静态逻辑模块和PR模块的布局和布线。根据本发明实施例,调度该编译使得采用最大数目的可用计算节点来并行执行一样多的编译。根据本发明实施例,编译调度对在第一编译中、第一计算节点上的所有静态逻辑模块的一起编译进行调度。随后编译调度对在第二编译中、将在可用计算节点上并行编译的每个PR模块的实例的编译进行调度。在同一编译期间,不同PR模块的实例可以由同一计算节点一起编译。在同一编译期间,同一PR模块的实例可以不由同一计算节点一起编译。可以调度其他编译来编译尚未被编译的PR模块的实例。在其它实施例中,仅一个计算节点可用,且调度过程命令编译在单个计算节点上顺序地编译。
图6是示出了用于图1所示设计100的使用图5所示方法的示例性编译调度的表格。如图6所示,在两个编译中,使用4个计算节点P 1-P4编译设计100中的静态逻辑模块和PR模块。在编译1期间,第一计算节点P1编译静态逻辑模块Top、A、C和E。在编译2期间,第一计算节点P1编译PR模块B1和D1,第二计算节点P2编译PR模块B2和D2,第三计算节点P3编译PR模块B3和D3,第四计算节点P4编译PR模块B4。
回来参考图5,在506和507,对系统中的静态逻辑模块进行布局和布线。以此方式,执行图6的编译1。根据本发明实施例,参考图2描述的过程206和207可用于实现关于静态逻辑模块的过程506-507。另外,分配给PR逻辑模块、且为PR模块的实例所需以连接到静态逻辑模块或者从静态逻辑模块连接到PR模块的实例(“布线接通”)的布线资源被重新分配给该PR模块的实例。能够通过分析设计网表来确定来自静态模块的连接,其中来自静态模块的该连接必须通过不同PR模块的指定布图规划区域布线去往或来自PR模块或静态模块。可仅通过静态逻辑边界来实现从一个PR模块到另一个PR模块的连接,因此从一个PR模块到另一个PR模块的连接能够被认为是静态至静态连接(可能使用指定给PR区域的资源)。根据本发明实施例,根据在505生成的编译调度的第一行来执行在506和507描述的布局和布线过程。
在508,生成修改后的布图规划。修改后的布图规划扩大了指定给PR模块的布图规划区域以包括先前指定给静态逻辑模块的布图规划区域的面积。根据本发明实施例,可以采用分配给PR模块的每个布图规划区域的边界反复扩张的过程。在该实施例中,每个布图规划区域的水平边缘垂直移动,每个布图规划的垂直边缘水平移动,直到水平边缘和垂直边缘到达目标器件的边界或对应于另一个PR模块的边缘。应该理解,可以使用其他用于修改布图规划的过程,包括优先生长已经预期了其可布线性和时序问题的布图规划区域的过程。
在509,重新分配器件资源。将先前指定给静态逻辑模块的未使用资源重新指定给PR模块。根据本发明实施例,每个PR模块允许使用位于其指定的布图规划区域内的未使用资源。通过静态地分配和指定资源给系统中的PR模块,可以以任意顺序对PR模块进行布局和布线。此外,可以并行执行PR模块的实例的布局和布线。可以采用多个处理节点来方便并行编译。根据本发明实施例,处理节点包括处理资源来执行诸如布局和布线的编译过程。
图7示出了根据本发明实施例的用于静态资源分配的设计的示例性修改后的布图规划700。如所示,扩大在图3中所示的指定给PR模块B的布图规划区域311以包括先前指定给静态逻辑模块Top和E的布图规划区域。静态逻辑模块Top和E未使用的资源对于PR模块B是可用的。扩大在图3中所示指定给PR模块D的布图规划区域313以包括先前指定给静态逻辑模块A、C、E和Top的布图规划区域。静态逻辑模块A、C、E和Top未使用的资源对于PR模块D是可用的。
回来参考图5,在510和511,对系统中的PR模块进行布局和布线。根据本发明实施例,参考图2描述的过程206-207可用于实现关于PR模块的过程510-511。根据本发明实施例,根据在505生成的编译调度执行在510和511描述的布局和布线过程。在该实施例中,使用计算节点来执行一个或多个编译的布线和布局过程的实例。每个计算节点被指定给具体模块以在特定编译序号期间进行布局和布线。通过采用多个计算节点,可以对PR模块的实例进行并行布线。
在512,执行组装过程。根据本发明实施例,参考图2描述的过程208可用于执行过程512。
与图2所述的方法相比,图5所述的方法提供了数个优点。例如,通过重新分配静态逻辑模块未使用的布线资源,可以较好地使用目标器件上的未使用的布线资源。此外,图5所述的方法允许PR模块布线接通静态逻辑模块,其减小了模块间通信的限制。应该理解,也可用这一改进来修改图2的方法。
图8是示出了根据本发明的示例性实施例的用于使用自动发现的静态资源分配在目标器件上设计具有PR模块的系统的方法的流程图。在801,生成系统的HDL设计。在802,在系统上执行综合。在803,生成系统的布图规划。根据本发明实施例,参考图2描述的过程201-203可用于实现过程801-803。
在804,生成编译调度。该编译调度确定何时编译该设计中的静态逻辑模块和PR模块。所执行的编译可包括静态逻辑模块和PR模块的布局和布线。根据本发明实施例,该编译调度对在第一编译中、第一计算节点上的所有静态逻辑模块和PR模块的第一实例的一起编译进行调度。随后编译调度对在第二编译中将要一起编译的每个PR模块的下一实例的编译进行调度。在同一编译期间,不同PR模块的实例可以由单个计算节点一起编译。可以调度其他编译来编译尚未被编译的PR模块的实例。在其他实施例中,仅一个计算节点可用,且调度过程命令编译在单个计算节点上顺序地编译。
图9是示出了用于图1所示设计100的使用图8所示方法的示例性编译调度的表格。如图9所示,在4个编译中使用单个计算节点来编译设计100中的静态逻辑模块和PR模块。在编译1期间,一起编译节点Top、A、B1、C、D1和E。在编译2期间,一起编译节点B2和D2。在编译3期间,一起编译节点B3和D3。在编译4期间,编译节点B4。
回来参考图8,在805,对系统中的静态逻辑模块和PR模块进行布局。根据本发明实施例,参考图2描述的过程206可用于实现关于静态逻辑模块和PR模块的过程805。
在806,对所布局的系统进行布线。根据本发明实施例,选择目标器件上的布线资源以提供逻辑门、逻辑元件和静态逻辑模块和PR模块中其他组件之间的互连。在该实施例中,允许使用目标器件上的任意位置处的布线资源来对静态逻辑模块和PR模块进行布线。由于允许模块自由地布线以发现所需的布线资源,所以该用于布线的过程可被称为“自动发现”。根据本发明实施例,当为模块选择布线资源时,使用优先顺序。对于PR模块的第二实例,相比于选择其他布线资源,优先选择使用为该PR模块的第一实例选择的布线资源。相比于选择已经被其他静态模块或PR模块在较早编译序号中使用的布线资源,优先选择其他静态逻辑模块和PR模块未使用的布线资源。
根据本发明实施例,根据在804生成的编译调度执行在805和806描述的布局和布线过程。在该实施例中,使用单个计算节点来执行用于多个编译的处理过程和布局的单个实例。
在807,确定是否存在任何冲突的布线资源。认为选择由不同PR模块的实例或静态模块和PR模块的实例使用的布线资源是冲突的。认为选择同一布线资源的模块是竞争模块。如果确定没有布线资源是冲突的,则控制进行到808。如果确定存在冲突的布线资源,则控制进行到809。
在808,控制终止该过程。
在809,仲裁冲突的布线资源。根据本发明实施例,每个冲突的布线资源被指定给选择它的一个竞争模块。应该理解,可以基于时序约束或与模块有关的布线限制或者其他准则来仲裁布线资源。替代地,可以基于随机指定来仲裁布线资源。
在810,分配未使用的布线资源。在步骤806的布线中未使用的布线资源被指定给有冲突的静态逻辑模块和PR模块。根据本发明实施例,在806中发现的具体布线资源用于生成将被指定为用于模块的布线的候选者的更新的资源集合。为在发现的资源的仲裁中没有获得其资源的信号分配临近期望线的资源,以在即将发生的布线中进行替代选择。应该理解,仲裁和分配的特定过程的细节相对于具体器件布线连接是特定的,也可以使用其他过程。
在811,生成新编译调度。该新编译调度确定何时重新编译有冲突的一个或多个模块。该所执行的重新编译可包括在其布线上有冲突的一个或多个网表模块的重新布线。根据本发明实施例,在同一重新编译期间,不同PR模块的实例可以由单个计算节点一起重新编译。
在812,根据在811生成的编译调度用在810指定且在809仲裁的布线资源来对有冲突的模块进行重新布线。根据本发明实施例,仅对有冲突的模块进行重新布线。没有冲突的模块使用它们较早的布线选择。由于仲裁产生没有冲突的静态资源指定,所以保证不再有进一步的冲突。以成功的布线终止该过程。在另一实施例中,其中由于未完成静态资源指定所以仲裁和分配步骤可能导致布线失败,过程可返回到步骤807,其中需要改变仲裁和分配决定的细节。
805的优先顺序完成了非并行编译。根据替代实施例,可采用多个计算节点来并行执行多个布局和布线的实例,而不是生成其中采用单个计算节点来串行执行布局和布线的单个实例的编译调度。在该实施例中,可以在同一编译期间、在可用计算节点上并行编译PR模块的不同实例。也可以在同一编译期间,由同一计算节点来一起编译不同PR模块的实例。在该实施例中,由于在未知其他布线结果的情况下完成每个布线,所以增加了冲突的可能性。
图8所描述的方法执行使用在803生成的布图规划的布局。应该理解,在本发明替代实施例中,可以以自动发现方式执行布局,其中布局不受布图规划的限制。在该实施例中,在807识别布局冲突和布线冲突,并且在811生成新调度之后执行重新布局过程。
图10是示出了根据本发明示例性实施例的用于使用动态资源分配在目标器件上设计具有PR模块的系统的方法的流程图。在该实施例中,不执行资源到模块的静态分配。而是运行布局和布线操作直到收敛到合法解决方案。在1001,生成系统的HDL设计。在1002,在系统上执行综合。在1003,为系统生成布图规划。在本发明的替代实施例中,不创建布图规划。根据本发明实施例,参考图2描述的过程201-203可用于实现过程1001-1003。
在1004,生成编译调度。该编译调度确定何时以及通过哪个计算节点来编译该设计中的静态逻辑模块和PR模块。所执行的编译可包括静态逻辑模块和PR模块的布局和布线。根据本发明实施例,调度该编译使得采用一样多的可用计算节点来并行执行一样多的编译。根据本发明实施例,编译调度对在第一编译中、第一计算节点上的所有静态逻辑模块的一起编译进行调度。随后编译调度对在第二编译中、将在可用计算节点上并行编译的每个PR模块的实例的编译进行调度。在同一编译期间,不同PR模块的实例可以由同一计算节点一起编译。可以调度其他编译来编译尚未被编译的PR模块的实例。在其他实施例中,仅一个计算节点可用,且调度过程命令编译在单个计算节点上顺序地编译。
图11A是示出了用于图1所示设计100的使用图10所示方法的示例性编译调度的表格。如图11所示,在两个编译中使用4个计算节点P1-P4来编译设计100中的静态逻辑模块和PR模块。在编译1期间,第一计算节点P1编译静态逻辑模块Top、A、C和E。在编译2期间,第一计算节点P1编译模块B1和D1,第二计算节点P2编译模块B2和D2,第三计算节点P3编译模块B3和D3,第4计算节点P4编译模块B4。
回来参考图10,在1005,对系统中的静态逻辑模块和PR模块进行布局。根据本发明实施例,参考图2描述的过程206可用于实现关于静态逻辑模块和PR模块的过程1005。
在1006,对所布局的系统进行布线。根据本发明实施例,选择目标器件上的布线资源以提供逻辑门、逻辑元件和静态逻辑模块和PR模块中其他组件之间的互连。在该实施例中,允许使用目标器件上的任意位置处的布线资源来对静态逻辑模块和PR模块进行布线。由于允许模块自由地布线以发现所需的布线资源,所以该用于布线的过程可被称为“自动发现”。根据本发明实施例,当为模块选择布线资源时使用优先顺序。对于PR模块的第二实例,相比于选择其他布线资源,优先选择使用为该PR模块的第一实例选择的布线资源。相比于选择已经被其他静态模块或PR模块使用的布线资源,优先选择其他静态逻辑模块和PR模块未使用的布线资源。
根据本发明实施例,根据在1004生成的编译调度来执行在1005和1006描述的布局和布线过程。在该实施例中,多个计算节点执行布局和处理过程的多个实例以允许并行编译PR模块的实例。
在1007,确定是否存在任何冲突的布线资源。认为被选择由多于一个模块使用的布线资源是冲突的。认为选择同一布线资源的模块是竞争模块。如果确定没有布线资源是冲突的,则控制进行到1008。如果确定存在冲突的布线资源,则控制进行到1009。
在1008,控制终止该过程。
在1009,生成新编译调度。该新编译调度确定何时以及由哪个计算节点重新编译有冲突的一个或多个节点。该所执行的重新编译可包括对有冲突的一个或多个节点的重新布线。根据本发明实施例,在同一重新编译期间,不同PR模块的实例可以由单个计算节点一起重新编译。
图11B是示出了用于图1所示设计100的使用图10所示方法的示例性新编译调度的表格。在该示例中,检测到静态逻辑模块Top和PR模块B 1之间以及静态逻辑模块A和PR模块B2之间的冲突,该新调度对这些模块的重新布线进行调度。在编译3期间,第一计算节点P1编译静态逻辑模块Top和A、以及PR模块B1。在编译3期间,第二计算节点P2编译模块B2。
在1010,重新布线有冲突的模块。根据本发明实施例,允许使用该目标器件上任意位置处的布线资源来对有冲突的静态逻辑模块和PR模块进行布线。根据本发明实施例,当为模块选择布线资源时,使用优先顺序。在选择其他布线资源之前,选择为PR模块的第一实例选择的布线资源来用于该PR模块的第二实例。在选择已经被其他静态模块或PR模块使用的布线资源之前,选择其他静态逻辑模块和PR模块未使用的布线资源。控制返回到1007。可重复过程1007-1010,且可以用允许该过程收敛到解决方案的代价函数来实现在1010描述的选择优先。
根据本发明替代实施例,还可以以自动发现方式执行布局,其中布局不受布图规划的限制。在该实施例中,在1007识别布局冲突和布线冲突,并且在1009生成新调度之后执行重新布局过程。
图2、图5、图8和图10是示出了本发明实施例的流程图。所述的一些技术可以顺序、并行或以与所描述的不同的顺序执行,而且所述过程可以重复。应该理解,不需要执行所有的所述技术,可以增加其他技术,且一些所述的技术可以用其他技术来代替。
图12是本发明示例实施例存在于其中的示例性计算机系统1200的框图。计算机系统1200包括一个或多个处理数据信号的处理器。如所示,计算机系统1200包括第一处理器1201和第n处理器1205,其中n可以是任意数。处理器1201和1205可以是在每个芯片上具有多个处理器核的多核处理器。处理器1201和1205耦合到CPU总线1210或在处理器1201和1205与计算机系统1200中其他组件之间传送数据信号的其他交换结构。根据本发明实施例,计算机系统1200中的每个处理器或处理器核可作为计算节点运行并且可执行其自己的线程。每个线程可与其他线程并行执行软件程序的实例。
计算机系统1200包括存储器1213。存储器1213可存储可由处理器1201和1205执行的数据信号所表示的指令和代码。桥存储器控制器1211耦合到CPU总线1210和存储器1213。桥存储器控制器1211引导处理器1201和1205、存储器1213和计算机系统1200内的其他组件之间的数据信号并且桥接CPU总线1210、存储器1213和第一IO总线1220之间的数据信号。根据本发明实施例,处理器1201和1205可直接耦合到存储器1213,并与存储器1213通信而无需桥存储器控制器1211。
第一IO总线1220可以是单个总线或多个总线的组合。第一IO总线1220提供计算机系统1200内组件之间的通信链接。网络控制器1221耦合到第一IO总线1220。网络控制器1221可将计算机系统1200链接到计算机的网络(未示出)并且支持机器之间的通信。显示装置控制器1222耦合到第一IO总线1220。显示装置控制器1222允许显示装置(未示出)耦合到计算机系统1200,并且用作该显示装置和计算机系统1200之间的接口。
第二IO总线1230可以是单个总线或多个总线的组合。第二IO总线1230提供计算机系统1200中组件之间的通信链接。数据存储装置1231耦合到第二IO总线1230。输入接口1232耦合到第二IO总线1230。输入接口1232允许输入装置耦合到该计算机系统1200并且将来自输入装置的数据信号传送到该计算机系统1200。总线桥1223将第一IO总线1220耦合到第二IO总线1230。总线桥1223运行以缓冲并桥接第一IO总线1220和第二IO总线1230之间的数据信号。应该理解,具有不同架构的计算机系统也可用于实现计算机系统1200。
系统设计者1240可存在于存储器1213,并且可由处理器1201和1205的一个或多个或其中存在的处理器核来执行。系统设计者1240可运行以生成HDL、综合系统、生成布图规划、分配布线资源、生成编译调度、将系统布局在目标器件上、将系统布线在目标器件上、修改布图规划、重新分配布线资源、仲裁冲突、组装系统和/或执行诸如图2、图5、图8和图10中所描述的那些的其他过程。根据本发明实施例,系统设计者1240是包括可由多个线程同时(并行)执行的部分的程序。
应该理解,本发明实施例可以提供为计算机程序产品或软件,其可包括具有指令的计算机可读或机器可读介质。在计算机可读或机器可读介质上的指令可用于编程计算机系统或其他电子装置。机器可读介质可包括但不限于软盘、光盘、CD-ROM和磁光盘或适于存储电子指令的其他类型的介质/机器可读介质。此处所描述的技术不限于任何特定软件配置。它们可在任何计算或处理环境中找到适用性。此处所用的术语“计算机可读介质”或“机器可读介质”可包括能够存储或编码用于由计算机执行并使得该计算机执行此处所述任一方法的指令序列的任意介质。而且,当采取动作或导致结果时,本领域通常以一种或另外的方式(例如,程序、过程、步骤、应用、模块、单元、逻辑等)来提及软件。这样的表达仅仅是阐述处理系统执行软件使得处理器执行动作以产生结果的简短表达方式。
图13示出了根据本发明实施例的可用于实现目标器件的器件1300。器件1300是包括多个逻辑阵列块(LAB)的现场可编程门阵列(FPGA)。每个LAB可以由多个逻辑块、进位链、LAB控制信号、查找表(LUT)链和寄存器链连接线组成。逻辑块是提供用户逻辑功能的有效实现的逻辑的小单元。逻辑块包括一个或多个组合单元和寄存器,其中每个组合单元具有单个输出。根据本发明实施例,逻辑块可类似于逻辑元件(LE)或组合逻辑块(CLB)来运行,该逻辑元件例如Altera公司制造的Stratix或Cyclone器件中的那些,该组合逻辑块诸如Xilinx公司制造的Virtex器件中的那些。在该实施例中,逻辑块可包括具有可配置寄存器的4输入LUT。根据本发明替代实施例,逻辑块可类似于自适应逻辑模块(ALM)运行,该自适应逻辑模块诸如Altera公司制造的Stratix器件中的那些。在器件1300上将LAB以行和列分组。LAB的列示为1311-1316。应该理解,逻辑块可包括另外的或替代的组件。
器件1300包括存储器块。该存储器块可以是例如双端口随机存取存储器(RAM)块,其提供达各种频率、达各种位宽的专用真双端口、简单双端口或单端口存储器。存储器块可以在该器件上被分组到所选LAB之间的列或者单独或成对地位于器件1300内。存储器块的列示为1321-1324。
器件1300包括数字信号处理(DSP)块。DSP块可用于以加法或减法特征实现各种配置的乘法器。DSP块包括移位寄存器、乘法器、加法器和累加器。DSP块在器件1300上可以以列分组,并且示为1331。
器件1300包括多个输入/输出元件(IOE)1340。每个IOE为器件1300提供IO引脚(未示出)。IOE 1340位于器件1300的外围附近、LAB行和列的末端。每个IOE可包括双向IO缓冲器和用于寄存输入信号、输出信号和输出使能信号的多个寄存器。
器件1300可包括布线资源,诸如,LAB本地互连线、行互连线(“H形线”)和列互连线(“V形线”)(未示出),以在目标器件上的组件间路由信号。
在前述说明中,已经参考本发明的特定示例性实施例描述了本发明实施例。但是,显然可以对其进行各种修改和改变,而不脱离本发明实施例的较宽精神和范围。因此,说明书和附图应被认为是示意性的而非限制性的。
Claims (25)
1.一种用于在目标器件上设计系统的方法,该方法包括:
将该目标器件上的资源指定给该系统中的静态逻辑模块和局部重配置(PR)模块;和
用所指定的资源在该目标器件上并行执行该PR模块中的一个的实例的布局和布线中的一个。
2.根据权利要求1所述的方法,其中,该PR模块中的该一个的每个实例包括该PR模块的不同电路描述并且所述不同电路描述中的每一个与同一静态逻辑联接。
3.根据权利要求1所述的方法,其中该指定包括从布图规划区域指定布线资源给该静态逻辑模块和该PR模块中的每一个。
4.根据权利要求1所述的方法,其中该布线包括与使用第二处理资源来对PR模块的第二实例进行布线并行地使用第一处理资源来对该PR模块的第一实例进行布线。
5.根据权利要求1所述的方法,还包括在对该PR模块进行布线之前用所指定的随后布线资源对该静态逻辑模块进行布线。
6.根据权利要求5所述的方法,还包括将该静态逻辑模块未使用的布线资源指定给该PR模块。
7.根据权利要求6所述的方法,其中指定未使用的布线资源包括:
为该PR模块扩大该目标器件上的布图规划区域并且从每个PR模块对应的布图规划区域指定布线资源给该每个PR模块。
8.根据权利要求7所述的方法,其中该扩大包括垂直移动每个布图规划区域的水平边缘并且水平移动每个布图规划区域的垂直边缘,直到该水平边缘和该垂直边缘到达该目标器件的边界或对应于另一个PR模块的边缘。
9.根据权利要求1所述的方法,其中该静态逻辑模块和PR模块包括硬件描述语言的电路。
10.一种用于在目标器件上设计系统的方法,包括:
在该目标器件上对静态逻辑模块和局部重配置(PR)模块进行布线;
仲裁布线冲突的布线资源给竞争该布线资源的静态逻辑模块和PR模块;
指定布线中的未使用的布线资源给有冲突的静态逻辑模块和PR模块;以及
用所仲裁和所指定的布线资源对有冲突的该静态逻辑模块和PR模块进行重新布线。
11.根据权利要求10所述的方法,其中在目标器件上对PR模块进行布线包括串行地对PR模块的实例进行布线。
12.根据权利要求10所述的方法,其中在该目标器件上对PR模块进行布线包括与PR模块的第二实例并行地对该PR模块的第一实例进行布线。
13.根据权利要求10所述的方法,其中在该目标器件上对该PR模块进行布线包括相比于选择其他布线资源,为PR模块的第一实例优先选择该PR模块的第二实例使用的布线资源。
14.根据权利要求10所述的方法,其中对该静态逻辑模块和该PR模块进行布线包括相比于选择其他静态模块或PR模块使用的布线资源,为该静态逻辑模块和该PR模块优先选择所述其他静态逻辑模块和PR模块未使用的布线资源。
15.根据权利要求10所述的方法,其中仲裁冲突的布线资源包括响应于时序约束或布线约束中的一个指定冲突的布线资源给模块。
16.根据权利要求10所述的方法,其中该PR模块的每个实例包括该PR模块的不同电路描述并且所述不同电路描述中的每一个与同一静态逻辑组件联接。
17.一种非瞬时性计算机可读介质,包括在其上存储的、用于使计算机执行包括以下步骤的方法的指令序列:
在目标器件上对静态逻辑模块进行布线;
在该目标器件上对局部重配置(PR)模块的实例进行并行布线;和
响应于确定已经非法布线该静态逻辑模块和该PR模块,对该静态模块和该PR模块并行地进行重新布线。
18.根据权利要求17所述的非瞬时性计算机可读介质,其中在该目标器件上对该PR模块的实例进行布线包括相比于选择其他布线资源,为该PR模块的第一实例选择该PR模块的第二实例使用的布线资源。
19.根据权利要求17所述的非瞬时性计算机可读介质,其中对该静态逻辑模块和该PR模块进行布线包括相比于选择其他静态模块或PR模块使用的布线资源,为该静态逻辑模块和该PR模块选择该其他静态逻辑模块和PR模块未使用的布线资源。
20.根据权利要求17所述的非瞬时性计算机可读介质,其中该PR模块的每一个实例包括该PR模块的不同电路描述并且所述不同电路描述中的每一个与同一静态逻辑联接。
21.根据权利要求17所述的非瞬时性计算机可读介质,其中该重新布线包括与使用第二处理资源来对该PR模块的实例进行布线并行地使用第一处理资源来对该静态逻辑模块进行布线。
22.根据权利要求17所述的非瞬时性计算机可读介质,还包括响应于确定已经非法布局了该静态逻辑模块和该PR模块,对该静态模块和该PR模块并行地进行重新布局。
23.根据权利要求10所述的方法,还包括在在该目标器件上布局PR模块之前,对静态逻辑模块进行布局。
24.根据权利要求23所述的方法,其中对该PR模块并行地进行布局。
25.根据权利要求17所述的非瞬时性计算机可读介质,还包括:
在目标器件上对静态逻辑模块进行布局;
在该目标器件上并行地对PR模块的实例进行布局;和
响应于确定布局的非法性,对该静态模块和该PR模块并行地进行重新布局。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/040,255 | 2011-03-03 | ||
US13/040,255 US8671377B2 (en) | 2011-03-03 | 2011-03-03 | Method and apparatus for placement and routing of partial reconfiguration modules |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102708221A true CN102708221A (zh) | 2012-10-03 |
CN102708221B CN102708221B (zh) | 2018-01-19 |
Family
ID=45656465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210046153.0A Active CN102708221B (zh) | 2011-03-03 | 2012-02-23 | 用于对局部重配置模块进行布局和布线的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (3) | US8671377B2 (zh) |
EP (1) | EP2495676A1 (zh) |
JP (1) | JP5937845B2 (zh) |
CN (1) | CN102708221B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346351A (zh) * | 2016-05-06 | 2017-11-14 | 百度(美国)有限责任公司 | 用于基于源代码中定义的硬件要求来设计fpga的方法和系统 |
CN110162378A (zh) * | 2018-02-13 | 2019-08-23 | 华为技术有限公司 | 一种资源调度的方法、装置、设备及系统 |
CN112437925A (zh) * | 2018-07-20 | 2021-03-02 | 赛灵思公司 | 可编程集成电路的分层局部重构 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671377B2 (en) | 2011-03-03 | 2014-03-11 | Altera Corporation | Method and apparatus for placement and routing of partial reconfiguration modules |
US8476926B1 (en) * | 2012-02-08 | 2013-07-02 | Altera Corporation | Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration |
US8645885B1 (en) * | 2013-01-04 | 2014-02-04 | Altera Corporation | Specification of multithreading in programmable device configuration |
US8677298B1 (en) | 2013-01-04 | 2014-03-18 | Altera Corporation | Programmable device configuration methods adapted to account for retiming |
US8896344B1 (en) * | 2013-01-04 | 2014-11-25 | Altera Corporation | Heterogeneous programmable device and configuration software adapted therefor |
US8713496B1 (en) | 2013-01-04 | 2014-04-29 | Altera Corporation | Specification of latency in programmable device configuration |
US8863059B1 (en) | 2013-06-28 | 2014-10-14 | Altera Corporation | Integrated circuit device configuration methods adapted to account for retiming |
US9384311B1 (en) | 2014-07-25 | 2016-07-05 | Altera Corporation | Programmable device configuration methods incorporating retiming |
US10958273B2 (en) * | 2016-04-28 | 2021-03-23 | Nec Solution Innovators, Ltd. | Circuit device, circuit rewriting method, and computer-readable recording medium |
US10394990B1 (en) * | 2016-09-27 | 2019-08-27 | Altera Corporation | Initial condition support for partial reconfiguration |
US10824786B1 (en) * | 2016-10-05 | 2020-11-03 | Xilinx, Inc. | Extend routing range for partial reconfiguration |
US10558777B1 (en) * | 2017-11-22 | 2020-02-11 | Xilinx, Inc. | Method of enabling a partial reconfiguration in an integrated circuit device |
US10970248B2 (en) | 2019-05-10 | 2021-04-06 | Achronix Semiconductor Corporation | Processing of ethernet packets at a programmable integrated circuit |
US10936525B2 (en) | 2019-05-10 | 2021-03-02 | Achronix Semiconductor Corporation | Flexible routing of network data within a programmable integrated circuit |
US10707875B1 (en) * | 2019-05-10 | 2020-07-07 | Achronix Semiconductor Corporation | Reconfigurable programmable integrated circuit with on-chip network |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179271A (zh) * | 2007-11-30 | 2008-05-14 | 电子科技大学 | 一种fpga结构 |
US7640526B1 (en) * | 2005-09-12 | 2009-12-29 | Xilinx, Inc. | Modular partial reconfiguration |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5925920A (en) * | 1996-06-12 | 1999-07-20 | Quicklogic Corporation | Techniques and circuits for high yield improvements in programmable devices using redundant routing resources |
JP3489608B2 (ja) * | 1997-06-20 | 2004-01-26 | 富士ゼロックス株式会社 | プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法 |
US6080204A (en) * | 1997-10-27 | 2000-06-27 | Altera Corporation | Method and apparatus for contemporaneously compiling an electronic circuit design by contemporaneously bipartitioning the electronic circuit design using parallel processing |
US6466050B1 (en) * | 2001-06-27 | 2002-10-15 | Cypress Semiconductor Corporation | Method to improve routability in programmable logic devices via prioritized augmented flows |
US7386826B1 (en) * | 2003-06-24 | 2008-06-10 | Xilinx, Inc. | Using redundant routing to reduce susceptibility to single event upsets in PLD designs |
US7600210B1 (en) * | 2005-09-28 | 2009-10-06 | Xilinx, Inc. | Method and apparatus for modular circuit design for a programmable logic device |
WO2008014494A2 (en) | 2006-07-28 | 2008-01-31 | Drc Computer Corporation | Fpga co-processor for accelerated computation |
US7541833B1 (en) * | 2007-10-09 | 2009-06-02 | Xilinx, Inc. | Validating partial reconfiguration of an integrated circuit |
US8095906B2 (en) * | 2008-12-29 | 2012-01-10 | Altera Corporation | Method and apparatus for performing parallel routing using a multi-threaded routing procedure |
US8312409B1 (en) * | 2010-03-05 | 2012-11-13 | Xilinx, Inc. | Multi-threaded deterministic router |
US8386983B1 (en) * | 2010-08-10 | 2013-02-26 | Xilinx, Inc. | Parallel signal routing |
US8671377B2 (en) | 2011-03-03 | 2014-03-11 | Altera Corporation | Method and apparatus for placement and routing of partial reconfiguration modules |
-
2011
- 2011-03-03 US US13/040,255 patent/US8671377B2/en active Active
-
2012
- 2012-02-22 EP EP12156571A patent/EP2495676A1/en not_active Ceased
- 2012-02-23 JP JP2012037429A patent/JP5937845B2/ja not_active Expired - Fee Related
- 2012-02-23 CN CN201210046153.0A patent/CN102708221B/zh active Active
-
2014
- 2014-01-10 US US14/152,624 patent/US9361421B2/en active Active
-
2016
- 2016-04-18 US US15/132,163 patent/US10242146B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640526B1 (en) * | 2005-09-12 | 2009-12-29 | Xilinx, Inc. | Modular partial reconfiguration |
CN101179271A (zh) * | 2007-11-30 | 2008-05-14 | 电子科技大学 | 一种fpga结构 |
Non-Patent Citations (1)
Title |
---|
MARKUS KOESTER AND WAYNE LUK,JENS HAGEMEYER AND MARIO PORRMANN: "《Design Optimizations to Improve Placeability of Partial Reconfiguration Modules》", 《2009,EDAA》, 24 April 2009 (2009-04-24) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346351A (zh) * | 2016-05-06 | 2017-11-14 | 百度(美国)有限责任公司 | 用于基于源代码中定义的硬件要求来设计fpga的方法和系统 |
CN107346351B (zh) * | 2016-05-06 | 2023-06-23 | 百度(美国)有限责任公司 | 用于基于源代码中定义的硬件要求来设计fpga的方法和系统 |
CN110162378A (zh) * | 2018-02-13 | 2019-08-23 | 华为技术有限公司 | 一种资源调度的方法、装置、设备及系统 |
CN110162378B (zh) * | 2018-02-13 | 2023-12-29 | 华为技术有限公司 | 一种资源调度的方法、装置、设备及系统 |
CN112437925A (zh) * | 2018-07-20 | 2021-03-02 | 赛灵思公司 | 可编程集成电路的分层局部重构 |
Also Published As
Publication number | Publication date |
---|---|
US10242146B2 (en) | 2019-03-26 |
US8671377B2 (en) | 2014-03-11 |
US20140237441A1 (en) | 2014-08-21 |
US20160267212A1 (en) | 2016-09-15 |
CN102708221B (zh) | 2018-01-19 |
US20120227026A1 (en) | 2012-09-06 |
EP2495676A1 (en) | 2012-09-05 |
US9361421B2 (en) | 2016-06-07 |
JP2012185818A (ja) | 2012-09-27 |
JP5937845B2 (ja) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102708221A (zh) | 用于对局部重配置模块进行布局和布线的方法和设备 | |
US10635772B1 (en) | Method and apparatus for performing fast incremental physical design optimization | |
US6080204A (en) | Method and apparatus for contemporaneously compiling an electronic circuit design by contemporaneously bipartitioning the electronic circuit design using parallel processing | |
US10628622B1 (en) | Stream FIFO insertion in a compilation flow for a heterogeneous multi-core architecture | |
CN101809576B (zh) | 构架物理综合 | |
US8458629B2 (en) | Decision modules in integrated circuit design | |
CN103812502B (zh) | 具有冗余电路的可编程集成电路 | |
US10068047B1 (en) | Systems and methods for designing an integrated circuit | |
US10339243B2 (en) | Method and apparatus for automatic hierarchical design partitioning | |
CN104573169A (zh) | 以自动流水线操作能力设计集成电路的方法和工具 | |
US7464348B1 (en) | Method and system for mapping source elements to destination elements as interconnect routing assignments | |
WO2005119531A2 (en) | Rule-based design consultant and method for integrated circuit design | |
US9852255B2 (en) | Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration | |
US11138019B1 (en) | Routing in a compilation flow for a heterogeneous multi-core architecture | |
CN101821737A (zh) | 构架物理综合 | |
CN104239595A (zh) | 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置 | |
Montone et al. | Wirelength driven floorplacement for FPGA-based partial reconfigurable systems | |
CN1495649A (zh) | 用于在寄存器传送级对集成电路的性能进行估算的系统 | |
US7509618B1 (en) | Method and apparatus for facilitating an adaptive electronic design automation tool | |
US6516453B1 (en) | Method for timing analysis during automatic scheduling of operations in the high-level synthesis of digital systems | |
US10872057B1 (en) | Partitioning in a compiler flow for a heterogeneous multi-core architecture | |
Thomas et al. | HoneyComb: an application-driven online adaptive reconfigurable hardware architecture | |
Kim et al. | OPEN ARCHITECTURE HIERARCHICAL PLACEMENT FOR FPGA DATAPATH DESIGNS | |
CN1833242A (zh) | 给掩模可编程逻辑器件编程的方法及如此编程的器件 | |
JP2008090869A (ja) | 処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |