CN116702664B - Time violation repairing method and device, computer equipment and storage medium - Google Patents
Time violation repairing method and device, computer equipment and storage medium Download PDFInfo
- Publication number
- CN116702664B CN116702664B CN202310969652.5A CN202310969652A CN116702664B CN 116702664 B CN116702664 B CN 116702664B CN 202310969652 A CN202310969652 A CN 202310969652A CN 116702664 B CN116702664 B CN 116702664B
- Authority
- CN
- China
- Prior art keywords
- target data
- data unit
- path
- distance
- violation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013461 design Methods 0.000 claims abstract description 56
- 230000008439 repair process Effects 0.000 claims abstract description 22
- 239000000872 buffer Substances 0.000 claims description 53
- 238000004590 computer program Methods 0.000 claims description 4
- 238000005067 remediation Methods 0.000 claims description 4
- 101100524516 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RFA2 gene Proteins 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 101150110971 CIN7 gene Proteins 0.000 description 7
- 101100286980 Daucus carota INV2 gene Proteins 0.000 description 7
- 101100508840 Daucus carota INV3 gene Proteins 0.000 description 7
- 101150110298 INV1 gene Proteins 0.000 description 7
- 101100397044 Xenopus laevis invs-a gene Proteins 0.000 description 7
- 101100397045 Xenopus laevis invs-b gene Proteins 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 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
- 230000000694 effects Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 241001134453 Lista Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000012300 Sequence Analysis Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction 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/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
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
The application provides a time violation repairing method, a time violation repairing device, computer equipment and a storage medium, and relates to the technical field of integrated circuits. The method comprises the following steps: acquiring a target data path with time violations in the integrated circuit design; determining a target data unit according to the distance between each data unit in the target data path; and according to the target data unit, adjusting the connection relation of the target data path to obtain the integrated circuit design after the time violation is repaired. The method and the device can repair the time violations of the complex paths.
Description
Technical Field
The present invention relates to the field of integrated circuits, and in particular, to a method, an apparatus, a computer device, and a storage medium for repairing a time violation.
Background
In integrated circuit chip design, the setup time and the hold time determine the frequency and the function of the chip respectively, and repairing setup time violations and hold time violations is one of the key steps in chip physical design in the process of physically realizing codes to the layout.
In the existing method for repairing the setup time violations, the method mainly comprises the steps of adjusting the clock delay of a clock path, replacing the types of logic units in the data path, and the like, wherein the clock delay is adjusted mainly by a buffer with shorter clock delay, so that the connection mode of a register is adjusted, and the types of the logic units in the data path are replaced mainly by logic units with low threshold voltage and standard threshold voltage.
However, for some critical paths, the logic units in the data paths are replaced, the line delay is within a reasonable range and crosstalk is avoided, and the front and rear stages of the path have no time margin for adjusting the clock delay, so that the time violation repair of the path cannot be completed.
Disclosure of Invention
The invention aims to provide a time violation repairing method, a device, computer equipment and a storage medium for repairing the time violation of a complex path aiming at the defects in the prior art.
In order to achieve the above purpose, the technical solution adopted in the embodiment of the present application is as follows:
in a first aspect, an embodiment of the present application provides a method for repairing a time violation, where the method includes:
acquiring a target data path with time violations in the integrated circuit design;
determining a target data unit according to the distance between each data unit in the target data path;
and according to the target data unit, adjusting the connection relation of the target data path to obtain the integrated circuit design after the time violation is repaired.
Optionally, the acquiring the target data path with the time violation in the integrated circuit design includes:
acquiring a plurality of time violation paths in the integrated circuit design;
determining a violation path, of which the time margin meets a preset time margin condition, from the plurality of time violation paths as a first violation path according to the time margins of the plurality of time violation paths;
the target data path is determined from a plurality of first offending paths based on data units in the plurality of first offending paths.
Optionally, the determining the target data path from the plurality of first violation paths according to the data units in the plurality of first violation paths includes:
determining a first violating path with a buffer and/or an inverter pair from the plurality of first violating paths as the target data path according to data units in the plurality of first violating paths, wherein the inverter pair comprises inverters with even-numbered stages connected with each other.
Optionally, the determining the target data unit according to the distance between the data units in the target data path includes:
and determining the target buffer meeting the preset distance condition according to the distance between each buffer in the target data path and the data unit before the buffer, the distance between each buffer and the data unit after the buffer and the distance between the data unit before the buffer and the data unit after the buffer.
Optionally, the determining the target data unit according to the distance between the data units in the target data path includes:
and determining the target inverter pair meeting the preset distance condition according to the distance between each inverter pair and the data unit before the inverter pair, the distance between each inverter pair and the data unit after the inverter pair and the distance between each inverter pair and the data unit after the inverter pair in the target data path.
Optionally, the adjusting the connection relationship of the target data path according to the target data unit to obtain the integrated circuit design after the repair of the time violation includes:
and adjusting the connection relation of the target data paths according to the number of fan-out units of the target data units to obtain the integrated circuit design after the time violation is repaired.
Optionally, the adjusting the connection relationship of the target data path according to the number of fan-out units of the target data unit to obtain an integrated circuit design after repairing the time violation includes:
and if the target data unit is provided with a fan-out unit, deleting the target data unit from the target data path, and adjusting the connection relation of the target data path to obtain the integrated circuit design after the time violation is repaired.
Optionally, the adjusting the connection relationship of the target data path according to the number of fan-out units of the target data unit to obtain an integrated circuit design after repairing the time violation includes:
and if the target data unit is provided with a plurality of fan-out units, adjusting the connection relation of the target data path according to the previous stage data unit and the next stage data unit of the target data unit to obtain the integrated circuit design after the time violation is repaired.
In a second aspect, embodiments of the present application further provide a time violation remediation device, where the device includes:
the data path acquisition module is used for acquiring a target data path with time violations in the integrated circuit design;
a data unit determining module, configured to determine a target data unit according to a distance between each data unit in the target data path;
and the connection relation adjustment module is used for adjusting the connection relation of the target data path according to the target data unit to obtain the integrated circuit design after the time violation is repaired.
Optionally, the data path acquisition module includes:
a violation path obtaining unit, configured to obtain a plurality of time violation paths in the integrated circuit design;
the violation path screening unit is used for determining a violation path, of which the time margin meets a preset time margin condition, as a first violation path from the plurality of time violation paths according to the time margins of the plurality of time violation paths;
and the target violation path determining unit is used for determining the target data path from the plurality of first violation paths according to the data units in the plurality of first violation paths.
Optionally, the target violation path determining unit is specifically configured to determine, from the plurality of first violation paths, a first violation path having a buffer and/or an inverter pair as the target data path according to data units in the plurality of first violation paths, where the inverter pair includes inverters connected to each other in even stages.
Optionally, the data unit determining module is specifically configured to determine, according to a distance between each buffer in the target data path and a data unit of a previous stage of the buffer, a distance between each buffer and a data unit of a next stage of the buffer, and a distance between each data unit of the previous stage of the buffer and the data unit of the next stage of the buffer, a target buffer that meets a preset distance condition.
Optionally, the data unit determining module is specifically configured to determine, according to a distance between each inverter pair in the target data path and a data unit preceding the inverter pair, a distance between each inverter pair and a data unit following the inverter pair, and a distance between each data unit preceding the inverter pair and a data unit following the inverter pair, a target inverter pair that meets a preset distance condition.
Optionally, the connection relation adjustment module is specifically configured to adjust the connection relation of the target data path according to the number of fan-out units of the target data unit, so as to obtain an integrated circuit design after repairing the time violation.
Optionally, the connection relation adjustment module is specifically configured to delete the target data unit from the target data path if the target data unit has a fan-out unit, and adjust the connection relation of the target data path to obtain the integrated circuit design after the time violation is repaired.
Optionally, the connection relation adjustment module is specifically configured to adjust the connection relation of the target data path according to the previous stage data unit and the next stage data unit of the target data unit if the target data unit has a plurality of fan-out units, so as to obtain the integrated circuit design after the repair of the time violation.
In a third aspect, embodiments of the present application further provide a computer device, including: a processor, a storage medium and a bus, the storage medium storing program instructions executable by the processor, the processor and the storage medium communicating over the bus when the electronic device is running, the processor executing the program instructions to perform the steps of the method of repairing a time violation as described in any of the first aspects.
In a fourth aspect, embodiments of the present application also provide a computer-readable storage medium, on which a computer program is stored, which when executed by a processor performs the steps of the method for repairing a time violation according to any of the first aspects.
The beneficial effects of this application are:
the application provides a time violation repairing method, a device, computer equipment and a storage medium, wherein a target data unit is determined according to the distance between data units in a target data path, and the time violation repairing is completed on a path which cannot be subjected to the violation repairing by adjusting the time delay of a clock path and replacing the type of a logic unit by adjusting the connection relation of front and rear data units of the target data unit, so that the time violation repairing on a complex path is realized.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings that are needed in the embodiments will be briefly described below, it being understood that the following drawings only illustrate some embodiments of the present invention and therefore should not be considered as limiting the scope, and other related drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
Fig. 1 is a flowchart of a method for repairing a time violation according to an embodiment of the present application;
fig. 2 is a second flowchart of a method for repairing a time violation according to an embodiment of the present application;
FIG. 3 is a schematic diagram of a label datapath according to an embodiment of the present application;
FIG. 4 is a schematic diagram of an integrated circuit design according to an embodiment of the present application;
FIG. 5 is a schematic diagram of another integrated circuit design provided in an embodiment of the present application;
FIG. 6 is a schematic structural diagram of a time violation repair device according to an embodiment of the present disclosure;
fig. 7 is a schematic structural diagram of a computer device according to an embodiment of the present application.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present invention more apparent, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are some embodiments of the present invention, but not all embodiments of the present invention.
Thus, the following detailed description of the embodiments of the present application, as provided in the accompanying drawings, is not intended to limit the scope of the application, as claimed, but is merely representative of selected embodiments of the application. All other embodiments, which can be made by one of ordinary skill in the art based on the embodiments herein without making any inventive effort, are intended to be within the scope of the present application.
Furthermore, the terms first, second and the like in the description and in the claims and in the above-described figures, are used for distinguishing between similar objects and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used may be interchanged where appropriate such that the embodiments of the invention described herein may be implemented in sequences other than those illustrated or otherwise described herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
It should be noted that, without conflict, features in embodiments of the present application may be combined with each other.
In the existing method for repairing the setup time violations, the method mainly comprises the steps of adjusting the clock delay of a clock path, replacing the types of logic units in the data path, and the like, wherein the clock delay is adjusted mainly by a buffer with shorter clock delay, so that the connection mode of a register is adjusted, and the types of the logic units in the data path are replaced mainly by logic units with low threshold voltage and standard threshold voltage.
However, for some critical paths, the logic units in the data paths are replaced, the line delay is within a reasonable range and crosstalk is avoided, and the front and rear stages of the path have no time margin for adjusting the clock delay, so that the time violation repair of the path cannot be completed.
Based on the above, the embodiment of the application aims to provide a method for repairing the time violation, which shortens the delay of the data path by compressing the logic progression of the data path of the violation path on the premise of ensuring the logic equivalence, thereby achieving the purpose of repairing the establishment time violation.
Referring to fig. 1, a first flowchart of a method for repairing a time violation provided in an embodiment of the present application is shown in fig. 1, where the method may include:
s10: a target data path for a time violation in an integrated circuit design is obtained.
In this embodiment, after completing the placement and routing of various devices in the integrated circuit, it is necessary to verify whether the timing of the integrated circuit is correct through static timing analysis. A static timing analysis tool or other timing analysis tools may be used to perform timing analysis on each register in the integrated circuit to generate a static timing analysis result for the integrated circuit.
Specifically, the static time sequence analysis result includes: in the embodiment, after the transmission paths with time violations exist, each transmission path in the integrated circuit design is formed by two branches of a clock path and a data path, the time delay of the data path is adjusted to complete the repair of the time violations.
Wherein the target data path needs to satisfy: firstly, a clock path corresponding to a transmission path to which the clock path belongs cannot be subjected to violation repair by adjusting time delay; second, the logical equivalence of the registers on the path will not change when the solution of this embodiment is adopted for repairing violations.
S20: the target data unit is determined based on the distance between the data units in the target data path.
In this embodiment, the target data path is formed by a plurality of data units with data ports connected to each other, and the distance between the data units includes: the distance between each data unit and the adjacent data units and the distance between the adjacent data units of each data unit are calculated, and the data units with the distances meeting the preset distance condition are determined from the data units to be target data units.
And judging whether the distance relation between each data unit and the adjacent data unit and the distance relation between the adjacent data units of each data unit meets the preset distance condition or not so as to determine the target data unit.
The distance between the data units is illustratively the manhattan distance between the data units.
S30: and according to the target data unit, adjusting the connection relation of the target data path to obtain the integrated circuit design after the time violation is repaired.
In this embodiment, after determining the target data unit, by adjusting the connection relationship between the front data unit and the back data unit of the target data unit, the output end of the front data unit of the target data unit is connected to the input end of the back data unit, so as to shorten the time delay of the target data path, and not to affect the timing sequence of other data paths, and complete the establishment time violation repair of the violation path.
According to the time violation repairing method provided by the embodiment, the target data units are determined according to the distance between the data units in the target data path, and the time violation repairing is completed on the path which cannot be subjected to the violation repairing by adjusting the time delay of the clock path and the type of the replacement logic unit by adjusting the connection relation between the front data unit and the rear data unit of the target data units, so that the time violation repairing on the complex path is realized.
One possible implementation of the above determination of the target data path is described below in connection with the embodiments.
Referring to fig. 2, a second flowchart of a method for repairing a time violation provided in the embodiment of the present application is shown in fig. 2, where the step S10 of obtaining a target data path with a time violation in an integrated circuit design may include:
s11: a plurality of time violation paths in an integrated circuit design are obtained.
In this embodiment, by performing static timing analysis on the integrated circuit design, the delay parameters of each path are determined, and according to the delay parameters of each path, the path with the setup time violation is determined.
S12: and determining the violation path with the time margin meeting the preset time margin condition from the plurality of time violation paths as a first violation path according to the time margins of the plurality of time violation paths.
In this embodiment, according to a static timing analysis result of an integrated circuit design, determining a time margin corresponding to each setup time violation path, where the time margin corresponding to each setup time violation path includes: the method comprises the steps of determining a violation path meeting preset time allowance conditions from a plurality of time violation paths according to the setup time allowance of all registers of a front stage of a starting register of each time violation path, the holding time allowance of all registers of a rear stage of a terminating register of each time violation path and the holding time allowance of the time violation path.
The preset time allowance conditions to be met by each time allowance are respectively as follows: the establishment time margin of all registers at the front stage does not meet the first time margin threshold, the retention time margin of all registers at the rear stage does not meet the second time margin threshold, and the retention time margin of the time violation path meets the third time margin threshold.
The establishment time margin of all registers of the front stage does not meet the first time margin threshold value, and the retention time margin of all registers of the rear stage does not meet the second time margin threshold value, so as to indicate that the time violation path cannot finish the repair of the time violation by performing clock adjustment on the time sequence path, and if the time sequence path of the time violation path is subjected to clock adjustment, new violations can occur in the front stage path and the rear stage path; the hold time margin of the time violation path meeting a third time margin threshold is used to avoid causing a hold time violation when the time violation path is established for a time violation repair.
S13: a target data path is determined from the plurality of first offending paths based on the data units in the plurality of first offending paths.
In this embodiment, for a first violating path in the first violating path list path listA, a second violating path meeting a preset data unit condition is selected from the first violating path list path listA according to a data unit in the first violating path to form a second violating path list path listB, where a data path corresponding to the second violating path in the second violating path list path listB is a target data path.
The preset data unit condition is used for indicating that a data path corresponding to the violation path comprises a data unit which can be used for compression.
In one possible implementation manner, the determining, in S13, the target data path from the plurality of first violation paths according to the data units in the plurality of first violation paths may include:
from the data units in the first plurality of violation paths, a first violation path having a buffer and/or an inverter pair is determined as a target data path from the first plurality of violation paths, the inverter pair comprising an even number of interconnected inverters.
In this embodiment, the preset data unit condition may be: the data paths corresponding to the violation paths comprise: a buffer and/or an inverter pair, the data path not being the target data path if neither the buffer nor the inverter pair is included in the data path; if the data path includes a buffer and/or an inverter pair, the data path is determined to be the target data path.
According to the time violation repairing method provided by the embodiment, the target data path is screened and determined according to the time margin of the time violation path and the data units in the time violation path, so that the time violation repairing can be finished on the path which cannot be subjected to the violation repairing by adjusting the time delay of the clock path and replacing the type of the logic unit, the new violation and logic equivalence can not be caused when the violation is repaired, and the time violation repairing on the complex path is realized.
In a possible implementation manner, the determining, in S20, the target data unit according to the distance between the data units in the target data path may include:
and determining the target buffer meeting the preset distance condition according to the distance between each buffer and the previous data unit of the buffer, the distance between each buffer and the next data unit of the buffer and the distance between the previous data unit of the buffer and the next data unit of the buffer in the target data path.
In this embodiment, for a buffer in a target data path, a first distance between the buffer and a preceding stage data unit, a second distance between the buffer and a following stage data unit, and a third distance between the preceding stage data unit and the following stage data unit of the buffer are calculated, and whether a preset distance condition is satisfied is determined according to a distance relationship among the first distance, the second distance, and the third distance.
The determining whether the distance relationship among the first distance, the second distance and the third distance meets the preset distance condition may specifically be: and judging whether the sum of the first distance and the second distance is smaller than or equal to a third distance.
For example, please refer to fig. 3, which is a schematic diagram of an entry destination data path provided in the embodiment of the present application, as shown in fig. 3, in the destination data path, a start point is a register reg0, an end point is a register reg1, a plurality of data units exist between the registers reg0 and reg1, and each data unit is defined in the form of array variables, such as inverters INV0, INV1, INV2, INV3, and buffers BUF0, BUF1, according to the type and the location of the data unit.
Taking buffer BUF0 as an example, a specific implementation of determining the target buffer will be described.
The previous stage data unit of BUF0 is logic unit logic1, the next stage data unit of BUF0 is BUF1, whether the sum of the distance from BUF0 to logic1 and the distance from BUF0 to BUF1 is smaller than or equal to the distance from logic1 to BUF1 is judged, and if the sum of the distance from BUF0 to logic1 and the distance from BUF0 to BUF1 is smaller than or equal to the distance from logic1 to BUF1, the BUF0 is determined to be the target data unit.
As shown in fig. 3, if BUF0 has only one fan-out unit BUF1, BUF0 can be directly deleted, so that the output terminal of logic1 is connected with BUF1, and the delay on the data path after the output terminal of logic1 is reduced due to the deletion of BUF0, so that the data delay caused by BUF0 is reduced on the target data path, and the setup time violation of the path is repaired.
Further, please refer to fig. 4, which is a schematic diagram of an integrated circuit design provided in this embodiment of the present application, as shown in fig. 4, assuming that a clock path of reg0-reg1 needs to be subjected to violation repair, BUF0 is a target data unit in the figure, since BUF0 has three fan-out units, namely logic2, logic3 and BUF1, BUF0 cannot be directly deleted, and for the data path reg0-reg1 with a time violation, only an input terminal of logic3 is connected to an output terminal of logic1, but a connection relationship between BUF0 and logic2 and BUF1 remains unchanged.
In another possible implementation manner, the determining, in S20, the target data unit according to the distance between the data units in the target data path may include:
and determining the target inverter pair meeting the preset distance condition according to the distance between each inverter pair and the previous data unit of the inverter pair, the distance between each inverter pair and the next data unit of the inverter pair and the distance between each inverter pair and the next data unit of the inverter pair in the target data path.
In this embodiment, in order to ensure that the logic equivalence of each point on the target data path is not changed when the delay of the target data path is adjusted, it is necessary to represent the inverters of even-numbered stages as a whole in the form of an inverter pair for the inverters of which the logic equivalence is changed.
For an inverter pair in a target data path, a first distance between a first inverter and a preceding stage data unit in the inverter pair, a second distance between a last inverter and a following stage data unit in the inverter pair, and a third distance between the preceding stage data unit of the first inverter and the following stage data unit of the last inverter are calculated, and whether a preset distance condition is satisfied is determined according to a distance relation among the first distance, the second distance, and the third distance.
For example, as shown in fig. 3, the inverters INV0 and INV1 are each an odd number of inverters, and cannot be used as a target data unit; for the inverter pair formed by the inverters INV2 and INV3, the previous stage data unit of the inverter pair is logic2, the next stage data unit of the inverter pair is logic3, whether the sum of the distances from INV2 to logic2 and the distances from INV3 to logic3 is smaller than or equal to the distances from logic2 to logic3 is judged, and if the sum of the distances from INV2 to logic2 and the distances from INV3 to logic3 is smaller than or equal to the distances from logic2 to logic3, the inverter pair formed by INV2 and INV3 is determined to be the target data unit.
As shown in fig. 3, INV2 has only one fan-out unit INV3, and IVN3 has only one fan-out unit logic3, then INV2 and INV3 may be deleted directly, so that the output end of logic2 is connected to the output end of logic 3.
Still further, referring to fig. 5, as shown in fig. 5, assuming that the pair of inverters corresponding to INV0 and INV1 in the diagram is the target data unit, since INV0 has two fan-out units INV1 and INV 5, INV1 has three fan-out units logic2, logic3 and BUF1, INV0 and INV1 cannot be deleted directly, and for the data path reg0-reg1 with a time violation, only the input terminal of logic3 is connected to the output terminal of logic1, so that the delay between logic1 and logic3 is reduced, but the connection relation between INV1 and logic2 and BUF1 is kept unchanged, i.e. the delay between logic1 and logic2, and the timing of the data path where logic2 is located and the timing of the data path where BUF1 is located are not changed.
It should be noted that, for the inverter pairs of even number stages, it is necessary to ensure that each inverter in the inverter pairs has only one fan-out unit, and the inverter pairs can be deleted.
According to the time violation repairing method provided by the embodiment, whether the time violation repairing can be completed by compressing the logic series of the data path for the time violation path is determined according to the distance between the buffer or the inverter pair and the front-back data units in the target data path.
In one possible implementation manner, the step S30 of adjusting the connection relationship of the target data path according to the target data unit to obtain the integrated circuit design after the repair of the time violation may include:
and adjusting the connection relation of the target data paths according to the number of fan-out units of the target data units to obtain the integrated circuit design after the time violation is repaired.
In this embodiment, fan-out (fan-out) refers to the maximum number of digital signal inputs that can be driven by a single logic gate, and the number of fan-out units of a target data unit is the number of units connected to the output end of the target data unit.
Determining whether the target data unit can be deleted from the target data path according to the number of fan-out units of the target data unit, and if so, adjusting the connection relationship between adjacent data units of the target data unit after deleting the target data unit; if not, the connection relation between the adjacent data units of the target data unit is adjusted.
In some embodiments, the process of adjusting the connection relationship of the target data paths according to the number of fan-out units of the target data units to obtain the integrated circuit design after the repair of the time violation may include:
and if the target data unit is provided with a fan-out unit, deleting the target data unit from the target data path, and adjusting the connection relation of the target data path to obtain the integrated circuit design after the time violation is repaired.
In this embodiment, if the target data unit has only one fan-out unit, the target data unit may be deleted directly from the current target data path without affecting other paths, so that the input end of the next stage unit of the target data unit is directly connected to the output end of the previous stage unit of the target data unit, and an adjusted target data path is obtained.
In other embodiments, the process of adjusting the connection relationship of the target data paths according to the number of fan-out units of the target data units to obtain the integrated circuit design after the repair of the time violation may include:
and if the target data unit is provided with a plurality of fan-out units, adjusting the connection relation of the target data path according to the previous stage data unit and the next stage data unit of the target data unit to obtain the integrated circuit design after the time violation is repaired.
In this embodiment, if the target data unit has multiple fan-out units, the target data unit will affect other paths after being deleted, so that the target data unit is not deleted from the target data path, and only the input end of the next stage unit of the target data unit is directly connected to the output end of the previous stage unit of the target data unit, so as to obtain the adjusted target data path.
According to the time violation repairing method provided by the embodiment, the target data units are determined according to the distance between the data units in the target data paths, the connection relation of the target data paths is adjusted according to the number of fan-out units of the target data units, and the time violation repairing is completed on paths which cannot be subjected to violation repairing by adjusting the time delay of the clock paths and replacing the types of logic units, so that the time violation repairing on complex paths is realized.
On the basis of the method embodiment, the embodiment of the application also provides a time violation repairing device. Referring to fig. 6, a schematic structural diagram of a time violation repair device provided in an embodiment of the present application, as shown in fig. 6, the device may include:
a data path acquisition module 10 for acquiring a target data path with a time violation in the integrated circuit design;
a data unit determining module 20, configured to determine a target data unit according to a distance between each data unit in the target data path;
and the connection relation adjustment module 30 is configured to adjust the connection relation of the target data path according to the target data unit, so as to obtain the integrated circuit design after the repair of the time violation.
Optionally, the data path acquisition module 10 may include:
the system comprises a violation path acquisition unit, a rule breaking unit and a rule breaking unit, wherein the violation path acquisition unit is used for acquiring a plurality of time violation paths in the integrated circuit design;
the violation path screening unit is used for determining a violation path with the time margin meeting the preset time margin condition as a first violation path from the plurality of time violation paths according to the time margin of the plurality of time violation paths;
and the target violation path determining unit is used for determining a target data path from the plurality of first violation paths according to the data units in the plurality of first violation paths.
Optionally, the target violation path determining unit is specifically configured to determine, from the plurality of first violation paths, a first violation path having a buffer and/or an inverter pair as a target data path according to data units in the plurality of first violation paths, where the inverter pair includes inverters connected to each other in even-numbered stages.
Optionally, the data unit determining module 20 is specifically configured to determine the target buffer that meets the preset distance condition according to the distance between each buffer and the data unit of the previous stage of the buffer, the distance between each buffer and the data unit of the next stage of the buffer, and the distance between the data unit of the previous stage of the buffer and the data unit of the next stage of the buffer in the target data path.
Optionally, the data unit determining module 20 is specifically configured to determine the target inverter pair that meets the preset distance condition according to a distance between each inverter pair in the target data path and a data unit preceding the inverter pair, a distance between each inverter pair and a data unit following the inverter pair, and a distance between the data unit preceding the inverter pair and the data unit following the inverter pair.
Optionally, the connection relation adjustment module 30 is specifically configured to adjust the connection relation of the target data path according to the number of fan-out units of the target data unit, so as to obtain the integrated circuit design after the repair of the time violation.
Optionally, the connection relation adjustment module 30 is specifically configured to delete the target data unit from the target data path if the target data unit has a fan-out unit, and adjust the connection relation of the target data path to obtain the integrated circuit design after the repair of the time violation.
Optionally, the connection relation adjustment module 30 is specifically configured to adjust the connection relation of the target data path according to the previous stage data unit and the next stage data unit of the target data unit if the target data unit has a plurality of fan-out units, so as to obtain the integrated circuit design after the time violation is repaired.
The foregoing apparatus is used for executing the method provided in the foregoing embodiment, and its implementation principle and technical effects are similar, and are not described herein again.
The above modules may be one or more integrated circuit designs configured to implement the above methods, such as: one or more specific integrated circuit designs (Application Specific Integrated Circuit, abbreviated as ASICs), or one or more microprocessors, or one or more field programmable gate arrays (Field Programmable Gate Array, abbreviated as FPGAs), etc. For another example, when a module above is implemented in the form of a processing element scheduler code, the processing element may be a general-purpose processor, such as a central processing unit (Central Processing Unit, CPU) or other processor that may invoke the program code. For another example, the modules may be integrated together and implemented in the form of a system-on-a-chip (SOC).
Optionally, the embodiment of the application further provides a computer device. Referring to fig. 7, a schematic structural diagram of a computer device provided in an embodiment of the present application, as shown in fig. 7, the computer device 100 may include: processor 101, storage medium 102, and bus, storage medium 102 stores program instructions executable by processor 101, and when computer device 100 is running, processor 101 communicates with storage medium 102 via the bus, and processor 101 executes the program instructions to perform the method embodiments described above. The specific implementation manner and the technical effect are similar, and are not repeated here.
Optionally, the embodiment of the present application further provides a computer readable storage medium, where a computer program is stored, and when the computer program is executed by a processor, the method embodiment is performed. The specific implementation manner and the technical effect are similar, and are not repeated here.
In the several embodiments provided by the present invention, it should be understood that the disclosed apparatus and method may be implemented in other manners. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in the embodiments of the present invention may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in hardware plus software functional units.
The integrated units implemented in the form of software functional units described above may be stored in a computer readable storage medium. The software functional unit is stored in a storage medium, and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor (english: processor) to perform some of the steps of the methods according to the embodiments of the invention. And the aforementioned storage medium includes: u disk, mobile hard disk, read-Only Memory (ROM), random access Memory (Random Access Memory, RAM), magnetic disk or optical disk, etc.
The foregoing is merely illustrative of embodiments of the present invention, and the present invention is not limited thereto, and any changes or substitutions can be easily made by those skilled in the art within the technical scope of the present invention, and the present invention is intended to be covered by the present invention. Therefore, the protection scope of the invention is subject to the protection scope of the claims.
Claims (11)
1. A method of repairing a time violation, the method comprising:
acquiring a target data path with time violations in the integrated circuit design;
determining a target data unit according to the distance between each data unit in the target data path;
according to the target data unit, adjusting the connection relation of the target data path to obtain an integrated circuit design after the time violation is repaired;
the adjusting the connection relation of the target data path includes:
adjusting the connection relation between a front data unit and a rear data unit of the target data unit, so that the output end of the front data unit is connected with the input end of the rear data unit;
the determining the target data unit according to the distance between the data units in the target data path comprises the following steps:
and determining the data units with the distance relation meeting the preset distance condition as the target data units according to the distance between each data unit and the adjacent data units and the distance between the adjacent data units of each data unit.
2. The method of claim 1, wherein the obtaining the target data path for the time violation in the integrated circuit design comprises:
acquiring a plurality of time violation paths in the integrated circuit design;
determining a violation path, of which the time margin meets a preset time margin condition, from the plurality of time violation paths as a first violation path according to the time margins of the plurality of time violation paths;
the target data path is determined from a plurality of first offending paths based on data units in the plurality of first offending paths.
3. The method of claim 2, wherein the determining the target data path from the plurality of first offending paths based on the data units in the plurality of first offending paths comprises:
determining a first violating path with a buffer and/or an inverter pair from the plurality of first violating paths as the target data path according to data units in the plurality of first violating paths, wherein the inverter pair comprises inverters with even-numbered stages connected with each other.
4. The method of claim 1, wherein the determining the target data unit based on the distance between the data units in the target data path comprises:
and determining the target buffer meeting the preset distance condition according to the distance between each buffer in the target data path and the data unit before the buffer, the distance between each buffer and the data unit after the buffer and the distance between the data unit before the buffer and the data unit after the buffer.
5. The method of claim 1, wherein the determining the target data unit based on the distance between the data units in the target data path comprises:
and determining the target inverter pair meeting the preset distance condition according to the distance between each inverter pair and the data unit before the inverter pair, the distance between each inverter pair and the data unit after the inverter pair and the distance between each inverter pair and the data unit after the inverter pair in the target data path.
6. The method of claim 1, wherein adjusting the connection relationship of the target data path according to the target data unit to obtain the integrated circuit design after the repair of the time violation comprises:
and adjusting the connection relation of the target data paths according to the number of fan-out units of the target data units to obtain the integrated circuit design after the time violation is repaired.
7. The method of claim 6, wherein the adjusting the connection relationship of the target data path according to the number of fan-out units of the target data unit to obtain the integrated circuit design after the repair of the time violation comprises:
and if the target data unit is provided with a fan-out unit, deleting the target data unit from the target data path, and adjusting the connection relation of the target data path to obtain the integrated circuit design after the time violation is repaired.
8. The method of claim 6, wherein the adjusting the connection relationship of the target data path according to the number of fan-out units of the target data unit to obtain the integrated circuit design after the repair of the time violation comprises:
and if the target data unit is provided with a plurality of fan-out units, adjusting the connection relation of the target data path according to the previous stage data unit and the next stage data unit of the target data unit to obtain the integrated circuit design after the time violation is repaired.
9. A time violation remediation device, the device comprising:
the data path acquisition module is used for acquiring a target data path with time violations in the integrated circuit design;
a data unit determining module, configured to determine a target data unit according to a distance between each data unit in the target data path;
the connection relation adjustment module is used for adjusting the connection relation of the target data path according to the number of fan-out units of the target data unit to obtain an integrated circuit design after the time violation is repaired;
the connection relation adjustment module is specifically configured to adjust a connection relation between a front data unit and a rear data unit of the target data unit, so that an output end of the front data unit is connected with an input end of the rear data unit;
the data unit determining module is specifically configured to determine, according to a distance between each data unit and an adjacent data unit and a distance between adjacent data units of each data unit, that a data unit whose distance relationship satisfies a preset distance condition is the target data unit.
10. A computer device, comprising: a processor, a storage medium and a bus, the storage medium storing program instructions executable by the processor, the processor and the storage medium communicating over the bus when the electronic device is running, the processor executing the program instructions to perform the steps of the time violation remediation method of any of claims 1 to 8.
11. A computer readable storage medium, characterized in that the storage medium has stored thereon a computer program which, when executed by a processor, performs the steps of the time violation remediation method of any of claims 1 to 8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310969652.5A CN116702664B (en) | 2023-08-03 | 2023-08-03 | Time violation repairing method and device, computer equipment and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310969652.5A CN116702664B (en) | 2023-08-03 | 2023-08-03 | Time violation repairing method and device, computer equipment and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116702664A CN116702664A (en) | 2023-09-05 |
CN116702664B true CN116702664B (en) | 2024-01-26 |
Family
ID=87832481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310969652.5A Active CN116702664B (en) | 2023-08-03 | 2023-08-03 | Time violation repairing method and device, computer equipment and storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116702664B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117744564B (en) * | 2023-12-14 | 2024-08-16 | 海光云芯集成电路设计(上海)有限公司 | Sequential circuit design method, sequential circuit, electronic device and storage medium |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009055A (en) * | 2016-10-31 | 2018-05-08 | 深圳市中兴微电子技术有限公司 | A kind of method and apparatus for repairing retention time fault |
US10460059B1 (en) * | 2015-06-23 | 2019-10-29 | Cadence Design Systems, Inc. | System and method for generating reduced standard delay format files for gate level simulation |
CN111881637A (en) * | 2020-07-08 | 2020-11-03 | 广芯微电子(广州)股份有限公司 | Method, system and storage medium for optimizing power consumption of digital circuit |
CN111931448A (en) * | 2020-08-07 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | Time sequence repairing method and system for chip circuit, electronic equipment and storage medium |
CN112232016A (en) * | 2020-11-19 | 2021-01-15 | 深圳安捷丽新技术有限公司 | Efficient bus design iteration method, system and platform for SSD (solid State disk) master control chip |
CN113486612A (en) * | 2021-06-29 | 2021-10-08 | 海光信息技术股份有限公司 | Integrated circuit design method, device, electronic equipment and readable storage medium |
CN113673191A (en) * | 2021-08-19 | 2021-11-19 | 深圳华大九天科技有限公司 | Timing correction method and apparatus, calculation apparatus, and storage medium |
CN114676658A (en) * | 2022-05-20 | 2022-06-28 | 飞腾信息技术有限公司 | Time sequence violation repairing method and device, storage medium and electronic equipment |
CN115455880A (en) * | 2022-09-19 | 2022-12-09 | 厦门紫光展锐科技有限公司 | Time sequence path screening method and equipment |
CN115577675A (en) * | 2022-11-23 | 2023-01-06 | 飞腾信息技术有限公司 | Time sequence violation repairing method and device, server and readable storage medium |
CN115713060A (en) * | 2022-11-04 | 2023-02-24 | 飞腾信息技术有限公司 | Time sequence violation repairing method and device, server and readable storage medium |
-
2023
- 2023-08-03 CN CN202310969652.5A patent/CN116702664B/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10460059B1 (en) * | 2015-06-23 | 2019-10-29 | Cadence Design Systems, Inc. | System and method for generating reduced standard delay format files for gate level simulation |
CN108009055A (en) * | 2016-10-31 | 2018-05-08 | 深圳市中兴微电子技术有限公司 | A kind of method and apparatus for repairing retention time fault |
CN111881637A (en) * | 2020-07-08 | 2020-11-03 | 广芯微电子(广州)股份有限公司 | Method, system and storage medium for optimizing power consumption of digital circuit |
CN111931448A (en) * | 2020-08-07 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | Time sequence repairing method and system for chip circuit, electronic equipment and storage medium |
CN112232016A (en) * | 2020-11-19 | 2021-01-15 | 深圳安捷丽新技术有限公司 | Efficient bus design iteration method, system and platform for SSD (solid State disk) master control chip |
CN113486612A (en) * | 2021-06-29 | 2021-10-08 | 海光信息技术股份有限公司 | Integrated circuit design method, device, electronic equipment and readable storage medium |
CN113673191A (en) * | 2021-08-19 | 2021-11-19 | 深圳华大九天科技有限公司 | Timing correction method and apparatus, calculation apparatus, and storage medium |
CN114676658A (en) * | 2022-05-20 | 2022-06-28 | 飞腾信息技术有限公司 | Time sequence violation repairing method and device, storage medium and electronic equipment |
CN115455880A (en) * | 2022-09-19 | 2022-12-09 | 厦门紫光展锐科技有限公司 | Time sequence path screening method and equipment |
CN115713060A (en) * | 2022-11-04 | 2023-02-24 | 飞腾信息技术有限公司 | Time sequence violation repairing method and device, server and readable storage medium |
CN115577675A (en) * | 2022-11-23 | 2023-01-06 | 飞腾信息技术有限公司 | Time sequence violation repairing method and device, server and readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN116702664A (en) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116702664B (en) | Time violation repairing method and device, computer equipment and storage medium | |
CN116187237B (en) | Inspection method, apparatus and medium for chip design | |
CN114861578B (en) | Method, device, equipment and storage medium for repairing hold time violation | |
CN111046618A (en) | Method and device for repairing hold time violation of integrated circuit | |
CN113221491A (en) | Integrated circuit design method, device and equipment | |
US8219376B2 (en) | Verification using directives having local variables | |
CN116681011B (en) | Time violation repairing method and device, computer equipment and storage medium | |
CN117787169B (en) | Netlist optimization method and device based on FPGA, computer equipment and storage medium | |
GB2532284A (en) | Method to reduce dynamic clock skew and/or slew in an electronic circuit | |
US8839061B2 (en) | System and method for scan chain re-ordering | |
CN114781319B (en) | Metal wire-based time sequence repairing method, equipment and medium | |
CN109800511B (en) | Correction method and system for maintaining time violation for finding optimal common point | |
CN106650136B (en) | Method for checking standard unit function consistency of time sequence library and netlist library | |
CN112131810B (en) | Method and device for repairing setup time violations, electronic equipment and readable storage medium | |
CN110518897B (en) | Method for removing reset and set pins of D flip-flop, D flip-flop and circuit | |
CN110083942B (en) | Signal electromigration batch repairing method, system and medium based on physical information | |
CN112749526A (en) | Power rail design method, apparatus and non-transitory computer readable medium thereof | |
CN117151015B (en) | Integrated circuit layout wiring method, device and integrated circuit chip | |
US9547733B2 (en) | Identifying inversion error in logic equivalence check | |
CN115616387B (en) | Control signal calibration method and system based on chip | |
US8938705B1 (en) | Systems and methods for partial retention synthesis | |
US10156610B2 (en) | On-chip sequence profiler | |
US10452798B1 (en) | System, method, and computer program product for filtering one or more failures in a formal verification | |
Kalonakis et al. | Tktimer: fast & accurate clock network pessimism removal | |
CN116956784A (en) | Verification circuit, method, equipment and medium based on pre-simulation |
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 |