CN104573169B - 以自动流水线操作能力设计集成电路的方法和工具 - Google Patents
以自动流水线操作能力设计集成电路的方法和工具 Download PDFInfo
- Publication number
- CN104573169B CN104573169B CN201410532302.3A CN201410532302A CN104573169B CN 104573169 B CN104573169 B CN 104573169B CN 201410532302 A CN201410532302 A CN 201410532302A CN 104573169 B CN104573169 B CN 104573169B
- Authority
- CN
- China
- Prior art keywords
- register
- path
- circuit
- description
- pipeline
- 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
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Architecture (AREA)
- Software Systems (AREA)
Abstract
本申请涉及以自动流水线操作能力设计集成电路的方法和工具。电路设计者可使用计算机辅助设计(CAD)工具来实施集成电路设计。CAD工具可包括自动流水线操作能力以改善集成电路设计的性能。自动流水线操作可在给定范围内修改路径中的流水线寄存器数目。集成电路设计的描述可包括路径的不同实施替代方案,其中每个实施替代方案具有不同数目的流水线寄存器,并且CAD工具可选择这些实施替代方案中的一个。CAD工具可进一步评估特定实施替代方案的性能并迭代地选择不同实施替代方案,直到满足给定目标。一旦满足目标,CAD工具可根据所选择的实施替代方案更新测试环境,并使用更新后的测试环境验证所选择的实施替代方案。
Description
相关申请的交叉引用
本申请要求于2013年10月25日提交的美国专利申请号 14/064,031的优先权,其由此通过参考全部并入本文。
技术领域
本公开的领域涉及以自动流水线操作能力涉及集成电路的方法和工具。
背景技术
本发明涉及集成电路设计,并更具体地涉及在寄存器传输级 (RTL)处集成电路设计描述的可验证的自动寄存器流水线操作。
从一个技术节点到下一个技术节点的每次过渡导致了更小的晶体管几何结构并因此导致集成电路区域的每个单元潜在地实施更多功能。同步集成电路进一步得益于由减小的互连和信元延迟所证明的这种发展,其导致了性能提升。然而,较新的技术节点已经看到了减小延迟中的显著减慢并因此减慢了性能提升。
已经提出了诸如寄存器流水线操作的解决方案以进一步提升性能。在寄存器流水线操作期间,在同步元件之间插入附加寄存器,这导致有益于增大时钟频率和吞吐量的潜伏期的增加。然而,执行寄存器流水线操作常常涉及花费大量时间和精力,因此通常要求定位性能瓶颈、插入或去除寄存器和编译修改的集成电路设计的若干迭代。
在其中插入或去除寄存器的多次迭代之后,常常出现寄存器流水线集成电路设计仍显示出令人不满意的性能的情况,因为在当前迭代中添加流水线寄存器到给定路径可废弃在先前迭代期间已经添加寄存器到不同路径的影响。
执行寄存器流水线操作的困难进一步通过以下事实加剧,即不同路径或块中的潜伏期可以是相关的、某些状况(诸如复位去除)可以是延迟依赖的以及验证相关活动(诸如仿真)的事实会需要考虑对由寄存器流水线操作引起的测试平台和被测设计(DUT)的修改。
发明内容
在计算设备上实施的用于开发集成电路的电路设计的设计自动化工具可接收命令,该命令限定流水线寄存器数目的有效范围并且限定包括路径的两种实施的电路描述。路径的第一实施可包括有效范围内的流水线寄存器的第一数目,并且路径的第二实施可包括流水线寄存器的第二数目。电路描述可最初选择路径的第一实施。设计自动化工具可仍进一步选择路径的第二实施并记录路径的第二实施的选择。
应当理解,能够以许多方式(诸如过程、装置、系统、设备,或计算机可读介质上的指令)实施本发明。下面描述本发明的若干发明实施例。
在某些实施例中,上述电路描述可使用定义默认值的参数选择路径的第一实施,并可通过更新参数来记录路径的第二实施的选择。
如果需要,设计自动化工具可更新测试平台。例如,测试平台可以路径的第二实施而不是路径的第一实施来验证电路描述。可使用所记录的路径的第二实施的选择更新测试平台。另外,仿真器工具可使用所更新的测试平台、电路描述,和所记录的选择执行仿真。
本发明的进一步特征、其性质和各种优点从附图和优选实施例的以下具体实施方式中将是更显而易见。
附图说明
图1为根据一个实施例可用于设计集成电路的电路设计系统的示图。
图2为根据一个实施例可用于电路设计系统中的示例性计算机辅助设计(CAD)工具的示图。
图3为根据一个实施例用于设计集成电路的示例性步骤的流程图。
图4为根据一个实施例以自动流水线操作能力设计集成电路的示例性步骤的流程图。
图5为根据一个实施例以自动流水线操作能力最优化集成电路的示例性步骤的流程图。
图6为根据一个实施例从两个寄存器流水线路径接收信号的集成电路的示例性部分的示图。
图7为根据一个实施例包括由组合逻辑分离的两个寄存器流水线的示例性路径的示图。
图8为根据一个实施例在包括并行多位互连的电路设计上执行自动流水线操作的示例性步骤的流程图。
图9为根据一个实施例在组合逻辑之间的具有流水线寄存器的示例性并行路径的示图。
具体实施方式
本发明的实施例涉及使用计算机辅助设计(CAD)工具,用于利用寄存器流水线操作能力最优化集成电路(IC)设计,以便实施为集成电路的方法,其中该计算机辅助设计(CAD)工具有时也称为设计自动化(DA)工具或电子设计自动化(EDA)工具。集成电路可以是任何合适类型的集成电路,诸如微处理器、专用集成电路、数字信号处理器、存储器电路等。如果需要,该集成电路可以是可编程集成电路,其能够由用户配置以使用可编程电路执行集成电路设计中所描述的功能。可编程电路能够通过调整存储器元件的设置来配置。
寄存器流水线操作指在集成电路设计的同步元件之间插入或去除寄存器的过程。例如,为了有益于潜在增加的时钟频率和吞吐量,在集成电路设计的两个同步元件之间插入寄存器以增大那些两个同步元件之间的潜伏期。寄存器流水线操作是复杂的设计最优化方法,该方法如像背景技术部分所示出的一样而实施可能是非常耗时且昂贵的。因此,期望在会受寄存器流水线操作(例如,仿真)影响的所有设计步骤中自动化寄存器流水线操作的过程。
本申请的示例性实施例可在没有这些具体细节的一些或所有的情况下实践,这对本领域技术人员来说是显而易见的。在其他实例中,没有详细描述众所周知的操作,以免不必要地模糊本申请的实施例。
图1示出根据本发明的示例性电路设计系统100。系统100可基于一个或多个处理器(诸如个人计算机、工作站等)。可使用网络(例如,局域网或广域网)连接(一个或多个)处理器。这些计算机中的存储器或诸如内部和/或外部硬盘的外部存储器和存储设备可用于存储指令和数据。
基于软件的部件(诸如计算机辅助设计工具120和数据库130)驻留在系统100上。在操作期间,可执行的软件(诸如计算机辅助设计工具120的软件)在系统100的(一个或多个)处理器上运行。数据库130用于存储系统100的操作数据。通常,软件和数据可存储在系统100中的任何计算机可读介质(存储装置)上。该类存储装置可包括计算机存储芯片、可移动介质或固定介质(诸如硬盘驱动器、闪存、光盘(CD)、数字通用光盘(DVD)、蓝光光盘(BD)、其他光学介质和软盘、磁带)或任何其他合适的存储器或(一个或多个)存储设备。当安装了系统100的软件时,系统100的存储装置具有使系统 100中的计算设备执行不同方法(过程)的指令和数据。当执行这些过程时,计算设备经配置实施电路设计系统的功能。
可通过单个供应商或多个供应商提供计算机辅助设计(CAD)工具120,其中一些或全部有时可共同地称为CAD工具或电子设计自动化(EDA)工具。工具120可被提供作为一套或多套工具(例如,编译器套件,其用于执行与在可编程逻辑器件中实施电路设计关联的任务)和/或作为一个或多个独立的软件部件(工具)。(一个或多个) 数据库130可包括仅通过一个或多个特定工具访问的一个或多个数据库,并可包括一个或多个共享数据库。可通过多个工具访问共享数据库。例如,第一工具可在共享数据库中为第二工具存储数据。第二工具可访问共享数据库以取回通过第一工具存储的数据。这允许一个工具将信息传递到另一个工具。如果需要,工具还可在彼此之间传递信息,而不需要将数据存储在共享数据库中。
图2示出可用于电路设计系统(诸如图1的电路设计系统100)中的示例性计算机辅助设计工具220。
设计过程可以以集成电路设计的功能规格制定(例如,集成电路设计的功能描述或行为描述)开始。电路设计者可使用设计和约束输入工具264指定所需电路设计的功能操作。设计和约束输入工具264可包括工具(诸如设计和约束输入辅助设备266和设计编辑器268)。诸如辅助设备266的设计和约束输入辅助设备可用于帮助电路设计者从现有电路设计库定位所需的设计,并可提供给电路设计者计算机辅助的辅助设备,以输入(指定)所需的电路设计。
作为一个示例,设计和约束输入辅助设备266可用于为用户呈现屏幕选项。用户可在屏幕上的选项上点击,以选择被设计的电路是否应当具有某些特征。设计编辑器268可用于输入设计(例如,通过输入硬件描述语言代码行)、可用于编辑从库中获得的设计(例如,使用设计和约束输入辅助设备),或者可帮助用户选择和编辑适当的预封装代码/设计。
设计和约束输入工具264可用于允许电路设计者使用任何合适格式提供所需的电路设计。例如,设计和约束输入工具264可包括允许电路设计者使用真值表输入电路设计的工具。可使用文本文件或时序图指定真值表并且可从库中输入真值表。真值表电路设计和约束输入可用于大规模电路的一部分或者可用于整个电路。
作为另一个示例,设计和约束输入工具264可包括原理图捕获工具。原理图捕获工具可允许电路设计者根据组成部件(诸如逻辑门和逻辑门组)可视化地构造集成电路设计。预先存在的集成电路设计库可用于允许利用原理图捕获工具有待导入所需的设计部分。
如果需要,设计和约束输入工具264可允许电路设计者使用硬件描述语言(诸如Verilog硬件描述语言(Verilog HDL)或超高速集成电路硬件描述语言(VHDL))提供电路设计到电路设计系统100。集成电路设计的设计者能够通过利用编辑器268编写硬件描述语言代码来输入电路设计。如果需要,可从用户维护的库或商业库导入代码块。
在使用设计和约束输入工具264已经输入设计之后,行为仿真工具 272可用于仿真电路设计的功能性能。如果设计的功能性能不完善或不正确,则电路设计者能够使用设计和约束输入工具264对电路设计做出改变。可在使用工具274已经执行综合操作之前,使用行为仿真工具272验证新的电路设计的功能操作。如果需要(例如,在逻辑综合之后),还可在设计流程的其他阶段使用仿真工具(诸如行为仿真工具272)。可以以任何合适形式(例如,真值表、时序图等)将行为仿真工具272的输出提供给电路设计者。
一旦已经确定电路设计的功能操作是令人满意的,则逻辑综合和最优化工具274可生成电路设计的门级网表,例如使用来自属于由代工厂支持的目标过程的特定库的门电路,其中该代工厂经选择生产集成电路。可选地,逻辑综合和最优化工具274可使用目标可编程逻辑器件的门电路(即,在特定可编程逻辑设备产品或产品系列的逻辑和互连资源中)生成电路设计的门级网表。
逻辑综合和最优化工具274可通过对硬件做出适当选择使设计最优化,以便基于通过逻辑电路设计者使用工具264输入的电路设计数据和约束数据实施电路设计中的不同逻辑功能。
在使用工具274进行逻辑综合和最优化之后,电路设计系统可使用工具(诸如布局和布线工具276)来执行物理设计步骤(版图综合操作)。布局和布线工具276用于确定在哪放置通过工具274生成的门级网表的每个门电路。例如,如果两个计数器彼此相互作用,则布局和布线工具276可将这些计数器定位在邻接区域,以减小互连延迟或者以满足指定最大允许互连延迟的时序要求。布局和布线工具276为任何目标集成电路(例如,为给定的可编程集成电路,诸如现场可编程门阵列(FPGA))创建整齐且高效的电路设计的实施方式。
诸如工具274和276的工具可以是编译器套件的部件(例如,通过可编程逻辑器件供应商提供的编译器工具的套件的部件)。根据本发明,当实施所需的电路设计时,诸如工具274、276和278的工具自动地考虑互连之间的串扰影响。工具274、276和278还可包括时序分析工具(诸如时序估计器)。这允许工具274和276在实际生产集成电路之前满足性能要求(例如,时序要求)。
在使用布局和布线工具276已经生成所需电路设计的实施之后,可使用分析工具278分析和测试该设计的实施。在使用工具220以及依赖目标集成电路技术已经完成令人满意的最优化操作之后,工具220 可生产集成电路的掩模层次布局描述或用于编程可编程逻辑器件的配置数据。
图3示出涉及使用图2的工具220生产集成电路的掩模层次布局描述的示例性操作。
如图3所示,电路设计者可首先提供设计规格302。设计规格302 可通常为以应用程序代码(例如,C代码、C++代码、SystemC代码等) 的形式提供的行为描述。在一些方案中,可以寄存器传输级(RTL) 描述306的形式提供设计规格。RTL描述可具有在寄存器传输级处描述电路功能的任何形式。例如,可使用硬件描述语言(诸如Verilog 硬件描述语言(Verilog HDL或Verilog)、SystemVerilog硬件描述语言(SystemVerilog HDL或SystemVerilog)或超高速集成电路硬件描述语言(VHDL))提供RTL描述。可选地,RTL描述可提供为图示。
通常,行为设计规格302可包括非定时或部分定时功能代码(即,应用程序代码不描述周期性硬件行为),而RTL描述306可包括完全定时设计描述,其详述在寄存器传输级处的电路的逐周期行为。
在某些特定实施例中,设计规格302或RTL描述306可包括设计中的一个或多个路径的路径描述。这些路径描述可包括路径的多个实施,并且每个路径描述可包括预定的流水线寄存器数目。
在某些特定实施例中,设计规格302或RTL描述306可包括流水线最优化约束(诸如流水线中的寄存器数目(例如,寄存器数目或一组寄存器的可允许离散数目的合法范围)、潜伏期、吞吐量或其任何组合)。例如,设计规格或RTL描述可包括给定路径的若干实施替代方案以及最初选择实施替代方案中的一个的参数。
设计规格302或RTL描述306还可包括目标标准,诸如区域使用、功率消耗、延迟最小化、时钟频率最优化或其任何组合。流水线最优化约束和目标标准可共同地称为约束。
这些约束能够被提供用于单独路径、单独路径的部分、设计的部分或用于整个设计。举几个来说,例如,约束被提供有设计规格302、 RTL描述306(例如,作为编译指示或作为断言),被提供在约束文件中或通过用户输入(例如,使用图2的设计和约束输入工具264)来提供。在某些特定实施例中,给定路径可具有不止一个与路径关联的约束,并且这种约束中的一些会彼此冲突,例如,接收给定路径的行为设计规格的约束会与接收RTL描述的约束以及接收约束文件的约束冲突。在该方案下,可通过CAD工具220明确限定或隐式解析的约束的预定优先级可确定选择哪个冲突约束。例如,来自用户或配置文件的约束可覆盖从其他资源接收的约束,并且接收RTL描述的约束可覆盖接收行为设计规格的约束。
约束可以以整个电路设计或部分电路设计为目标。例如,可全局限定一些约束并且因此该些约束可应用到整个电路设计。可局部分配其他约束并且因此该些约束可仅应用到电路设计的相应部分。考虑其中分层次组织电路设计的方案。在该方案中,每个分层实例可包括不同的分配。换句话说,多个不同的约束可以以电路设计的相同部分为目标,并且可通过CAD工具220明确限定或隐式解析优先级。例如,在设计层次的较高水平处限定的约束可覆盖较低水平处的约束。可选地,在设计层次的较低水平处限定的约束可覆盖较高水平处的约束或者设计层次的个别水平可优先于设计层次的其他水平。
如果需要,约束可彼此有关。例如,指定第一流水线k中寄存器数目的第一合法范围的第一约束可与指定第二流水线m中寄存器数目的第二合法范围的第二约束有关。作为一个实例,第一流水线可具有一至五之间数目的寄存器(即,1<=k<=5)且第二流水线可具有第一流水线中的寄存器数目至五之间数目的寄存器(即,k<=m<=5)。
仅举几例,可以以变量、参数、编译器指令、宏、编译指示或断言的形式,将包括在设计规格302中或RTL描述306中的约束传递到CAD 工具220。CAD工具220可使用约束文件,该约束文件可包括部分或全部约束。这种约束文件可包括有设计规格302或RTL描述306。在一些方案中,部分或全部约束可嵌入电路设计中。可选地,约束可使用设计和约束输入工具264已经被限定(见图2)。
在步骤304处,可执行行为综合(有时也称为算法综合)以便将行为描述转换为RTL描述306。行为综合可以为行为设计规格中的每个路径选择目标路径实施。可基于设计的流水线最优化约束和目标标准选择每个所选择的目标路径实施。如果已经以RTL描述的形式提供了设计规格,则可略过步骤304。
在步骤318处,行为仿真工具272可执行RTL描述的RTL仿真,这可验证RTL描述的功能性能。如果RTL描述的功能性能不完善或不正确,则电路设计者能够对HDL代码做出改变(作为一个示例)。在 RTL仿真318期间,从仿真RTL描述的行为中所获得的实际结果可与所期望的结果比较。再次考虑该方案,其中电路设计包括给定路径的若干实施替代方案以及最初选择实施替代方案中的一个的参数。在该方案中,所期望的结果可取决于目标路径实施的所选择的参数设置,并基于该参数设置和相应所选择的目标路径实施提供不同的期望结果。目标路径实施的所选择的参数设置可被传送到CAD工具,以使每个目标路径实施中的所选择的寄存器数目反映在所期望的结果中。
在步骤308期间,逻辑综合操作可使用图2的逻辑综合和最优化工具274生成门级描述310。如果需要,逻辑综合操作可根据包括在设计规格302或RTL描述306中的约束,在所选择的路径中添加或去除流水线寄存器。在步骤312期间,物理综合操作(例如,使用诸如布局和布线工具276的布局和布线以及最优化操作)可在目标集成电路上的优选位置中放置和连接门级描述310中的不同门电路,以满足给定目标标准(例如,最小化区域和最大化布线效率或者最小化路径延迟和最大化时钟频率或其任何组合)。物理综合操作可根据包括在设计规格302或RTL描述306中的约束,在所选择的路径中添加或去除寄存器。物理综合312的输出为掩模层次布局描述316。
电路设计系统100可包括时序估计器314(例如,形成为最优化工具274、工具276或工具278的部分),该时序估计器314可用于估计电路设计的同步元件之间的延迟。例如,时序估计器314可估计寄存器之间的延迟(例如,基于互连、中间组合逻辑的长度等)。如果需要,可基于度量(诸如松弛(例如,所需到达时间和信号到达时间之间的差异)、松弛比、互连拥塞或其他时序度量)估计延迟。电路设计系统100可使用所估计的延迟来确定电路组的位置,并且帮助保证该延迟满足时序要求(例如,关键路径延迟要求)或其他性能约束。
时序估计器314可经配置产生估计延迟,该延迟包括对寄存器流水线操作的调整。例如,可基于寄存器数目给包括寄存器流水线操作的路径分配估计延迟值,其中该寄存器数目用于该特定路径中的寄存器流水线操作(例如,可通过划分估计的用于路径的延迟值来计算估计延迟值,而不需要通过用于寄存器流水线操作的寄存器数目进行寄存器流水线操作)。
考虑其中电路设计具有给定路径的方案,其中已经限定了该给定路径的最大寄存器流水线深度和最小寄存器流水线深度。进一步考虑给定路径漏掉一个或多个目标标准。仅举几例,例如,时序估计器314 可确定给定路径具有大于目标延迟的延迟,该目标延迟针对路径指定为一个目标标准。时序估计器314可检测给定路径在逻辑综合308之前、期间和之后或者物理综合312之前、期间和之后具有较大延迟,其中该物理综合312可包括诸如聚类、划分、布局和布线的操作。在该方案中以及在当前寄存器流水线深度小于最大寄存器流水线深度的条件下,逻辑综合308或物理综合312可添加寄存器到路径中,从而增大寄存器流水线深度并潜在地改善给定路径的性能。
类似地,考虑给定路径大幅度地满足所有目标标准。例如,时序估计器314可确定给定路径具有小于目标延迟的延迟,该目标延迟针对路径指定为一个目标标准。在该方案中以及在当前寄存器流水线深度大于最小寄存器流水线深度的条件下,逻辑综合308或物理综合312 可从路径去除寄存器,从而减小寄存器流水线深度并减小给定路径中的潜伏期。
图4示出以自动流水线操作能力设计集成电路的示例性步骤的流程图。在步骤410期间,接收包含路径的路径描述的电路描述,其中该路径包括多个路径实施。多个路径实施中的每个与预定的流水线寄存器数目关联。在步骤420处,可接收限定路径的一个或多个目标标准的约束。在步骤430处,可接收限定路径的一个或多个流水线最优化约束的约束。CAD工具(诸如来自图2的逻辑综合和最优化工具274 或布局和布线工具276)可在步骤440期间选择多个路径实施中的一个作为路径的目标实施,并且可在步骤450期间将所选择的目标路径实施传送到用户、CAD工具或两者。在步骤460期间,仿真工具(诸如图2的行为仿真工具272)可使用电路描述和所选择的目标路径实施来执行仿真。
具有选择路径(例如,在时序分析期间使用图2的分析工具278 确定的)的电路描述的性能可漏掉给定性能目标,从而指示进一步最优化的需求。图5示出以自动流水线操作能力使电路设计最优化的示例性步骤。
在步骤510期间,可接收具有两个或多个路径的电路描述。每个路径可具有寄存器的初始数目以及包含可允许的寄存器数目的预定组。
改变一个路径中的寄存器数目可要求改变第二路径中的寄存器数目,从而限制该第二路径中寄存器数目的选择。考虑其中两个路径馈送相同组合逻辑的方案,如图6所示。可通过组合逻辑640产生第一信号,并通过具有寄存器610A到610B的第一路径中的第一寄存器流水线将该第一信号传播到组合逻辑660。在组合逻辑660中,该第一信号可与第二信号组合,其中该第二信号通过组合逻辑650产生,并通过具有寄存器610C到610D的第二路径中的第二寄存器流水线传播。
添加寄存器到第一寄存器流水线(例如,在寄存器610A和610B 之间)也要求添加寄存器到第二寄存器流水线(而反之亦然),以便在组合逻辑660中能够实现分别通过组合逻辑640和650产生的第一信号和第二信号的组合。类似地,从第一寄存器流水线去除寄存器要求从第二流水线去除寄存器(而反之亦然)。
在不同方案中,可串联布置每个具有寄存器流水线的两个路径,如图7所示。在该方案中,通过组合逻辑732产生的第一信号可通过具有寄存器720A到720B的第一路径中的第一寄存器流水线被传播。该第一信号可在组合逻辑734中与其他信号组合并产生第二信号,其中通过具有寄存器720C到720D的第二路径中的第二寄存器流水线将该第二信号传播到组合逻辑736。进一步考虑要求组合逻辑732和组合逻辑736之间的寄存器的总数目为恒量(例如,由于一些工业标准,组合路径可具有给定潜伏期要求)。
在该方案中,添加寄存器到第一寄存器流水线(例如,在寄存器 720A和720B之间)也要求从第二寄存器流水线去除寄存器(而反之亦然)。类似地,从第一寄存器流水线去除寄存器要求添加寄存器到第二寄存器流水线(而反之亦然)。
在可选方案中,两个或多个路径可共享至少部分寄存器流水线(即,两个或多个路径中的每个可经过相同的寄存器)。该可选方案可简化为该方案,在该方案中两个或多个路径并行布置并馈送(或通过相同节点馈送)相同节点(即,共享的寄存器流水线),并且所有的这些路径与共享的寄存器流水线串联布置。因此,添加寄存器到并行路径中的一个要求添加寄存器到所有其他并行路径,并且从并行路径中的一个去除寄存器要求从所有其他并行路径中去除寄存器。类似地,如果要求组合路径中的每个中寄存器的总数目为恒量,则添加寄存器到共享的寄存器流水线或到所有并行路径可要求从并行路径中的每个或共享的寄存器流水线去除寄存器。因此,如果要求组合路径中的每个中的寄存器的总数目为恒量,则从共享的寄存器流水线或所有并行路径中去除寄存器可要求添加寄存器到并行路径中的每个或共享的寄存器流水线。
在图5的步骤510期间接收具有两个路径和一组可允许的寄存器数目的电路描述之后,对基于多组可允许的寄存器数目的寄存器数目的选择可要求进一步的限制。例如,在其中两个路径馈送相同逻辑的事件中,如步骤512期间所检查的(并且结合图6如上所示),或者在其中两个路径串联的事件中,如步骤516期间所检查的(并且结合图7 如上所示),可在步骤514期间相应地限制寄存器数目的选择。
在步骤520期间,可为一个或两个路径选择寄存器的不同数目。该选择可基于寄存器的初始数目、多组可允许的寄存器的数目和在步骤 514期间确定的最终限制。可在步骤530期间创建包括修改路径的不同电路描述。
在步骤540A和540B期间,可分别编译不同电路描述和每个路径中具有寄存器的初始数目的电路描述(例如,使用图2的CAD工具 220)。可分别在步骤550A和550B期间确定两个编译后的电路描述的性能结果(例如,使用图2的分析工具278)。
在步骤565期间,可对两个电路描述分级(例如,基于在步骤550A 和550B期间确定的性能结果),并且可在步骤570期间选择两个电路描述中的一个(例如,基于在步骤565期间确定的等级)。
如果需要,可以以多次迭代执行最优化。在这种情况下,所选择的电路描述替换每个路径中具有寄存器的初始数目的电路描述,并且下一次迭代从步骤510开始。
可通过自动流水线操作使包括多位互连的电路设计最优化,如图8 所示。图9示出具有流水线寄存器的这种多位互连的示例性图示。组合逻辑942通过N位互连与组合逻辑944连接。N位互连中的每位可具有寄存器流水线。例如,N位互连的第一位可具有寄存器910A到 910B,第二位可具有寄存器910C到910D等,直到最后一位,其可具有寄存器910E到910D。
如先前在图6的上下文中所示,添加寄存器到N位互连中的任一位可要求添加寄存器到所有其他(N-1)位互连。类似地,从N位互连中的任一位去除寄存器可要求从所有其他(N-1)位互连中去除寄存器。
CAD工具(诸如图2的CAD工具220中的一个(例如,逻辑综合和最优化工具274或布局和布线工具276))可在图8的步骤842期间接收包括并行多位互连的电路描述,其中在多位互连中的至少一个互连上具有潜伏期范围限制。在步骤844处,分析工具(例如,图2的分析工具278中的一个)可测量所接收的电路描述的性能。
在步骤846期间,可基于所测量的性能结果作出关于是否要求性能改善的决定。响应要求性能改善的决定,CAD工具可在步骤852期间确定当前流水线操作是否在潜伏期上限以下(即,是否能够添加寄存器到当前寄存器流水线)。可在步骤862期间基于步骤852作出决定。响应当前流水线操作在潜伏期上限以下的决定,CAD工具可在返回到步骤846之前,在步骤864处将寄存器插入到每个互连中、记录寄存器插入并测量性能结果。只要要求性能改善并且当前流水线操作在潜伏期上限以下,则可迭代地重复步骤846、852、862和864。
在其中不要求性能改善的事件中,CAD工具可在步骤848期间决定性能松弛是否为所需的。响应性能松弛为所需的决定(例如,为了减小区域),CAD工具可在步骤854期间确定当前流水线操作是否在潜伏期下限以上(即,是否能够从当前寄存器流水线去除寄存器)以及每个互连中是否存在至少一个寄存器。可在步骤856期间基于步骤 854作出决定。响应当前流水线操作在潜伏期下限以上并且每个互连具有至少一个寄存器的决定,CAD工具可在返回到步骤848之前,在步骤858处从每个互连中去除寄存器、记录寄存器去除并测量性能结果。只要性能松弛为所需的、当前流水线操作在潜伏期下限以上并且每个互连具有至少一个寄存器,则可迭代地重复步骤848、854、856和858。
具有多位互连的电路描述的最优化可响应以下决定终止:在步骤 848期间不要求性能松弛,或者在步骤856期间当前流水线操作不在潜伏期下限以上或并不是所有互连都具有至少一个寄存器,或者在步骤 862期间当前流水线操作不在潜伏期上限以下。在终止电路描述的最优化之后,仿真器工具(诸如图2的行为仿真工具272中的一个)可在步骤868期间选择地仿真具有记录寄存器插入和/或寄存器去除的电路描述。
上述仅仅为本发明的示例性原理,且在不脱离本发明的范围和精神的情况下,本领域的技术人员可做出各种修改。可单独或以任何组合的形式实施上述实施例。
本文所描述的方法和装置可并入任何合适的集成电路或集成电路的系统。例如,方法和装置可并入许多类型的器件,诸如微处理器或其他IC。仅举几例,示例性IC包括可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程集成电路(EPLD)、电可擦除可编程集成电路(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列(FPGA)、专用标准产品(ASSP)、专用集成电路(ASIC)。
本文所描述的可编程集成电路可为数据处理系统的部分,该数据处理系统包括以下部件中的一个或多个:处理器;存储器;I/O电路以及外围器件。数据处理系统能够用于广泛的应用程序中,诸如计算机网络、数据网络、使用仪器、视频处理、数字信号处理或其中使用可编程或可再编程逻辑的优点为所需的任何合适的其他应用程序。可编程集成电路能够用于执行多个不同的逻辑功能。例如,可编程集成电路能够被配置为处理器或与系统处理器协同工作的控制器。可编程集成电路还可用作仲裁器,其用于仲裁到数据处理系统中共享资源的访问。在另一个示例中,可编程集成电路能够被配置为在处理器和系统中其他部件中的一个之间的接口。在一个实施例中,可编程集成电路可为受让人所有的器件系列中的一个。
尽管以特定顺序描述了方法操作,但应当理解,可在所描述的操作之间执行其他操作,可调整所描述的操作以使它们发生在稍微不同的时间处,或者所描述的操作可分布在系统中,该系统允许在与处理关联的不同时间间隔处发生处理操作,只要以期望的方式执行覆盖操作的处理。
附加实施例:
附加实施例1。一种方法,其包括:
接收在集成电路中将源节点电耦合到目标节点的路径的路径描述,其中路径描述包括路径的多个路径实施,并且其中预定的流水线寄存器数目与所述多个路径实施中的每个路径实施关联;接收路径的目标标准;接收路径的流水线最优化约束,其中流水线最优化约束指定路径的至少一个可允许的流水线寄存器数目;以及选择满足目标标准的目标路径实施,其中从多个路径实施中选择该目标路径实施,并且与目标路径实施关联的预定的流水线寄存器数目为路径的至少一个可允许的流水线寄存器数目中的一个。
附加实施例2.根据附加实施例1所述的方法,其中路径的目标标准选自包括以下项的组:
性能、区域使用、寄存器数目、功率消耗、时钟频率、吞吐量和潜伏期。
附加实施例3。根据附加实施例1所述的方法,其中路径的流水线最优化约束选自包括寄存器数目、潜伏期和吞吐量的组。
附加实施例4。根据附加实施例1所述的方法,其中集成电路包括可编程集成电路,并且其中路径的流水线最优化约束基于可编程集成电路中的资源约束。
附加实施例5。根据附加实施例4所述的方法,其中可编程集成电路中的资源约束包括布线资源约束,其选自包括以下项的组:局部互连线数目、水平互连线数目、垂直互连线数目、对角互连线数目、布线多路复用器数目和时钟信号分布线数目。
附加实施例6。根据附加实施例4所述的方法,其中可编程集成电路中的资源约束包括存储资源约束,其选自包括以下项的组:寄存器数目、锁存器数目,和存储器元件数目。
附加实施例7。根据附加实施例1所述的方法,其中路径描述包括寄存器传输级(RTL)描述。
附加实施例8。根据附加实施例1所述的方法,其中从用户输入接收流水线最优化约束。
附加实施例9。根据附加实施例1所述的方法,其中从配置文件接收流水线最优化约束。
附加实施例10。根据附加实施例9所述的方法,其中配置文件包括另一个流水线最优化约束,其指定路径的最小和最大可允许的流水线寄存器数目。
附加实施例11。根据附加实施例9所述的方法,其中配置文件包括另一个流水线最优化约束,其指定集成电路的所有路径的最大可允许的流水线寄存器数目。
附加实施例12。根据附加实施例9所述的方法,其中配置文件包括附加流水线最优化约束,其指定集成电路上所有路径的最小可允许的流水线寄存器数目。
附加实施例13。根据附加实施例1所述的方法,其中从行为模型接收流水线最优化约束。
附加实施例14。根据附加实施例1所述的方法,进一步包括:确定满足目标标准的改善的路径实施,该改善的路径实施与目标路径实施的相应路径性能标准比较,具有改善的路径性能标准,其中与改善的路径实施关联的流水线寄存器数目不同于路径描述的预定的流水线寄存器数目;以及将所确定的流水线寄存器数目传送到用户。
附加实施例15。根据附加实施例14所述的方法,其中确定流水线寄存器数目进一步包括:确定所确定的流水线寄存器数目是否满足路径的流水线最优化约束。
附加实施例16。根据附加实施例1所述的方法,其中所选择的目标路径实施违反目标性能标准中的至少一个,方法进一步包括:确定满足目标标准的改善的路径实施,其中与改善的路径实施关联的流水线寄存器数目不同于路径描述的预定的流水线寄存器数目;以及将所确定的流水线寄存器数目传送到用户。
附加实施例17。根据附加实施例16所述的方法,其中确定流水线寄存器数目进一步包括:确定所确定的流水线寄存器数目是否满足路径的流水线最优化约束。
附加实施例18。根据附加实施例1所述的方法,进一步包括:将目标路径实施传送到集成电路的设计描述。
附加实施例19。一种使用在计算设备上实施的设计自动化工具以最优化集成电路的电路设计的方法,其包括:接收具有第一路径和第二路径的第一电路设计描述,其中每个路径在集成电路中将源节点电耦合到目标节点,其中第一路径包括寄存器的第一数目,并且其中第二路径包括寄存器的第二数目;接收第一路径的第一可允许的寄存器数目以及接收第二路径的第二可允许的寄存器数目;从第一可允许的寄存器数目中选择寄存器的第三数目以及从第二可允许的寄存器数目中选择寄存器的第四数目;以及基于第一电路设计描述创建第二电路设计描述,其中第二电路设计描述包括第一路径中的寄存器的第三数目和第二路径中的寄存器的第四数目。
附加实施例20。根据附加实施例19所述的方法,进一步包括:至少部分编译第一和第二电路设计描述;以及获得至少部分编译后的第一和第二电路设计描述的性能结果。
附加实施例21。根据附加实施例20所述的方法,进一步包括:基于至少部分编译后的第一和第二电路设计描述的性能结果生成等级;以及基于等级选择第一和第二电路设计描述中的一个。
附加实施例22。根据附加实施例19所述的方法,其中电路设计的一部分从第一路径和第二路径接收信号,并且其中选择寄存器的第三数目和寄存器的第四数目进一步包括:基于第一可允许的寄存器数目、寄存器的第一数目、第二可允许的寄存器数目和寄存器的第二数目限定所述第一路径中的第一可允许的寄存器数目的子集;基于第一可允许的寄存器数目、寄存器的第一数目、第二可允许的寄存器数目和寄存器的第二数目限定第二路径中的第二可允许的寄存器数目的子集;以及从第一可允许的寄存器数目子集选择寄存器的第三数目以及从第二可允许的寄存器数目子集选择寄存器的第四数目。
附加实施例23。根据附加实施例19所述的方法,其中第一电路设计描述包括具有寄存器的总数目的路径,其中该路径包括第一路径和第二路径,并且基于寄存器的总数目选择寄存器的第三数目和寄存器的第四数目。
附加实施例24。根据附加实施例19所述的方法,其中第一电路描述包括验证指令,并且其中第一路径中的第一可允许的寄存器数目和第二路径中的第二可允许的寄存器数目基于验证指令。
附加实施例25。用于编译电路描述的非暂时性计算机可读存储介质,其中电路描述指定多个并行路径,其中多个并行路径中的路径具有对寄存器的总数目的限制,该非暂时性计算机可读存储介质包括指令,其用于:确定寄存器的当前数目小于路径中对寄存器的总数目的限制;响应寄存器的当前数目小于路径中对寄存器的总数目的限制的确定,在多个并行路径中的每个中插入寄存器;以及记录寄存器插入。
附加实施例26。根据附加实施例25所述的非暂时性计算机可读存储介质,进一步包括指令,其用于:响应寄存器的插入测量具有插入寄存器的电路描述的性能结果。
附加实施例27。根据附加实施例25所述的非暂时性计算机可读存储介质,进一步包括指令,其用于:从多个并行路径的每个中去除寄存器;以及记录该寄存器去除。
附加实施例28。根据附加实施例25所述的非暂时性计算机可读存储介质,进一步包括指令,其用于:基于寄存器的当前数目和路径中对寄存器的总数目的限制确定附加寄存器的最大数目;在多个并行路径的每个中插入附加寄存器的最大数目;以及测量在多个并行路径的每个中具有附加寄存器的最大数目的电路描述的性能结果。
附加实施例29。根据附加实施例28所述的非暂时性计算机可读存储介质,进一步包括指令,其用于:从多个并行路径的每个中去除寄存器;测量具有从多个并行路径的每个中去除的寄存器的电路描述的性能结果;以及基于性能结果的比较,在多个路径的每个中具有附加寄存器的最大数目的电路描述和具有从多个路径的每个中去除寄存器的电路描述之间选择。
上述仅仅为本发明的示例性原理,并且在不脱离本发明的范围和精神的情况下,本领域的技术人员可做出各种修改。可单独或以任何组合的形式实施上述实施例。
Claims (19)
1.一种使用电路设计计算设备的方法,其包括:
使用所述电路设计计算设备,接收在集成电路中将源节点电耦合到目标节点的路径的路径描述,其中所述路径描述包括所述路径的多个路径实施,并且其中预定的流水线寄存器数目与所述多个路径实施中的每个路径实施关联;
使用所述电路设计计算设备,接收所述路径的目标标准,其中所述路径的所述目标标准选自包含以下项的组:性能、区域使用、寄存器数目、功率消耗、时钟频率、吞吐量和潜伏期;
使用所述电路设计计算设备,接收所述路径的流水线最优化约束,其中所述流水线最优化约束指定所述路径的至少一个可允许的流水线寄存器数目;以及
使用所述电路设计计算设备,选择满足所述目标标准的目标路径实施,从所述多个路径实施选择所述目标路径实施,并且与所述目标路径实施关联的所述预定的流水线寄存器数目为所述路径的所述至少一个可允许的流水线寄存器数目中的一个。
2.根据权利要求1所述的方法,其中所述路径的所述流水线最优化约束选自包含寄存器数目、潜伏期和吞吐量的组。
3.根据权利要求1所述的方法,其中所述集成电路包括可编程集成电路,并且其中所述路径的所述流水线最优化约束基于所述可编程集成电路中的资源约束。
4.根据权利要求1所述的方法,其中所述路径描述包括寄存器传输级即RTL描述。
5.根据权利要求1所述的方法,其中从用户输入端接收所述流水线最优化约束。
6.根据权利要求1所述的方法,其中从配置文件接收所述流水线最优化约束,并且其中所述配置文件包括另一个流水线最优化约束,其指定所述路径的最小和最大可允许的流水线寄存器数目。
7.根据权利要求1所述的方法,进一步包括:
确定满足所述目标标准的改善的路径实施,所述改善的路径实施与所述目标路径实施的相应路径性能标准相比,具有改善的路径性能标准,其中与所述改善的路径实施关联的流水线寄存器数目不同于所述路径描述的所述预定的流水线寄存器数目;以及
将所确定的流水线寄存器数目传送给用户。
8.根据权利要求1所述的方法,其中所选择的目标路径实施违反所述目标性能标准中的至少一个,所述方法进一步包括:
确定满足所述目标标准的改善的路径实施,其中与所述改善的路径实施关联的流水线寄存器数目不同于所述路径描述的所述预定的流水线寄存器数目;以及
将所确定的流水线寄存器数目传送给用户。
9.根据权利要求1所述的方法,进一步包括:
将所述目标路径实施传送到所述集成电路的设计描述。
10.一种使用在计算设备上实施的设计自动化工具以最优化集成电路的电路设计的方法,其包括:
使用所述计算设备,接收具有第一路径和第二路径的第一电路设计描述,其中每个路径在集成电路中将源节点电耦合到目标节点,其中所述第一路径包括寄存器的第一数目,并且其中所述第二路径包括寄存器的第二数目;
使用所述计算设备,接收确定第一可允许数目和第二可允许数目的信息,其中所述第一可允许数目和所述第二可允许数目分别确定所述第一路径可允许多少个寄存器并且所述第二路径可允许多少个寄存器;
使用所述计算设备,基于寄存器的所述第一可允许数目选择寄存器的第三数目,用于所述第一路径的寄存器;
使用所述计算设备,基于寄存器的所述第二可允许的数目选择寄存器的第四数目,用于所述第二路径的寄存器;以及
使用所述计算设备,通过修改所述第一电路设计描述创建第二电路设计描述,以在所述第一路径中包括所述第三数目的寄存器并且在所述第二路径中包括所述第四数目的寄存器。
11.根据权利要求10所述的方法,进一步包括:
至少部分编译所述第一和第二电路设计描述;
获得所述至少部分编译后的第一和第二电路设计描述的性能结果;
基于所述至少部分编译后的第一和第二电路设计描述的所述性能结果生成等级;以及
基于所述等级选择所述第一和第二电路设计描述中的一个。
12.根据权利要求10所述的方法,其中所述电路设计的一部分从所述第一路径和所述第二路径中接收信号,并且其中选择寄存器的所述第三数目和寄存器的所述第四数目包括:
基于所述第一可允许的寄存器数目、寄存器的所述第一数目、所述第二可允许的寄存器数目和寄存器的所述第二数目,定义所述第一路径中所述第一可允许的寄存器数目的子集;
基于所述第一可允许的寄存器数目、寄存器的所述第一数目、所述第二可允许的寄存器数目和寄存器的所述第二数目,定义所述第二路径中所述第二可允许的寄存器数目的子集;以及
从所述第一可允许的寄存器数目的子集中选择寄存器的所述第三数目,以及从所述第二可允许的寄存器数目的子集中选择寄存器的所述第四数目。
13.根据权利要求10所述的方法,其中所述第一电路设计描述包括具有寄存器的总数目的路径,其中所述路径包括第一路径和第二路径,并且其中基于寄存器的所述总数目选择寄存器的所述第三数目和寄存器的所述第四数目。
14.根据权利要求10所述的方法,其中所述第一电路描述包括验证指令,并且其中所述第一路径中的所述第一可允许的寄存器数目和所述第二路径中的所述第二可允许的寄存器数目基于所述验证指令。
15.用于编译电路描述的非暂时性计算机可读存储介质,其中所述电路描述指定包括至少第一路径和第二路径的多个并行路径,其中所述多个并行路径的给定路径对寄存器的总数目有限制,所述非暂时性计算机可读存储介质包括用于如下的指令:
接收用于所述多个路径的所述第一路径的寄存器的所述总数目的限制;
接收用于所述多个路径的所述第二路径的寄存器的所述总数目的限制;
确定所述第一路径中寄存器的当前数目小于所述第一路径中对寄存器的所述总数目的所述限制;
确定所述第二路径中寄存器的当前数目小于所述第二路径中对寄存器的所述总数目的所述限制;
响应于确定所述第一路径中寄存器的所述当前数目小于所述第一路径中对寄存器的所述总数目的所述限制,在所述第一路径中的插入寄存器;
响应于确定所述第二路径中寄存器的所述当前数目小于所述第二路径中对寄存器的所述总数目的所述限制,在所述第二路径中的插入寄存器;以及
记录所述寄存器插入。
16.根据权利要求15所述的非暂时性计算机可读存储介质,进一步包括用于如下的指令:
响应于所述寄存器的插入,测量具有所述插入寄存器的所述电路描述的性能结果。
17.根据权利要求15所述的非暂时性计算机可读存储介质,进一步包括用于如下的指令:
从所述多个并行路径中的每个中去除寄存器;以及
记录所述寄存器去除。
18.根据权利要求15所述的非暂时性计算机可读存储介质,进一步包括用于如下的指令:
基于寄存器的所述当前数目和所述路径中对寄存器的所述总数目的所述限制确定附加寄存器的最大数目;
在所述多个并行路径中的每个中插入所述最大数目的附加寄存器;以及
测量在所述多个并行路径中的每个中具有所述最大数目的附加寄存器的所述电路描述的性能结果。
19.根据权利要求18所述的非暂时性计算机可读存储介质,进一步包括用于如下的指令:
从所述多个并行路径的每个中去除寄存器;
测量具有从所述多个并行路径的每个中去除所述寄存器的所述路径描述的性能结果;以及
基于所述性能结果的比较,在所述多个路径的每个中具有所述最大数目的附加寄存器的所述电路描述和具有从所述多个路径的每个中去除所述寄存器的所述电路描述之间选择。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/064,031 US9251300B2 (en) | 2013-10-25 | 2013-10-25 | Methods and tools for designing integrated circuits with auto-pipelining capabilities |
US14/064,031 | 2013-10-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104573169A CN104573169A (zh) | 2015-04-29 |
CN104573169B true CN104573169B (zh) | 2019-05-28 |
Family
ID=51730308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410532302.3A Active CN104573169B (zh) | 2013-10-25 | 2014-10-10 | 以自动流水线操作能力设计集成电路的方法和工具 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9251300B2 (zh) |
EP (1) | EP2866160A3 (zh) |
CN (1) | CN104573169B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331827B1 (en) * | 2013-06-27 | 2019-06-25 | Altera Corporation | Method and apparatus for processing data and performing crosstalk simulation |
US9710591B1 (en) * | 2015-02-20 | 2017-07-18 | Altera Corporation | Method and apparatus for performing register retiming in the presence of timing analysis exceptions |
US9971858B1 (en) * | 2015-02-20 | 2018-05-15 | Altera Corporation | Method and apparatus for performing register retiming in the presence of false path timing analysis exceptions |
US9811621B2 (en) * | 2015-05-01 | 2017-11-07 | Altera Corporation | Implementing integrated circuit designs using depopulation and repopulation operations |
US9552456B2 (en) * | 2015-05-29 | 2017-01-24 | Altera Corporation | Methods and apparatus for probing signals from a circuit after register retiming |
US9600623B1 (en) | 2015-09-22 | 2017-03-21 | International Business Machines Corporation | Scheduling simultaneous optimization of multiple very-large-scale-integration designs |
EP3244327A1 (de) * | 2016-05-10 | 2017-11-15 | dSPACE digital signal processing and control engineering GmbH | Verfahren zum erstellen einer zuordnungsliste |
US10114917B1 (en) | 2016-08-01 | 2018-10-30 | The Mathworks, Inc. | Systems and methods for mapping executable models to programmable logic device resources |
CN109086467B (zh) * | 2017-06-14 | 2023-05-02 | 上海复旦微电子集团股份有限公司 | 可编程逻辑器件的i/o单元布局方法及装置、介质及设备 |
US10572618B2 (en) * | 2017-11-28 | 2020-02-25 | International Business Machines Corporation | Enabling automatic staging for nets or net groups with VHDL attributes |
CN108319459B (zh) * | 2018-02-12 | 2022-04-29 | 芯峰科技(广州)有限公司 | 一种行为级描述到rtl描述的ccc编译器 |
US10970446B1 (en) * | 2018-05-24 | 2021-04-06 | Xlnx, Inc. | Automated pipeline insertion on a bus |
CN108920825A (zh) * | 2018-07-03 | 2018-11-30 | 山东芯革电子科技有限公司 | 一种基于IP核的SoC可视化设计方法 |
US11093682B2 (en) * | 2019-01-14 | 2021-08-17 | Microsoft Technology Licensing, Llc | Language and compiler that generate synchronous digital circuits that maintain thread execution order |
US10878150B1 (en) * | 2019-09-17 | 2020-12-29 | Xilinx, Inc. | Loop optimization in a circuit design netlist |
US11956127B2 (en) | 2021-03-10 | 2024-04-09 | Arteris, Inc. | Incremental topology modification of a network-on-chip |
CN113657059B (zh) * | 2021-08-17 | 2023-05-09 | 成都视海芯图微电子有限公司 | 一种适用于点云数据处理器的自动化设计方法及装置 |
CN114417755B (zh) * | 2021-12-09 | 2023-09-19 | 芯华章科技股份有限公司 | 集成电路设计验证 |
US12067335B2 (en) * | 2022-04-11 | 2024-08-20 | Arteris, Inc. | Automatic configuration of pipeline modules in an electronics system |
CN115526135A (zh) * | 2022-10-09 | 2022-12-27 | 中山大学 | 一种基于差分约束系统的高层次综合工具优化方法及系统 |
CN116991956B (zh) * | 2023-09-28 | 2023-12-08 | 北京云枢创新软件技术有限公司 | 一种基于eda的信号交互方法、电子设备及存储介质 |
CN118069447B (zh) * | 2024-04-12 | 2024-07-16 | 济南智多晶微电子有限公司 | 自动化fpga布线资源测试方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1873646A (zh) * | 2005-05-31 | 2006-12-06 | 阿尔特拉公司 | 产生等同于现场可编程门阵列的结构化专用集成电路的方法 |
US7360190B1 (en) * | 2003-07-11 | 2008-04-15 | Altera Corporation | Method and apparatus for performing retiming on field programmable gate arrays |
CN101833590A (zh) * | 2009-03-11 | 2010-09-15 | 新思科技有限公司 | 使用简化网表来生成布图规划的方法和设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162704B2 (en) * | 2003-05-09 | 2007-01-09 | Synplicity, Inc. | Method and apparatus for circuit design and retiming |
US7676768B1 (en) * | 2006-05-19 | 2010-03-09 | Altera Corporation | Automatic asynchronous signal pipelining |
US8271569B2 (en) * | 2008-06-17 | 2012-09-18 | Freescale Semiconductor, Inc. | Techniques for performing discrete fourier transforms on radix-2 platforms |
US8042010B2 (en) * | 2008-10-22 | 2011-10-18 | Synopsys, Inc. | Two-phase clock-stalling technique for error detection and error correction |
US8793644B2 (en) | 2011-06-02 | 2014-07-29 | Qualcomm Technologies, Inc. | Display and automatic improvement of timing and area in a network-on-chip |
US9430243B2 (en) * | 2012-04-30 | 2016-08-30 | Apple Inc. | Optimizing register initialization operations |
US8739101B1 (en) * | 2012-11-21 | 2014-05-27 | Maxeler Technologies Ltd. | Systems and methods for reducing logic switching noise in parallel pipelined hardware |
US8893071B1 (en) * | 2013-07-12 | 2014-11-18 | Xilinx, Inc. | Methods of pipelining a data path in an integrated circuit |
-
2013
- 2013-10-25 US US14/064,031 patent/US9251300B2/en active Active
-
2014
- 2014-09-26 EP EP14186539.4A patent/EP2866160A3/en not_active Ceased
- 2014-10-10 CN CN201410532302.3A patent/CN104573169B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7360190B1 (en) * | 2003-07-11 | 2008-04-15 | Altera Corporation | Method and apparatus for performing retiming on field programmable gate arrays |
CN1873646A (zh) * | 2005-05-31 | 2006-12-06 | 阿尔特拉公司 | 产生等同于现场可编程门阵列的结构化专用集成电路的方法 |
CN101833590A (zh) * | 2009-03-11 | 2010-09-15 | 新思科技有限公司 | 使用简化网表来生成布图规划的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US9251300B2 (en) | 2016-02-02 |
US20150121319A1 (en) | 2015-04-30 |
CN104573169A (zh) | 2015-04-29 |
EP2866160A2 (en) | 2015-04-29 |
EP2866160A3 (en) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104573169B (zh) | 以自动流水线操作能力设计集成电路的方法和工具 | |
Cong et al. | Architecture and synthesis for on-chip multicycle communication | |
CN102708221B (zh) | 用于对局部重配置模块进行布局和布线的方法和设备 | |
US7958470B1 (en) | Method and system for false path analysis | |
US20070276645A1 (en) | Power modelling in circuit designs | |
Dolgov et al. | 2019 cad contest: Lef/def based global routing | |
US20050268268A1 (en) | Methods and systems for structured ASIC electronic design automation | |
CN107918694A (zh) | 用于减少集成电路上的延迟的方法 | |
CN106503282A (zh) | 集成电路设计的增量寄存器重定时 | |
US9443050B2 (en) | Low-voltage swing circuit modifications | |
Bouden-Romdhane et al. | Quick-Turnaround ASIC Design in VHDL: Core-Based Behavioral Synthesis | |
JP5681280B2 (ja) | アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ | |
CN106250577A (zh) | 用于执行有关位于与不同的时钟域关联的电路之间的同步区域的寄存器重定时操作的方法 | |
CN108073762A (zh) | 用于利用经延迟的初始化来验证经重定时的电路的方法 | |
Kim et al. | Pulser gating: A clock gating of pulsed-latch circuits | |
US9047434B2 (en) | Clustering for processing of circuit design data | |
US10540464B1 (en) | Critical path aware voltage drop analysis of an integrated circuit | |
Lu et al. | Clock mesh synthesis with gated local trees and activity driven register clustering | |
Zhang et al. | Path delay test generation toward activation of worst case coupling effects | |
Lee et al. | High-level synthesis with distributed controller for fast timing closure | |
Ahmadi et al. | Symbolic noise analysis approach to computational hardware optimization | |
Densmore et al. | Microarchitecture development via metropolis successive platform refinement | |
Matos et al. | A benchmark suite to jointly consider logic synthesis and physical design | |
Park et al. | Backward-annotation of post-layout delay information into high-level synthesis process for performance optimization | |
Lee et al. | Critical-path-aware high-level synthesis with distributed controller for fast timing closure |
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 |