CN104239595B - 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置 - Google Patents
用于实现用于设计规划和架构探索的系统级设计工具的方法和装置 Download PDFInfo
- Publication number
- CN104239595B CN104239595B CN201410281024.9A CN201410281024A CN104239595B CN 104239595 B CN104239595 B CN 104239595B CN 201410281024 A CN201410281024 A CN 201410281024A CN 104239595 B CN104239595 B CN 104239595B
- Authority
- CN
- China
- Prior art keywords
- description
- target device
- design
- advanced
- mapping
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- 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/343—Logical level
-
- 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/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
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)
- Microelectronics & Electronic Packaging (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Architecture (AREA)
- Software Systems (AREA)
Abstract
本发明的实施方式设计用于实现用于设计规划和架构探索的系统级设计工具的方法和装置。一种用于在目标设备上设计系统的方法包括在生成系统的寄存器传送级描述之前将系统的高级描述映射到目标设备的模型上。生成映射的可视化表示。
Description
技术领域
本发明的实施例涉及用于设计目标设备的工具以及用于在目标设备上设计系统的工具。更具体地,本发明的实施例涉及用于实现用于设计规划和架构探索的系统级设计工具的方法和装置。
背景技术
诸如现场可编程门阵列(FPGA)、结构化专用集成电路(ASIC)以及ASIC的目标设备被用于实现可能包括数百万的门或者数兆位的嵌入式存储器的大型系统。大型系统的复杂性往往需要使用电子设计自动化(EDA)工具来对系统在物理目标设备上的设计进行创建和优化。在计算机辅助设计(CAD)中由EDA工具执行的过程之中,编译流程是对在目标设备上的系统的生成、综合、布局以及布线。
现代高端目标设备的设计旨在支持巨大带宽的应用。例如,在目标设备上实现的当代通信处理设计支持10Gb到40Gb的吞吐量。未来的设计将瞄准100GB到400GB,并且然后是Tb的处理。这样的应用能够通过提高与应用的输入输出带宽需求保持同步的收发器(串行输入输出)块的速度来实现。
由于目标设备架构师创建下一代设计以支持这些高带宽应用,并且由于系统设计者试图在这些目标设备上实现它们的系统,因此用于架构探索和设计规划的工具将对于创建成功地满足时序要求的目标设备和系统发挥重要的作用。
发明内容
公开了一种用于实现用于执行设计规划和目标设备架构探索的系统级设计工具的方法和装置。该系统级设计工具允许在形成对设计的算法和结构进行锁定的关键决策之前进行设计规划和决策形成。该系统级设计工具也可以被用于对设计进行建模,用于更有效架构下一代目标设备的目的。
系统级设计工具的实施例允许在高级设计上的接线规划(wire-planning)和资源管理。可以使用高级描述而不是诸如寄存器传送级(register transfer level)的详细硬件描述来定义设计。高级描述可以被映射到一个或多个目标设备架构并且映射可以向比如系统设计者或目标设备架构师的用户输出以进行评估。
在一个方面,提供一种用于在目标设备上设计系统的方法,包括在生成所述系统的寄存器传送级描述之前将所述系统的高级描述映射到目标设备的模型上;以及生成所述映射的可视化表示。
在另一个方面,提供一种用于在目标设备上设计系统的设备,所述设备包括:用于从由用户输入的描述生成目标设备的多个模型的装置;用于将系统的高级描述映射到所述目标设备的所述模型上的装置;以及用于生成所述映射的可视化表示的装置。
根据一个实施方式,由所述用户输入的所述描述包括所述目标设备的一个或多个物理平面图描述。
根据一个实施方式,由所述用户输入的所述描述包括全局布线资源的范围的描述。
根据一个实施方式,由所述用户输入的所述描述包括与流水线化数据路径和加宽数据路径相关联的延时度量。
根据一个实施方式,由所述用户输入的所述描述对能够由所述目标设备实现的接线宽度的范围进行描述。
根据一个实施方式,所述系统的所述高级描述处在比寄存器传送级描述更高的级。
根据一个实施方式,所述映射的所述可视化表示包括切片式平面图。
根据一个实施方式,所述映射的所述可视化表示包括图示资源使用的映射的视图。
进一步地,该设备还包括:用于修改所述目标设备的所述模型中的一个模型的装置;以及用于将所述系统的所述高级描述映射到经修改的模型上的装置。
进一步地,该设备还包括用于执行延时规划的装置,所述用于执行延时规划的装置包括:用于确定带宽要求是否得到满足的装置;以及用于响应于确定所述带宽要求未被满足,修改所述多个模型中的一个模型以增加带宽支持的装置。
进一步地,该设备还包括用于执行延时规划的装置,所述用于执行延时规划的装置包括:用于确定延时约束是否得到满足的装置;以及用于响应于确定所述延时约束未被满足,修改所述多个模型中的一个模型的装置。
在又一个方面,提供一种系统设计器,其包括:映射单元,可操作为在生成系统的寄存器传送级描述之前将所述系统的高级描述映射到目标设备的模型上;以及映射描述单元,可操作为生成所述映射的可视化表示。
进一步地,所述系统设计器还包括目标设备建模单元,可操作为从由用户输入的描述来生成所述目标设备的所述模型。
根据一个实施方式,映射单元可操作为将所述系统的所述描述的所述高级映射到所述目标设备的不同模型上。
根据一个实施方式,映射单元可操作为将对所述描述的所述高级的修改映射到所述目标设备的所述模型上。
附图说明
本发明的实施例的特征和优势通过示例来进行说明并且并非意图将本发明的实施例的范围限制为所示出的特定实施例。
图1是图示根据本发明的示例性实施例的用于在目标设备上设计系统的方法的流程图。
图2A是图示根据本发明的示例性实施例的用于执行早期规划的方法的流程图。
图2B是图示根据本发明的示例性实施例的用于对于多个目标设备执行早期规划的方法的流程图。
图3A图示根据本发明的一个实施例的以框图语言实现的系统设计的高级描述的示例。
图3B图示根据本发明的一个实施例的以框图形式实现的系统设计的高级描述的示例。
图4是图示根据本发明的示例性实施例的用于执行延时规划的方法的流程图。
图5图示根据本发明的一个实施例的示例性切片式平面图。
图6图示根据本发明的一个实施例的示出用于资源使用的度量的示例性映射的视图。
图7图示根据本发明的一个实施例的实现系统设计器的计算机系统的框图。
图8图示根据本发明的一个实施例的系统设计器的框图。
图9图示根据本发明的一个实施例的示例性目标设备。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体的术语以提供对本发明的实施例的透彻理解。本领域技术人员将清楚的是可能不需要具体实施方式中的特定细节以实施本发明的实施例。在其他实例中,公知的电路、设备和程序以框图的形式被示出,以避免不必要的模糊本发明的实施例。
本发明的实施例可以被用来实现一种系统级设计工具,其可以被用于系统设计和架构探索。图1图示其中在系统设计的情景中使用系统级设计工具的示例。图1是图示根据本发明的示例性实施例的用于在目标设备上设计系统的方法的流程图。目标设备可以是现场可编程门阵列(FPGA)、专用集成电路(ASIC)、结构化ASIC、或其它设备。根据一个实施例,图1中所示的过程可以由在计算机系统上实现的计算机辅助设计(CAD)/电子设计自动化(EDA)工具来执行。
在101处,对于要在目标设备上实现的系统执行规划。在系统规划期间,对要在目标设备上实现的系统的高级描述进行测试,并且根据测试对诸如接线使用(wire use)、拥塞、时序、资源分配、延时和/或其它参数的度量进行评估。根据本发明的一个实施例,系统的高级描述处在寄存器时序级(RTL;register timing level)生成之前的抽象级。执行映射并且生成映射的描述以允许用户对系统进行评估。基于映射的评估中,用户可以修改系统和/或修改系统被在其上实现的目标设备。响应于做出的改变,可以执行另一映射和评估。系统规划可以在用户对系统的评估满意之后被最终确定。
诸如FPGA和结构化ASIC的目标设备具有一组带有受到限制的布局和功能的固定资源。可以被分配特定的位置和固定功能的资源的示例包括数字信号处理元件、存储器、总线接口、处理器核心、以及存储器控制器。诸如全局和区域时钟的其它资源可以将对象的布局限制到提供需要的功能的位置。与此相反,ASIC不具有预分配的资源。针对诸如FPGA和结构化ASIC的目标设备执行的规划考虑了对象的预布局约束,以及由时钟和输入输出的固定位置所施加的限制。
应当理解,FPGA区别于结构化ASIC在于它们拥有预先构建的互连资源。针对例如FPGA的目标设备所执行的规划需要对可用的不同互连资源的具体性能进行建模的能力以及对由用户的设计所施加的那些互连资源的需要。
在102处,针对在101处所规划的系统生成RTL描述。RTL是这样一种设计抽象,其在硬件寄存器之间的数字信号的流动以及对这些信号执行的逻辑操作方面对同步数字电路进行建模。在诸如Verilog和VHDL的硬件描述语言(HDL)中使用RTL抽象以创建电路的RTL表示,可以从RTL表示中推导出更低层级的表示和接线。根据本发明的一个实施例,RTL被用来表示要由这一处理的其余部分来实现的系统。
在103处,对系统进行综合。综合包括生成要由目标设备来实现的系统的逻辑设计。根据本发明的一个实施例,综合从HDL设计定义而生成系统的经优化的逻辑表示。综合还包括映射经优化的逻辑设计。映射包括确定如何利用目标设备上的具体资源来在经优化的逻辑表示中实现逻辑门和逻辑单元。根据本发明的一个实施例,从映射生成网表(netlist)。网表可以是从HDL生成的经优化的技术映射的网表。
在104处,对系统进行布局。根据本发明的一个实施例,布局涉及将映射的逻辑系统设计布局在目标设备上。布局工作于技术映射的网表以产生用于功能块中的每个功能块的布局。根据本发明的一个实施例,布局包括通过确定在逻辑设计上的哪些资源将要被用于具体的逻辑元件、并且其他功能块被确定以实现如在综合期间所确定的系统,来将系统相配在目标设备上。布局可以包括聚类,其涉及将逻辑元件分组在一起以形成存在于目标设备上的逻辑簇。
在105处,对所布局的设计进行布线。在布线期间,对目标设备上的布线资源进行分配以在逻辑门、逻辑元件、和目标设备上的其他部件之间提供互连。还可以对所布局的逻辑设计执行可布线性优化。根据本发明的一个实施例,可布线性优化的目标是减少用于连接所布局的逻辑设计中的布局的接线的数量。可布线性优化可以包括执行扇出分割(fanout splitting)、逻辑复制、逻辑重接线、或者其它过程。应当理解,过程中的一个或多个过程可以在经布局的逻辑设计上执行。
在106处,执行装配过程。装配过程涉及创建这样的数据文件,其包括通过在101-105处的过程所确定的信息。该数据文件可以是可被用来对目标设备进行编程的比特流。根据本发明的一个实施例,在图1中图示的过程可以由在第一计算机系统上执行的EDA工具来执行。产生的数据文件可以被发送到第二计算机系统,以允许系统的设计被进一步处理。可替换地,数据文件可以被发送到第二计算机系统,其可以被用于根据系统设计对目标设备进行编程。应当理解,系统的设计也可以以其它形式进行输出,例如输出到显示设备或其它介质上。可以使用数据文件来对目标设备进行编程。通过使用数据文件对目标进行编程,目标设备上的部件被物理地转换以实现系统。
图2A是图示根据本发明的示例性实施例的用于执行系统规划的方法的流程图。在图2A中图示的过程可以被用于在设计系统的情景中实现图1中所示出的过程101。然而,应当理解,在图2A中图示的过程还可以被独立地使用,用于在目标设备的设计中执行架构探索。
在201处,识别系统设计。根据本发明的一个实施例,根据从用户接收的输入来识别系统设计。系统设计可以是不是完全的RTL设计的系统的高级描述。系统的高级描述可以将系统的部件描述为高级块,并且包括它们的资源使用情况的信息,比如逻辑单元、寄存器、嵌入式存储器、输入输出和在它们可以使用的目标设备上的其它资源的数量。系统的高级描述可以包括数据路径描述的描述,其包括在高级块之间的数据路径的宽度和速度要求。系统的高级描述可以包括系统级元数据,其识别数据路径如何被使用以及它们是否是相互排斥的并且可以被共享。系统级元数据还可以识别数据路径的延时容限以及数据路径是否可以被流水线化。系统的高级描述可以包括块级元数据,其识别影响部件或高级块的布线结构的预期的局部使用的布线孔隙度。这允许对于全局数据路径可用的布线资源的量得以被估计。根据本发明的一个实施例,其中目标设备是FPGA,布线结构可以根据不同的层级结构来进行组织,该不同的层级结构比如全局互连线、局部互连线、以及行和列的互连线。互连线可以用来在FPGA上的部件之间按线路发送信号。应当理解,在层级结构之中并且在其之内,FPGA上的互连线可以具有不同的宽度或容量以支持数据的传输。
块级元数据还可以包括关于块的最大频率、块的功耗、在先前的实施方式中使用的大量高速或低功率的片状材料(tile)的信息。系统的高级描述还可以提供可以在构建动态仿真中使用的块的周期精确/近似行为的SystemC或其它描述。
根据本发明的一个实施例,系统的高级描述可以由用户经由图形用户界面编辑器或文本编辑器来输入。可以通过工具来产生或者直接通过用户来输入机器可读格式。系统的高级描述捕获包括高级块描述、数据路径描述、系统级元数据、和块级元数据的系统的结构和数据流。
图3A图示根据本发明的一个实施例的以使用文本编辑器输入的框图语言实现的系统设计的高级描述的示例。图示的高级描述的格式是YAML。在图3A中图示的系统设计的高级描述允许对元数据的任意表述,同时还提供用来表述系统的分层化和结构化的连接性的形式体系。图3A包括示出了大量实例化的链接的连接列表。链接包括在部件B的端口z和部件A的端口x之间的连接、和在部件B的端口w和部件A的端口y之间的连接。链接表示在可以通过目标设备上的布线资源来实现的源和宿之间的连接。
图3B图示根据本发明的一个实施例的以框图形式实现的系统设计的高级描述的示例。可以根据在文本中输入的高级描述(例如在图3A中所图示的)来生成系统的高级描述的框图表示。可替换地,可以使用图形用户界面编辑器来捕获由用户输入的以框图形式的系统设计的高级描述以识别系统设计的高级描述并且生成高级描述的格式为如在图3A中所图示的格式。
根据本发明的一个实施例,可以从高级描述生成事件驱动的仿真内核,比如SystemC模板。仿真内核可以被用于用以测量对设计的算法改变的行为仿真并且用于计算诸如存储器和总线效率的度量。在这一实施例中,可以使用元数据将数据路径转变为SystemC通道以识别寄存器传送和FIFO通道。可以使用适当的端口定义将块转变为模块,以允许用户输入功能的行为描述。除了将仿真内核用于仿真之外或者可替换地,可以使用仿真内核来对业务负载和延时进行统计建模。所生成的模型可以域特定的。
返回参考图2A,在202处,识别目标设备设计。根据本发明的一个实施例,根据从用户输入的架构描述来识别目标设备设计。架构描述可以包括描述系统中的包括FPGA、存储器和插入器的单个小块(dice)以及在小块和外部接口之间的互连的实例的物理描述。架构描述可以包括目标设备的物理平面图描述,其描述核心和输入输出块的列和行的位置。架构描述可以包括全局布线资源(比如每行和列的数目或水平和竖直线)、硬化块(比如存储器块)中的和之外的带宽、和接线和块的物理延迟的描述。架构描述可以包括关于目标设备资源的元数据,比如用来流水线化数据路径所需要的开销延迟、与加宽的数据路径和拥塞相关联的推出延迟、以及可布线性拥塞的度量。应当理解,架构描述可以具有不同的层级。例如,架构描述可以包括目标设备的非常高的层级的描述。可替换地,架构描述可能包括目标设备的非常低的、详细的层级的描述。例如,如果目标设备是FPGA,则目标设备的低层级描述可以包括它的包括查找表和寄存器的底层单元的描述。利用从架构描述所识别的目标设备设计,可以生成要在其中实现系统设计的目标设备的模型。根据本发明的一个实施例,目标设备的模型包括来自以上描述的架构描述的细节。
在203处,将系统设计映射到目标设备的模型上。映射涉及使用在目标设备上可用的资源来实现系统设计。可以执行映射来说明在FPGA或结构化ASIC上的坚硬物体的固定布局、在目标设备上的系统设计的时钟使用、IO连接、接线使用、拥塞和时序。根据本发明的一个实施例,可以在映射期间执行延时规划以探索用于系统的布线信号的不同的数据路径宽度的使用情况。
图4是图示根据本发明的示例性实施例的用于执行延时规划的方法的流程图。在图4中图示的过程可以在图2A中所示的过程203处执行。在401处,确定所选择的目标设备上的布线资源是否允许数据将以与设计相关联的带宽要求被从源发送到目的地。根据本发明的一个实施例,带宽要求可以与设计中的链接(布线资源)的集合相关联。如果带宽要求被满足,则控制前进到403。如果带宽要求还没有得到满足,则控制前进到402。
在402处,对系统设计进行修改以增加带宽。根据本发明的一个实施例,针对未满足带宽要求的链接的集合研究用于提供所要求的带宽的不同的方法。方法可以包括流水线化,这将增加链接的时钟速度,但会增加链接的延时。方法还可以包括加宽,这将增加从链接的源向一个或多个目的地行进的接线的数量。加宽还可能具有延时影响,并且也将需要更多的布线资源,其可能是在目标设备上的受限资源。在修改完成后,控制前进回到401,其中带宽要求被再次检查。
在403处,确定延时约束是否得到满足。根据本发明的一个实施例,检查链接的集合的实现以确定它是否满足链接的集合上延时约束。延时约束可以是与时钟周期或时序要求相关联的简单约束。可替换地,延时约束可以是与多个链接相关联的复杂约束。可以在系统规划过程期间使用系统级仿真来执行检查和确定。如果延时约束得到满足,则控制前进到405。如果未被满足,则控制前进到404。
在404处,对系统设计进行修改以处理延时。根据本发明的一个实施例,研究和评估用来修改链接的集合以调整延时的不同的方法。例如,用来减少延时的修改可以包括减少通过链接行进的距离、去除流水线化级、使数据路径变窄、和/或使用固有更快的互连资源。应当理解,因为这些修改可能会影响带宽以及延时,所以在404处执行修改之后要验证带宽要求。控制前进到401。
在405中,控制结束处理。
返回参考图2A,应当理解,可以在202处生成多个目标设备模型并且在203处可以生成用于多个目标设备模型中的每一个的唯一映射。
在204处,生成映射的描述。映射的描述可以是图示平面图的映射的可视化表示,用于示出资源使用的度量的映射视图,或者其它表示。
图5图示根据本发明的一个实施例的示例性切片式(slicing)平面图。图5图示在203处的映射过程的示例。左侧的框图表示系统设计的框图。右侧的切片式平面图提供了来自框图的特定块如何被定位在目标设备平面图上的可视化表示。根据本发明的一个实施例,与在目标设备上的地理资源的可用性相关联的元数据可以被映射过程所使用以重新设置块的大小以包括适当的资源或者指示在物理区域中的可用资源和系统设计所需要的那些资源之间的不匹配。
图6图示根据本发明的一个实施例的示出资源使用的度量的示例性可替换的映射视图。图6图示在203处的映射过程的示例。左侧的框图表示系统设计的框图。右侧的可替换的映射视图提供了高级数据路径在它们互连来自框图中的某些块时的可视化表示。可替换的映射视图还可以显示指示高级数据路径的宽度和延迟/速度以及数据路径的缺乏/丰富的信息。
应当理解,可以生成映射过程的结果的其它可视化表示并提供给用户。例如,图示按模块的设备资源和自由资源的使用的资源分配图。在这个实施例中,驻留在另一模块的平面规划的空间中的自由资源可以与未驻留在另一模块的平面规划的空间中的自由资源相区分。可以被生成的另一可视化表示可以是热度图视图,其标识平面图上的其中布线资源被最严重地使用的区域。
返回参考图2A,在205处,对系统设计和目标设备执行分析。根据本发明的一个实施例,使用与资源使用情况和目标设备架构描述中的性能相关联的信息来执行功率分析以生成估计的功耗值。从仿真获得的活动率和可用性的信息还可以用来进一步提高估计的功耗值的准确性。
一些目标设备架构可以被提供以受到限制的全局时钟。在这些架构中,逻辑必须被映射到设备的具有公共时钟制度的区域,或者一个时钟域中的数据路径需要避开另一时钟域中的区域。该分析可以识别任何这样的时钟规划和时钟资源违反。
在206处,确定映射的结果是否令人满意。如果映射的结果是令人满意的,则控制前进到208。如果映射的结果不令人满意,则控制前进到207。
在207处,确定是否可以对目标设备架构进行修改。根据本发明的一个实施例,当系统级设计被用于架构探索时,目标设备架构师可以对目标设备做出修改以改善在目标设备上的系统设计的实现。对目标设备的修改可以包括改变输入输出环的定位、定位存储器接口的位置、以及增加或减少在目标设备上可用的布线资源的数量。如果要对目标设备进行修改,则控制返回到202并且输入修改。
如果将不对目标设备进行修改,则控制返回到201,以允许用户修改系统设计。根据本发明的一个实施例,当系统级设计被用于设计规划时,用户可以对系统设计做出修改以改善在目标设备上的系统设计的实现。当将不对目标设备进行修改时,可以再次使用在202处先前输入的相同的目标设备。
在208处,控制结束处理。
本发明的实施例可以被用作这样的系统级设计工具,其允许用户获得关于系统设计的映射的反馈,而不需要在用于布局和布线的RTL中实现系统设计。本发明的实施例通过执行考虑数据路径分析、接线规划、以及资源充分性的平面规划来允许系统设计的规划。应当理解,参考在图2A中所图示的处理,可以在202处识别多个目标设备并且可以在203处将单个系统设计映射到多个目标设备模型上。这将允许用户获得单个系统设计可以如何被映射到不同的目标设备架构上的可视化表示,并且允许用户选择系统架构中的一个架构以进行修改并且最终实现。
图2B是图示根据本发明的示例性实施例的用于对于多个目标设备执行早期规划的方法的流程图。
在201处,识别系统设计。根据本发明的一个实施例,根据从用户接收的输入来识别系统设计。系统设计可以是不是完全的RTL设计的系统的高级描述。系统的高级描述可以包括和在图2A中的201处所描述的那些特性相类似的特性。
在202-1到202-N处,识别目标设备设计,其中N可以表示目标设备的任何数目。根据本发明的一个实施例,根据从用户输入的架构描述来识别目标设备设计。架构描述可以包括和在图2A中的201处所描述的那些特性相类似的特性。利用从架构描述所识别的目标设备设计,可以生成要在其中实现系统设计的目标设备的模型。根据本发明的一个实施例,目标设备的模型包括来自以上描述的架构描述的细节。
在203-1到203-N处,将系统设计分别映射到在202-1到202-N处生成的目标设备的模型中的每一个上。在203-1到203-N处执行的映射过程可以类似于参考图2A中的203描述的映射过程。
在204-1到204-N处,针对在203-1到203-N处执行的映射中的每个映射,分别生成映射的描述。映射的描述可以是图示平面图的映射的可视化表示,用于示出资源使用的度量的映射视图,或者其它表示。
在205-1到205-N处,对系统设计和在203-1到203-N处生成的目标设备中的每个目标设备分别执行分析。在205-1到205-N处执行的分析过程可以类似于参考图2A中的205描述的分析过程。
在206-1到206-N处,确定相应映射的结果是否令人满意。如果到目标设备上的映射的结果是令人满意的,则控制前进到208-1到208-N中的对应于目标设备的一个。如果映射的结果不令人满意,则控制前进到207-1到207-N中的一个。
在207-1到207-N处,确定是否可以对相应的目标设备架构进行修改。根据本发明的一个实施例,当系统级设计被用于架构探索时,目标设备架构师可以对目标设备做出修改以改善在目标设备上的系统设计的实现。对目标设备的修改可以包括改变输入输出环的定位、定位存储器接口的位置、以及增加或减少在目标设备上可用的布线资源的数量。如果要对目标设备进行修改,则控制返回到202并且输入修改。
如果将不对目标设备进行修改,则控制返回到201,以允许用户修改系统设计。根据本发明的一个实施例,当系统级设计被用于设计规划时,用户可以对系统设计做出修改以改善在目标设备上的系统设计的实现。当将不对目标设备进行修改时,可以再次使用在202-1到202-N处先前输入的相同的目标设备。
在208处,可以执行进一步的分析以确定目标设备设计中的哪一个对于系统设计提供最佳解决方案。
本发明的实施例可以被用作这样的架构探索工具,其允许用户在目标设备上测试各种系统设计并且确定对目标设备的哪些修改可以改善各种系统设计的实现。在由用户进行的修改中可以谋求的解决方案包括是否以列或者其他排列来实现存储器块、用来提供目标设备的布线结构的接线的数量、以及用来在目标设备上提供的互连的类型。应当理解,参考在图2A中所图示的处理,可以在202处识别多个系统设计并且可以在203处被映射到单个目标设备模型上。这将允许用户获得特定的目标设备架构如何能够实现多个不同的系统设计的可视化表示,并且允许看到对特定的目标设备架构的修改如何影响多个系统设计。
图1、图2A-图2B和图4是图示本发明的实施例的流程图。图示的技术中的一些技术可以按顺序执行、并行执行或者以与所描述的不同的顺序来执行,并且描述的过程可以被重复。应当理解,并非所有的描述的技术都需要被执行,可以添加额外的技术,并且图示的技术中的一些技术可以被其他技术所替代。
图7是图示在其中驻留本发明的一个实施例的示例性计算机系统700的框图。计算机系统700可以被用来实现诸如EDA工具的系统设计器。计算机系统700包括处理数据信号的处理器701。处理器701耦合到总线710,总线710在计算机系统700中的部件之间传送数据信号。总线710可以是单个总线或多个总线的组合。计算机系统700包括存储器702。存储器702可以是动态随机存取存储器设备、静态随机存取存储器设备、和/或其他存储器设备。存储器702可以存储由可以被处理器701所执行的数据信号所表示的指令和代码。数据存储设备703耦合到总线710。数据存储设备703可以是硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其它大容量存储设备。
网络控制器704耦合到总线710。网络控制器704可以将计算机系统700链接到计算机网络(未示出),并且支持机器之间的通信。显示设备控制器705耦合到总线710。显示设备控制器705允许显示设备(未示出)到计算机系统700的耦合并且作为显示设备和计算机系统700之间的接口。输入接口706耦合到总线710。输入接口706可以是例如键盘和/或鼠标控制器或其它输入接口。输入接口706允许输入设备到计算机系统700的耦合并且从输入设备向计算机系统700传送数据信号。应当理解,也可以使用具有不同的架构或者具有不同的部件的计算机系统来实现计算机系统700。
根据本发明的一个实施例,系统设计器720可以驻留在存储器702中并由处理器701执行。系统设计器720可以作为系统级设计工具来操作,用于执行设计规划和目标设备架构探索。设计工具允许在形成锁定设计的算法和结构的关键决策之前进行设计规划和决策形成。设计工具也可以被用于对设计进行建模,用于更有效架构下一代目标设备的目的。设计工具可以用于在高级设计上的接线规划和资源管理。可以使用高级描述而不是诸如RTL的详细硬件描述来定义设计。高级描述可以被映射到一个或多个目标设备架构并且映射可以被输出到比如系统设计者或目标设备架构师的用户以进行评估。系统设计器720还可以进行操作以在目标设备上综合、映射、布局和布线系统。
图8图示根据本发明的一个实施例的系统设计器800的框图。系统设计器800可以是用于在诸如FPGA、结构化应用程序专用集成电路(ASIC)、ASIC、或其它电路装置的目标设备上设计系统的EDA工具。图8图示了用于实现系统设计器800的一个实施例的模块。根据一个实施例,模块代表软件模块,并且系统设计可以由诸如在图7中所图示的、执行由在图8中所示出的模块所表示的指令序列的计算机系统来执行。指令序列的执行导致计算机系统支持系统设计,如将在下文中描述的。在替换实施例,可以使用硬接线电路装置来代替软件指令或者与其组合,以实现本发明的实施例。因此,本发明的实施例不限于硬件电路装置和软件的任何特定组合。
系统设计器800包括系统设计器管理器810。设计器系统管理器810被连接到系统设计器800的其它部件之间并且在这些部件之间传送数据。系统设计器管理器810提供用户接口,其允许用户输入数据到系统设计器800。根据本发明的一个实施例,系统的描述可以由用户输入到系统设计器中。系统的描述可以是由用户生成的高级描述。
系统设计器800包括一个系统设计识别(ID)单元815。系统设计单元815根据从用户接收的输入来识别系统。系统设计可以是不是完全的RTL设计的系统的高级描述。系统的高级描述可以将系统的部件描述为高级块并且包括关于它们的资源使用情况的信息、包括在高级块之间的数据路径的宽度和速度要求的数据路径描述、系统级元数据和块级元数据。系统的高级描述还可以提供可以在构建动态仿真中使用的块的周期精确/近似行为的SystemC或其它描述。
系统设计器800包括目标设备建模单元820。目标设备建模单元820根据从用户输入的架构描述识别目标设备。架构描述可以包括物理描述、平面图描述、全局布线资源的描述、和/或有关目标设备资源元数据。利用从架构描述识别的目标设备,可以生成在其中实现系统设计的目标设备的模型。
系统设计器800包括映射单元825,其将系统设计映射到目标设备的模型上。映射涉及使用在目标设备上可用的资源来实现系统设计。可以执行映射来说明在目标设备上的接线使用、拥塞和时序。根据本发明的一个实施例,如参考图5所描述的,可以在映射期间执行延时规划以探索用于系统的布线信号的不同的数据路径宽度的使用情况。可以通过映射单元825中的延时规划单元来执行延时规划。
系统设计器800包括映射描述单元830。映射描述单元830生成由映射单元825所执行的映射的描述。映射的描述可以是图示平面图的映射的可视化表示,用于示出资源使用的度量的映射视图,或者其它表示。基于映射的评估,用户可以修改系统设计和/或目标设备,并且执行另一映射以进一步评估系统设计和/或目标设备架构。
系统设计器800包括RTL生成器单元835。RTL生成器单元835生成被识别和评估的系统设计的RTL描述。根据本发明的一个实施例,RTL用于生成用来描述系统的硬件描述语言(HDL)设计定义。HDL描述要被在目标设备上进行编程的系统的操作。HDL描述在硬件寄存器之间的信号(或数据的传送)的流动以及对这些信号执行的逻辑操作方面提供电路的高级表示。
系统设计器800包括执行综合的综合单元840。综合单元840生成要被在目标设备上实现的系统的逻辑设计。根据系统设计器800的一个实施例,综合单元840采取概念HDL设计定义并且生成系统的经优化的逻辑表示。通过综合单元840生成的系统的经优化的逻辑表示可以包括具有系统所需要的减少数据的功能块和寄存器(例如,逻辑门、逻辑元件)的表示。可替换地,通过综合单元840生成的系统的经优化的逻辑表示可以包括具有减少的深度的逻辑并且生成更低的信号传播延迟的表示。
综合单元840还执行技术映射。技术映射涉及确定如何利用目标设备上的特定资源(比如单元)在经优化的逻辑表示中实现功能块和寄存器,从而创建经优化的“技术映射的”网表。技术映射的网表说明如何利用目标设备上的资源(单元)来实现系统。在目标设备是FPGA的一个实施例中,技术映射的网表可以包括这样的单元,比如逻辑阵列块(LAB)、寄存器、存储器块、数字信号处理(DSP)模块、输入输出(IO)元件或其它部件。
系统设计器800包括布局单元845,其处理经优化的技术映射的网表以产生针对功能块中的每个功能块的布局。布局识别在目标设备上的哪些部件或区域将被用于特定功能块和寄存器。
系统设计器800包括执行布线的布线单元850。布线单元850确定在目标设备上的用来在实现逻辑设计的功能块和寄存器的部件之间提供互连的布线资源。
系统设计器800包括执行装配过程的装配单元855,其创建包括通过系统设计器800生成的系统的设计的数据文件。数据文件可以是可被用来对目标设备进行编程的比特流。装配单元855可以输出数据文件,使得数据文件可以被存储或者可替换地被发送至用于对目标设备进行编程的分离的机器。应当理解,装配单元855还可以用其它形式输出系统的设计,例如,输出到显示设备或其它介质上。
应当理解,本发明的实施例可以被提供为计算机程序产品或软件,其可以包括具有指令的计算机可读或机器可读介质。计算机可读或机器可读介质上的指令可以被用来对计算机系统或其它电子设备进行编程。机器可读介质可以包括但不限于软盘、光盘、CD-ROM和磁光盘或适合用于存储电子指令的其他类型的媒体/机器可读介质。在本文中所描述的技术并不限于任何特定的软件配置。它们可能在任何计算或处理环境中找到适用性。本文使用的术语“计算机可读介质”或“机器可读介质”应当包括能够存储或编码用于由计算机执行的指令的序列并且使计算机执行本文描述的方法中的任何一种方法的任何介质。此外,本领域通常言及处于一种形式或另一形式(例如,程序、过程、处理、应用、模块、单元、逻辑等)的软件为采取动作或引起结果。这样的表达仅是陈述由处理系统来执行软件使得处理器执行动作以产生结果的简略方式。
图9图示根据本发明的一个实施例的可以用于实现目标设备的设备900。设备900是包括多个逻辑阵列块(LAB)的现场可编程门阵列(FPGA)。每个LAB可以由多个逻辑块、进位链、LAB控制信号、查找表(LUT)链、和寄存器链连接线所形成。逻辑块是提供用户逻辑功能的有效实现的小的逻辑单元。逻辑块包括一个或多个组合单元,其中每个组合单元具有单个输出和寄存器。根据本发明的一个实施例,逻辑块可以与逻辑元件(LE)或组合逻辑块(CLB)类似地操作,逻辑元件比如在由公司所制造的Stratix或Cyclone设备中所发现的那些,组合逻辑块比如在由Xilinx公司所制造的Virtex设备中所发现的那些。在这个实施例中,逻辑块可以包括四个具有可配置的寄存器的输入LUT。根据本发明的一个可替换的实施例,逻辑块可以与自适应逻辑模块(ALM)类似地操作,自适应逻辑模块比如在由公司所制造的Stratix设备中所发现的那些。跨设备900将LAB分组成行和列。LAB的列被示作911-916。应当理解,逻辑块可以包括附加的或替换的部件。
设备900包括存储器块。存储块可以是例如双端口随机存取存储器(RAM)块,其提供多达各种频率多达各种比特的专用真双端口、简单双端口或单端口存储器。存储器块可以跨在设备900内的选择的LAB之间的或者单独或成对定位的设备被分组成列。存储器块的列被示出为921-924。
设备900包括数字信号处理(DSP)块。DSP块可以被用来实现具有加法或加法特征的各种配置的乘法器。DSP块包括移位寄存器、乘法器、加法器和累加器。DSP块可以跨设备900被分组成列并且被示出为931。
设备900包括多个输入/输出元件(IOE)940。每个IOE供给设备900上的一个IO引脚(未示出)。IOE940围绕设备900的外围位于LAB行和列的末端。每个IOE可以包括双向IO缓冲器和多个用于注册输入、输出和输出使能信号的寄存器。
设备900可以包括布线资源,比如LAB局部互连线、行互连线(“H型接线”)、和列互连线(V型接线)(未示出),以在目标设备上的部件之间对信号布线。
在以上说明中,本发明的实施例已经参考其特定示例性实施例进行了描述。然而,将显而易见的是在脱离本发明的实施例的宽泛的精神和范围的前提下可以对其做出各种修改和改变。因此,说明书和附图要在示例性而非限制性的意义上来看待。
Claims (10)
1.一种用于在目标设备上设计系统的方法,其特征在于:
在生成所述系统的寄存器传送级RTL描述之前,通过使用在所述目标设备上可用的资源来实现所述系统的高级描述而将所述系统的高级描述映射到目标设备的模型上,其中所述系统的所述高级描述将所述系统的部件描述为高级块,并且包括其资源使用情况的信息;以及
生成所述映射的可视化表示。
2.根据权利要求1所述的方法,其中所述高级描述的所述映射说明所述系统的接线使用和在所述目标设备上的接线资源。
3.根据权利要求1所述的方法,其中所述高级描述的所述映射说明所述系统的时序要求和布线拥塞。
4.根据权利要求1所述的方法,其中所述高级描述包括所述系统中的部件的标识和它们的资源使用情况。
5.根据权利要求1所述的方法,其中所述高级描述包括在所述系统中的部件之间的数据路径的宽度和速度要求。
6.根据权利要求1所述的方法,其中所述高级描述包括描述在所述系统中的部件之间的数据路径的延时容限和所述数据路径的使用的系统级元数据。
7.根据权利要求1所述的方法,其中所述高级描述包括描述部件的布线孔隙度和最大频率的块级元数据。
8.根据权利要求1所述的方法,还包括将对所述描述的所述高级的修改映射到所述目标设备上。
9.根据权利要求1所述的方法,还包括:
在生成所述系统的所述RTL描述之前将所述系统的所述描述的所述高级映射到所述目标设备的不同模型上;以及
为用户生成所述映射在所述目标的所述不同模型上的可视化表示。
10.根据权利要求1所述的方法,还包括执行延时规划。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/925,764 | 2013-06-24 | ||
US13/925,764 US9507883B2 (en) | 2013-06-24 | 2013-06-24 | Method and apparatus for implementing a system-level design tool for design planning and architecture exploration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104239595A CN104239595A (zh) | 2014-12-24 |
CN104239595B true CN104239595B (zh) | 2019-07-26 |
Family
ID=50980148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410281024.9A Active CN104239595B (zh) | 2013-06-24 | 2014-06-20 | 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (3) | US9507883B2 (zh) |
EP (1) | EP2819038A1 (zh) |
CN (1) | CN104239595B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI507989B (zh) * | 2013-08-08 | 2015-11-11 | Nat Univ Tsing Hua | 資源導向之嵌入式系統功率消耗分析方法 |
CN106874309B (zh) * | 2015-12-14 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 设备与对象之间映射关系的建立方法及装置 |
US10540462B2 (en) * | 2016-12-14 | 2020-01-21 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method and apparatus for speeding up gate-level simulation |
CN107122565B (zh) * | 2017-05-12 | 2019-08-30 | 山东大学 | 基于非易失性存储器的fpga bram架构与设计方法 |
TWI627521B (zh) | 2017-06-07 | 2018-06-21 | 財團法人工業技術研究院 | 時序估算方法與模擬裝置 |
CN108629116B (zh) * | 2018-05-04 | 2022-03-25 | 哈尔滨开博科技有限公司 | 基于参数传递的线性模型索力测量方法 |
CN115422876A (zh) * | 2022-08-29 | 2022-12-02 | 中山大学 | 高层次综合的流程布局方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002526908A (ja) * | 1998-09-30 | 2002-08-20 | ケイデンス デザイン システムズ インコーポレイテッド | ブロックをベースとする設計方法 |
US7197735B2 (en) * | 2004-12-15 | 2007-03-27 | Lsi Logic Corporation | Floorplan visualization method using gate count and gate density estimations |
US7464345B2 (en) * | 2005-08-01 | 2008-12-09 | Lsi Corporation | Resource estimation for design planning |
US8739101B1 (en) * | 2012-11-21 | 2014-05-27 | Maxeler Technologies Ltd. | Systems and methods for reducing logic switching noise in parallel pipelined hardware |
-
2013
- 2013-06-24 US US13/925,764 patent/US9507883B2/en active Active
-
2014
- 2014-06-13 EP EP14172257.9A patent/EP2819038A1/en not_active Ceased
- 2014-06-20 CN CN201410281024.9A patent/CN104239595B/zh active Active
-
2016
- 2016-10-26 US US15/335,012 patent/US9740808B2/en active Active
-
2017
- 2017-07-14 US US15/650,318 patent/US10678979B2/en active Active
Non-Patent Citations (2)
Title |
---|
High-Level Power Estimation of FPGA;Nabil Abdelli et al;《IEEE International Symposium on Industrial Electronics》;20071231;第925-929页 |
Using Estimates from Behavioral Synthesis Tools in Compiler-Directed Design Space Exploration;Byoungro So et al;《Design Automation Conference,2003.Proceedings》;20031231;第514-519页 |
Also Published As
Publication number | Publication date |
---|---|
US20170316120A1 (en) | 2017-11-02 |
US9740808B2 (en) | 2017-08-22 |
US10678979B2 (en) | 2020-06-09 |
US20170046455A1 (en) | 2017-02-16 |
US20140379307A1 (en) | 2014-12-25 |
CN104239595A (zh) | 2014-12-24 |
US9507883B2 (en) | 2016-11-29 |
EP2819038A1 (en) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104239595B (zh) | 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置 | |
US6578183B2 (en) | Method for generating a partitioned IC layout | |
Pellauer et al. | HAsim: FPGA-based high-detail multicore simulation using time-division multiplexing | |
US8839171B1 (en) | Method of global design closure at top level and driving of downstream implementation flow | |
Fornaciari et al. | Power estimation of embedded systems: A hardware/software codesign approach | |
US7926011B1 (en) | System and method of generating hierarchical block-level timing constraints from chip-level timing constraints | |
Hung et al. | Challenges in large FPGA-based logic emulation systems | |
Li et al. | System level synthesis of hardware for DSP applications using pre-characterized function implementations | |
Chen et al. | Simultaneous timing driven clustering and placement for FPGAs | |
Zhong et al. | Floorplanning and topology synthesis for application-specific network-on-chips | |
CN104111871B (zh) | 一种用于执行电路仿真中动态负载平衡的方法及装置 | |
CN103366033B (zh) | 统计电路仿真的方法和系统 | |
US11042678B2 (en) | Clock gate latency modeling based on analytical frameworks | |
US10860761B1 (en) | Systems and methods for enhanced clock tree power estimation at register transfer level | |
Boutros et al. | A Whole New World: How to Architect Beyond-FPGA Reconfigurable Acceleration Devices? | |
Liu et al. | Knowledge-based neural network model for FPGA logical architecture development | |
Li et al. | iPD: An Open-source intelligent Physical Design Toolchain | |
Lin et al. | An incremental placement flow for advanced FPGAs with timing awareness | |
Joseph et al. | Ratatoskr: An open-source framework for in-depth power, performance, and area analysis and optimization in 3d nocs | |
Turki et al. | Towards synthetic benchmarks generator for CAD tool evaluation | |
Tang | Methodology of Multi-FPGA Prototyping Platform Generation | |
Sun et al. | System-level FPGA routing for logic verification with time-division multiplexing | |
Ding et al. | Improving the efficiency of monte carlo power estimation [vlsi] | |
Abdelfattah | Embedded networks on chip for field-programmable gate arrays | |
Morris et al. | A scalable re-configurable processor |
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 |