CN113449477B - 数字电路的连接方法、装置、电子设备和存储介质 - Google Patents

数字电路的连接方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113449477B
CN113449477B CN202110724897.2A CN202110724897A CN113449477B CN 113449477 B CN113449477 B CN 113449477B CN 202110724897 A CN202110724897 A CN 202110724897A CN 113449477 B CN113449477 B CN 113449477B
Authority
CN
China
Prior art keywords
path
logic device
logic
devices
circuit
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
Application number
CN202110724897.2A
Other languages
English (en)
Other versions
CN113449477A (zh
Inventor
王万丰
汪波
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202110724897.2A priority Critical patent/CN113449477B/zh
Publication of CN113449477A publication Critical patent/CN113449477A/zh
Application granted granted Critical
Publication of CN113449477B publication Critical patent/CN113449477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

一种数字电路的连接方法、装置、电子设备及存储介质。该数字电路的连接方法包括:确定每个路径终点对应的至少一条关键路径;基于至少一条关键路径,确定第一逻辑器件集合;基于多条电路路径和第一逻辑器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合;对第二逻辑器件集合进行克隆处理,以得到第二逻辑器件集合对应的克隆器件集合;基于多条电路路径,对第三逻辑器件集合及克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径。该数字电路的连接方法可以对路径起点和路径终点之间的电路进行有效连接和克隆,从而解决由于多个路径终点对应于同一个路径起点而造成的难以优化时序的问题。

Description

数字电路的连接方法、装置、电子设备和存储介质
技术领域
本公开的实施例涉及一种数字电路的连接方法、数字电路的连接装置、电子设备和非瞬时性计算机可读存储介质。
背景技术
对于数字电路,尤其是大规模集成电路在设计完成后,需要对其时序进行验证。静态时序分析(Static Timing Analysis,STA),或称静态时序验证,是电子工程中对数字电路的时序进行计算、预计的工作流程,该流程不需要通过输入激励的方式进行仿真。
时序路径(Timing Path)是指设计中数据信号传播过程中所经过的逻辑路径,每一条时序路径都存在与之对应的一个起点(Start Point)和一个终点(End Point)。静态时序分析是基于时序路径进行时序分析,以判断是否存在违反设计规则的错误。
发明内容
本公开至少一实施例提供一种数字电路的连接方法,所述数字电路包括多个器件和多条电路路径,所述多个器件包括位于路径起点的第一器件和多个第二器件,所述多个第二器件分别位于与所述路径起点对应的多个路径终点,所述多条电路路径包括基于电路特性确定的在所述路径起点和所述多个路径终点之间的所有路径,所述方法包括:确定每个路径终点对应的至少一条关键路径;基于所述至少一条关键路径,确定第一逻辑器件集合,所述第一逻辑器件集合包括所述多个路径终点对应的所有关键路径上的除所述多个第二器件之外的全部逻辑器件;基于所述多条电路路径和所述第一逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,所述第二逻辑器件集合包括需要克隆的逻辑器件,所述第三逻辑器件集合包括不需要克隆的逻辑器件;对所述第二逻辑器件集合进行克隆处理,以得到所述第二逻辑器件集合对应的克隆器件集合;基于所述多条电路路径,对所述第三逻辑器件集合及所述克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,确定每个路径终点对应的至少一条关键路径,包括:确定所述路径起点和第m个路径终点之间的n条电路路径;计算与所述n条电路路径一一对应的n个时序裕量值;确定所述n个时序裕量值中的最小时序裕量值,将所述n条电路路径中对应于所述最小时序裕量值的至少一条电路路径,作为所述第m个路径终点对应的至少一条关键路径,m为正整数且小于等于所述多个路径终点的总数,n为正整数且小于等于所述多条电路路径的总条数。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,确定每个路径终点对应的至少一条关键路径,包括:确定所述路径起点和第m个路径终点之间的n条电路路径;计算与所述n条电路路径一一对应的n个电路延时值;确定所述n个电路延时值中的最大电路延时值,将所述n条电路路径中对应于所述最大电路延时值的至少一条电路路径,作为所述第m个路径终点对应的至少一条关键路径,m为正整数且小于等于所述多个路径终点的总数,n为正整数且小于等于所述多条电路路径的总条数。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,基于所述多条电路路径和所述第一逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,包括:确定所述多个路径终点分别对应的多个关键路径器件集合,每个关键路径器件集合包括每个路径终点对应的至少一条关键路径上的全部器件,所述全部器件至少包括所述第一器件和位于对应的路径终点的第二器件;基于所述多条电路路径、所述第一逻辑器件集合和所述多个关键路径器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,基于所述多条电路路径、所述第一逻辑器件集合和所述多个关键路径器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,包括:针对所述第一逻辑器件集合中的每个逻辑器件,基于所述多条电路路径,确定与所述每个逻辑器件对应的第四逻辑器件集合,所述第四逻辑器件集合包括与所述每个逻辑器件的输出管脚相连的至少一个逻辑器件;基于所述多个关键路径器件集合和多个所述第四逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,基于所述多条电路路径、所述第一逻辑器件集合和所述多个关键路径器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,包括:响应于所述第一逻辑器件集合中的第i个逻辑器件不为所述路径起点,基于所述多条电路路径,确定所述第i个逻辑器件对应的第四逻辑器件集合,所述第四逻辑器件集合包括与所述第i个逻辑器件的输入管脚相连的至少一个逻辑器件;基于所述多个关键路径器件集合和多个所述第四逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,i为正整数且小于等于所述全部逻辑器件的总数。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,基于所述多条电路路径、所述第一逻辑器件集合和所述多个关键路径器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,还包括:响应于所述第i个逻辑器件为所述路径起点,从所述多个路径终点中选择任一路径终点作为第一路径终点,将所述第i个逻辑器件添加至所述第一路径终点所对应的第三逻辑集合,并将所述第i个逻辑器件添加至所述多个路径终点中除所述第一路径终点以外的其他路径终点分别对应的第二逻辑集合。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,基于所述多个关键路径器件集合和多个所述第四逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,包括:确定与第j个第四逻辑器件集合对应的目标逻辑器件;对于第j个第四逻辑器件集合:响应于所述第j个第四逻辑器件集合与所述多个器件集合中的任一个关键路径器件集合的交集不为空,且与除所述任一个关键路径器件集合以外的所有关键路径器件集合的交集均为空:确定所述任一个关键路径器件集合对应的第二路径终点,将所述目标逻辑器件添加至所述第二路径终点对应的第三逻辑集合;响应于所述第j个第四逻辑器件集合与所述多个关键路径器件集合中的至少两个关键路径器件集合的交集不为空:确定所述至少两个关键路径器件集合对应的至少两个路径终点,选择所述至少两个路径终点中的任一个路径终点作为第三路径终点,将所述目标逻辑器件添加至所述第三路径终点所对应的第三逻辑集合,并将所述目标逻辑器件添加至所述至少两个路径终点中除所述第三路径终点以外的其他路径终点分别对应的第二逻辑集合,其中,j为正整数且小于等于多个所述第四逻辑器件集合的总数。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,对所述第二逻辑器件集合进行克隆处理,以得到所述第二逻辑器件集合对应的克隆器件集合,包括:响应于所述第二逻辑器件集合包括至少一个第二逻辑器件,创建与每个第二逻辑器件对应的克隆器件,所述每个第二逻辑器件与所述对应的克隆器件的功能和管脚定义完全相同,且所述每个第二逻辑器件与所述对应的克隆器件位于同一个电路逻辑层;将所述每个第二逻辑器件对应的克隆器件组成所述克隆器件集合。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,基于所述多条电路路径,对所述第三逻辑器件集合及所述克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径,包括:响应于所述克隆器件集合包括至少一个克隆器件,基于所述多条电路路径,对每个克隆器件进行第一连接处理;响应于所述第三逻辑器件集合包括至少一个第三逻辑器件,基于所述多条电路路径,对每个第三逻辑器件进行第二连接处理;基于所述第一连接处理和所述第二连接处理,得到每个路径终点对应的至少一条连接路径。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,基于所述多条电路路径,对每个克隆器件进行第一连接处理,包括:针对每个克隆器件,确定所述克隆器件对应的第二逻辑器件;基于所述多条电路路径,确定所述克隆器件对应的连接器件,在所述多条电路路径中,所述连接器件的至少一个管脚与所述第二逻辑器件的至少一个管脚相连;响应于所述连接器件在所述克隆器件集合中存在对应的克隆连接器件:基于所述连接器件与所述第二逻辑器件的连接关系,将所述克隆连接器件的至少一个管脚与所述克隆器件的至少一个管脚相连;响应于所述连接器件在所述克隆器件集合中不存在对应的克隆连接器件:基于所述连接器件与所述第二逻辑器件的连接关系,将所述克隆器件的至少一个管脚与所述连接器件的至少一个管脚相连。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,基于所述多条电路路径,对每个第三逻辑器件进行第二连接处理,包括:针对每个第三逻辑器件,基于所述多条电路路径,确定所述第三逻辑器件对应的驱动逻辑器件,在所述多条电路路径中,所述驱动逻辑器件的至少一个输出管脚与所述第三逻辑器件的至少一个输入管脚相连;响应于所述驱动逻辑器件在所述克隆器件集合中存在对应的克隆驱动逻辑器件:断开所述第三逻辑器件的至少一个输入管脚与所述驱动逻辑器件的至少一个输出管脚的连接,并将所述第三逻辑器件的至少一个输入管脚与所述克隆驱动逻辑器件的至少一个克隆输出管脚相连,所述至少一个克隆输出管脚在所述克隆驱动逻辑器件中的管脚位置与所述至少一个输出管脚在所述驱动逻辑器件中的管脚位置相同。
例如,在本公开至少一实施例提供一种数字电路的连接方法中,所述第一器件包括逻辑器件;所述第二器件包括逻辑器件或模拟器件。
本公开至少一实施例提供一种数字电路的连接装置,所述数字电路包括多个器件和多条电路路径,所述多个器件包括位于路径起点的第一器件和多个第二器件,所述多个第二器件分别位于与所述路径起点对应的多个路径终点,所述多条电路路径包括基于电路特性确定的在所述路径起点和所述多个路径终点之间的所有路径,所述装置包括:关键路径确定单元,配置为确定每个路径终点对应的至少一条关键路径;第一集合确定单元,配置为基于所述至少一条关键路径,确定第一逻辑器件集合,所述第一逻辑器件集合包括所述多个路径终点对应的所有关键路径上的除所述多个第二器件之外的全部逻辑器件;分类单元,配置为基于所述多条电路路径和所述第一逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,所述第二逻辑器件集合包括需要克隆的逻辑器件,所述第三逻辑器件集合包括不需要克隆的逻辑器件;克隆处理单元,配置为对所述第二逻辑器件集合进行克隆处理,以得到所述第二逻辑器件集合对应的克隆器件集合;连接处理单元,配置为基于所述多条电路路径,对所述第三逻辑器件集合及所述克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径。
本公开至少一实施例提供一种电子设备,包括:存储器,非瞬时性地存储有计算机可执行指令;处理器,配置为运行所述计算机可执行指令,所述计算机可执行指令被所述处理器运行时实现根据本公开任一实施例所述的数字电路的连接方法。
本公开至少一实施例提供一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据本公开任一实施例所述的数字电路的连接方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一实施例提供的一种数字电路的连接方法的示意性流程图;
图2为本公开至少一实施例提供的一种电路路径的示意图;
图3A至图3E分别示出了执行本公开至少一实施例提供的数字电路的连接方法的过程示意图;
图4为本公开至少一实施例提供的一种数字电路的连接装置的示意性框图;
图5为本公开至少一实施例提供的一种电子设备的示意性框图;
图6为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
随着CPU(Central Processing Unit,中央处理器)、GPU(Graphics ProcessingUnit,图形处理器)等高性能处理器的数字电路的工作频率越来越高,数字电路的时序收敛变得越来越困难。为了对电路进行更有效的优化,在高性能数字电路的优化过程中通常会引入版图信息,例如版图信息包括电路中的端口(port)及RAM(Random Access Memory,随机存取存储器)、ROM(Read-Only Memory,只读存储器)、寄存器等器件(cell)的物理位置约束。
例如,某个时序路径的起点对应多个终点,该起点和对应的多个终点分别构成多条时序路径。例如,在一些情况下,多个终点可能为直接带有相应的位置约束的端口或者器件,这些端口或者器件可能因物理位置的约束导致相互之间的距离很远;例如,在另一些情况下,多个终点可能为直接带有相应的位置约束的端口或者器件,时序路径上的与这些端口或器件具有电信号传输关系的其他时序逻辑器件为满足时序约束往往倾向于靠近这些端口或器件,当这些端口或器件因物理位置的约束导致相互之间的距离很远时,会间接导致这些其他时序逻辑器件间的距离很远。
在这些情况下,由于各个终点受同一个起点驱动,或者起点与多个终点构成的多条时序路径之间存在有公有路径(Common Path),往往使得该起点和对应的多个终点之间的时序约束难以有效优化,每个终点很难获得对该终点最有利的优化。
此外,由于电路设计通常比较复杂,在优化过程中不断调整参数会引入更多的迭代周期,增加项目开发的时间成本。
本公开至少一实施例提供一种数字电路的连接方法、数字电路的连接装置、电子设备和非瞬时性计算机可读存储介质。该数字电路的连接方法包括:确定每个路径终点对应的至少一条关键路径;基于至少一条关键路径,确定第一逻辑器件集合,第一逻辑器件集合包括多个路径终点对应的所有关键路径上的除多个第二器件之外的全部逻辑器件;基于多条时序路径和第一逻辑器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,第二逻辑器件集合包括需要克隆的逻辑器件,第三逻辑器件集合包括不需要克隆的逻辑器件;对第二逻辑器件集合进行克隆处理,以得到第二逻辑器件集合对应的克隆器件集合;基于多条时序路径,对第三逻辑器件集合及克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径。
本公开至少一实施例提供的数字电路的连接方法先确定至少一条关键路径,以对路径起点和路径终点之间的电路进行有效连接和克隆,从而解决多个路径终点对应于同一个路径起点而难以优化时序的问题。
需要说明的是,在本公开的实施例中,逻辑器件包括组合逻辑器件和时序逻辑器件。这里,时序逻辑器件指代数字电路设计中的触发器、寄存器、锁存器等器件,时序逻辑器件对输入信号具有存储和记忆功能,当接收到时钟信号的有效沿或有效电平时,能够触发时序逻辑器件对输入信号的存储及输出信号的状态改变。组合逻辑器件指代数字电路设计中的与门、或门等实现逻辑运算的器件,例如数据选择器、数值比较器等,组合逻辑器件对输入信号不具备存储和记忆功能,在任一时刻,组合逻辑器件的输出信号的状态取决于当前时刻的输入信号的状态。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
图1为本公开至少一实施例提供的一种数字电路的连接方法的示意性流程图。
例如,数字电路包括多个器件和多条电路路径。例如,多条电路路径为对应于同一个路径起点的多个路径终点与该路径起点之间的所有路径。
例如,多个器件包括位于路径起点的第一器件,例如,第一器件可以包括逻辑器件。例如,多个器件还包括分别位于与该路径起点对应的路径终点的多个第二器件,例如,第二器件可以包括逻辑器件或模拟器件,例如,第二器件可以为从路径起点开始的时序路径,或者经过路径起点的时序路径所能到达的模拟器件、逻辑器件等。
例如,多条电路路径包括基于电路特性确定的在路径起点和多个路径终点之间的所有路径,每条电路路径对应的起点为该路径起点,每条电路路径对应的终点分别为多个路径终点中的一个路径终点,每条电路路径上除位于路径起点的第一器件和位于路径终点的第二器件外,所经过的器件均为组合逻辑器件或模拟器件。
例如,可以对电路设计进行初始优化,从中选择不满足时序约束或难以时序收敛的时序路径对应的起点和终点作为路径起点和对应的路径终点。例如,可以选择在电路拓扑结构中对电路时序具有影响的组合逻辑器件作为路径起点,进而确定对应的多个路径终点。
例如,电路路径可以基于时序路径确定,或者可以基于器件之间的布线距离确定,或者可以根据数据传输流向确定等,本公开的实施例对此不作限制。
图2为本公开至少一实施例提供的一种电路路径的示意图。如图2所示,编号为101b的器件为组合逻辑器件,其可以作为路径起点,也即编号为101b的器件为位于路径起点的第一器件;编号为201a的器件为时序逻辑器件,其可以作为路径终点,也即编号为201a的器件为位于路径终点的第二器件;编号为202b的器件为模拟器件,其可以作为路径终点,也即编号为202b的器件为位于路径终点的第二器件。
图2所示的电路路径的示意图包括两条电路路径,第一条电路路径为以器件101b为路径起点,经过组合逻辑器件301和组合逻辑器件304后,以器件201a为路径终点的电路路径(1);第二条电路路径为以器件101b为路径起点,经过组合逻辑器件301、组合逻辑器件302和组合逻辑器件303后,以器件202b为路径终点的电路路径(2)。电路路径(1)和电路路径(2)具有一段从器件101b至器件301的公有路径。
例如,如图1所示,本公开实施例提供的数字电路的连接方法包括步骤S110至S150。
在步骤S110,确定每个路径终点对应的至少一条关键路径。
在步骤S120,基于至少一条关键路径,确定第一逻辑器件集合。
例如,第一逻辑器件集合包括多个路径终点对应的所有关键路径上的除多个第二器件之外的全部逻辑器件。
在步骤S130,基于多条电路路径和第一逻辑器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合。
例如,第二逻辑器件集合包括需要克隆的逻辑器件,第三逻辑器件集合包括不需要克隆的逻辑器件。
在步骤S140,对第二逻辑器件集合进行克隆处理,以得到第二逻辑器件集合对应的克隆器件集合。
在步骤S150,基于多条电路路径,对第三逻辑器件集合及克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径。
例如,对于路径起点和多个路径终点之间的所有电路路径,由于可能这些电路路径之间存在公有路径,因而在优化过程中不能得到对自身最有效的优化。因此,可以首先确定每个路径终点对应的至少一条关键路径,以优先对时序最差的电路路径进行分析,并基于每个路径终点对应的至少一条关键路径之间的公有路径,确定位于公有路径上的器件作为需要克隆的逻辑器件,不位于公有路径上的器件作为不需要克隆的逻辑器件,对需要克隆的逻辑器件进行克隆处理,对克隆后的逻辑器件和不需要克隆的逻辑器件进行连接处理,以将这些时序较差的关键路径转换成彼此之间不具有公有路径的多条电路路径,去除关键路径之间的公有路径,解决电路优化过程中多个路径终点之间对路径起点和公有路径的共同依赖的问题。
例如,该路径起点和一个路径终点之间可能存在多条电路路径,从多条电路路径中选择时序较差或不满足时序约束的至少一条电路路径作为关键路径。
对于步骤S110,例如,可以基于静态时序分析的相关参数,确定至少一条关键路径。
例如,在一些实施例中,对数字电路进行静态时序分析时可以采用时序裕量值(slack value)来表征时序是否满足设计要求。例如,正的时序裕量值表示满足时序约束,负的时序裕量值表示不满足时序约束,且此时时序裕量值越小表示其时序相对越差。
例如,在一些示例中,步骤S110可以包括:确定路径起点和第m个路径终点之间的n条电路路径;计算与n条电路路径一一对应的n个时序裕量值;确定n个时序裕量值中的最小时序裕量值,将n条电路路径中对应于最小时序裕量值的至少一条电路路径,作为第m个路径终点对应的至少一条关键路径,其中,m为正整数且小于等于多个路径终点的总数,n为正整数且小于等于多条电路路径的总条数。
由于在这种方式下,时序裕量值越小表示其时序相对越差,更加需要对其进行修改以满足时序要求,因而可以选择最小时序裕量值对应的至少一条电路路径作为关键路径。例如,在一些示例中,最小时序裕量值对应一条电路路径,将这一条电路路径作为关键路径;例如,在另一些示例中,可能多条电路路径均对应于最小时序裕量值,则将这多条电路路径均作为关键路径。
例如,在另一些实施例中,可以以电路延时作为选择依据,例如这里电路延时可以指代基准数据从第一器件经某条电路路径传输至一个第二器件所需的时间,这里基准数据为在第一器件中基于一个时钟沿的跳变所采集得到数据。通常,电路延时越大,其对应的电路路径的时序相对越差。
例如,在一些示例中,步骤S110可以包括:确定路径起点和第m个路径终点之间的n条电路路径;计算与n条电路路径一一对应的n个电路延时值;确定n个电路延时值中的最大电路延时值,将n条电路路径中对应于最大电路延时值的至少一条电路路径,作为第m个路径终点对应的至少一条关键路径,其中,m为正整数且小于等于多个路径终点的总数,n为正整数且小于等于多条电路路径的总条数。
由于在这种方式下,电路延时值越大表示其时序相对越差,更加需要对其进行修改以满足时序要求,因而可以选择最大电路延时值对应的至少一条电路路径作为关键路径。
例如,还可以时序裕量值小于于预设裕量阈值的至少一条电路路径作为关键路径;例如,还可以将电路延时值大于预设延时阈值的至少一条电路路径作为关键路径;例如,也可以将电路延时值和时序裕量值结合起来作为判断关键路径的标准,或者,也可以采用其他方式来确定时序相对较差的关键路径,本公开的实施例对此不作限制。
通过引入静态时序分析的相关参数来对电路进行初步分析,从中选择出关键路径进行后续的克隆和连接,提高效率,减少迭代周期。
对于步骤S130,例如,基于多条电路路径,将第一逻辑器件集合划分为与每个终点相对应的需要克隆的逻辑器件集合,也即第二逻辑器件集合,和不需要克隆的逻辑器件集合,也即第三逻辑器件集合。
例如,在一些示例中,步骤S130可以包括:确定多个路径终点分别对应的多个关键路径器件集合,其中,每个关键路径器件集合包括每个路径终点对应的至少一条关键路径上的全部器件,全部器件至少包括所述第一器件和位于对应的路径终点的第二器件;基于多条电路路径、第一逻辑器件集合和多个关键路径器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合。
例如,对于图2所示的电路路径,假设电路路径(1)为器件201a对应的关键路径,电路路径(2)为器件202b对应的关键路径。则第一逻辑器件集合={101b、301、302、303、304},器件201a对应的关键路径器件集合={101b、301、304、201a},器件202b对应的关键路径器件集合={101b、301、302、303、202b}。
例如,在一些实施例中,基于多条电路路径、第一逻辑器件集合和多个关键路径器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,可以包括:针对第一逻辑器件集合中的每个逻辑器件,基于多条电路路径,确定与每个逻辑器件对应的第四逻辑器件集合,其中,第四逻辑器件集合包括与每个逻辑器件的输出管脚相连的至少一个逻辑器件;基于多个关键路径器件集合和多个第四逻辑器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合。
例如,此时第四逻辑器件集合为与第一逻辑器件集合中的某个逻辑器件的输出管脚相连的逻辑器件的集合。
例如,基于多个关键路径器件集合和多个第四逻辑器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,可以包括:确定与第j个第四逻辑器件集合对应的目标逻辑器件;对于第j个第四逻辑器件集合:响应于第j个第四逻辑器件集合与多个器件集合中的任一个关键路径器件集合的交集不为空,且与除任一个关键路径器件集合以外的所有关键路径器件集合的交集均为空:确定任一个关键路径器件集合对应的第二路径终点,将目标逻辑器件添加至第二路径终点对应的第三逻辑集合;响应于第j个第四逻辑器件集合与多个关键路径器件集合中的至少两个关键路径器件集合的交集不为空:确定至少两个关键路径器件集合对应的至少两个路径终点,选择至少两个路径终点中的任一个路径终点作为第三路径终点,将目标逻辑器件添加至第三路径终点所对应的第三逻辑集合,并将目标逻辑器件添加至至少两个路径终点中除第三路径终点以外的其他路径终点分别对应的第二逻辑集合。这里,j为正整数且小于等于多个第四逻辑器件集合的总数。
例如,对于第三逻辑器件集合的确定,本质上为确定多条关键路径中的不位于公有路径上的逻辑器件,因而若第j个第四逻辑器件集合只与一个关键路径器件集合的交集不为空,与其他关键路径器件集合的交集均为空,则说明第j个第四逻辑器件集合对应的目标逻辑器件不位于公有路径上,不需要对其克隆,可以将其添加至对应的第三逻辑集合。
例如,对于第二逻辑器件集合的确定,本质上为确定多条关键路径中的位于公有路径上的逻辑器件,因而若第j个第四逻辑器件集合与至少两个关键路径器件集合的交集不为空,则说明第j个第四逻辑器件集合对应的目标逻辑器件位于公有路径上,需要对其克隆。并且,由于克隆器件的目的是为经过步骤S150的连接处理后去除公有路径,因而可以从至少两个路径终点中选择任一个路径终点作为第三路径终点,对于第三路径终点可以直接使用原逻辑器件(也即第j个第四逻辑器件集合对应的目标逻辑器件),不需要进行克隆,从而可以将目标逻辑器件添加至第三路径终点所对应的第三逻辑器件集合;对于除第三路径终点外的其他路径终点,则需要克隆后的目标逻辑器件以重新构成电路路径,避免公有路径上的连接,因而将目标逻辑器件添加至至少两个路径终点中除第三路径终点以外的其他路径终点分别对应的第二逻辑集合。
例如,在另一些实施例中,基于多条电路路径、第一逻辑器件集合和多个关键路径器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,可以包括:响应于第一逻辑器件集合中的第i个逻辑器件不为路径起点,基于多条电路路径,确定第i个逻辑器件对应的第四逻辑器件集合,其中,第四逻辑器件集合包括与第i个逻辑器件的输入管脚相连的至少一个逻辑器件;基于多个关键路径器件集合和多个第四逻辑器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,其中,i为正整数且小于等于全部逻辑器件的总数。
例如,基于多条电路路径、第一逻辑器件集合和多个关键路径器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,还可以包括:响应于第i个逻辑器件为路径起点,从多个路径终点中选择任一路径终点作为第一路径终点,将第i个逻辑器件添加至第一路径终点所对应的第三逻辑集合,并将第i个逻辑器件添加至多个路径终点中除第一路径终点以外的其他路径终点分别对应的第二逻辑集合。
例如,此时第四逻辑器件集合为与第一逻辑器件集合中的某个逻辑器件的输入管脚相连的逻辑器件的集合,也即第四逻辑器件集合为第一逻辑器件集合中的某个逻辑器件的驱动逻辑器件集合。
例如,如果第i个逻辑器件为路径起点,可以从多个路径终点中选择任一个路径终点作为第一路径终点,对于第一路径终点可以直接使用第i个逻辑器件,不需要进行克隆,从而可以将第i个逻辑器件添加至第一路径终点所对应的第三逻辑集合;对于除第一路径终点外的其他路径终点,则需要克隆后的第i个逻辑器件以重新构成电路路径,避免公有路径上的连接,因而将目标逻辑器件添加多个路径终点中除第一路径终点以外的其他路径终点分别对应的第二逻辑集合。
例如,如果第i个逻辑器件不为路径起点,则可以按照上述的当第四逻辑器件集合为与第一逻辑器件集合中的某个逻辑器件的输出管脚相连的逻辑器件的集合时的方法进行处理,这里不再赘述。
例如,在一些示例中,步骤S140可以包括:响应于第二逻辑器件集合包括至少一个第二逻辑器件,创建与每个第二逻辑器件对应的克隆器件,其中,每个第二逻辑器件与对应的克隆器件的功能和管脚定义完全相同,且每个第二逻辑器件与对应的克隆器件位于同一个电路逻辑层;将每个第二逻辑器件对应的克隆器件组成克隆器件集合。
例如,对于第二逻辑集合中的第二逻辑器件,创建与其功能一致的克隆器件,克隆器件的管脚定义、端口定义、功能等与对应的第二逻辑器件完全相同,并且,第二逻辑器件与对应的克隆器件位于同一个电路逻辑层。例如,电路由多个层层嵌套的功能模块组成,克隆器件应当与对应的第二逻辑器件位于同一层级的功能模块。
例如,在一些示例中,步骤S150可以包括:响应于克隆器件集合包括至少一个克隆器件,基于多条电路路径,对每个克隆器件进行第一连接处理;响应于第三逻辑器件集合包括至少一个第三逻辑器件,基于多条电路路径,对每个第三逻辑器件进行第二连接处理;基于第一连接处理和第二连接处理,得到每个路径终点对应的至少一条连接路径。
例如,基于多条电路路径,对每个克隆器件进行第一连接处理,可以包括:针对每个克隆器件,确定克隆器件对应的第二逻辑器件;基于多条电路路径,确定克隆器件对应的连接器件,其中,在多条电路路径中,连接器件的至少一个管脚与第二逻辑器件的至少一个管脚相连;响应于连接器件在克隆器件集合中存在对应的克隆连接器件:基于连接器件与第二逻辑器件的连接关系,将克隆连接器件的至少一个管脚与克隆器件的至少一个管脚相连;响应于连接器件在克隆器件集合中不存在对应的克隆连接器件:基于连接器件与第二逻辑器件的连接关系,将克隆器件的至少一个管脚与连接器件的至少一个管脚相连。
例如,对于克隆器件集合EPx_BAK中的克隆器件u_EPx,其对应于第二逻辑器件集合EPx_B中的第二逻辑器件u,这里,x表示路径终点x,例如x可以为1、2、3...n,以分别代表n个不同的路径终点,例如EP1_B为路径终点1对应的第二器件集合,EP1_BAK为路径终点1对应的克隆器件集合,克隆器件集合EPx_BAK和第二器件集合EPx_B对应于同一个路径终点x。
例如,基于多条电路路径,获得器件之间的连接关系,确定克隆器件u_EPx对应的连接器件c,例如,连接器件c的至少一个输出管脚与第二逻辑器件u的至少一个输入管脚相连,或者连接器件c的至少一个输入管脚与第二逻辑器件u的至少一个输出管脚相连,并且,当连接器件c的至少一个输入管脚与第二逻辑器件u的至少一个输出管脚相连时,第二逻辑器件不能为路径起点,也就是说,当第二逻辑器件u为路径起点时,所确定的连接器件c只能为至少一个输出管脚与第二逻辑器件u的至少一个输入管脚相连的器件。
例如,若连接器件c在克隆器件集合EPx_BAK中存在对应的克隆连接器件c_EPx,基于连接器件与第二逻辑器件的连接关系,将克隆连接器件的至少一个管脚与克隆器件的至少一个管脚相连。例如,若连接器件c的至少一个输出管脚与第二逻辑器件u的至少一个输入管脚相连,则将克隆连接器件c_EPx的至少一个克隆输出管脚与克隆器件u_EPx的至少一个克隆输入管脚相连,例如,至少一个克隆输出管脚在克隆连接器件c_EPx中的管脚位置与至少一个输出管脚在连接器件c中的管脚位置相同,至少一个克隆输入管脚在克隆器件u_EPx中的管脚位置与至少一个输入管脚在第二逻辑器件u中的管脚位置相同。同样的,若连接器件c的至少一个输入管脚与第二逻辑器件u的至少一个输出管脚相连,将克隆连接器件c_EPx的至少一个克隆输入管脚与克隆器件u_EPx的至少一个克隆输出管脚相连。
例如,若连接器件c在克隆器件集合EPx_BAK中不存在对应的克隆连接器件c_EPx,基于连接器件c与第二逻辑器件u的连接关系,将克隆器件u_EPx的至少一个管脚与连接器件c的至少一个管脚相连。例如,若连接器件c的至少一个输出管脚与第二逻辑器件u的至少一个输入管脚相连,则将克隆器件u_EPx的至少一个克隆输入管脚与连接器件c的至少一个输出管脚相连,例如,至少一个克隆输入管脚在克隆器件u_EPx中的位置与至少一个输入管脚在第二逻辑器件u中的管脚位置相同。例如,若连接器件c的至少一个输入管脚与第二逻辑器件u的至少一个输出管脚相连,则将克隆器件u_EPx的至少一个克隆输出管脚与连接器件c的至少一个输入管脚相连。
例如,基于多条电路路径,对每个第三逻辑器件进行第二连接处理,可以包括:针对每个第三逻辑器件,基于多条电路路径,确定第三逻辑器件对应的驱动逻辑器件,其中,在多条电路路径中,驱动逻辑器件的至少一个输出管脚与第三逻辑器件的至少一个输入管脚相连;响应于驱动逻辑器件在克隆器件集合中存在对应的克隆驱动逻辑器件:断开至少一个输入管脚与至少一个输出管脚的连接,并将至少一个输入管脚与克隆驱动逻辑器件的至少一个克隆输出管脚相连,其中,至少一个克隆输出管脚在克隆驱动逻辑器件中的管脚位置与至少一个输出管脚在驱动逻辑器件中的管脚位置相同。
例如,针对第三逻辑器件集合EPx_K中的第三逻辑器件k,基于多条电路路径,获得器件之间的连接关系,确定第三逻辑器件k对应的驱动逻辑器件q,这里,驱动逻辑器件q的至少一个输出管脚与第三逻辑器件k的至少一个输入管脚相连。
例如,若驱动逻辑器件q在对应于同一路径终点x的克隆器件集合EPx_BAK中存在对应的克隆驱动逻辑器件q_EPx,则断开第三逻辑器件k的至少一个输入管脚与驱动逻辑器件q的至少一个输出管脚之间的连接,并将第三逻辑器件k的至少一个输入管脚与克隆驱动逻辑器件q_EPx的至少一个克隆输出管脚相连。
本公开所提供的数字电路的连接方法可以对电路路径中的关键路径上的每个器件进行分析,以确定每个器件是否应当被克隆,进而基于克隆后的器件和关键路径上的其他器件的电路连接关系进行重新连接,去除关键路径之间的公有路径,解决电路优化过程中多个路径终点之间对路径起点和公有路径的共同依赖的问题。
本公开所提供的数字电路的连接方法所得到的连接路径,例如,可以用于在电路设计过程中优化时序,例如,也可以在版图的布局布线已经完成后又修改了其中某个路径起点至路径终点之间的电路逻辑时,应用本公开所提供的方法对这条修改的路径进行调整,以减少直接进行电路整体优化所带来的时间成本。
图3A至图3E示出了执行本公开一实施例提供的数字电路的连接方法的过程示意图。
下面结合图3A至图3E,具体说明本公开至少一实施例提供的数字电路的连接方法的具体执行过程。
图3A为本公开另一实施例提供的电路路径的示意图。如图3A所示,编号为101a的器件为时序逻辑器件,其可以作为路径起点,也即编号为101a的器件为位于路径起点的第一器件;编号为201a的器件为时序逻辑器件,其可以作为路径终点,也即编号为201a的器件为位于路径终点的第二器件;编号为202a的器件为时序逻辑器件,其可以作为路径终点,也即编号为202a的器件为位于路径终点的第二器件。
图3A所示的电路路径的示意图在以器件101a作为路径起点时,至少包括三条电路路径,第一条电路路径为以器件101a为路径起点,经过组合逻辑器件301、组合逻辑器件302、组合逻辑器件303和组合逻辑器件304后,以器件201a为路径终点的电路路径(1);第二条电路路径为以器件101a为路径起点,经过组合逻辑器件301、组合逻辑器件305和组合逻辑器件304后,以器件201a为路径终点的电路路径(2);第三条电路路径为以器件101a为路径起点,经过组合逻辑器件301和组合逻辑器件306后,以器件202a为路径终点的电路路径(3)。电路路径(1)至电路路径(3)具有一段从器件101a至器件301的公有路径。
例如,下面以器件101a作为位于路径起点的第一器件为例进行说明。例如,此时器件101a为位于路径起点的第一器件,器件201a为位于路径终点(1)的第二器件,器件202b为位于路径终点(2)的第二器件,电路路径包括电路路径(1)至电路路径(3)。
首先,根据步骤S110,确定每个路径终点对应的至少一条关键路径。
例如,对于路径终点(1),其对应电路路径(1)和电路路径(2),例如,通过计算得到电路路径(1)对应的时序裕量值为-10,电路路径(2)对应的时序裕量值为-5,则时序裕量最小值为-10,将电路路径(1)作为路径终点(1)对应的关键路径。
例如,对于路径终点(2),其对应电路路径(3),例如,通过计算得到电路路径(3)对应的时序裕量值为-2,将将电路路径(3)作为路径终点(2)对应的关键路径。
接着,根据步骤S120,基于至少一条关键路径,确定第一逻辑器件集合。
例如,关键路径分别为电路路径(1)和电路路径(3),则第一逻辑器件集合U={101a,301,302,303,304,306}。也即第一逻辑器件集合由逻辑器件101a、逻辑器件301、逻辑器件302、逻辑器件303、逻辑器件304和逻辑器件306组成。
接着,根据步骤S130,基于多条电路路径和第一逻辑器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合。
例如,路径终点(1)对应的关键器件集合EP1_C={101a、301、302、303、304、201a}(以下简称为集合EP1_C),路径终点(2)对应的关键器件集合EP2_C={101a、301、306、202a}(以下简称为集合EP2_C)。
例如,针对第一逻辑器件集合U中的逻辑器件101a,其对应的第四逻辑器件集合u_C1={301}(以下简称为集合u_C1),由于集合u_C1与集合EP1_C和集合EP2_C的交集均不为空,如前所述,确定集合EP1_C和集合EP2_C分别对应的路径终点(1)和路径终点(2),选择路径终点(2)作为第三路径终点,将逻辑器件101a添加至路径终点(2)所对应的第三逻辑器件集合EP2_K,也即此时EP2_K={101a};将逻辑器件101a添加至路径终点(1)所对应的第二逻辑器件集合EP1_B,也即此时EP1_B={101a}。
之后,针对第一逻辑器件集合U中的逻辑器件301,其对应的第四逻辑器件集合u_C2={302、305、306},由于集合u_C2与集合EP1_C和集合EP2_C的交集均不为空,如前所述,确定集合EP1_C和集合EP2_C分别对应的路径终点(1)和路径终点(2),选择路径终点(2)作为第三路径终点,将逻辑器件301添加至路径终点(2)所对应的第三逻辑器件集合EP2_K,也即此时EP2_K={101a,301};将逻辑器件301添加至路径终点(1)所对应的第二逻辑器件集合EP1_B,也即此时EP1_B={101a,301}。
之后,针对第一逻辑器件集合U中的逻辑器件302,其对应的第四逻辑器件集合u_C3={303},由于集合u_C3仅与集合EP1_C的交集不为空,与集合EP2_C的交集为空,如前所述,选择路径终点(1)作为第二路径终点,将逻辑器件302添加至路径终点(1)所对应的第三逻辑器件集合EP1_K,也即此时EP1_K={302}。
之后,以此类推,针对第一逻辑器件集合U中的逻辑器件303、逻辑器件304及逻辑器件306执行如上所述的过程,得到路径终点(1)和路径终点(2)分别对应的第二逻辑器件集合和第三逻辑器件集合。
图3B为本公开一实施例提供的第二逻辑器件集合和第三逻辑器件集合的示意图,如图3B所示,路径终点(1)对应的第二逻辑器件集合EP1_B={101a,301},路径终点(1)对应的第三逻辑器件集合EP1_K={302,303,304},路径终点(2)对应的第二逻辑器件集合EP2_B={},路径终点(2)对应的第三逻辑器件集合EP2_K={101a,301,306},具体过程不再赘述。
需要说明的是,上述逻辑器件的分类结果并不唯一,选择不同的路径终点作为第三路径终点可以得到不同的第二逻辑器件集合和第三逻辑器件集合,本公开对此不作限制。
接着,在步骤S140,对第二逻辑器件集合进行克隆处理,以得到第二逻辑器件集合对应的克隆器件集合。
例如,第二逻辑器件集合EP1_B包括第二逻辑器件101a及第二逻辑器件301,对路径终点(1)对应的第二逻辑器件集合EP1_B进行克隆处理,以得到第二逻辑器件集合EP1_B对应的克隆器件集合EP1_BAK={101a_EP1,301_EP1},例如,克隆器件集合EP1_BAK包括与第二逻辑器件101a对应的克隆器件101a_EP1,以及与第二逻辑器件301对应的克隆器件301_EP1。例如,由于路径终点(2)对应的第二逻辑器件集合EP2_B为空集,其不存在对应的克隆器件集合。
图3C为本公开一实施例提供的克隆处理后的示意图。如图3C所示,对于路径终点(1)对应的第二逻辑器件集合EP1_B执行步骤S140中的克隆处理,得到对应的克隆器件集合EP1_BAK,也即在数字电路中增加了对应于逻辑器件101a的克隆器件101a_EP1和对应于逻辑器件301的克隆器件301_EP1。
接着,在步骤S150,对第三逻辑器件集合及克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径。
图3D为本公开一实施例提供的连接处理过程示意图。下面结合图3D,详细说明步骤S150的执行过程。
例如,在对每个克隆器件进行第一连接处理时,针对路径终点(1)对应的克隆器件集合EP1_BAK中的克隆器件101a_EP1,其对应于第二逻辑器件101a,如图3D所示,第二逻辑器件101a为路径起点,其没有对应的连接器件,因而无需进行后续判断。
例如,针对路径终点(1)对应的克隆器件集合EP1_BAK中的克隆器件301_EP1,其对应于第二逻辑器件301,如图3D所示,第二逻辑器件301的输入管脚与第二逻辑器件101a及逻辑器件307的输出管脚相连,因而克隆器件301_EP1对应的连接器件有连接器件101a(也即如前所述的第二逻辑器件101a)及连接器件307(也即如前所述的逻辑器件307)。
对于连接器件101a,其在克隆器件集合EP1_BAK中存在对应的克隆连接器件101a_EP1(也即如前所述的克隆器件101a_EP1),基于连接器件101a与第二逻辑器件301的连接关系,将克隆连接器件101a_EP1中对应的克隆输出管脚与克隆器件301_EP1中对应的克隆输入管脚相连,如图3D中的黑色粗线条501所示。
对于连接器件307,其在克隆器件集合EP1_BAK中不存在对应的克隆连接器件,基于连接器件307与第二逻辑器件301的连接关系,将克隆器件301_EP1中对应的克隆输入管脚与连接器件307中对应的输出管脚相连,如图3D中的黑色粗线条502所示。
例如,在对每个第三逻辑器件进行第二连接处理时,路径终点(1)对应的第三逻辑器件集合EP1_K={302,303,304},针对第三逻辑器件集合EP1_K中的第三逻辑器件302,如图3D所示,第三逻辑器件302的输入管脚与逻辑器件301的输出管脚相连,也即第三逻辑器件302对应驱动逻辑器件301(也即逻辑器件301),由于驱动逻辑器件301在路径终点(1)对应的克隆器件集合EP1_BAK中存在对应的克隆驱动逻辑器件301_EP1(也即克隆器件301_EP1),断开第三逻辑器件302的输入管脚与逻辑器件301的输出管脚之间的连接,如图3D中的黑色粗线条504所示,并将第三逻辑器件302对应的输入管脚与克隆驱动逻辑器件301_EP1中对应的克隆输出管脚相连,如图3D中的黑色粗线条503所示。
针对第三逻辑器件集合EP1_K中的第三逻辑器件303,如图3C所示,其对应的驱动逻辑器件为逻辑器件302,逻辑器件302在EP1_B中不存在对应的克隆器件,因此连接关系不发生改变。
针对第三逻辑器件集合EP1_K中的第三逻辑器件304,如图3C所示,其对应的驱动逻辑器件为逻辑器件303,逻辑器件303在EP1_B中不存在对应的克隆器件,因此连接关系不发生改变。
例如,路径终点(2)对应的第三逻辑器件集合EP2_K={101a,301},由于路径终点(2)对应的第二逻辑器件集合为空集,因而路径终点(2)不存在对应的克隆器件集合,因此连接关系不发生改变。
图3E示出了对图3A所示的数字电路执行本公开至少一实施例提供的数字电路的连接方法后的连接路径示意图。
如图3E所示的连接路径示意图至少包括三条连接路径,第一条连接路径为以器件101a_EP1为路径起点,经过组合逻辑器件301_EP1、组合逻辑器件302、组合逻辑器件303和组合逻辑器件304后,以器件201a为路径终点的连接路径(1);第二条连接路径为以器件101a为路径起点,经过组合逻辑器件301、组合逻辑器件305和组合逻辑器件304后,以器件201a为路径终点的连接路径(2);第三条连接路径为以器件101a为路径起点,经过组合逻辑器件301和组合逻辑器件306后,以器件202a为路径终点的连接路径(3)。连接路径(1)与连接路径(2)、连接路径(3)之间的公有路径被去除。
根据上述内容可以看出,每个路径终点所对应的时序较差的关键路径之间的公有路径被去除,使得每条电路路径都可以在电路优化过程中作出对自身最有利的优化,有效解决CPU、GPU等高速、高性能处理器或数字电路中因物理位置约束导致的时序违反(timingviolation)问题,并能够减少数字电路(例如高性能处理器)设计过程中的迭代周期,例如重新修改RTL(Register Transfer Level,寄存器转换级电路)或者版图设计调整所引入的迭代周期,缩短项目开发周期,提高项目开发效率。
与上述的数字电路的连接方法相对应,本公开至少一实施例还提供一种数字电路的连接装置,图4为本公开至少一实施例提供的一种数字电路的连接装置的示意性框图。
例如,该数字电路包括多个器件和多条电路路径,多个器件包括位于路径起点的第一器件和多个第二器件,多个第二器件位于与路径起点对应的多个路径终点,多条电路路径包括基于电路特性确定的在路径起点和多个路径终点之间的所有路径。
关于数字电路、第一器件、第二器件、电路路径的相关内容如前所述,这里不再赘述。
例如,如图4所示,数字电路的连接装置400包括:关键路径确定单元401、第一集合确定单元402、分类单元403、克隆处理单元404和连接处理单元405。
关键路径确定单元401配置为确定每个路径终点对应的至少一条关键路径。
第一集合确定单元402配置为基于所述至少一条关键路径,确定第一逻辑器件集合,其中,所述第一逻辑器件集合包括所述多个路径终点对应的所有关键路径上的除所述多个第二器件之外的全部逻辑器件。
分类单元403配置为基于所述多条电路路径和所述第一逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,其中,所述第二逻辑器件集合包括需要克隆的逻辑器件,所述第三逻辑器件集合包括不需要克隆的逻辑器件。
克隆处理单元404配置为对所述第二逻辑器件集合进行克隆处理,以得到所述第二逻辑器件集合对应的克隆器件集合。
连接处理单元405配置为基于所述多条电路路径,对所述第三逻辑器件集合及所述克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径。
例如,在一些实施例中,关键路径确定单元401执行确定每个路径终点对应的至少一条关键路径时,包括执行以下操作:确定路径起点和第m个路径终点之间的n条电路路径;计算与n条电路路径一一对应的n个时序裕量值;确定n个时序裕量值中的最小时序裕量值,将n条电路路径中对应于最小时序裕量值的至少一条电路路径,作为第m个路径终点对应的至少一条关键路径,其中,m为正整数且小于等于多个路径终点的总数,n为正整数且小于等于多条电路路径的总条数。
例如,在另一些实施例中,关键路径确定单元401执行确定每个路径终点对应的至少一条关键路径时,包括执行以下操作:确定路径起点和第m个路径终点之间的n条电路路径;计算与n条电路路径一一对应的n个电路延时值;确定n个电路延时值中的最大电路延时值,将n条电路路径中对应于最大电路延时值的至少一条电路路径,作为第m个路径终点对应的至少一条关键路径,其中,m为正整数且小于等于多个路径终点的总数,n为正整数且小于等于多条电路路径的总条数。
例如,分类单元403包括第一确定子单元和第二确定子单元。
例如,第一确定子单元配置为确定多个路径终点分别对应的多个关键路径器件集合,其中,每个关键路径器件集合包括每个路径终点对应的至少一条关键路径上的全部器件,全部器件至少包括第一器件和位于对应的路径终点的第二器件。
例如,第二确定子单元配置为基于多条电路路径、第一逻辑器件集合和多个关键路径器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合。
例如,第二确定子单元执行基于多条电路路径、第一逻辑器件集合和多个关键路径器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合时,包括执行以下操作:响应于第一逻辑器件集合中的第i个逻辑器件不为路径起点,基于多条电路路径,确定第i个逻辑器件对应的第四逻辑器件集合,其中,第四逻辑器件集合包括与第i个逻辑器件的输入管脚相连的至少一个逻辑器件;基于多个关键路径器件集合和多个第四逻辑器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,其中,i为正整数且小于等于全部逻辑器件的总数。
例如,第二确定子单元执行基于多条电路路径、第一逻辑器件集合和多个关键路径器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合时,还包括执行以下操作:响应于第i个逻辑器件为路径起点,从多个路径终点中选择任一路径终点作为第一路径终点,将第i个逻辑器件添加至第一路径终点所对应的第三逻辑集合,并将第i个逻辑器件添加至多个路径终点中除第一路径终点以外的其他路径终点分别对应的第二逻辑集合。
例如,第一确定子单元执行基于多个关键路径器件集合和多个第四逻辑器件集合,确定每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合时,包括执行以下操作:确定与第j个第四逻辑器件集合对应的目标逻辑器件;对于第j个第四逻辑器件集合:响应于第j个第四逻辑器件集合与多个器件集合中的任一个关键路径器件集合的交集不为空,且与除任一个关键路径器件集合以外的所有关键路径器件集合的交集均为空:确定任一个关键路径器件集合对应的第二路径终点,将目标逻辑器件添加至第二路径终点对应的第三逻辑集合;响应于第j个第四逻辑器件集合与多个关键路径器件集合中的至少两个关键路径器件集合的交集不为空:确定至少两个关键路径器件集合对应的至少两个路径终点,选择至少两个路径终点中的任一个路径终点作为第三路径终点,将目标逻辑器件添加至第三路径终点所对应的第三逻辑集合,并将目标逻辑器件添加至至少两个路径终点中除第三路径终点以外的其他路径终点分别对应的第二逻辑集合,其中,j为正整数且小于等于多个第四逻辑器件集合的总数。
例如,克隆处理单元404执行对第二逻辑器件集合进行克隆处理,以得到第二逻辑器件集合对应的克隆器件集合时,包括执行以下操作:响应于第二逻辑器件集合包括至少一个第二逻辑器件,创建与每个第二逻辑器件对应的克隆器件,其中,每个第二逻辑器件与对应的克隆器件的功能和管脚定义完全相同,且每个第二逻辑器件与对应的克隆器件位于同一个电路逻辑层;将每个第二逻辑器件对应的克隆器件组成克隆器件集合。
例如,连接处理单元405包括第一连接处理子单元、第二连接处理子单元和连接路径获取单元。
例如,第一连接处理子单元配置为响应于克隆器件集合包括至少一个克隆器件,基于多条电路路径,对每个克隆器件进行第一连接处理。
例如,第二连接处理子单元配置为响应于第三逻辑器件集合包括至少一个第三逻辑器件,基于多条电路路径,对每个第三逻辑器件进行第二连接处理。
例如,连接路径获取单元配置为基于第一连接处理和第二连接处理,得到每个路径终点对应的至少一条连接路径。
例如,第一连接处理子单元执行对每个克隆器件进行第一连接处理时,包括执行以下操作:针对每个克隆器件,确定克隆器件对应的第二逻辑器件;基于多条电路路径,确定克隆器件对应的连接器件,其中,在多条电路路径中,连接器件的至少一个管脚与第二逻辑器件的至少一个管脚相连;响应于连接器件在克隆器件集合中存在对应的克隆连接器件:基于连接器件与第二逻辑器件的连接关系,将克隆连接器件的至少一个管脚与克隆器件的至少一个管脚相连;响应于连接器件在克隆器件集合中不存在对应的克隆连接器件:基于连接器件与第二逻辑器件的连接关系,将克隆器件的至少一个管脚与连接器件的至少一个管脚相连。
例如,第二连接处理子单元执行对每个克隆器件进行第二连接处理时,包括执行以下操作:针对每个第三逻辑器件,基于多条电路路径,确定第三逻辑器件对应的驱动逻辑器件,其中,在多条电路路径中,驱动逻辑器件的至少一个输出管脚与第三逻辑器件的至少一个输入管脚相连;响应于驱动逻辑器件在克隆器件集合中存在对应的克隆驱动逻辑器件:断开第三逻辑器件的至少一个输入管脚与驱动逻辑器件的至少一个输出管脚的连接,并将至少一个输入管脚与克隆驱动逻辑器件的至少一个克隆输出管脚相连,其中,至少一个克隆输出管脚在克隆驱动逻辑器件中的管脚位置与至少一个输出管脚在驱动逻辑器件中的管脚位置相同。
例如,关键路径确定单元401、第一集合确定单元402、分类单元403、克隆处理单元404和连接处理单元405包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的关键路径确定单元401、第一集合确定单元402、分类单元403、克隆处理单元404和连接处理单元405的一些功能或全部功能。例如,关键路径确定单元401、第一集合确定单元402、分类单元403、克隆处理单元404和连接处理单元405可以是专用硬件器件,用来实现如上所述的关键路径确定单元401、第一集合确定单元402、分类单元403、克隆处理单元404和连接处理单元405的一些或全部功能。例如,关键路径确定单元401、第一集合确定单元402、分类单元403、克隆处理单元404和连接处理单元405可以是一个电路板或多个电路板的组合,用于实现如上所述的功能。在本申请实施例中,该一个电路板或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的存储器;以及(3)处理器可执行的存储在存储器中的固件。
需要说明的是,关键路径确定单元401用于实现图1所示的步骤S110,第一集合确定单元402用于实现图1所示的步骤S120,分类单元403用于实现图1所示的步骤S130,克隆处理单元404用于实现图1所示的步骤S140,连接处理单元405用于实现图1所示的步骤S150。从而关于关键路径确定单元401的具体说明可以参考上述数字电路的连接方法的实施例中图1所示的步骤S110的相关描述,关于第一集合确定单元402的具体说明可以参考上述数字电路的连接方法的实施例中图1所示的步骤S120的相关描述,关于分类单元403的具体说明可以参考上述数字电路的连接方法的实施例中图1所示的步骤S130的相关描述,关于克隆处理单元404的具体说明可以参考上述数字电路的连接方法的实施例中图1所示的步骤S140的相关描述,关于连接处理单元405的具体说明可以参考上述数字电路的连接方法的实施例中图1所示的步骤S150的相关描述。此外,数字电路的连接装置可以实现与前述数字电路的连接方法相似的技术效果,在此不再赘述。
本公开至少一实施例还提供一种电子设备,图5为本公开至少一实施例提供的一种电子设备的示意性框图。
例如,如图5所示,该电子设备包括处理器501、通信接口502、存储器503和通信总线504。处理器501、通信接口502、存储器503通过通信总线504实现相互通信,处理器501、通信接口502、存储器503等组件之间也可以通过网络连接进行通信。本公开对网络的类型和功能在此不作限制。
例如,存储器503用于非瞬时性地存储计算机可执行指令。处理器501用于运行计算机可执行指令时,计算机可执行指令被处理器501运行时实现根据上述任一实施例所述的数字电路的连接方法。关于该数字电路的连接方法的各个步骤的具体实现以及相关解释内容可以参见上述数字电路的连接方法的实施例,在此不作赘述。
例如,处理器501执行存储器503上所存储的程序而实现数字电路的连接方法的实现方式,与前述数字电路的连接方法的实施例部分所提及的实现方式相同,这里也不再赘述。
例如,通信总线504可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
例如,通信接口502用于实现电子设备与其他设备之间的通信。
例如,处理器501和存储器503可以设置在服务器端(或云端)。
例如,处理器501可以控制电子设备中的其它组件以执行期望的功能。处理器501可以是中央处理器(CPU)、网络处理器(NP)等,还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。中央处理元(CPU)可以为X86或ARM架构等。
例如,存储器503可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机可执行指令,处理器501可以运行所述计算机可执行指令,以实现电子设备的各种功能。在存储介质中还可以存储各种应用程序和各种数据等。
例如,关于电子设备执行数字电路的连接的过程的详细说明可以参考数字电路的连接方法的实施例中的相关描述,重复之处不再赘述。
图6为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。例如,如图6所示,在存储介质600上可以非暂时性地存储一个或多个计算机可执行指令601。例如,当计算机可执行指令601由处理器执行时可以执行根据上文所述的数字电路的连接方法中的一个或多个步骤。
例如,该存储介质600可以应用于上述电子设备和/或数字电路的连接装置500中。例如,存储介质600可以包括电子设备中的存储器503。
例如,关于存储介质600的说明可以参考电子设备的实施例中对于存储器的描述,重复之处不再赘述。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种数字电路的连接方法,其中,所述数字电路包括多个器件和多条电路路径,
所述多个器件包括位于路径起点的第一器件和多个第二器件,所述多个第二器件分别位于与所述路径起点对应的多个路径终点,
所述多条电路路径包括基于电路特性确定的在所述路径起点和所述多个路径终点之间的所有路径,
所述方法包括:
确定每个路径终点对应的至少一条关键路径,其中,所述至少一条关键路径为所述每个路径终点对应的电路路径中时序最差的电路路径;
基于所述至少一条关键路径,确定第一逻辑器件集合,其中,所述第一逻辑器件集合包括所述多个路径终点对应的所有关键路径上的除所述多个第二器件之外的全部逻辑器件;
基于所述多条电路路径和所述第一逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,其中,所述第二逻辑器件集合包括需要克隆的逻辑器件,所述第三逻辑器件集合包括不需要克隆的逻辑器件,所述第二逻辑器件集合包括的逻辑器件为位于所述多条电路路径的公有路径上的所有逻辑器件;
对所述第二逻辑器件集合进行克隆处理,以得到所述第二逻辑器件集合对应的克隆器件集合;
基于所述多条电路路径,对所述第三逻辑器件集合及所述克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径,其中,所述多个路径终点对应的所有连接路径之间不存在公有路径。
2.根据权利要求1所述的方法,其中,确定每个路径终点对应的至少一条关键路径,包括:
确定所述路径起点和第m个路径终点之间的n条电路路径;
计算与所述n条电路路径一一对应的n个时序裕量值;
确定所述n个时序裕量值中的最小时序裕量值,将所述n条电路路径中对应于所述最小时序裕量值的至少一条电路路径,作为所述第m个路径终点对应的至少一条关键路径,
其中,m为正整数且小于等于所述多个路径终点的总数,n为正整数且小于等于所述多条电路路径的总条数。
3.根据权利要求1所述的方法,其中,确定每个路径终点对应的至少一条关键路径,包括:
确定所述路径起点和第m个路径终点之间的n条电路路径;
计算与所述n条电路路径一一对应的n个电路延时值;
确定所述n个电路延时值中的最大电路延时值,将所述n条电路路径中对应于所述最大电路延时值的至少一条电路路径,作为所述第m个路径终点对应的至少一条关键路径,
其中,m为正整数且小于等于所述多个路径终点的总数,n为正整数且小于等于所述多条电路路径的总条数。
4.根据权利要求1所述的方法,其中,基于所述多条电路路径和所述第一逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,包括:
确定所述多个路径终点分别对应的多个关键路径器件集合,其中,每个关键路径器件集合包括每个路径终点对应的至少一条关键路径上的全部器件,所述全部器件至少包括所述第一器件和位于对应的路径终点的第二器件;
基于所述多条电路路径、所述第一逻辑器件集合和所述多个关键路径器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合。
5.根据权利要求4所述的方法,其中,基于所述多条电路路径、所述第一逻辑器件集合和所述多个关键路径器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,包括:
针对所述第一逻辑器件集合中的每个逻辑器件,基于所述多条电路路径,确定与所述每个逻辑器件对应的第四逻辑器件集合,其中,所述第四逻辑器件集合包括与所述每个逻辑器件的输出管脚相连的至少一个逻辑器件;
基于所述多个关键路径器件集合和多个所述第四逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合。
6.根据权利要求4所述的方法,其中,基于所述多条电路路径、所述第一逻辑器件集合和所述多个关键路径器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,包括:
响应于所述第一逻辑器件集合中的第i个逻辑器件不为所述路径起点,基于所述多条电路路径,确定所述第i个逻辑器件对应的第四逻辑器件集合,其中,所述第四逻辑器件集合包括与所述第i个逻辑器件的输入管脚相连的至少一个逻辑器件;
基于所述多个关键路径器件集合和多个所述第四逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,
其中,i为正整数且小于等于所述全部逻辑器件的总数。
7.根据权利要求6所述的方法,其中,基于所述多条电路路径、所述第一逻辑器件集合和所述多个关键路径器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,还包括:
响应于所述第i个逻辑器件为所述路径起点,从所述多个路径终点中选择任一路径终点作为第一路径终点,将所述第i个逻辑器件添加至所述第一路径终点所对应的第三逻辑集合,并将所述第i个逻辑器件添加至所述多个路径终点中除所述第一路径终点以外的其他路径终点分别对应的第二逻辑集合。
8.根据权利要求5或6所述的方法,其中,基于所述多个关键路径器件集合和多个所述第四逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,包括:
确定与第j个第四逻辑器件集合对应的目标逻辑器件;
对于第j个第四逻辑器件集合:
响应于所述第j个第四逻辑器件集合与所述多个器件集合中的任一个关键路径器件集合的交集不为空,且与除所述任一个关键路径器件集合以外的所有关键路径器件集合的交集均为空:
确定所述任一个关键路径器件集合对应的第二路径终点,将所述目标逻辑器件添加至所述第二路径终点对应的第三逻辑集合;
响应于所述第j个第四逻辑器件集合与所述多个关键路径器件集合中的至少两个关键路径器件集合的交集不为空:
确定所述至少两个关键路径器件集合对应的至少两个路径终点,选择所述至少两个路径终点中的任一个路径终点作为第三路径终点,将所述目标逻辑器件添加至所述第三路径终点所对应的第三逻辑集合,并将所述目标逻辑器件添加至所述至少两个路径终点中除所述第三路径终点以外的其他路径终点分别对应的第二逻辑集合,
其中,j为正整数且小于等于多个所述第四逻辑器件集合的总数。
9.根据权利要求1所述的方法,其中,对所述第二逻辑器件集合进行克隆处理,以得到所述第二逻辑器件集合对应的克隆器件集合,包括:
响应于所述第二逻辑器件集合包括至少一个第二逻辑器件,创建与每个第二逻辑器件对应的克隆器件,其中,所述每个第二逻辑器件与所述对应的克隆器件的功能和管脚定义完全相同,且所述每个第二逻辑器件与所述对应的克隆器件位于同一个电路逻辑层;
将所述每个第二逻辑器件对应的克隆器件组成所述克隆器件集合。
10.根据权利要求1所述的方法,其中,基于所述多条电路路径,对所述第三逻辑器件集合及所述克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径,包括:
响应于所述克隆器件集合包括至少一个克隆器件,基于所述多条电路路径,对每个克隆器件进行第一连接处理;
响应于所述第三逻辑器件集合包括至少一个第三逻辑器件,基于所述多条电路路径,对每个第三逻辑器件进行第二连接处理;
基于所述第一连接处理和所述第二连接处理,得到每个路径终点对应的至少一条连接路径。
11.根据权利要求10所述的方法,其中,基于所述多条电路路径,对每个克隆器件进行第一连接处理,包括:
针对每个克隆器件,确定所述克隆器件对应的第二逻辑器件;
基于所述多条电路路径,确定所述克隆器件对应的连接器件,其中,在所述多条电路路径中,所述连接器件的至少一个管脚与所述第二逻辑器件的至少一个管脚相连;
响应于所述连接器件在所述克隆器件集合中存在对应的克隆连接器件:
基于所述连接器件与所述第二逻辑器件的连接关系,将所述克隆连接器件的至少一个管脚与所述克隆器件的至少一个管脚相连;
响应于所述连接器件在所述克隆器件集合中不存在对应的克隆连接器件:
基于所述连接器件与所述第二逻辑器件的连接关系,将所述克隆器件的至少一个管脚与所述连接器件的至少一个管脚相连。
12.根据权利要求10所述的方法,其中,基于所述多条电路路径,对每个第三逻辑器件进行第二连接处理,包括:
针对每个第三逻辑器件,基于所述多条电路路径,确定所述第三逻辑器件对应的驱动逻辑器件,其中,在所述多条电路路径中,所述驱动逻辑器件的至少一个输出管脚与所述第三逻辑器件的至少一个输入管脚相连;
响应于所述驱动逻辑器件在所述克隆器件集合中存在对应的克隆驱动逻辑器件:
断开所述第三逻辑器件的至少一个输入管脚与所述驱动逻辑器件的至少一个输出管脚的连接,并将所述第三逻辑器件的至少一个输入管脚与所述克隆驱动逻辑器件的至少一个克隆输出管脚相连,其中,所述至少一个克隆输出管脚在所述克隆驱动逻辑器件中的管脚位置与所述至少一个输出管脚在所述驱动逻辑器件中的管脚位置相同。
13.根据权利要求1所述的方法,其中,所述第一器件包括逻辑器件;
所述第二器件包括逻辑器件或模拟器件。
14.一种数字电路的连接装置,其中,所述数字电路包括多个器件和多条电路路径,
所述多个器件包括位于路径起点的第一器件和多个第二器件,所述多个第二器件分别位于与所述路径起点对应的多个路径终点,
所述多条电路路径包括基于电路特性确定的在所述路径起点和所述多个路径终点之间的所有路径,
所述装置包括:
关键路径确定单元,配置为确定每个路径终点对应的至少一条关键路径,其中,所述至少一条关键路径为所述每个路径终点对应的电路路径中时序最差的电路路径;
第一集合确定单元,配置为基于所述至少一条关键路径,确定第一逻辑器件集合,其中,所述第一逻辑器件集合包括所述多个路径终点对应的所有关键路径上的除所述多个第二器件之外的全部逻辑器件;
分类单元,配置为基于所述多条电路路径和所述第一逻辑器件集合,确定所述每个路径终点对应的第二逻辑器件集合和第三逻辑器件集合,其中,所述第二逻辑器件集合包括需要克隆的逻辑器件,所述第三逻辑器件集合包括不需要克隆的逻辑器件,所述第二逻辑器件集合包括的逻辑器件为位于所述多条电路路径的公有路径上的所有逻辑器件;
克隆处理单元,配置为对所述第二逻辑器件集合进行克隆处理,以得到所述第二逻辑器件集合对应的克隆器件集合;
连接处理单元,配置为基于所述多条电路路径,对所述第三逻辑器件集合及所述克隆器件集合中的逻辑器件进行连接处理,以得到每个路径终点对应的至少一条连接路径,其中,所述多个路径终点对应的所有连接路径之间不存在公有路径。
15.一种电子设备,包括:
存储器,非瞬时性地存储有计算机可执行指令;
处理器,配置为运行所述计算机可执行指令,
其中,所述计算机可执行指令被所述处理器运行时实现根据权利要求1-13任一项所述的数字电路的连接方法。
16.一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据权利要求1-13中任一项所述的数字电路的连接方法。
CN202110724897.2A 2021-06-29 2021-06-29 数字电路的连接方法、装置、电子设备和存储介质 Active CN113449477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110724897.2A CN113449477B (zh) 2021-06-29 2021-06-29 数字电路的连接方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110724897.2A CN113449477B (zh) 2021-06-29 2021-06-29 数字电路的连接方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN113449477A CN113449477A (zh) 2021-09-28
CN113449477B true CN113449477B (zh) 2023-08-04

Family

ID=77813934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110724897.2A Active CN113449477B (zh) 2021-06-29 2021-06-29 数字电路的连接方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113449477B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112023A (en) * 1997-02-24 2000-08-29 Lucent Technologies Inc. Scheduling-based hardware-software co-synthesis of heterogeneous distributed embedded systems
WO2014041402A1 (en) * 2012-09-14 2014-03-20 Freescale Semiconductor, Inc. Method and apparatus for selecting data path elements for cloning
CN109710981A (zh) * 2018-02-27 2019-05-03 上海安路信息科技有限公司 Fpga的布线方法及系统
CN110222388A (zh) * 2019-05-24 2019-09-10 西安理工大学 一种基于关键路径复制的电路最高工作频率测试方法
CN111859828A (zh) * 2020-07-27 2020-10-30 南方电网数字电网研究院有限公司 复制关键路径电路和芯片
CN112667024A (zh) * 2020-12-31 2021-04-16 海光信息技术股份有限公司 延时计算电路、芯片运行频率获取方法、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200926612A (en) * 2007-12-07 2009-06-16 Univ Nat Chiao Tung Multi-mode parallelism data exchange method and its device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112023A (en) * 1997-02-24 2000-08-29 Lucent Technologies Inc. Scheduling-based hardware-software co-synthesis of heterogeneous distributed embedded systems
WO2014041402A1 (en) * 2012-09-14 2014-03-20 Freescale Semiconductor, Inc. Method and apparatus for selecting data path elements for cloning
CN109710981A (zh) * 2018-02-27 2019-05-03 上海安路信息科技有限公司 Fpga的布线方法及系统
CN110222388A (zh) * 2019-05-24 2019-09-10 西安理工大学 一种基于关键路径复制的电路最高工作频率测试方法
CN111859828A (zh) * 2020-07-27 2020-10-30 南方电网数字电网研究院有限公司 复制关键路径电路和芯片
CN112667024A (zh) * 2020-12-31 2021-04-16 海光信息技术股份有限公司 延时计算电路、芯片运行频率获取方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
具有关键路径检测功能的脉冲触发器电路及应用;石瑞恺 等;《计算机辅助设计与图形学学报》;20191231;第2197-2206页 *

Also Published As

Publication number Publication date
CN113449477A (zh) 2021-09-28

Similar Documents

Publication Publication Date Title
US10776547B1 (en) Infinite-depth path-based analysis of operational timing for circuit design
US10990733B1 (en) Shared timing graph propagation for multi-mode multi-corner static timing analysis
WO2021227418A1 (zh) 基于多板fpga异构系统的任务部署方法及设备
CN114861591B (zh) 一种可微分时序驱动的芯片布局优化方法
CN113868992A (zh) 集成电路的时序约束方法、装置、电子设备及芯片
CN112257375A (zh) 用于集成电路设计的布局调整方法、装置和电子设备
US9110689B2 (en) Automatic pipeline stage insertion
US20200401669A1 (en) Clock gate latency modeling based on analytical frameworks
CN114707451A (zh) 数字电路的版图规划方法、装置、电子设备、存储介质
CN113449477B (zh) 数字电路的连接方法、装置、电子设备和存储介质
WO2022000576A1 (zh) 一种形式验证比较点匹配方法、系统、处理器及存储器
CN117829093A (zh) 加速芯片时序收敛的方法及装置
US10963610B1 (en) Analyzing clock jitter using delay calculation engine
CN116670660A (zh) 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质
CN113486613B (zh) 数据链路的提取方法、装置、电子设备和存储介质
Liu et al. Knowledge-based neural network model for FPGA logical architecture development
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
US8782587B2 (en) Systems and methods for generating a higher level description of a circuit design based on connectivity strengths
US11531803B1 (en) IPBA-driven full-depth EPBA of operational timing for circuit design
CN117131824A (zh) 自动生成芯片设计rtl代码的方法、电子设备和介质
US9984188B2 (en) Single ended-mode to mixed-mode transformer spice circuit model for high-speed system signal integrity simulations
US9235673B2 (en) Apparatus for and a method of making a hierarchical integrated circuit design of an integrated circuit design, a computer program product and a non-transitory tangible computer readable storage medium
US11188696B1 (en) Method, system, and product for deferred merge based method for graph based analysis pessimism reduction
US10853540B2 (en) Method and system for automated design and design-space exploration
CN112183006A (zh) 时延评估方法及装置、可读存储介质

Legal Events

Date Code Title Description
PB01 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