CN118627460A - Back-end design method, device, equipment and storage medium - Google Patents
Back-end design method, device, equipment and storage medium Download PDFInfo
- Publication number
- CN118627460A CN118627460A CN202410757130.3A CN202410757130A CN118627460A CN 118627460 A CN118627460 A CN 118627460A CN 202410757130 A CN202410757130 A CN 202410757130A CN 118627460 A CN118627460 A CN 118627460A
- Authority
- CN
- China
- Prior art keywords
- clock
- candidate
- elements
- position set
- candidate position
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000013461 design Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 34
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 27
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 27
- 239000000523 sample Substances 0.000 claims 1
- 239000000758 substrate Substances 0.000 claims 1
- 238000011161 development Methods 0.000 abstract description 8
- 238000004904 shortening Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 22
- 102100038026 DNA fragmentation factor subunit alpha Human genes 0.000 description 4
- 101000950906 Homo sapiens DNA fragmentation factor subunit alpha Proteins 0.000 description 4
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 102100038023 DNA fragmentation factor subunit beta Human genes 0.000 description 2
- 101100277639 Homo sapiens DFFB gene Proteins 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 2
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
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/396—Clock trees
-
- 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
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)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请公开了一种后端设计方法、装置、设备和存储介质,后端设计方法包括:生成若干标准元件的初始布局,若干标准元件中包括多个时序元件,且各时序元件的时钟信号输入端用于与时钟源的时钟信号输出端连接;确定各时序元件分别对应的目标位置,任意两个目标位置的第一时钟路径之间的长度差异小于预设阈值,目标位置的第一时钟路径为时钟源与目标位置之间的时钟路径;将各时序元件分别调整至相应的目标位置;对调整后的初始布局进行时钟树综合处理。通过上述方式,可以减小时钟信号传输到各时序元件的时间差异,从而加快时序收敛,缩短开发周期。
The present application discloses a back-end design method, device, equipment and storage medium. The back-end design method includes: generating an initial layout of several standard components, wherein the several standard components include multiple timing components, and the clock signal input end of each timing component is used to connect with the clock signal output end of the clock source; determining the target positions corresponding to each timing component, the length difference between the first clock paths of any two target positions is less than a preset threshold, and the first clock path of the target position is the clock path between the clock source and the target position; adjusting each timing component to the corresponding target position; and performing clock tree synthesis processing on the adjusted initial layout. In the above manner, the time difference of the clock signal transmitted to each timing component can be reduced, thereby accelerating the timing convergence and shortening the development cycle.
Description
技术领域Technical Field
本申请涉及集成电路设计技术领域,特别是涉及一种后端设计方法、装置、设备和存储介质。The present application relates to the technical field of integrated circuit design, and in particular to a back-end design method, device, equipment and storage medium.
背景技术Background Art
集成电路(或芯片)设计包括前端设计和后端设计,而后端设计的好坏直接决定了芯片能否满足功能需求和性能需求。后端设计通常包括Floorplan(布局规划)、Placement(布局)、CTS(Clock Tree Synthesis,时钟树综合)和Routing(布线)这几个关键流程。其中,Floorplan阶段主要对芯片的I/O Pad和宏单元(Macro Cell)进行布局摆放,以及对电源进行规划;Placement阶段根据网表中描述的电路结构和逻辑关系对各标准单元进行自动摆放;CTS阶段主要平衡各个时钟路径的延时,以达到时序收敛的目的。Integrated circuit (or chip) design includes front-end design and back-end design, and the quality of back-end design directly determines whether the chip can meet functional and performance requirements. Back-end design usually includes several key processes: Floorplan, Placement, CTS (Clock Tree Synthesis) and Routing. Among them, the Floorplan stage mainly lays out the I/O Pad and macro cells of the chip, and plans the power supply; the Placement stage automatically places each standard cell according to the circuit structure and logical relationship described in the netlist; the CTS stage mainly balances the delay of each clock path to achieve the purpose of timing convergence.
由于集成电路的时序通常需要满足研发人员设定的要求,而随着集成电路的不断发展,集成电路的构造也越来越复杂,导致集成电路的时序收敛问题成为后端设计过程的难点。若能加快集成电路的时序收敛,将有助于缩短集成电路的开发周期。Since the timing of integrated circuits usually needs to meet the requirements set by R&D personnel, and with the continuous development of integrated circuits, the structure of integrated circuits is becoming more and more complex, resulting in the problem of timing closure of integrated circuits becoming a difficult point in the back-end design process. If the timing closure of integrated circuits can be accelerated, it will help shorten the development cycle of integrated circuits.
发明内容Summary of the invention
本申请主要解决的技术问题是提供一种后端设计方法、装置、设备和计算机可读存储介质,能够加快集成电路的时序收敛,从而缩短集成电路的设计周期。The main technical problem solved by the present application is to provide a back-end design method, device, equipment and computer-readable storage medium, which can accelerate the timing convergence of integrated circuits, thereby shortening the design cycle of integrated circuits.
为解决上述技术问题,本申请采用的一个技术方案是:提供一种后端设计方法,该方法包括:生成若干标准元件的初始布局,若干标准元件中包括多个时序元件,且各时序元件的时钟信号输入端用于与时钟源的时钟信号输出端连接;确定各时序元件分别对应的目标位置,任意两个目标位置的第一时钟路径之间的长度差异小于预设阈值,目标位置的第一时钟路径为时钟源与目标位置之间的时钟路径;将各时序元件分别调整至相应的目标位置;对调整后的初始布局进行时钟树综合处理。In order to solve the above technical problems, a technical solution adopted in the present application is: to provide a back-end design method, the method comprising: generating an initial layout of a number of standard components, the number of standard components including a plurality of timing components, and the clock signal input end of each timing component is used to connect with the clock signal output end of a clock source; determining the target positions corresponding to each timing component, the length difference between the first clock paths of any two target positions is less than a preset threshold, and the first clock path of the target position is the clock path between the clock source and the target position; adjusting each timing element to the corresponding target position; and performing clock tree synthesis processing on the adjusted initial layout.
可选地,确定各时序元件分别对应的目标位置包括:确定公共点,公共点的一端用于与时钟源连接,且公共点的另一端分别用于与各时序元件的时钟信号输入端连接;基于公共点,确定若干第一候选位置集合,第一候选位置集合包括各时序元件分别对应的候选位置,且第一候选位置集合所包括的任意两个候选位置的第二时钟路径之间的长度差异小于预设阈值,候选位置的第二时钟路径为公共点与候选位置之间的时钟路径;从若干第一候选位置集合中选出符合要求的目标位置集合;将目标位置集合中各时序元件的候选位置分别作为各时序元件的目标位置。Optionally, determining the target positions corresponding to each timing element includes: determining a common point, one end of the common point is used to connect to a clock source, and the other end of the common point is used to connect to a clock signal input end of each timing element; based on the common point, determining a plurality of first candidate position sets, the first candidate position sets include candidate positions corresponding to each timing element, and the length difference between the second clock paths of any two candidate positions included in the first candidate position set is less than a preset threshold, and the second clock path of the candidate position is the clock path between the common point and the candidate position; selecting a target position set that meets the requirements from the plurality of first candidate position sets; and using the candidate positions of each timing element in the target position set as the target positions of each timing element.
可选地,第一候选位置集合所包括的各候选位置的第二时钟路径的长度均相同。Optionally, the lengths of the second clock paths of the candidate positions included in the first candidate position set are all the same.
可选地,从若干第一候选位置集合中选出符合要求的目标位置集合包括:分别确定各第一候选位置集合的总时钟路径长度;将总时钟路径长度最短的第一候选位置集合,作为目标位置集合。Optionally, selecting a target position set that meets the requirements from a number of first candidate position sets includes: determining the total clock path length of each first candidate position set respectively; and taking the first candidate position set with the shortest total clock path length as the target position set.
可选地,若干个标准元件中还包括多个投票逻辑元件,从若干第一候选位置集合中选出符合要求的目标位置集合包括:对各第一候选位置集合,基于第一候选位置集合所包括的各候选位置,确定第一候选位置集合所对应的限定区域;从若干第一候选位置集合中选出限定区域符合预设布局条件的至少一个第二候选位置集合,预设布局条件包括:限定区域能够容纳多个投票逻辑元件;从至少一个第二候选位置集合中选出目标位置集合。Optionally, the plurality of standard elements further include a plurality of voting logic elements, and selecting a target position set that meets the requirements from a plurality of first candidate position sets includes: for each first candidate position set, based on each candidate position included in the first candidate position set, determining a limited area corresponding to the first candidate position set; selecting at least one second candidate position set whose limited area meets preset layout conditions from the plurality of first candidate position sets, and the preset layout conditions include: the limited area can accommodate a plurality of voting logic elements; and selecting a target position set from at least one second candidate position set.
可选地,第一候选位置集合的限定区域为第一候选位置集合包括的各候选位置所对应的最小外接矩形区域;和/或,从至少一个第二候选位置集合中选出目标位置集合包括以下方式中的任一者:将总时钟路径长度最短的第二候选位置集合,作为目标位置集合;将限定区域的面积最小的第二候选位置集合,作为目标位置集合;综合各第二候选位置集合所对应的总时钟路径长度和限定区域的面积,从至少一个第二候选位置集合中确定出目标位置集合。Optionally, the limited area of the first candidate position set is the minimum circumscribed rectangular area corresponding to each candidate position included in the first candidate position set; and/or, selecting the target position set from at least one second candidate position set includes any one of the following methods: taking the second candidate position set with the shortest total clock path length as the target position set; taking the second candidate position set with the smallest area of the limited area as the target position set; determining the target position set from at least one second candidate position set by comprehensively considering the total clock path lengths corresponding to each second candidate position set and the area of the limited area.
可选地,公共点处布置有时钟缓冲器,在将各时序元件分别调整至相应的目标位置之后,以及在对调整后的初始布局进行时钟树综合处理之前,方法还包括:将公共点处的时钟缓冲器替换为第一时钟反相器;以及,在公共点到各时序元件的时钟路径上分别插入一个第二时钟反相器。Optionally, a clock buffer is arranged at the common point. After each timing element is adjusted to a corresponding target position and before the adjusted initial layout is subjected to clock tree synthesis processing, the method further includes: replacing the clock buffer at the common point with a first clock inverter; and inserting a second clock inverter on the clock path from the common point to each timing element.
可选地,第一时钟反相器与各第二时钟反相器之间的时钟路径长度均相同,且各第二时钟反相器与相应的时序元件之间的时钟路径长度均相同。Optionally, the lengths of clock paths between the first clock inverter and each second clock inverter are the same, and the lengths of clock paths between each second clock inverter and the corresponding sequential element are the same.
可选地,确定公共点包括:确定多个时序元件中的第一元件和第二元件;将基于第一元件的初始位置和第二元件的初始位置确定的中线上的一点,作为公共点;和/或,在将各时序元件分别调整至相应的目标位置之后,以及在对调整后的初始布局进行时钟树综合处理之前,方法还包括:对公共点到各时序元件的时钟路径上的元件和连线做预设约束处理,使得元件和连线不被优化。Optionally, determining the common point includes: determining a first element and a second element among a plurality of sequential elements; taking a point on a midline determined based on an initial position of the first element and an initial position of the second element as the common point; and/or, after adjusting each sequential element to a corresponding target position, and before performing clock tree synthesis processing on the adjusted initial layout, the method further includes: performing preset constraint processing on elements and connections on a clock path from the common point to each sequential element so that the elements and connections are not optimized.
可选地,若干个标准元件中还包括多个投票逻辑元件,在将各时序元件分别调整至相应的目标位置之后,以及在对调整后的初始布局进行时钟树综合处理之前,方法还包括:将多个投票逻辑元件调整至多个时序元件的限定区域内,限定区域是基于各时序元件的目标位置确定的;和/或,若干标准元件为三模冗余电路所包括的若干电路元件,且多个时序元件的数量为3个。Optionally, the plurality of standard components further include a plurality of voting logic components. After each sequential component is adjusted to a corresponding target position and before clock tree synthesis processing is performed on the adjusted initial layout, the method further includes: adjusting the plurality of voting logic components to a limited area of the plurality of sequential components, the limited area being determined based on the target position of each sequential component; and/or, the plurality of standard components are a plurality of circuit elements included in a triple-module redundant circuit, and the number of the plurality of sequential components is 3.
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种后端设计装置,该装置包括:初始布局模块,用于生成若干标准元件的初始布局,若干标准元件中包括多个时序元件,且各时序元件的时钟信号输入端用于与时钟源的时钟信号输出端连接;确定模块,用于确定各时序元件分别对应的目标位置,任意两个目标位置的第一时钟路径之间的长度差异小于预设阈值,目标位置的第一时钟路径为时钟源与目标位置之间的时钟路径;调整模块,用于将各时序元件分别调整至相应的目标位置;时钟树综合模块,用于对调整后的初始布局进行时钟树综合处理。In order to solve the above technical problems, another technical solution adopted by the present application is: to provide a back-end design device, which includes: an initial layout module, used to generate an initial layout of a number of standard components, the number of standard components include a plurality of timing components, and the clock signal input end of each timing component is used to connect with the clock signal output end of the clock source; a determination module, used to determine the target positions corresponding to each timing component, the length difference between the first clock paths of any two target positions is less than a preset threshold, and the first clock path of the target position is the clock path between the clock source and the target position; an adjustment module, used to adjust each timing element to the corresponding target position; a clock tree synthesis module, used to perform clock tree synthesis processing on the adjusted initial layout.
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种电子设备,包括相互耦接的存储器和处理器,存储器存储有程序指令;处理器用于执行存储器中存储的程序指令,以实现上述后端设计方法。To solve the above technical problems, another technical solution adopted in this application is: to provide an electronic device, including a memory and a processor coupled to each other, the memory storing program instructions; the processor is used to execute the program instructions stored in the memory to implement the above back-end design method.
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机可读存储介质,该计算机可读存储介质用于存储程序指令,程序指令能够被处理器执行以实现上述后端设计方法。In order to solve the above technical problems, another technical solution adopted in the present application is: providing a computer-readable storage medium, which is used to store program instructions, and the program instructions can be executed by a processor to implement the above back-end design method.
以上方案,在对若干标准元件进行初始布局之后,先调整若干标准元件中的各时序元件到相应的目标位置,然后再对调整后的初始布局进行时钟树综合处理。由于任意两个目标位置的第一时钟路径之间的长度差异小于预设阈值,将各时序元件调整到相应的目标位置后,可以减小各时序元件的第一时钟路径的长度差异以减小时钟信号传输到各时序元件的时间差异,从而加快时序收敛,缩短开发周期。In the above scheme, after the initial layout of several standard components, each sequential component in the several standard components is first adjusted to the corresponding target position, and then the adjusted initial layout is subjected to clock tree synthesis processing. Since the length difference between the first clock paths of any two target positions is less than the preset threshold, after adjusting each sequential component to the corresponding target position, the length difference of the first clock path of each sequential component can be reduced to reduce the time difference of the clock signal transmitted to each sequential component, thereby accelerating timing convergence and shortening the development cycle.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1是本申请提供的后端设计方法一实施例的流程示意图;FIG1 is a flow chart of an embodiment of a backend design method provided by the present application;
图2是本申请提供的三模冗余电路的电路结构示意图;FIG2 is a schematic diagram of the circuit structure of a triple-module redundant circuit provided by the present application;
图3是本申请提供的后端设计方法另一实施例的流程示意图;FIG3 is a flow chart of another embodiment of the back-end design method provided by the present application;
图4是本申请提供的若干标准单元的初始布局的示意图;FIG4 is a schematic diagram of an initial layout of several standard cells provided in the present application;
图5是本申请提供的若干标准单元的调整后的初始布局的示意图;FIG5 is a schematic diagram of an adjusted initial layout of several standard cells provided in the present application;
图6是本申请提供的针对三模冗余电路的后端设计方法一实施例的流程示意图;FIG6 is a flow chart of an embodiment of a back-end design method for a triple-module redundant circuit provided by the present application;
图7a是本申请提供的三模冗余电路的第一布局的示意图;FIG7a is a schematic diagram of a first layout of a triple-module redundant circuit provided by the present application;
图7b是本申请提供的三模冗余电路的第二布局的示意图;FIG7 b is a schematic diagram of a second layout of a triple-module redundant circuit provided by the present application;
图7c是本申请提供的三模冗余电路的第三布局的示意图;FIG7c is a schematic diagram of a third layout of a triple-module redundant circuit provided by the present application;
图7d是本申请提供的三模冗余电路的第四布局的示意图;FIG7 d is a schematic diagram of a fourth layout of a triple-module redundant circuit provided by the present application;
图7e是本申请提供的三模冗余电路的第五布局的示意图;FIG7e is a schematic diagram of a fifth layout of a triple-module redundant circuit provided by the present application;
图8是本申请提供的后端设计装置一实施例的框架示意图;FIG8 is a schematic diagram of a framework of an embodiment of a back-end design device provided by the present application;
图9是本申请提供的电子设备一实施例的框架示意图;FIG9 is a schematic diagram of a framework of an electronic device according to an embodiment of the present application;
图10是本申请提供的计算机可读存储介质一实施例的框架示意图。FIG. 10 is a schematic diagram of a framework of an embodiment of a computer-readable storage medium provided in the present application.
具体实施方式DETAILED DESCRIPTION
为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。In order to make the purpose, technical solution and effect of the present application clearer and more specific, the present application is further described in detail below with reference to the accompanying drawings and examples.
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。In the following description, for the purpose of explanation rather than limitation, specific details such as specific system structures, interfaces, and technologies are provided to facilitate a thorough understanding of the present application.
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况;本文中术语“多个”表示两个或者多于两个;术语“若干”表示至少一个;术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。The term "and/or" in this article is only a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and/or B can mean: A exists alone, A and B exist at the same time, and B exists alone. The term "plurality" in this article means two or more than two; the term "several" means at least one; the terms "first", "second", etc. are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.
请参阅图1,图1是本申请提供的后端设计方法一实施例的流程示意图。该方法可以应用于计算机设备,该计算机设备能够运行设计工具,如EDA(Electronic DesignAutomation,电子设计自动化)工具,以实现本申请的后端设计方法。需注意的是,若有实质上相同的结果,本申请的方法并不以图1所示的流程顺序为限。Please refer to FIG. 1, which is a flow chart of an embodiment of a back-end design method provided by the present application. The method can be applied to a computer device that can run a design tool, such as an EDA (Electronic Design Automation) tool, to implement the back-end design method of the present application. It should be noted that if there is substantially the same result, the method of the present application is not limited to the flow sequence shown in FIG. 1.
如图1所示,该方法包括如下步骤:As shown in FIG1 , the method comprises the following steps:
S11:生成若干标准元件的初始布局。S11: Generate an initial layout of several standard components.
其中,若干标准元件为子模块所包括的若干电路元件。待进行后端设计的芯片可包括若干子模块,每个子模块包括若干标准元件。每个子模块的若干标准元件中包括多个时序元件,各时序元件的时钟信号输入端用于与时钟源的时钟信号输出端连接。示例性地,各时序元件为触发器,如DFF(D类型触发器)。每个子模块的若干标准元件中还包括多个投票逻辑元件,多个投票逻辑元件构成该子模块的投票器。Among them, several standard components are several circuit components included in the submodule. The chip to be designed for the backend may include several submodules, each of which includes several standard components. The several standard components of each submodule include multiple timing components, and the clock signal input end of each timing component is used to connect to the clock signal output end of the clock source. Exemplarily, each timing element is a trigger, such as a DFF (D-type trigger). The several standard components of each submodule also include multiple voting logic components, and the multiple voting logic components constitute the voter of the submodule.
以子模块为三模冗余(TMR,Triple Mode Redundancy)电路为例,图2是本申请提供的三模冗余电路的电路结构示意图,如图2所示,三模冗余电路包括3个DFF 21和投票器22(Voter),投票器22由4个投票逻辑元件构成。各DFF 21的时钟信号输入端与Clock pad(时钟焊盘)连接,Clock pad用于与时钟源连接。Taking the submodule as a triple mode redundancy (TMR) circuit as an example, FIG2 is a schematic diagram of the circuit structure of the triple mode redundancy circuit provided by the present application. As shown in FIG2, the triple mode redundancy circuit includes three DFFs 21 and a voter 22 (Voter), and the voter 22 is composed of four voting logic elements. The clock signal input end of each DFF 21 is connected to a clock pad, and the clock pad is used to connect to a clock source.
需要说明的是,本实施例仅以子模块为三模冗余电路进行示例性说明,在其他实施例中,子模块还可以是四模冗余(QMR,Quadruple Modular Redundancy)电路、五模冗余(FMR,Five Modular Redundancy)电路,也可以是其他需要时钟信号的电路或器件,本实施例对此不作具体限定。It should be noted that this embodiment only exemplifies the sub-module as a triple-module redundant circuit. In other embodiments, the sub-module may also be a quad-module redundant (QMR) circuit, a five-module redundant (FMR) circuit, or other circuits or devices that require a clock signal, and this embodiment does not specifically limit this.
步骤S11中,可按照默认摆放规则对若干标准元件进行摆放,以得到若干标准元件的初始布局。示例性地,默认摆放规则为将若干标准元件中的各个时序元件摆放在不同行(row),且各行之间的间距大于或等于间距阈值,若干标准元件中的各投票逻辑元件可任意摆放。In step S11, the plurality of standard components may be arranged according to the default arrangement rule to obtain an initial layout of the plurality of standard components. Exemplarily, the default arrangement rule is to arrange the timing components in the plurality of standard components in different rows, and the spacing between the rows is greater than or equal to the spacing threshold, and the voting logic components in the plurality of standard components may be arranged arbitrarily.
S12:确定若干标准元件中各时序元件分别对应的目标位置。S12: Determine the target position corresponding to each sequential component in a plurality of standard components.
任意两个目标位置的第一时钟路径之间的长度差异小于预设阈值,目标位置的第一时钟路径为时钟源与目标位置之间的时钟路径。预设阈值为预先设定的一个较小的值。The length difference between the first clock paths of any two target locations is less than a preset threshold, and the first clock path of the target location is a clock path between a clock source and the target location. The preset threshold is a preset smaller value.
示例性地,三模冗余电路包括三个时序元件,三个时序元件的目标位置分别为A、B和C,三个时序元件的第一时钟路径的长度分别为L1、L2和L3,L1与L2之间的长度差异ΔL1、L1与L3之间的长度差异ΔL2以及L2与L3之间的长度差异ΔL3均小于预设阈值ΔL。例如,ΔL1、ΔL2和ΔL3均为0,即L1、L2和L3均相等。Exemplarily, the triple-mode redundant circuit includes three sequential elements, the target positions of the three sequential elements are A, B and C respectively, the lengths of the first clock paths of the three sequential elements are L1, L2 and L3 respectively, and the length difference ΔL1 between L1 and L2, the length difference ΔL2 between L1 and L3, and the length difference ΔL3 between L2 and L3 are all less than a preset threshold ΔL. For example, ΔL1, ΔL2 and ΔL3 are all 0, that is, L1, L2 and L3 are all equal.
S13:将各时序元件分别调整至相应的目标位置。S13: Adjust each sequential element to a corresponding target position.
将各时序元件分别调整至相应的目标位置后,任意两个时序元件的第一时钟路径之间的长度差异小于预设阈值。After each sequential element is adjusted to a corresponding target position, the length difference between the first clock paths of any two sequential elements is less than a preset threshold.
S14:对调整后的初始布局进行时钟树综合处理。S14: Perform clock tree synthesis processing on the adjusted initial layout.
本实施例中,在对若干标准元件进行初始布局之后,先调整若干标准元件中的各时序元件到相应的目标位置,然后再对调整后的初始布局进行时钟树综合处理。由于任意两个目标位置的第一时钟路径之间的长度差异小于预设阈值,将各时序元件调整到相应的目标位置后,可以减小各时序元件的第一时钟路径的长度差异以减小时钟信号传输到各时序元件的时间差异,从而加快时序收敛,缩短开发周期。In this embodiment, after the initial layout of several standard components, each sequential component in the several standard components is first adjusted to the corresponding target position, and then the adjusted initial layout is subjected to clock tree synthesis processing. Since the length difference between the first clock paths of any two target positions is less than the preset threshold, after each sequential component is adjusted to the corresponding target position, the length difference of the first clock path of each sequential component can be reduced to reduce the time difference of the clock signal transmitted to each sequential component, thereby accelerating the timing convergence and shortening the development cycle.
请参阅图3,图3是本申请提供的后端设计方法另一实施例的流程示意图。该方法可以应用于前述计算机设备,如图3所示,该方法包括如下步骤:Please refer to Figure 3, which is a flow chart of another embodiment of the backend design method provided by the present application. The method can be applied to the aforementioned computer device, as shown in Figure 3, and the method includes the following steps:
S31:生成若干标准元件的初始布局。S31: Generate an initial layout of several standard components.
若干标准元件中包括多个时序元件和多个投票逻辑元件。具体地,可按照默认摆放规则对若干标准元件进行摆放,以得到若干标准元件的初始布局。示例性地,默认摆放规则为将若干标准元件中的各个时序元件摆放在不同行(row),且各行之间的间距大于或等于间距阈值,若干标准元件中的各投票逻辑元件可任意摆放。The plurality of standard components include a plurality of timing components and a plurality of voting logic components. Specifically, the plurality of standard components may be placed according to the default placement rule to obtain an initial layout of the plurality of standard components. Exemplarily, the default placement rule is to place the timing components in the plurality of standard components in different rows, and the spacing between the rows is greater than or equal to the spacing threshold, and the voting logic components in the plurality of standard components may be placed arbitrarily.
S32:确定公共点。S32: Determine a common point.
为便于调整标准元件中各时序元件的位置,可先确定一个公共点,然后基于该公共点,确定各时序元件的目标位置。公共点的一端用于与时钟源连接,且公共点的另一端分别用于与各时序元件的时钟信号输入端连接。In order to facilitate the adjustment of the position of each sequential element in the standard element, a common point can be determined first, and then the target position of each sequential element can be determined based on the common point. One end of the common point is used to connect to the clock source, and the other end of the common point is used to connect to the clock signal input end of each sequential element.
在一实施方式中,公共点可为任意一点。In one embodiment, the common point may be any point.
在另一实施方式中,公共点的位置可基于初始布局中多个时序元件的位置进行确定。具体地,确定公共点包括以下子步骤:In another embodiment, the position of the common point can be determined based on the positions of multiple sequential elements in the initial layout. Specifically, determining the common point includes the following sub-steps:
子步骤一,确定多个时序元件中的第一元件和第二元件。Sub-step 1: determining a first component and a second component among a plurality of sequential components.
具体地,第一元件和第二元件可以为多个时序元件中的任意两个时序元件。或者,第一元件为多个时序元件中摆放在首行的时序元件,第二元件为多个时序元件中摆放在尾行的时序元件。Specifically, the first element and the second element may be any two sequential elements among the plurality of sequential elements. Alternatively, the first element is the sequential element placed in the first row among the plurality of sequential elements, and the second element is the sequential element placed in the last row among the plurality of sequential elements.
子步骤二,将基于第一元件的初始位置和第二元件的初始位置确定的中线上的一点,作为公共点。Sub-step two: taking a point on the midline determined based on the initial position of the first element and the initial position of the second element as a common point.
具体地,基于第一元件在初始布局中的初始位置和第二元件在初始布局中的初始位置可确定第一元件和第二元件的中线,将该中线上的任一点作为公共点。其中,中线与第一元件所在行、第二元件所在行均平行。Specifically, based on the initial position of the first element and the initial position of the second element in the initial layout, the midline of the first element and the second element can be determined, and any point on the midline is used as a common point, wherein the midline is parallel to the row where the first element is located and the row where the second element is located.
S33:基于公共点,确定若干第一候选位置集合。S33: Determine a plurality of first candidate position sets based on the common point.
进一步地,在确定出公共点后,可基于该公共点确定若干第一候选位置集合,每个第一候选位置集合包括各时序元件分别对应的候选位置,不同第一候选位置集合所包括的各时序元件的候选位置不相同,然后从若干第一候选位置集合中选出符合要求的目标位置集合,将目标位置集合中各时序元件的候选位置分别作为各时序元件的目标位置。Furthermore, after determining the common point, several first candidate position sets can be determined based on the common point, each first candidate position set includes candidate positions corresponding to each timing element, and the candidate positions of each timing element included in different first candidate position sets are different. Then, a target position set that meets the requirements is selected from the several first candidate position sets, and the candidate positions of each timing element in the target position set are respectively used as the target positions of each timing element.
为减小时钟信号传递到各时序元件的时间差异,每个第一候选位置集合所包括的任意两个候选位置的第二时钟路径之间的长度差异小于预设阈值。其中,候选位置的第二时钟路径为公共点与候选位置之间的时钟路径。需要说明的是,对于各第一候选位置集合,由于时钟源与公共点之间的时钟路径是各候选位置公共的时钟路径,当各候选位置的第二时钟路径之间的长度差异小于预设阈值时,时钟源到各候选位置的第一时钟路径之间的长度差异也小于预设阈值。为进一步减小时钟信号传递到各时序元件的时间差异,可使第一候选位置集合所包括的各候选位置的第二时钟路径的长度均相同。In order to reduce the time difference of the clock signal being transmitted to each sequential element, the length difference between the second clock paths of any two candidate positions included in each first candidate position set is less than a preset threshold. The second clock path of the candidate position is the clock path between the common point and the candidate position. It should be noted that for each first candidate position set, since the clock path between the clock source and the common point is a clock path common to each candidate position, when the length difference between the second clock paths of each candidate position is less than the preset threshold, the length difference between the first clock paths from the clock source to each candidate position is also less than the preset threshold. In order to further reduce the time difference of the clock signal being transmitted to each sequential element, the length of the second clock path of each candidate position included in the first candidate position set can be made the same.
第一候选位置集合中的各候选位置仍符合前述默认摆放规则,即第一候选位置集合中各候选位置分别位于不同行,且各行之间的间距大于或等于间距阈值。Each candidate position in the first candidate position set still complies with the aforementioned default placement rule, that is, each candidate position in the first candidate position set is located in a different row, and the spacing between the rows is greater than or equal to the spacing threshold.
为尽可能减小调整后的初始布局与调整前的初始布局之间的差异,各第一候选位置集合所包括的各时序元件的候选位置中,存在至少一个时序元件的候选位置的所在行与该至少一个时序元件在初始布局中的所在行相同。不同的第一候选位置集合的各候选位置的所在行,可相同或不相同。In order to minimize the difference between the initial layout after adjustment and the initial layout before adjustment, among the candidate positions of the sequential elements included in each first candidate position set, there is at least one candidate position of the sequential element whose row is the same as the row of the at least one sequential element in the initial layout. The rows of the candidate positions of different first candidate position sets may be the same or different.
下面以三模冗余电路为例进行示例性说明,其中三模冗余电路包括时序元件1、时序元件2和时序元件3,初始布局中时序元件1、时序元件2和时序元件3分别位于第a行、第b行和第e行,且确定的若干第一候选位置集合包括第一候选位置集合1、第一候选位置集合2、第一候选位置集合3和第一候选位置集合4。The following is an exemplary description using a triple-module redundant circuit as an example, wherein the triple-module redundant circuit includes sequential element 1, sequential element 2, and sequential element 3, and in the initial layout, sequential element 1, sequential element 2, and sequential element 3 are located in row a, row b, and row e, respectively, and the determined first candidate position sets include first candidate position set 1, first candidate position set 2, first candidate position set 3, and first candidate position set 4.
例如,第一候选位置集合1、第一候选位置集合2、第一候选位置集合3、第一候选位置集合4中时序元件1、时序元件2和时序元件3所在行与初始布局相同,即仍分别位于第a行、第b行和第e行。For example, the rows where sequential element 1, sequential element 2 and sequential element 3 in first candidate position set 1, first candidate position set 2, first candidate position set 3 and first candidate position set 4 are located are the same as those in the initial layout, that is, they are still located in row a, row b and row e respectively.
又例如,第一候选位置集合1、第一候选位置集合2、第一候选位置集合3和第一候选位置集合4中时序元件1、时序元件2和时序元件3的候选位置均分别位于第a行、第c行和第e行。For another example, the candidate positions of sequential element 1, sequential element 2 and sequential element 3 in first candidate position set 1, first candidate position set 2, first candidate position set 3 and first candidate position set 4 are respectively located in row a, row c and row e.
再例如,第一候选位置集合1中时序元件1、时序元件2和时序元件3的候选位置分别位于第a行、第b行和第e行;第一候选位置集合2中时序元件1、时序元件2和时序元件3的候选位置分别位于第a行、第c行和第e行;第一候选位置集合3中时序元件1、时序元件2和时序元件3的候选位置分别位于第a行、第b行和第c行;第一候选位置集合4中时序元件1、时序元件2和时序元件3的候选位置分别位于第b行、第c行和第d行。For another example, the candidate positions of sequential element 1, sequential element 2 and sequential element 3 in the first candidate position set 1 are located in the a-th row, the b-th row and the e-th row respectively; the candidate positions of sequential element 1, sequential element 2 and sequential element 3 in the first candidate position set 2 are located in the a-th row, the c-th row and the e-th row respectively; the candidate positions of sequential element 1, sequential element 2 and sequential element 3 in the first candidate position set 3 are located in the a-th row, the b-th row and the c-th row respectively; the candidate positions of sequential element 1, sequential element 2 and sequential element 3 in the first candidate position set 4 are located in the b-th row, the c-th row and the d-th row respectively.
再例如,第一候选位置集合1和第一候选位置集合2中时序元件1、时序元件2和时序元件3的候选位置均分别位于第a行、第b行和第e行;第一候选位置集合3和第一候选位置集合4中时序元件1、时序元件2和时序元件3的候选位置均分别位于第a行、第c行和第e行。For another example, the candidate positions of sequential element 1, sequential element 2 and sequential element 3 in the first candidate position set 1 and the first candidate position set 2 are respectively located in the a-th row, the b-th row and the e-th row; the candidate positions of sequential element 1, sequential element 2 and sequential element 3 in the first candidate position set 3 and the first candidate position set 4 are respectively located in the a-th row, the c-th row and the e-th row.
S34:从若干第一候选位置集合中选出符合要求的目标位置集合。S34: Selecting a target position set that meets the requirements from a plurality of first candidate position sets.
在一实施方式中,仅考虑若干标准元件中多个时序元件的摆放,不考虑若干标准元件中多个投票逻辑元件的摆放,则从若干第一候选位置集合中选出符合要求的目标位置集合包括:分别确定各第一候选位置集合的总时钟路径长度;将总时钟路径长度最短的第一候选位置集合,作为目标位置集合。In one embodiment, only the placement of multiple timing elements among several standard elements is considered, and the placement of multiple voting logic elements among several standard elements is not considered. Then, selecting a target position set that meets the requirements from several first candidate position sets includes: determining the total clock path length of each first candidate position set respectively; and taking the first candidate position set with the shortest total clock path length as the target position set.
具体地,对各第一候选位置集合,确定第一候选位置集合中各候选位置的第二时钟路径的长度,将各候选位置的第二时钟路径的长度进行求和,得到第一候选位置集合对应的总时钟路径长度。然后,从若干第一候选位置集合中总时钟路径长度最短的第一候选位置集合作为目标位置集合。Specifically, for each first candidate position set, the length of the second clock path of each candidate position in the first candidate position set is determined, and the length of the second clock path of each candidate position is summed to obtain the total clock path length corresponding to the first candidate position set. Then, the first candidate position set with the shortest total clock path length among the first candidate position sets is selected as the target position set.
本实施方式中,通过将总时钟路径长度最短的第一候选位置集合作为多个时序元件的目标位置集合,可使得clock tree net(时钟树网络)最短,进而可节省绕线资源。In this implementation, by using the first candidate position set with the shortest total clock path length as the target position set of multiple sequential elements, the clock tree net can be made shortest, thereby saving wiring resources.
在另一实施方式中,同时考虑若干标准元件中多个时序元件的摆放和多个投票逻辑元件的摆放,则从若干第一候选位置集合中选出符合要求的目标位置集合可包括以下子步骤:In another embodiment, considering the placement of multiple sequential elements and the placement of multiple voting logic elements in the multiple standard elements at the same time, selecting a target position set that meets the requirements from the multiple first candidate position sets may include the following sub-steps:
子步骤一,对各第一候选位置集合,基于第一候选位置集合所包括的各候选位置,确定第一候选位置集合所对应的限定区域。Sub-step 1: for each first candidate position set, based on each candidate position included in the first candidate position set, determine a limited area corresponding to the first candidate position set.
第一候选位置集合的限定区域为第一候选位置集合包括的各候选位置所对应的最小外接矩形区域。The limited area of the first candidate position set is the minimum circumscribed rectangular area corresponding to each candidate position included in the first candidate position set.
子步骤二,从若干第一候选位置集合中选出限定区域符合预设布局条件的至少一个第二候选位置集合,预设布局条件包括:限定区域能够容纳多个投票逻辑元件。Sub-step 2: selecting at least one second candidate position set whose limited area meets preset layout conditions from the plurality of first candidate position sets, wherein the preset layout conditions include: the limited area can accommodate a plurality of voting logic elements.
若干第一候选位置集合中可能存在限定区域不符合预设布局条件的第一候选位置集合,因此需要剔除限定区域不符合预设布局条件的第一候选位置集合。Among the first candidate position sets, there may be first candidate position sets whose limited areas do not meet the preset layout conditions. Therefore, the first candidate position sets whose limited areas do not meet the preset layout conditions need to be eliminated.
子步骤三,从至少一个第二候选位置集合中选出目标位置集合。Sub-step three: selecting a target location set from at least one second candidate location set.
该实施方式中,通过从若干第一候选位置集合中选出限定区域符合预设布局条件的至少一个第二候选位置集合,然后再从至少一个第二候选位置集合中选出多个时序元件的目标位置集合。由于各第一候选位置集合中各时序元件的候选位置的第二时钟路径长度差异小于预设阈值,且限定区域是基于第一候选位置集合中各时序元件的候选位置确定的,将目标位置集合中的各候选位置作为多个时序元件的目标位置,一方面,可以减小各时序元件的时钟路径的长度差异,从而加快时序收敛;另一方面,相较于多个投票逻辑元件分散摆放,将多个投票逻辑元件限定在多个时序元件的限定区域内,可以使得多个投票逻辑元件更加靠近多个时序元件摆放,也即可以使得多个投票逻辑元件到各个时序元件之间的距离分布更加均匀,延迟更加接近,从而可以进一步加快时序收敛。In this implementation, at least one second candidate position set whose limited area meets the preset layout conditions is selected from a number of first candidate position sets, and then a target position set of multiple sequential elements is selected from at least one second candidate position set. Since the difference in the length of the second clock path of the candidate position of each sequential element in each first candidate position set is less than the preset threshold, and the limited area is determined based on the candidate position of each sequential element in the first candidate position set, each candidate position in the target position set is used as the target position of multiple sequential elements. On the one hand, the difference in the length of the clock path of each sequential element can be reduced, thereby accelerating the timing convergence; on the other hand, compared with the scattered placement of multiple voting logic elements, limiting the multiple voting logic elements in the limited area of the multiple timing elements can make the multiple voting logic elements closer to the multiple timing elements, that is, the distance distribution between the multiple voting logic elements and each sequential element can be more uniform, and the delay is closer, thereby further accelerating the timing convergence.
在一示例中,可将任一个第二候选位置集合作为目标位置集合。In one example, any second candidate position set may be used as a target position set.
在另一示例中,分别确定各第二候选位置集合的总时钟路径长度;并且,将总时钟路径长度最短的第二候选位置集合作为目标位置集合。确定第二候选位置集合的总时钟路径长度的相关内容参见前述确定第一候选位置集合的总时钟路径长度,在此不再赘述。该示例可以实现减小各时序元件的时钟路径的长度差异、以及将多个投票逻辑元件限定在多个时序元件的限定区域内摆放的同时,进一步使得clock tree net最短,节省绕线资源。In another example, the total clock path length of each second candidate position set is determined respectively; and the second candidate position set with the shortest total clock path length is used as the target position set. For the relevant content of determining the total clock path length of the second candidate position set, please refer to the above-mentioned determination of the total clock path length of the first candidate position set, which will not be repeated here. This example can reduce the length difference of the clock path of each timing element, and place multiple voting logic elements within the limited area of multiple timing elements, while further making the clock tree net the shortest and saving winding resources.
在又一示例中,分别确定各第二候选位置集合所对应的限定区域的面积;并将将限定区域的面积最小的第二候选位置集合作为目标位置集合。该示例可以实现减小各时序元件的时钟路径的长度差异、以及将多个投票逻辑元件限定在多个时序元件的限定区域内摆放的同时,进一步降低多个投票逻辑元件的占用面积。In another example, the area of the limited area corresponding to each second candidate position set is determined respectively; and the second candidate position set with the smallest area of the limited area is used as the target position set. This example can reduce the length difference of the clock path of each sequential element, and place multiple voting logic elements within the limited area of multiple sequential elements, while further reducing the occupied area of multiple voting logic elements.
在又一示例中,综合各第二候选位置集合所对应的总时钟路径长度和限定区域的面积,从至少一个第二候选位置集合中确定出目标位置集合。该示例可以实现减小各时序元件的时钟路径的长度差异、以及将多个投票逻辑元件限定在多个时序元件的限定区域内摆放的同时,综合总时钟路径长度和限定区域的面积选出更优的目标位置集合。In another example, the total clock path lengths and the areas of the limited areas corresponding to the second candidate position sets are combined to determine the target position set from at least one second candidate position set. This example can reduce the length differences of the clock paths of the sequential elements, and place the multiple voting logic elements within the limited areas of the multiple sequential elements while selecting a better target position set by combining the total clock path lengths and the areas of the limited areas.
具体地,对各第二候选位置集合,基于第二候选位置集合的总时钟路径长度确定第一得分,基于第二候选位置集合的限定区域的面积确定第二得分,以及综合第二候选位置集合的第一得分和第二得分,得到第二候选位置集合的总得分;从至少一个第二候选位置集合中选出总得分最高的第二候选位置集合,作为目标位置集合。Specifically, for each second candidate position set, a first score is determined based on the total clock path length of the second candidate position set, a second score is determined based on the area of a limited region of the second candidate position set, and the first score and the second score of the second candidate position set are combined to obtain a total score for the second candidate position set; and a second candidate position set with the highest total score is selected from at least one second candidate position set as the target position set.
示例性地,可基于总时钟路径长度和第一得分映射关系,确定各第二候选位置集合的第一得分。例如,总时钟路径长度越长,相应的第一得分越低;总时钟路径长度越短,相应的第一得分越高。可基于限定区域面积和第二得分映射关系,确定各候选位置集合的第二得分。例如,限定区域面积越小,相应的第二得分越高;限定区域面积越大,相应的第二得分越低。Exemplarily, the first score of each set of second candidate positions may be determined based on the mapping relationship between the total clock path length and the first score. For example, the longer the total clock path length, the lower the corresponding first score; the shorter the total clock path length, the higher the corresponding first score. The second score of each set of candidate positions may be determined based on the mapping relationship between the area of the defined region and the second score. For example, the smaller the area of the defined region, the higher the corresponding second score; the larger the area of the defined region, the lower the corresponding second score.
示例性地,综合第二候选位置集合的第一得分和第二得分,得到第二候选位置集合的总得分包括:将第二候选位置集合的第一得分和第二得分的平均值,作为第二候选位置集合的总得分;或者,将第二候选位置集合的第一得分和第二得分的加权值,作为第二候选位置集合的总得分。第一得分的加权系数和第二得分的加权系数可根据实际需求进行确定。Exemplarily, combining the first score and the second score of the second candidate location set to obtain the total score of the second candidate location set includes: taking the average of the first score and the second score of the second candidate location set as the total score of the second candidate location set; or taking the weighted value of the first score and the second score of the second candidate location set as the total score of the second candidate location set. The weighting coefficient of the first score and the weighting coefficient of the second score can be determined according to actual needs.
本实施方式中,节省时钟树绕线资源和缩小多个投票逻辑元件的占用面积,可以降低芯片的面积;加快芯片的时序收敛意味着芯片的频率理论上可以更高,或者同频率下芯片的功耗更低,因此,采用本实施方式有利于提升芯片的PPA,即芯片的Performance(性能)、Power(功耗)和Area(面积)。In this implementation, the area of the chip can be reduced by saving clock tree routing resources and reducing the occupied area of multiple voting logic elements; accelerating the timing convergence of the chip means that the frequency of the chip can be higher in theory, or the power consumption of the chip is lower at the same frequency. Therefore, the use of this implementation is conducive to improving the PPA of the chip, that is, the Performance, Power and Area of the chip.
S35:将目标位置集合中各时序元件的候选位置分别作为各时序元件的目标位置。S35: taking the candidate positions of each sequential component in the target position set as the target positions of each sequential component.
S36:将各时序元件分别调整至相应的目标位置。S36: Adjust each sequential element to a corresponding target position.
进一步地,在将各时序元件分别调整至相应的目标位置之后还包括:将多个投票逻辑元件调整至多个时序元件的限定区域内,限定区域是基于各时序元件的目标位置确定的。Furthermore, after adjusting each sequential element to a corresponding target position, the method further includes: adjusting a plurality of voting logic elements to a limited area of the plurality of sequential elements, wherein the limited area is determined based on the target position of each sequential element.
进一步地,公共点处布置有时钟缓冲器(ckbuf),在将各时序元件分别调整至相应的目标位置之后还包括:将公共点处的时钟缓冲器替换为第一时钟反相器,以及,在公共点到各时序元件的时钟路径上分别插入一个第二时钟反相器。Furthermore, a clock buffer (ckbuf) is arranged at the common point, and after each timing element is adjusted to the corresponding target position, it also includes: replacing the clock buffer at the common point with a first clock inverter, and inserting a second clock inverter on the clock path from the common point to each timing element.
在一示例中,对各时序元件,可在公共点到时序元件的时钟路径上的任意位置插入一个第二时钟反相器。In one example, for each sequential element, a second clock inverter may be inserted at any position on the clock path from the common point to the sequential element.
在另一示例中,为进一步减小各第二时钟路径上时钟信号传递的延迟差异,插入的第一时钟反相器与各第二时钟反相器之间的时钟路径长度均相同,且各第二时钟反相器与相应的时序元件之间的时钟路径长度均相同。In another example, to further reduce the delay difference of clock signal transmission on each second clock path, the clock path lengths between the inserted first clock inverter and each second clock inverter are the same, and the clock path lengths between each second clock inverter and the corresponding timing element are the same.
进一步地,在将各时序元件分别调整至相应的目标位置之后还包括:对公共点到各时序元件的时钟路径上的元件和连线做预设约束处理,使得公共点到各时序元件的时钟路径上的各元件和连线不被优化。其中,预设约束处理为dont_touch处理。例如,对公共点处的第一时钟反相器、第一时钟反相器到各第二时钟反相器之间的连线、各第二时钟反相器、以及各第二时钟反相器到相应时序元件之间的连线均作预设约束处理。Furthermore, after adjusting each sequential element to the corresponding target position, it also includes: performing preset constraint processing on the elements and connections on the clock path from the common point to each sequential element, so that the elements and connections on the clock path from the common point to each sequential element are not optimized. The preset constraint processing is a dont_touch processing. For example, the first clock inverter at the common point, the connection between the first clock inverter and each second clock inverter, each second clock inverter, and the connection between each second clock inverter and the corresponding sequential element are all subjected to preset constraint processing.
请参阅图4,图4是本申请提供的若干标准单元的的初始布局的示意图。如图4所示,若干标准单元的初始布局中,各时序元件(图4中的DFF1、DFF2和DFF3)分别位于不同行,公共点处的时钟反相器(ckinv)到各时序元件的时钟路径长度差异较大,并且各投票逻辑元件分散较远。Please refer to Figure 4, which is a schematic diagram of the initial layout of several standard cells provided by the present application. As shown in Figure 4, in the initial layout of several standard cells, each sequential element (DFF1, DFF2 and DFF3 in Figure 4) is located in different rows, the clock path lengths from the clock inverter (ckinv) at the common point to each sequential element are quite different, and each voting logic element is dispersed far away.
图5是本申请提供的调整后的若干标准单元的初始布局的示意图。如图5所示,调整后的若干标准单元的初始布局中,各时序元件仍分别位于不同行,但公共点处的时钟反相器到各时序元件的时钟路径长度相等(差异较小),并且各投票逻辑元件均被限定在了虚线框所对应的限定区域内。Figure 5 is a schematic diagram of the initial layout of several standard cells after adjustment provided by the present application. As shown in Figure 5, in the initial layout of several standard cells after adjustment, each sequential element is still located in a different row, but the clock path length from the clock inverter at the common point to each sequential element is equal (with a small difference), and each voting logic element is confined to the limited area corresponding to the dotted box.
S37:对调整后的初始布局进行时钟树综合处理。S37: Perform clock tree synthesis processing on the adjusted initial layout.
本实施例中,在对若干标准元件进行初始布局之后,先基于公共点确定若干第一候选位置集合,然后再从若干第一候选位置集合中选出多个时序元件的目标位置集合。由于每个第一候选位置集合所包括的任意两个候选位置的第二时钟路径之间的长度差异小于预设阈值,将各时序元件调整到目标位置集合中相应的目标位置后,可以减小各时序元件的第二时钟路径的长度差异以减小时钟信号传输到各时序元件的时间差异,从而加快时序收敛,缩短开发周期。In this embodiment, after the initial layout of a number of standard components, a number of first candidate position sets are first determined based on common points, and then a number of target position sets of sequential components are selected from the first candidate position sets. Since the length difference between the second clock paths of any two candidate positions included in each first candidate position set is less than a preset threshold, after adjusting each sequential component to a corresponding target position in the target position set, the length difference of the second clock path of each sequential component can be reduced to reduce the time difference of the clock signal transmitted to each sequential component, thereby accelerating timing convergence and shortening the development cycle.
在一具体应用场景中,针对芯片中的三模冗余电路进行设计。三模冗余电路的标准单元摆放和时钟树综合需要满足功能安全强制要求,功能安全强制要求包括要求1和要求2。其中,要求1包括:三模冗余电路的三个DFF分别摆放不同行,且各行之间留有一定间距;要求2包括:三模冗余电路的各DFF分别用单独的ckinv进行驱动。In a specific application scenario, the design is performed for the three-mode redundant circuit in the chip. The standard unit placement and clock tree synthesis of the three-mode redundant circuit need to meet the mandatory functional safety requirements, which include requirements 1 and 2. Among them, requirement 1 includes: the three DFFs of the three-mode redundant circuit are placed in different rows, and a certain distance is left between the rows; requirement 2 includes: each DFF of the three-mode redundant circuit is driven by a separate ckinv.
考虑到上述做法在开发之初考虑的焦点仅在于满足功能安全强制要求,且在满足功能安全强制要求的基础上,对其他问题(主要是静态时序分析和绕线)考虑不足,导致在实际过程中遇到问题较多且时序收敛迭代次数过多,甚至需要更大的面积才能实现三模冗余电路的后端设计。为此,本申请在上述功能安全强制要求的基础上,新增了额外要求,额外要求包括要求3和要求4。其中,要求3包括:三模冗余电路的3个DFF的时钟路径长度尽可能做到等长,且尽量少占用布线资源;要求4包括:三模冗余电路的各投票逻辑元件需靠近3个DFF摆放。Considering that the focus of the above approach at the beginning of development was only on meeting the mandatory requirements of functional safety, and on the basis of meeting the mandatory requirements of functional safety, other issues (mainly static timing analysis and routing) were not considered enough, resulting in more problems encountered in the actual process and too many timing convergence iterations, and even requiring a larger area to realize the back-end design of the three-mode redundant circuit. For this reason, this application adds additional requirements on the basis of the above-mentioned mandatory requirements of functional safety, and the additional requirements include requirements 3 and 4. Among them, requirement 3 includes: the clock path lengths of the three DFFs of the three-mode redundant circuit are as equal as possible, and the wiring resources are occupied as little as possible; requirement 4 includes: each voting logic element of the three-mode redundant circuit must be placed close to the three DFFs.
请参阅图6,图6是本申请提供的针对三模冗余电路的后端设计方法一实施例的流程示意图。如图6所示,该方法包括如下步骤:Please refer to Figure 6, which is a flow chart of an embodiment of a back-end design method for a triple-module redundant circuit provided by the present application. As shown in Figure 6, the method includes the following steps:
S61:按照默认摆放规则对三模冗余电路的若干标准单元进行自动摆放,三模冗余电路的若干标准单元包括三个DFF和四个投票逻辑元件。S61: automatically placing a plurality of standard units of a triple-module redundant circuit according to a default placement rule, wherein the plurality of standard units of the triple-module redundant circuit include three DFFs and four voting logic elements.
按照默认摆放规则对三模冗余电路的若干标准单元进行自动摆放后,可得到三模冗余电路的第一布局。图7a是本申请提供的三模冗余电路的第一布局的示意图,如图7a所示,按照默认摆放规则摆放后,三个DFF分别位于不同行且不同行之间存在一定间距,即三个DFF的摆放符合前述要求1,并且四个投票逻辑元件分散较远。After automatically placing several standard units of the triple-module redundant circuit according to the default placement rules, the first layout of the triple-module redundant circuit can be obtained. Figure 7a is a schematic diagram of the first layout of the triple-module redundant circuit provided by the present application. As shown in Figure 7a, after being placed according to the default placement rules, the three DFFs are respectively located in different rows and there is a certain distance between different rows, that is, the placement of the three DFFs meets the aforementioned requirement 1, and the four voting logic elements are dispersed far away.
S62:根据摆放的三个DFF的位置确定一个公共点,并在公共点处插入一个公共的时钟缓冲器。S62: Determine a common point according to the positions of the three placed DFFs, and insert a common clock buffer at the common point.
在公共点处插入一个公共的时钟缓冲器后可得到三模冗余电路的第二布局,图7b是本申请提供的三模冗余电路的第二布局的示意图,将位于首行的DFF1和位于尾行的DFF3的中线上的一点作为公共点,中线与DFF1所在行、DFF3所在行均平行,在确定的公共点处插入公共的时钟缓冲器,该公共的时钟缓冲器的位置可如图7b所示。After inserting a common clock buffer at the common point, a second layout of the three-module redundant circuit can be obtained. Figure 7b is a schematic diagram of the second layout of the three-module redundant circuit provided by the present application. A point on the midline of DFF1 located in the first row and DFF3 located in the last row is taken as a common point. The midline is parallel to the row where DFF1 is located and the row where DFF3 is located. A common clock buffer is inserted at the determined common point. The position of the common clock buffer can be shown in Figure 7b.
S63:基于公共点的位置,确定三个DFF分别对应的目标位置。S63: Based on the position of the common point, determine the target positions corresponding to the three DFFs respectively.
步骤S62中确定公共点的相关内容可参见前述步骤S32,步骤S63中确定三个DFF的目标位置的相关内容可参见前述步骤S33至S35,在此不再赘述。The relevant contents of determining the common point in step S62 can refer to the aforementioned step S32, and the relevant contents of determining the target positions of the three DFFs in step S63 can refer to the aforementioned steps S33 to S35, which will not be repeated here.
S64:将三个DFF分别调整至相应的目标位置。S64: Adjust the three DFFs to corresponding target positions respectively.
将三个DFF分别调整至相应的目标位置后,可得到三模冗余电路的第三布局,图7c是本申请提供的三模冗余电路的第三布局的示意图,确定的三个DFF的目标位置可分别如图7c所示,图7c中公共点处的时钟缓冲器到DFF1、DFF2和DFF3的时钟路径的长度均相同,即三个DFF的摆放满足前述要求3。After adjusting the three DFFs to the corresponding target positions respectively, the third layout of the three-module redundant circuit can be obtained. Figure 7c is a schematic diagram of the third layout of the three-module redundant circuit provided in the present application. The target positions of the three DFFs determined can be shown in Figure 7c respectively. The lengths of the clock paths from the clock buffer at the common point to DFF1, DFF2 and DFF3 in Figure 7c are the same, that is, the placement of the three DFFs meets the aforementioned requirement 3.
S65:基于调整后的三个DFF的位置,确定限定区域。S65: Determine a limited area based on the adjusted positions of the three DFFs.
限定区域为三个DFF的最小外接矩形区域。The limited area is the minimum circumscribed rectangular area of the three DFFs.
S66:将四个投票逻辑元件调整至限定区域内。S66: Adjust the four voting logic elements to within the limited area.
将四个投票逻辑元件调整至限定区域内后,可得到三模冗余电路的第四布局,图7d是本申请提供的三模冗余电路的第四布局的示意图,限定区域可如图7d中的虚线框所示,将三模冗余电路的四个投票逻辑元件调整至限定区域内后,三模冗余电路的四个投票逻辑元件满足前述要求4。After adjusting the four voting logic elements into the limited area, the fourth layout of the three-module redundant circuit can be obtained. FIG7d is a schematic diagram of the fourth layout of the three-module redundant circuit provided in the present application. The limited area can be shown as the dotted box in FIG7d. After adjusting the four voting logic elements of the three-module redundant circuit into the limited area, the four voting logic elements of the three-module redundant circuit meet the aforementioned requirement 4.
S67:将公共点处的时钟缓冲器替换成第一时钟反相器,并在公共点与各DFF之间的时钟路径上分别插入一个第二时钟反相器。S67: Replace the clock buffer at the common point with a first clock inverter, and insert a second clock inverter into each clock path between the common point and each DFF.
插入第一时钟反相器和各第二时钟反相器后,可得到三模冗余电路的第五布局,图7e是本申请提供的三模冗余电路的第五布局的示意图,公共点处的第一时钟反相器和各DFF的时钟路径上的第二时钟反相器可如图7e所示。在各DFF的时钟路径上分别插入第二时钟反相器后,各DFF可通过独立的第二时钟反相器驱动,即满足前述要求2。After inserting the first clock inverter and each second clock inverter, the fifth layout of the triple-module redundant circuit can be obtained. FIG7e is a schematic diagram of the fifth layout of the triple-module redundant circuit provided by the present application. The first clock inverter at the common point and the second clock inverter on the clock path of each DFF can be shown in FIG7e. After inserting the second clock inverter on the clock path of each DFF, each DFF can be driven by an independent second clock inverter, that is, the aforementioned requirement 2 is met.
S68:对公共点处的第一时钟反相器、第一时钟反相器到各第二时钟反相器之间的连线、各第二时钟反相器、以及各第二时钟反相器到相应时序元件之间的连线均作预设约束处理。S68: Preset constraint processing is performed on the first clock inverter at the common point, the connection between the first clock inverter and each second clock inverter, each second clock inverter, and the connection between each second clock inverter and the corresponding timing element.
预设处理为dont_touch处理。进一步地,可对三模冗余电路经预设约束处理后的布局进行时钟树综合处理。The preset processing is the dont_touch processing. Further, the layout of the triple-module redundant circuit after the preset constraint processing can be subjected to clock tree synthesis processing.
请参阅图8,图8是本申请提供的后端设计装置一实施例的框架示意图。本实施例中,后端设计装置80包括:初始布局模块81、确定模块82、调整模块83和时钟树综合模块84。Please refer to Fig. 8, which is a schematic diagram of a framework of an embodiment of a backend design device provided by the present application. In this embodiment, the backend design device 80 includes: an initial layout module 81, a determination module 82, an adjustment module 83 and a clock tree synthesis module 84.
其中,初始布局模块81用于生成若干标准元件的初始布局,若干标准元件中包括多个时序元件,且各时序元件的时钟信号输入端用于与时钟源的时钟信号输出端连接。确定模块82用于确定各时序元件分别对应的目标位置,任意两个目标位置的第一时钟路径之间的长度差异小于预设阈值,目标位置的第一时钟路径为时钟源与目标位置之间的时钟路径。调整模块83用于将各时序元件分别调整至相应的目标位置。时钟树综合模块84用于对调整后的初始布局进行时钟树综合处理。Among them, the initial layout module 81 is used to generate an initial layout of several standard components, which include multiple timing components, and the clock signal input end of each timing component is used to connect to the clock signal output end of the clock source. The determination module 82 is used to determine the target positions corresponding to each timing component, the length difference between the first clock paths of any two target positions is less than a preset threshold, and the first clock path of the target position is the clock path between the clock source and the target position. The adjustment module 83 is used to adjust each timing component to the corresponding target position. The clock tree synthesis module 84 is used to perform clock tree synthesis processing on the adjusted initial layout.
可选地,确定模块82用于确定公共点,公共点的一端用于与时钟源连接,且公共点的另一端分别用于与各时序元件的时钟信号输入端连接;基于所述公共点,确定若干第一候选位置集合,第一候选位置集合包括各时序元件分别对应的候选位置,且第一候选位置集合所包括的任意两个候选位置的第二时钟路径之间的长度差异小于预设阈值,候选位置的第二时钟路径为公共点与候选位置之间的时钟路径;从若干第一候选位置集合中选出符合要求的目标位置集合;将目标位置集合中各时序元件的候选位置分别作为各时序元件的目标位置。Optionally, the determination module 82 is used to determine a common point, one end of the common point is used to connect to the clock source, and the other end of the common point is used to connect to the clock signal input end of each timing element; based on the common point, a number of first candidate position sets are determined, the first candidate position sets include candidate positions corresponding to each timing element, and the length difference between the second clock paths of any two candidate positions included in the first candidate position set is less than a preset threshold, and the second clock path of the candidate position is the clock path between the common point and the candidate position; a target position set that meets the requirements is selected from the number of first candidate position sets; and the candidate positions of each timing element in the target position set are respectively used as the target positions of each timing element.
可选地,第一候选位置集合所包括的各候选位置的第二时钟路径的长度均相同。Optionally, the lengths of the second clock paths of the candidate positions included in the first candidate position set are all the same.
可选地,确定模块82用于分别确定各第一候选位置集合的总时钟路径长度;将总时钟路径长度最短的第一候选位置集合,作为目标位置集合。Optionally, the determination module 82 is used to respectively determine the total clock path length of each first candidate position set; and take the first candidate position set with the shortest total clock path length as the target position set.
可选地,若干个标准元件中还包括多个投票逻辑元件,确定模块82用于对各第一候选位置集合,基于第一候选位置集合所包括的各候选位置,确定第一候选位置集合所对应的限定区域;从若干第一候选位置集合中选出限定区域符合预设布局条件的至少一个第二候选位置集合,预设布局条件包括:限定区域能够容纳多个投票逻辑元件;从至少一个第二候选位置集合中选出目标位置集合。Optionally, the plurality of standard elements also include a plurality of voting logic elements, and the determination module 82 is used to determine, for each first candidate position set, a limited area corresponding to the first candidate position set based on each candidate position included in the first candidate position set; select at least one second candidate position set whose limited area meets preset layout conditions from the plurality of first candidate position sets, and the preset layout conditions include: the limited area can accommodate a plurality of voting logic elements; and select a target position set from at least one second candidate position set.
可选地,第一候选位置集合的限定区域为第一候选位置集合包括的各候选位置所对应的最小外接矩形区域;Optionally, the limited area of the first candidate position set is the minimum circumscribed rectangular area corresponding to each candidate position included in the first candidate position set;
和/或,确定模块82用于采用以下方式中的任一者从至少一个第二候选位置集合中选出目标位置集合:将总时钟路径长度最短的第二候选位置集合,作为目标位置集合;将限定区域的面积最小的第二候选位置集合,作为目标位置集合;综合各第二候选位置集合所对应的总时钟路径长度和限定区域的面积,从至少一个第二候选位置集合中确定出目标位置集合。And/or, the determination module 82 is used to select a target position set from at least one second candidate position set in any one of the following ways: taking the second candidate position set with the shortest total clock path length as the target position set; taking the second candidate position set with the smallest area of the limited area as the target position set; and determining the target position set from at least one second candidate position set by comprehensively considering the total clock path lengths and the areas of the limited areas corresponding to each second candidate position set.
可选地,公共点处布置有时钟缓冲器,后端设计装置80还包括反相器插入模块85。在调整模块83将各时序元件分别调整至相应的目标位置之后,以及在时钟树综合模块84对调整后的初始布局进行时钟树综合处理之前,反相器插入模块85用于将公共点处的时钟缓冲器替换为第一时钟反相器,以及,在公共点到各时序元件的时钟路径上分别插入一个第二时钟反相器。Optionally, a clock buffer is arranged at the common point, and the back-end design device 80 further includes an inverter insertion module 85. After the adjustment module 83 adjusts each sequential element to a corresponding target position, and before the clock tree synthesis module 84 performs clock tree synthesis processing on the adjusted initial layout, the inverter insertion module 85 is used to replace the clock buffer at the common point with a first clock inverter, and to insert a second clock inverter on the clock path from the common point to each sequential element.
可选地,第一时钟反相器与各第二时钟反相器之间的时钟路径长度均相同,且各第二时钟反相器与相应的时序元件之间的时钟路径长度均相同。Optionally, the lengths of clock paths between the first clock inverter and each second clock inverter are the same, and the lengths of clock paths between each second clock inverter and the corresponding sequential element are the same.
可选地,确定模块82用于确定多个时序元件中的第一元件和第二元件;将基于第一元件的初始位置和第二元件的初始位置确定的中线上的一点,作为公共点。和/或,后端设计装置80还包括预设约束处理模块86,在调整模块83将各时序元件分别调整至相应的目标位置之后,以及在时钟树综合模块84对调整后的初始布局进行时钟树综合处理之前,预设约束处理模块86用于对公共点到各时序元件的时钟路径上的元件和连线做预设约束处理,使得元件和连线不被优化。Optionally, the determination module 82 is used to determine the first element and the second element among the plurality of sequential elements; and a point on the midline determined based on the initial position of the first element and the initial position of the second element is used as a common point. And/or, the back-end design device 80 further includes a preset constraint processing module 86, which is used to perform preset constraint processing on the elements and wires on the clock path from the common point to each sequential element after the adjustment module 83 adjusts each sequential element to the corresponding target position, and before the clock tree synthesis module 84 performs clock tree synthesis processing on the adjusted initial layout, so that the elements and wires are not optimized.
可选地,若干个标准元件中还包括多个投票逻辑元件,调整模块83还用于将多个投票逻辑元件调整至多个时序元件的限定区域内,限定区域是基于各时序元件的目标位置确定的;和/或,若干标准元件为三模冗余电路所包括的若干电路元件,且多个时序元件的数量为3个。Optionally, the plurality of standard components further include a plurality of voting logic components, and the adjustment module 83 is further used to adjust the plurality of voting logic components to within a limited area of the plurality of timing components, wherein the limited area is determined based on a target position of each timing component; and/or, the plurality of standard components are a plurality of circuit elements included in a triple-mode redundant circuit, and the number of the plurality of timing components is 3.
需要说明的是,本实施方式的装置可以执行上述方法中的步骤,相关内容的详细说明请参见上述方法部分,在此不再赘叙。It should be noted that the device of this embodiment can execute the steps in the above method. For detailed description of the relevant content, please refer to the above method part, which will not be repeated here.
请参阅图9,图9是本申请提供的电子设备一实施例的框架示意图。本实施方式中,电子设备90包括存储器91和处理器92。Please refer to FIG9 , which is a schematic diagram of a framework of an electronic device according to an embodiment of the present application. In this embodiment, the electronic device 90 includes a memory 91 and a processor 92 .
处理器92还可以称为CPU(Central Processing Unit,中央处理单元)。处理器92可能是一种集成电路芯片,具有信号的处理能力。处理器92还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器92也可以是任何常规的处理器92等。The processor 92 may also be referred to as a CPU (Central Processing Unit). The processor 92 may be an integrated circuit chip having signal processing capabilities. The processor 92 may also be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component. A general-purpose processor may be a microprocessor or the processor 92 may also be any conventional processor 92, etc.
电子设备90中的存储器91用于存储处理器92运行所需的程序指令。The memory 91 in the electronic device 90 is used to store program instructions required for the processor 92 to run.
处理器92用于执行程序指令以实现本申请中的后端设计方法。The processor 92 is used to execute program instructions to implement the back-end design method in this application.
请参阅图10,图10是本申请提供的计算机可读存储介质一实施例的框架示意图。本申请实施例的计算机可读存储介质100存储有程序指令101,该程序指令101被执行时实现本申请提供的后端设计方法。其中,该程序指令101可以形成程序文件以软件产品的形式存储在上述计算机可读存储介质100中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式方法的全部或部分步骤。而前述的计算机可读存储介质100包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。Please refer to Figure 10, which is a schematic diagram of the framework of an embodiment of a computer-readable storage medium provided by the present application. The computer-readable storage medium 100 of the embodiment of the present application stores a program instruction 101, and the program instruction 101 implements the back-end design method provided by the present application when it is executed. Among them, the program instruction 101 can form a program file and be stored in the above-mentioned computer-readable storage medium 100 in the form of a software product, so that a computer device (which can be a personal computer, a server, or a network device, etc.) executes all or part of the steps of each implementation method of the present application. The aforementioned computer-readable storage medium 100 includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a disk or an optical disk, or a terminal device such as a computer, a server, a mobile phone, and a tablet.
以上方案,在对若干标准元件进行初始布局之后,先调整若干标准元件中的各时序元件到相应的目标位置,然后再对调整后的初始布局进行时钟树综合处理。由于任意两个目标位置的第一时钟路径之间的长度差异小于预设阈值,将各时序元件调整到相应的目标位置后,可以减小各时序元件的第一时钟路径的长度差异以减小时钟信号传输到各时序元件的时间差异,从而加快时序收敛,缩短开发周期。In the above scheme, after the initial layout of several standard components, each sequential component in the several standard components is first adjusted to the corresponding target position, and then the adjusted initial layout is subjected to clock tree synthesis processing. Since the length difference between the first clock paths of any two target positions is less than the preset threshold, after adjusting each sequential component to the corresponding target position, the length difference of the first clock path of each sequential component can be reduced to reduce the time difference of the clock signal transmitted to each sequential component, thereby accelerating timing convergence and shortening the development cycle.
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。In some embodiments, the functions or modules included in the device provided by the embodiments of the present disclosure can be used to execute the method described in the above method embodiments. The specific implementation can refer to the description of the above method embodiments, and for the sake of brevity, it will not be repeated here.
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。The above description of various embodiments tends to emphasize the differences between the various embodiments. The same or similar aspects can be referenced to each other, and for the sake of brevity, they will not be repeated herein.
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。In the several embodiments provided in the present application, it should be understood that the disclosed methods, devices and systems can be implemented in other ways. For example, the device implementation described above is only schematic. For example, the division of modules or units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, and the indirect coupling or communication connection of devices or units can be electrical, mechanical or other forms.
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, server, or network device, etc.) or a processor (processor) to perform all or part of the steps of each implementation method of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk and other media that can store program code.
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。The above description is only an implementation method of the present application, and does not limit the patent scope of the present application. Any equivalent structure or equivalent process transformation made using the contents of the present application specification and drawings, or directly or indirectly used in other related technical fields, are also included in the patent protection scope of the present application.
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410757130.3A CN118627460A (en) | 2024-06-12 | 2024-06-12 | Back-end design method, device, equipment and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410757130.3A CN118627460A (en) | 2024-06-12 | 2024-06-12 | Back-end design method, device, equipment and storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118627460A true CN118627460A (en) | 2024-09-10 |
Family
ID=92599072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410757130.3A Pending CN118627460A (en) | 2024-06-12 | 2024-06-12 | Back-end design method, device, equipment and storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118627460A (en) |
-
2024
- 2024-06-12 CN CN202410757130.3A patent/CN118627460A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6523159B2 (en) | Method for adding decoupling capacitance during integrated circuit design | |
US7555741B1 (en) | Computer-aided-design tools for reducing power consumption in programmable logic devices | |
US7039891B2 (en) | Method of clock driven cell placement and clock tree synthesis for integrated circuit design | |
US5666289A (en) | Flexible design system | |
JP4629189B2 (en) | Layout method, layout apparatus, and recording medium | |
Passas et al. | Crossbar NoCs are scalable beyond 100 nodes | |
Cong et al. | Matching-based methods for high-performance clock routing | |
Pentapati et al. | Pin-3D: A physical synthesis and post-layout optimization flow for heterogeneous monolithic 3D ICs | |
US11748548B2 (en) | Hierarchical clock tree implementation | |
Guthaus et al. | High-performance clock mesh optimization | |
WO2020224036A1 (en) | Digital integrated circuit wiring method based on binary code, and terminal device | |
US6260175B1 (en) | Method for designing an integrated circuit using predefined and preverified core modules having prebalanced clock trees | |
Prabhakaran et al. | Simultaneous scheduling, binding and floorplanning in high-level synthesis | |
Zhu et al. | Perfect-balance planar clock routing with minimal path-length | |
Passas et al. | A 128 x 128 x 24gb/s crossbar interconnecting 128 tiles in a single hop and occupying 6% of their area | |
US9390209B2 (en) | System for and method of combining CMOS inverters of multiple drive strengths to create tune-able clock inverters of variable drive strengths in hybrid tree-mesh clock distribution networks | |
CN118627460A (en) | Back-end design method, device, equipment and storage medium | |
US8595668B1 (en) | Circuits and methods for efficient clock and data delay configuration for faster timing closure | |
US6968524B2 (en) | Method and apparatus to optimize an integrated circuit design using transistor folding | |
US6877040B1 (en) | Method and apparatus for testing routability | |
CN117910402A (en) | Model design method, device, equipment and computer readable storage medium | |
KR20200144462A (en) | Hierarchical clock tree implementation | |
JP7051151B2 (en) | Numerical information generator, numerical information generation method and program | |
US7844935B2 (en) | Wiring design system of semiconductor integrated circuit, semiconductor integrated circuit, and wiring design program | |
Banker et al. | Physical design tradeoffs for ASIC technologies |
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 |