WO2012124117A1 - タイミングエラー除去方法、設計支援装置、及びプログラム - Google Patents

タイミングエラー除去方法、設計支援装置、及びプログラム Download PDF

Info

Publication number
WO2012124117A1
WO2012124117A1 PCT/JP2011/056457 JP2011056457W WO2012124117A1 WO 2012124117 A1 WO2012124117 A1 WO 2012124117A1 JP 2011056457 W JP2011056457 W JP 2011056457W WO 2012124117 A1 WO2012124117 A1 WO 2012124117A1
Authority
WO
WIPO (PCT)
Prior art keywords
buffer
delay
correction location
cell
integrated circuit
Prior art date
Application number
PCT/JP2011/056457
Other languages
English (en)
French (fr)
Inventor
郁子 村川
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2013504491A priority Critical patent/JPWO2012124117A1/ja
Priority to PCT/JP2011/056457 priority patent/WO2012124117A1/ja
Publication of WO2012124117A1 publication Critical patent/WO2012124117A1/ja
Priority to US13/973,789 priority patent/US8701064B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Definitions

  • the present invention relates to a timing error elimination method, a design support apparatus, and a program for a semiconductor integrated circuit.
  • a data signal is fetched in accordance with a timing signal such as a clock signal. Therefore, the design of the digital LSI has a timing requirement necessary for ensuring operation.
  • the main timing specifications include setup time and hold time. Setup time refers to the time during which a data signal must be determined and held prior to the timing signal.
  • the hold time is a time during which a data signal must be held even after a timing signal is given.
  • timing error In general, in a layout tool of a digital LSI, layout is performed in consideration of such a timing rule, but a timing rule violation (timing error) often remains partially. In order to efficiently remove the timing error, it is necessary to correct the layout so as not to affect the portion where the timing error has not occurred. Therefore, the timing error is removed by inserting a buffer or the like by limiting the range of influence to the portion where the timing error has occurred. Note that layout correction for the purpose of eliminating timing errors is referred to as timing ECO (Engineering Change Order).
  • FIG. 1 is a diagram for explaining an example of removing timing errors.
  • the path T1 from the sequential circuits FF1 to FF4 and the path T2 from FF2 to FF4 cause a hold time violation (hold time error).
  • the path T3 from FF3 to FF4 has no setup time.
  • a path refers to a path on a circuit starting from a data output pin of an arbitrary sequential circuit and starting from a data input pin of the next forward circuit.
  • an effective logical correction location is selected in the path causing the timing error, and the insertion buffer is selected or the size of the existing cell (logic) is reselected. It's fine. “Effective” means that fewer cells are inserted or changed to correct the timing error.
  • the buffer B5 is inserted at a location indicated by P1 (hereinafter referred to as “point P1”) as a solution that does not affect the path T3 and can eliminate the hold time errors of the paths T1 and P2. Is an effective solution.
  • the buffer B5 can delay the data signals of the paths T1 and T2 without affecting the path T3, and can eliminate the hold time error of the paths T1 and T2.
  • Procedure 1 Determine whether there is a timing error from the layout result.
  • Procedure 2 If there is a timing error, select the logical insertion location of the buffer and the buffer to be inserted. For example, the location P and the buffer B5 shown in FIG. 1 are selected.
  • Procedure 3 The physical arrangement position of the buffer is determined based on the result of Procedure 2. For example, the physical arrangement position of the buffer B5 is determined for the location P in FIG.
  • Procedure 4 Select the wiring layer and the wiring shape of the unconnected part.
  • the procedure 2 and the procedure 3 are independent of each other. That is, in the procedure 2, the layout information is not referred to, and the insertion buffer is selected using a delay model that assumes that no new wiring capacity is generated even if the buffer is inserted.
  • the net list reflecting the logic correction created in the procedure 2 is input, and the physical position of the insertion buffer is determined.
  • the physical placement position of the insertion buffer is limited to a free area in which the insertion buffer can be placed, there is a large error between the delay model in step 2 and the delay reflecting the actual placement position. May occur.
  • FIG. 2 is a diagram illustrating an example of an actual arrangement position of the insertion buffer.
  • This figure shows a free area around the point P1 (input pin of the cell A2) shown in FIG.
  • the shaded portion indicates an instance cell that has been arranged.
  • an open area that is not shaded is an empty area.
  • the size of the buffer B5 selected as the insertion target in the procedure 2 is 5 (height 1, width 5)
  • the empty area into which the buffer B5 can be inserted is only the lower left portion in the figure. Therefore, in the procedure 3, the buffer B5 is arranged in the lower left empty area. Then, the signal path that is the basis for the delay calculation in the procedure 2 indicated by the solid arrow s1 in the figure, and the signal path that is the basis for the delay calculation based on the actual arrangement position, which are indicated by the dashed arrows s2 and s3, In the meantime, an error occurs. This point will be described in more detail with reference to FIG.
  • FIG. 3 is a diagram for explaining the difference between the prediction at the time of buffer selection and the actual after the buffer selection regarding the relative distance between the insertion buffer and the cells before and after the insertion buffer.
  • (a) shows a position (ie, point P1) predicted when the buffer B5 is selected.
  • the distance from the output pin of the cell A1 to the input pin of the buffer B5 is a distance l1
  • the distance from the output pin of the buffer B5 to the input pin of the cell A2 is a distance l2.
  • (b) shows the position where the buffer B5 is selected and arranged.
  • the distance from the output pin of the cell A1 to the input pin of the buffer B5 is a distance m1 (l1 ⁇ m1)
  • the distance from the output pin of the buffer B5 to the input pin of the cell A2 is a distance m2 (l2 ⁇ m2). It is shown that there is.
  • the actual distance from the output pin of the cell A1 to the input pin of the buffer B5 and the actual distance from the output pin of the buffer B5 to the input pin of the cell A2 are longer than the distance planned in the procedure 2. I'm stuck.
  • the buffer B5 inserted for the purpose of removing the hold time error may cause the setup time error, or the buffer B5 may not be inserted to avoid the setup time error, so that the hold time error can be removed.
  • the timing ECO is executed again, the same result is obtained. Therefore, the point E1 selected in the previous procedure 2 is removed from the candidates for correction points, and the timing ECO is executed again. Such repetition leads to an increase in the processing time of the entire timing error correction process.
  • procedure 2 and procedure 3 are integrated and layout information is referred to in procedure 2 (for example, Patent Document 1). That is, as soon as an insertion buffer is selected, the physical arrangement position of the insertion buffer is determined. Based on the result, delay calculation and slack value updating are performed to determine whether or not the timing error is corrected.
  • the slack value is the difference between the arrival request time calculated on the assumption that the setup time rule and the hold time rule are observed, and the actual signal arrival time, and represents a margin time.
  • a timing error removal method selects a logically corrected portion capable of removing a timing error of a semiconductor integrated circuit to be designed and a first buffer to be inserted into the corrected portion, and the corrected portion With respect to the first buffer, a search is made for a free area on the semiconductor integrated circuit where the first buffer can be arranged, and when there is no free area, the delay can be replaced by inserting the first buffer.
  • the computer executes a process of searching for a combination of a plurality of smaller buffers as an arrangement target in the semiconductor integrated circuit.
  • the removal of timing errors in the semiconductor integrated circuit can be made efficient.
  • FIG. 4 is a diagram illustrating a hardware configuration example of the LSI design support apparatus according to the embodiment of the present invention.
  • the LSI design support apparatus 10 of FIG. 4 includes a drive device 100, an auxiliary storage device 102, a memory device 103, a CPU 104, an interface device 105, a display device 106, an input device 107, and the like that are mutually connected by a bus B. .
  • a program for realizing processing in the LSI design support apparatus 10 is provided by the recording medium 101.
  • the recording medium 101 on which the program is recorded is set in the drive device 100, the program is installed from the recording medium 101 to the auxiliary storage device 102 via the drive device 100.
  • the program need not be installed from the recording medium 101 and may be downloaded from another computer via a network.
  • the auxiliary storage device 102 stores the installed program and also stores necessary files and data.
  • the memory device 103 reads the program from the auxiliary storage device 102 and stores it when there is an instruction to start the program.
  • the CPU 104 implements functions related to the LSI design support apparatus 10 according to a program stored in the memory device 103.
  • the interface device 105 is used as an interface for connecting to a network.
  • the display device 106 displays a GUI (Graphical User Interface) or the like by a program.
  • the input device 107 is a keyboard, a mouse, or the like, and is used for inputting various operation instructions.
  • An example of the recording medium 101 is a portable recording medium such as a CD-ROM, a DVD disk, or a USB memory.
  • An example of the auxiliary storage device 102 is an HDD (Hard Disk Drive) or a flash memory. Both the recording medium 101 and the auxiliary storage device 102 correspond to computer-readable recording media.
  • FIG. 5 is a diagram illustrating a functional configuration example of the LSI design support apparatus according to the embodiment of the present invention.
  • an LSI design support apparatus 10 includes a layout unit 11, a timing analysis unit 12, a logic solution creation unit 13, a placement solution creation unit 14, a wiring solution creation unit 15, and the like. These units are realized by processing executed by the CPU 104 by a program installed in the LSI design support apparatus 10.
  • the layout unit 11 simulates the arrangement of cells (logic) on the circuit and the wiring between the cells (placement wiring) based on the netlist N1 related to the semiconductor integrated circuit to be designed (hereinafter simply referred to as “circuit”).
  • the layout information L1 is created.
  • the net list N1 is information including connection information between pins on the circuit.
  • the layout information L1 is information indicating the result of placement and routing.
  • the timing analysis unit 12 extracts RC information R1 (information including the capacitance and resistance of the wiring) from the layout information L1, and performs timing based on the netlist N1, RC information R1, the cell library LIB, the timing constraint TIM, and the like. Detect errors.
  • the cell library LIB includes, for each usable cell, cell shape, pin position information in the cell, delay information, function information, and the like. Information indicating setup time, hold time, and the like is also included.
  • the timing constraint TIM is information indicating timing requirements necessary for ensuring the operation of the circuit. Specifically, it is a delay constraint of each path in the logic circuit.
  • the logical solution creation unit 13 creates a logical solution for removing the timing error detected by the timing analysis unit 12. More specifically, the logic solution creation unit 13 selects a logical correction location and a buffer (insertion buffer) to be inserted into the correction location in the circuit. The logic solution generator 13 outputs the generated logic solution as logic correction information U1.
  • the layout solution creation unit 14 refers to the layout information L1 and the like based on the logic solution correction information U1 and determines whether or not the insertion buffer can be positioned. If the insertion buffer cannot be placed, the placement solution creation unit 14 adds a combination of a plurality of buffers smaller than the insertion buffer, which can replace the delay obtained by insertion of the insertion buffer, to the circuit. Search for placement targets.
  • the wiring solution creation unit 15 performs wiring processing for an unconnected portion related to the inserted buffer or the like.
  • the netlist N1, the timing constraint TIM, the cell library LIB, and the like are stored in a storage device or the like connected to the auxiliary storage device 102 or the LSI design support device 10 via a network.
  • the layout information L1, RC information R1, logic correction information U1, and the like are stored in the memory device 103, the auxiliary storage device 102, or a storage device connected to the LSI design support device 10 via a network.
  • FIG. 6 is a flowchart for explaining an example of the processing procedure of the timing error removal processing. In this embodiment, an example of correcting a hold time violation (hold time error) will be described.
  • step S101 the layout unit 11 performs placement and routing based on the net list N1 of the circuit to be laid out, and creates layout information L1 (S101).
  • the timing analysis unit 12 performs RC extraction based on the wiring information included in the layout information L1 (S102).
  • RC information R1 is generated.
  • the timing analysis unit 12 calculates a delay based on the netlist N1, the RC information R1, and the delay information and function information of each cell included in the cell library LIB (S103).
  • the timing analysis unit 12 performs a static timing analysis (STA) based on the delay calculation result and the timing constraint information TIM, and provides a delay margin value for both the setup time constraint and the hold time constraint. (Slack value) is obtained (S104). Subsequently, the timing analysis unit 12 determines whether there is a hold time error based on the delay margin value (S105). If there is no hold time error (No in S105), the process in FIG. 6 ends.
  • STA static timing analysis
  • step S106 when a hold time error is detected (Yes in S105), in order to remove the hold time error (hereinafter simply referred to as “error”), the logical solution creating process is performed in step S106 and thereafter. Executed by. In step S106 and subsequent steps, one error is a removal target. Therefore, when a plurality of errors are detected, steps S106 to S109 are repeatedly executed.
  • step S106 the logic solution generator 13 selects a logical correction location (hereinafter referred to as “logical correction location”) for efficiently removing the error to be removed, and the delay amount that can be improved at that location. Is determined (S106).
  • logical correction location a logical correction location
  • the point P1 is selected as the logic correction location, and the delay amount that can be improved at the point P1 is determined.
  • the delay amount that can be improved is a delay amount that can be added within a range that does not cause a new timing error.
  • the preceding cell of the logic correction portion is hereinafter simply referred to as “previous cell”. Further, the subsequent cell of the logic correction portion is simply referred to as “the subsequent cell”. In the example of FIG. 1, the cell A1 is a preceding cell, and the cell A2 is a succeeding cell.
  • the logic solution generator 13 selects one or more buffers (hereinafter referred to as “insertion buffers”) having a delay value corresponding to the delay amount that can be improved from the buffers registered in the cell library LIB. (S107). That is, a plurality of buffers may be inserted for one logic correction location. In the example of FIG. 1, the buffer B5 corresponds to the insertion buffer. Subsequently, the logic solution generator 13 performs delay calculation assuming that the insertion buffer is inserted in the logic correction portion (S108). The content of the delay calculation may be the same as in step S103. As a result of the delay calculation, the delay margin values for both the setup time constraint and the hold time constraint are recalculated (updated).
  • the logical solution creating unit 13 can reproduce (or grasp) the amount of delay correction expected (or planned) by the logical solution creating unit 13 with respect to the delay calculation in step S108.
  • the delay calculation is executed based on a predetermined rule.
  • the predetermined rule may be determined from the beginning with the arrangement solution creation unit 14.
  • the logical solution creation unit 13 may record information indicating the predetermined rule in the memory device 103 or the auxiliary storage device 102 when executing the delay calculation.
  • the RC information of the wiring from the output pin of the preceding cell to the input pin of the insertion buffer As an example of the predetermined rule, in the delay calculation, the RC information of the wiring from the output pin of the preceding cell to the input pin of the insertion buffer, and the RC information of the wiring from the output pin of the insertion buffer to the input pin of the subsequent cell. What values are used. For example, for the former RC information, the RC information of the wiring connecting the output pin of the preceding cell and the input pin of the latter cell is used in the state before the insertion of the insertion buffer, and 0 for the latter RC information. Delay calculation is performed based on the rule to do.
  • waveform rounding information on the signal waveform round (hereinafter referred to as “waveform rounding”) at the output pin of the preceding cell obtained in the delay calculation process by the timing analysis unit 12 or the logic solution creation unit 13 is a memory device. 103 or the auxiliary storage device 102. This is because the information can be used in the delay calculation by the arrangement solution creation unit 14.
  • the logic solution generator 13 determines whether or not a new timing error occurs due to the insertion of the insertion buffer (S109). That is, the presence / absence of a hold time error is determined based on the delay margin value updated in step S108.
  • the logic solution generator 13 When a new error occurs (Yes in S109), the logic solution generator 13 repeatedly executes step S107 and subsequent steps. That is, reselection of the insertion buffer and delay calculation are performed. On the other hand, when an error does not occur (No in S109), the logic solution generator 13 determines whether or not a hold time error remains in the circuit (S105). That is, it is determined whether there is a hold time error that has not yet been removed, and steps S106 to S109 are repeated until all hold errors are removed.
  • the logic solution generator 13 determines whether or not there is a logic correction part (S110). That is, it is determined whether or not at least one logic correction portion has been selected in step S106.
  • the logic solution creation unit 13 outputs (records) the logic correction information U1, which is correspondence information between the logic correction location and the insertion buffer, to the memory device 103 or the auxiliary storage device 102. (S111).
  • the logic correction information U1 may be output partially and sequentially in the process of steps S106 to S108.
  • FIG. 7 is a diagram illustrating an example of the logic correction information.
  • the logic correction information U1 shown in the figure includes a buffer name and a logic correction location for each insertion buffer.
  • the buffer name is an identification name of the insertion buffer.
  • the logic correction position is a logical position where the insertion buffer is inserted, and is specified by the output pin of the preceding cell or the input pin of the succeeding cell. That is, when the end of the logic correction location is “in”, the insertion location of the insertion buffer is in front of the input pin of the subsequent cell identified by the identifier before “in” (such as “M1 / E1”). Indicates that there is. On the other hand, when the end of the logic correction location is “out”, this indicates that the insertion location of the insertion buffer is behind the output pin of the preceding cell identified by the identifier before “out”.
  • step S112 the arrangement solution creation unit 14 extracts list information (hereinafter referred to as “buffer list information”) of available buffer sizes and delay values from the cell library LIB (S112). .
  • buffer list information list information
  • FIG. 8 is a diagram illustrating an example of buffer list information.
  • the buffer list information BL shown in the figure includes a buffer name, a size, a delay value, and the like for each buffer.
  • the buffer name is an identification name of the buffer.
  • the size is the size of the buffer. In the figure, an example in which the height is fixed at 1 is shown. Therefore, the size value indicates the width. However, both the height and width values may be indicated as the size.
  • the delay value is a delay value of the buffer itself.
  • the arrangement solution creation unit 14 calculates an ideal arrangement position of an insertion buffer (hereinafter referred to as “target insertion buffer”) related to one logic correction portion (S113). Specifically, the arrangement solution creating unit 14 extracts one logical correction location and all buffer names associated with the logical correction location from the logical correction information U1. The arrangement solution creating unit 14 refers to the net list N1 and the layout information L1, and calculates the position information of the logic correction portion. The position information is the ideal arrangement position of the insertion buffer.
  • the arrangement solution creation unit 14 searches for an empty area in the vicinity area of the ideal arrangement position, and list information (hereinafter, “candidate area list CL”) of continuous empty areas (hereinafter, “candidate areas”). Is created (S114).
  • FIG. 9 is a diagram for explaining an example of the ideal arrangement position and the neighborhood region.
  • the arrangement map M1 shown in the figure is a graphic representation of the layout information in the vicinity of the ideal arrangement position created by the arrangement solution creation unit 14 based on the layout information L1.
  • the minimum unit rectangle in the arrangement map M1 corresponds to a unit of the size of the buffer. That is, one rectangle corresponds to size 1.
  • a shaded rectangle indicates that a cell is arranged, and a white rectangle indicates an empty area.
  • a region where A1 and A2 are described indicates the cell A1 or the cell A2 shown in FIG.
  • the logic correction location is specified by the input pin of the cell A2. That is, the succeeding cell of the target insertion buffer according to the logic correction location is the cell A2, and the preceding cell is the cell A1.
  • the position of the input pin of the cell A2 is a position indicated by Pr. Therefore, the position indicated by Pr is calculated as an ideal arrangement position (hereinafter, referred to as “ideal arrangement position Pr”) of the target insertion buffer according to the logic correction portion.
  • a rectangular area centered on the smallest rectangular area R1 surrounding the ideal arrangement position Pr and the cell A1 which is the preceding cell of the target insertion buffer is set as a neighboring area.
  • the reason why the preceding cell is targeted is that the logic correction location related to the ideal arrangement position Pr is a position corresponding to the input pin of the succeeding cell. Therefore, assuming that the logic correction location is a position corresponding to the output pin of the preceding cell, a rectangular area centering on the minimum rectangle surrounding the ideal placement position related to the logic correction location and the subsequent cell is nearby. It is considered as an area.
  • the neighborhood area is for limiting the search range of the candidate area.
  • the reason why the search range of the candidate area is limited to the vicinity of the ideal arrangement position is that the logical solution creating unit 13 schedules when a combination of the target insertion buffer and an alternative buffer having substantially the same delay is obtained in step S116 described later. This is to reduce the error with respect to the delay amount.
  • the rectangular region Rn is a neighboring region.
  • the neighboring area Rn may be enlarged if a free area is not found in the process of searching for a free area.
  • the neighboring region Rn is not necessarily a rectangular region centered on the rectangular region R1.
  • the rectangular area Rn may be an area that coincides with the rectangular area R1.
  • FIG. 10 is a diagram illustrating an example of the candidate area list CL.
  • the candidate area list CL shown in the figure stores the size and coordinates for each candidate area.
  • the size is the size of the candidate area.
  • the coordinate is position information of the candidate area, for example, a coordinate of a predetermined vertex of the candidate area.
  • the arrangement solution creating unit 14 determines whether or not all target insertion buffers can be exclusively arranged in any candidate area listed in the candidate area list CL (S115). . It is determined that the target insertion buffer can be placed in a candidate area that is the same as or larger than the size of an arbitrary target insertion buffer. Note that “exclusive” means that a plurality of target insertion buffers are not overlapped in the same candidate area.
  • each of the target insertion buffers is arranged in a candidate area determined to be arranged (S117).
  • the arrangement solution creation unit 14 is a combination of buffers that is smaller in size than the target insertion buffer and that has a delay substantially equal to the target insertion buffer. Is searched with reference to the buffer list information BL (S116). The arrangement solution creating unit 14 substitutes the insertion target by a combination of searched buffers (hereinafter referred to as “alternative buffer”).
  • the alternative buffer is a buffer that is logically equivalent to the target introduction buffer.
  • FIG. 11 is a diagram for explaining an example of an alternative buffer.
  • (a) shows a state in which an insertion buffer B5 is inserted between the cell A1 and the cell A2. It is assumed that the size of the insertion buffer B5 is 5.
  • (b) shows an example in which the insertion buffer B5 is replaced by a combination of the replacement buffer B3 and the replacement buffer B2.
  • the delay from the input pin of cell A1 in the preceding stage to the input pin of cell A2 in the subsequent stage is t1
  • the alternative buffers B3 and B2 are selected so that the delay t2 is equal to t1. That is, the delay at the time of buffer insertion is calculated by adding the delay from the input pin of the preceding cell to the input pin of the buffer and the delay from the input pin of the buffer to the input pin of the subsequent cell.
  • the waveform of the signal indicated by w1 indicates the waveform rounding information used when calculating the delays t1 and t2.
  • the placement solution creation unit 14 places the alternative buffer in any candidate region (S117).
  • Steps S113 to S117 are repeatedly executed for all the logic correction locations included in the logic correction information U1 (S118). As a result, an insertion buffer or an alternative buffer is arranged for all logic correction points.
  • the arrangement solution generator 14 shifts the actual arrangement position of the insertion buffer or the alternative buffer from the ideal arrangement position, and replaces the insertion buffer with the substitution buffer. Therefore, the influence of the wiring delay due to the substitution is verified.
  • the placement solution creation unit 14 places the temporary wiring length of the net connected to each placement buffer based on the placement position of the placed insertion buffer or alternative buffer (hereinafter referred to as “placement buffer”). Calculation is made based on the buffer arrangement position (S119).
  • the temporary wiring length (hereinafter referred to as “temporary wiring length”) is not a wiring length obtained by performing strict wiring, but a wiring length calculated by setting values based on assumptions regarding various parameters related to wiring. Say.
  • the logic solution generator 13 performs delay calculation in consideration of the delay value of the placement buffer, the temporary wiring length, and the like, and recalculates the delay margin value (S120). If a setup time error is detected as a result of the calculation in step S120 (Yes in S121), the arrangement solution generator 14 replaces at least one of the arrangement buffers with a buffer having a smaller delay value than the arrangement buffer. (S122). The arrangement solution creation unit 14 repeats step S120 and subsequent steps after exchanging the buffers.
  • the arrangement solution creating unit 14 reflects the confirmed correction information (the arrangement position of each arrangement buffer, etc.) in the netlist N1 and the layout information L1 (S123).
  • the wiring solution creation unit 15 performs a wiring process for an unconnected portion caused by the insertion of the insertion buffer or the alternative buffer (S124).
  • the content of the wiring process for the unconnected portion may follow a known technique.
  • FIG. 12 is a flowchart for explaining an example of the processing procedure of the alternative buffer search processing.
  • step S201 the placement solution creation unit 14 determines the delay value (hereinafter referred to as “standard delay”) from the input pin of the preceding cell to the input pin of the subsequent cell when all the target insertion buffers are placed at the ideal placement position. Is calculated) (S201).
  • the arrangement solution creation unit 14 performs delay calculation according to a predetermined rule followed by the logic solution creation unit 13 in the delay calculation in step S108.
  • the arrangement solution creation unit 14 acquires information (for example, waveform rounding information) that the logic solution creation unit 13 presupposes as delay calculation from the memory device 103 or the auxiliary storage device 102, and delays on the basis of the information. Perform the calculation. That is, the delay calculation in step S201 is performed based on the same rule and the same assumption as in step S108.
  • step S108 the value of the delay from the input pin of the preceding cell to the input pin of the succeeding cell calculated by the logic solution creating unit 13 with respect to the target insertion buffer may be included in the logic correction information U1.
  • the arrangement solution creating unit 14 may use the delay value included in the logic correction information U1 as the standard delay.
  • the waveform correction information U1 obtained in the delay calculation process by the timing analysis unit 12 or the logic solution creation unit 13 may also be included in the logic correction information U1.
  • the rule of delay calculation by the logic solution creation unit 13 is also applied to the placement solution creation unit 14, so that the placement solution creation unit 14 can determine the amount of delay planned by the logic solution creation unit 13. Can be grasped. As a result, the arrangement solution creation unit 14 can search for an arrangement solution with a small error from the delay amount.
  • the arrangement solution creation unit 14 replaces a buffer having the smallest delay value among the target insertion buffers with a buffer having a delay value that is one step smaller (hereinafter referred to as “minimum delay”). ) And a delay value (hereinafter referred to as “maximum delay”) when the buffer is replaced with a buffer having a larger delay value by one step (S202).
  • the delay value calculated here is the delay value from the input pin of the preceding cell to the input pin of the succeeding cell, as in step S201. Also in step S202, the rules and assumptions used in step S201 are applied.
  • the delay value that is one step smaller than the delay value of the target insertion buffer or the delay value that is one step larger than the delay value of the target insertion buffer means the next smallest delay value or the next largest delay value in the buffer list information BL. .
  • FIG. 13 is a diagram for explaining a first example of the minimum delay and the maximum delay. In the figure, a case where there is one target insertion buffer will be described.
  • (A) shows the case where the insertion buffer B5 selected by the logic solution generator 13 is inserted. Therefore, in this case, the delay value from the input pin of the cell A1 at the preceding stage to the input pin of the cell A2 at the subsequent stage corresponds to the standard delay.
  • (B) shows a case where the buffer B5 is replaced with a buffer B4 having a delay value one step smaller than that of the buffer B5.
  • the buffer B5 since there is one target insertion buffer, the buffer B5 is a buffer having the smallest delay value among the target insertion buffers. Therefore, the value of the delay from the input pin of the preceding cell A1 to the input pin of the subsequent cell A2 when the buffer B4 is replaced with a buffer B4 having a delay value one step smaller than that of the buffer B5 corresponds to the minimum delay.
  • (C) shows a case where the buffer B5 is replaced with a buffer B8 having a delay value one step larger than that of the buffer B5. Therefore, in this case, the delay value from the input pin of the preceding cell A1 to the input pin of the subsequent cell A2 corresponds to the maximum delay.
  • FIG. 14 is a diagram for explaining a second example of the minimum delay and the maximum delay. In the figure, a case where there are two target insertion buffers will be described.
  • (A) shows the case where the insertion buffers B4 and B2 selected by the logical solution creation unit 13 are inserted. Therefore, in this case, the delay value from the input pin of the cell A1 at the preceding stage to the input pin of the cell A2 at the subsequent stage corresponds to the standard delay.
  • (B) shows a case where the buffer B2 is replaced with a buffer B1 having a delay value one step smaller than that of the buffer B2.
  • the buffer B2 has a smaller delay value than the buffer B4. That is, the buffer B2 is a buffer having the smallest delay value among the target insertion buffers. Therefore, the value of the delay from the input pin of the preceding cell A1 to the input pin of the subsequent cell A2 when the buffer B1 is replaced with a buffer B1 having a delay value one step smaller than that of the buffer B2 corresponds to the minimum delay.
  • (C) shows a case where the buffer B2 is replaced with a buffer B4 having a delay value one step larger than that of the buffer B2. Therefore, in this case, the delay value from the input pin of the preceding cell A1 to the input pin of the subsequent cell A2 corresponds to the minimum delay.
  • the number of insertion buffers may be three or more, the minimum delay and the maximum delay in this case are omitted because they are obvious from FIG.
  • the placement solution creation unit 14 obtains a combination of buffers that have a delay that matches or is close enough to the standard delay, and that can be placed in the candidate area and that has the smallest total number. For example, the placement solution creation unit 14 selects the maximum substitute buffer that can be placed in the maximum size candidate area from the cell library LIB (S203). Subsequently, the arrangement solution creating unit 14 arranges the replacement buffer in the candidate area and updates the candidate area (S204). Steps S203 and S204 are the values of the delay from the input pin of the preceding cell to the input pin of the subsequent cell when the selected replacement buffer is arranged (for example, in series) (hereinafter referred to as “obtained by the replacement buffer”). Is repeated until it exceeds the standard delay (S205). In step S203 after the second time, the candidate area of the maximum size among the candidate areas at that time is set as a processing target.
  • the wiring length for obtaining the delay obtained by the alternative buffer may be calculated based on a predetermined assumption with the arrangement position of each alternative buffer as a reference. Alternatively, since the arrangement position is limited to the vicinity area, the wiring length may be obtained on the assumption that one buffer is arranged at the ideal arrangement position, and the wiring length between the subsequent buffers may be zero.
  • the arrangement solution creating unit 14 replaces the substitute buffer so that the delay obtained by the substitute buffer is larger than the minimum delay and smaller than the maximum delay. This is performed (S206). For example, the arrangement solution creating unit 14 replaces the last selected alternative buffer with one or more buffers that are smaller than the delay value of the alternative buffer. That is, the minimum delay and the maximum delay indicate whether or not the delay obtained by the substitute buffer is sufficiently close to the delay obtained by the insertion of the original insertion buffer (that is, the delay planned by the logic solution generator 13). Used to determine.
  • the arrangement solution creating unit 14 performs logical connection between the alternative buffers according to the insertion order of the alternative buffers (S207).
  • the processing procedure of FIG. 12 is merely an example. For example, first, a plurality of combinations including at least one buffer that can be arranged in the maximum size candidate area and the rest including buffers having the same size as the buffer or smaller than the buffer are obtained. Subsequently, for each combination, it is confirmed whether all the buffers included in the combination can be arranged in the candidate area, and the alternative buffer candidates may be narrowed.
  • the logical solution creation unit 13 selects the alternative buffer group by changing the arrangement target to the alternative buffer group having a smaller size. It is possible to increase the possibility of being placed in the vicinity of the logic correction location. As a result, it is possible to reduce the error between the delay that the logic solution generator 13 is planning to add and the actual delay. In addition, it is possible to shorten the time for searching for a free area of the buffer to be inserted.
  • the delay is executed every time the alternative buffer is reselected. It is also possible to simplify the calculation and reduce the processing time.
  • the logical correction location does not need to be reselected even if a free area where the insertion buffer selected by the logical solution creation unit 13 can be placed is not found. .
  • the processing time of the timing ECO can be shortened.
  • the timing ECO for removing the hold time error has been described as an example, but the range to which the embodiment of the present invention can be applied is not limited to the hold time error.
  • the present embodiment may be applied to small-scale logic changes (cell deletion and cell addition) in a state where timing error adjustment has already been performed.
  • the arrangement solution creation unit 14 creates an arrangement solution for the cells to be added after deleting unnecessary cells from the original layout information.
  • the added cell is not limited to the buffer. Therefore, the arrangement solution creating unit 14 creates not only the buffer but also a list of cell sizes and delays that are logically equivalent to cells indicated as addition targets in the logic correction information (hereinafter referred to as “additional cells”). .
  • the placement solution creation unit 14 places the additional cell in the vicinity of the logic change location. When the placement cannot be performed, the placement solution creation unit 14 substitutes the additional cell so that the delay of the cell to be originally changed can be realized by a combination of a cell and a buffer that are logically equivalent to the additional cell and have a small size.
  • the logical solution creation unit 13 is an example of a selection unit.
  • the arrangement solution creation unit 14 is an example of a search unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Architecture (AREA)
  • Software Systems (AREA)

Abstract

 タイミングエラー除去方法は、設計対象の半導体集積回路のタイミングエラーを除去可能な論理上の修正箇所及び該修正箇所に挿入する第一のバッファを選択し、前記修正箇所に関して、前記第一のバッファを配置可能な前記半導体集積回路上の空き領域を探索し、空き領域が無い場合は、前記第一のバッファの挿入によって遅延を代替可能な、該第一のバッファよりも小さい複数のバッファの組み合わせを、前記半導体集積回路への配置対象として探索する処理をコンピュータが実行する。

Description

タイミングエラー除去方法、設計支援装置、及びプログラム
 本発明は、半導体集積回路のタイミングエラー除去方法、設計支援装置、及びプログラムに関する。
 デジタルLSI(半導体集積回路)においては、クロック信号等のタイミング信号に合わせてデータ信号の取り込みが行われる。したがって、デジタルLSIの設計には、動作保障に必要なタイミング規定がある。タイミング規定の主なものとして、セットアップタイム及びホールドタイムがある。セットアップタイムとは、タイミング信号に先立ってデータ信号を確定、及び保持しておかなければならない時間をいう。ホールドタイムとは、タイミング信号が与えられた後もデータ信号を保持しておかなければならない時間をいう。
 一般的に、デジタルLSIのレイアウトツールでは、このようなタイミング規定を考慮してレイアウトが行われているが、部分的にタイミング規定違反(タイミングエラー)が残ってしまうことが多い。タイミングエラーを効率的に除去するためには、タイミングエラーを起こしていない部分に影響を与えないようにレイアウトを修正する必要がある。そこで、タイミングエラーを起こしている部分に影響範囲を限定して、バッファの挿入等を行うなどしてタイミングエラーの除去が図られている。なお、タイミングエラーの除去を目的としたレイアウトの修正をタイミングECO(Engineering Change Order)という。
 図1は、タイミングエラーの除去例を説明するための図である。同図において、順序回路FF1からFF4へのパスT1と、FF2からFF4へのパスT2がホールドタイム違反(ホールドタイムエラー)を起こしていることとする。一方、FF3からFF4へのパスT3はセットアップタイムに余裕が無いこととする。なお、パスとは、任意の順序回路のデータ出力ピンを始点とし、次の順路回路のデータ入力ピンを終点とする、回路上の経路をいう。
 同図に示されるような状況では、タイミングエラーを起こしているパス内において、効果的な論理上の修正箇所が選定され、挿入バッファの選定又は既存セル(論理)のサイズの再選定等が行われればよい。「効果的」とは、タイミングエラーの修正のために挿入又は変更されるセルが少なくて済むことをいう。同図の例では、パスT3に影響がなく、パスT1及びP2のホールドタイムエラーを除去可能な解として、P1で示される箇所(以下、「ポイントP1」という。)にバッファB5が挿入するのが、効果的な解決方法である。この場合、バッファB5は、パスT3には影響を与えずに、パスT1及びT2のデータ信号を遅延させることができ、パスT1及びT2のホールドタイムエラーを除去することができるからである。
 従来、このようなタイミングエラーの除去方法として、次のような手順が行われていた。

手順1:レイアウト結果からタイミングエラーの有無を判定する。

手順2:タイミングエラーが有る場合、バッファの論理上の挿入箇所、及び挿入するバッファの選定を行う。例えば、図1に示される箇所Pの選定及びバッファB5の選定が行われる。

手順3:手順2の結果に基づいてバッファの物理的な配置位置を決定する。例えば、図1の箇所Pに関して、バッファB5の物理的な配置位置が決定される。

手順4:未結線部分の配線レイヤの選定及び配線形状の選定を行う。
 ここで、手順2と手順3とは、相互に独立している。すなわち、手順2では、レイアウト情報は参照されず、バッファを挿入しても新たな配線容量は生じないと仮定した遅延モデルを使って挿入バッファが選定される。
 一方、手順3では、手順2で作成された論理修正が反映されたネットリストが入力され、挿入バッファの物理位置が決定される。ここで、挿入バッファの物理的な配置位置は、当該挿入バッファを配置可能な空き領域に限られるため、手順2の遅延モデルと実際の配置位置が反映された遅延との間には大きな誤差が生じてしまう場合がある。
 例えば、図2は、挿入バッファの実際の配置位置の例を示す図である。同図には、図1に示されるポイントP1(セルA2の入力ピン)周辺の空き領域が示されている。図中、網掛けが施された部分は、配置済みのインスタンスセルを示す。一方、網掛けが施されていない白抜きの部分が空き領域となる。
 手順2において挿入対象として選定されたバッファB5のサイズが5(高さ1、幅5)であった場合、バッファB5を挿入可能な空き領域は、図中左下の部分しかない。したがって、手順3において、バッファB5は、左下の空き領域に配置される。そうすると、図中において実線矢印s1によって示される、手順2において遅延計算の根拠とした信号経路と、破線矢印s2及びs3によって示される、実際の配置位置に基づく遅延計算の根拠とされる信号経路との間には、誤差が発生してしまう。この点について、図3を用いて更に詳しく説明する。
 図3は、挿入バッファとその前後のセルとの相対距離について、バッファ選択する際の予想とバッファ選択後の実際との違いを説明するための図である。
 同図において、(a)は、バッファB5を選択した際に予想した位置(すなわち、ポイントP1)を示す。同図では、セルA1の出力ピンからバッファB5の入力ピンまでは、距離l1であり、バッファB5の出力ピンからセルA2の入力ピンまでは、距離l2であることが示されている。
 一方、(b)は、バッファB5が選択され配置された位置を示す。同図では、セルA1の出力ピンからバッファB5の入力ピンまでは、距離m1(l1<m1)であり、バッファB5の出力ピンからセルA2の入力ピンまでは、距離m2(l2<m2)であることが示されている。
 すなわち、セルA1の出力ピンからバッファB5入力ピンまでの実際の距離、及びバッファB5の出力ピンからセルA2の入力ピンまでの実際の距離は、手順2において予定していた距離よりも長くなってしまっている。
 その結果、例えば、ホールドタイムエラーを除去する目的で挿入したバッファB5が、セットアップタイムエラーを引き起こしたり、あるいは、セットアップタイムエラーを引き起こすことを避けてバッファを挿入しなかったためにホールドタイムエラーを除去できなかったりということが起こる。この場合、再度タイミングECOを実行しただけでは同じ結果になるため、前回の手順2において選定されたポイントP1を修正箇所の候補から除いて、タイミングECOを再度実行することになる。このような繰り返しは、タイミングエラーの修正処理全体の処理時間の長期化を招く。
 そこで、手順2と手順3とを統合し、手順2においてレイアウト情報を参照する方法が考案されている(例えば、特許文献1)。すなわち、挿入バッファが選択されたら直ちに当該挿入バッファの物理的な配置位置を決定される。その結果に基づいて、遅延計算及びスラック値の更新が行われ、タイミングエラーが修正されるか否かが判定される。なお、スラック値とは、セットアップタイム規定及びホールドタイム規定を守ることを前提に計算された到達要求時間と実際の信号到達時間との差分であり、余裕時間を表す。
特開2008-52659号公報
 しかしながら、特許文献1に記載された技術では、最初に選択された挿入バッファを配置可能な領域を探す必要がある。その結果、タイミングエラーの除去全体の処理が長期化する可能性がある。
 そこで、半導体集積回路のタイミングエラーの除去を効率化することのできるタイミングエラー除去方法、設計支援装置、及びプログラムの提供を目的とする。
 そこで上記課題を解決するため、タイミングエラー除去方法は、設計対象の半導体集積回路のタイミングエラーを除去可能な論理上の修正箇所及び該修正箇所に挿入する第一のバッファを選択し、前記修正箇所に関して、前記第一のバッファを配置可能な前記半導体集積回路上の空き領域を探索し、空き領域が無い場合は、前記第一のバッファの挿入によって遅延を代替可能な、該第一のバッファよりも小さい複数のバッファの組み合わせを、前記半導体集積回路への配置対象として探索する処理をコンピュータが実行する。
 半導体集積回路のタイミングエラーの除去を効率化することができる。
タイミングエラーの除去例を説明するための図である。 挿入セルの実際の配置位置の例を示す図である。 挿入バッファの論理上の位置と実際の配置位置との違いを説明するための図である。 本発明の実施の形態におけるLSI設計支援装置のハードウェア構成例を示す図である。 本発明の実施の形態におけるLSI設計支援装置の機能構成例を示す図である。 タイミングエラーの除去処理の処理手順の一例を説明するためのフローチャートである。 論理修正情報の一例を示す図である。 バッファ一覧情報の一例を示す図である。 理想配置位置と近傍領域との一例を説明するための図である。 候補領域リストCLの一例を示す図である。 代替バッファの一例を説明するための図である。 代替バッファの探索処理の処理手順の一例を説明するためのフローチャートである。 最小遅延及び最大遅延の第一の例を説明するための図である。 最小遅延及び最大遅延の第二の例を説明するための図である。
 以下、図面に基づいて本発明の実施の形態を説明する。図4は、本発明の実施の形態におけるLSI設計支援装置のハードウェア構成例を示す図である。図4のLSI設計支援装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
 LSI設計支援装置10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
 メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってLSI設計支援装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等であり、様々な操作指示を入力させるために用いられる。
 なお、記録媒体101の一例としては、CD-ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
 図5は、本発明の実施の形態におけるLSI設計支援装置の機能構成例を示す図である。同図において、LSI設計支援装置10は、レイアウト部11、タイミング解析部12、論理解作成部13、配置解作成部14、及び配線解作成部15等を有する。これら各部は、LSI設計支援装置10にインストールされたプログラムが、CPU104に実行させる処理によって実現される。
 レイアウト部11は、設計対象の半導体集積回路(以下、単に、「回路」という。)に関するネットリストN1に基づいて、回路上におけるセル(論理)の配置及びセル間の配線(配置配線)をシミュレーションし、レイアウト情報L1を作成する。ネットリストN1は、回路上のピン間の接続情報等を含む情報である。レイアウト情報L1は、配置配線の結果を示す情報である。
 タイミング解析部12は、レイアウト情報L1よりRC情報R1(配線の容量及び抵抗等を含む情報)を抽出し、ネットリストN1、RC情報R1、セルライブラリLIB、及びタイミング制約TIM等に基づいて、タイミングエラーを検出する。
 セルライブラリLIBは、使用可能なセルごとに、セル形状やセル内のピンの位置情報、遅延情報及び機能情報等を含む。またセットアップタイム及びホールドタイム等を示す情報が含まれている。タイミング制約TIMは、回路の動作保障に必要なタイミング規定を示す情報である。具体的には、論理回路内の各パスの遅延制約である。
 論理解作成部13は、タイミング解析部12によって検出されたタイミングエラーを除去するための論理上の解を作成する。より詳しくは、論理解作成部13は、回路において論理上の修正箇所、及び該修正箇所に挿入するバッファ(挿入バッファ)等を選択する。論理解作成部13は、作成された論理解を論理修正情報U1として出力する。
 配置解作成部14は、論理解修正情報U1に基づいて、レイアウト情報L1等を参照して、挿入バッファの配置の可否を判定する。挿入バッファを配置できない場合、配置解作成部14は、挿入バッファよりも小さい複数のバッファの組み合わせであって、かつ、挿入バッファの挿入によって得られる遅延を代替することのできる組み合わせを、回路への配置対象として探索する。
 配線解作成部15は、挿入されたバッファ等に関する未結線部分の配線処理を行う。
 なお、ネットリストN1、タイミング制約TIM、及びセルライブラリLIB等は、補助記憶装置102又はLSI設計支援装置10とネットワークを介して接続される記憶装置等に記憶される。また、レイアウト情報L1、RC情報R1、及び論理修正情報U1等は、メモリ装置103若しくは補助記憶装置102、又はLSI設計支援装置10とネットワークを介して接続される記憶装置等に記憶される。
 以下、LSI設計支援装置10の処理手順について説明する。図6は、タイミングエラーの除去処理の処理手順の一例を説明するためのフローチャートである。本実施の形態ではホールドタイム違反(ホールドタイムエラー)を修正する例について説明する。
 ステップS101において、レイアウト部11は、レイアウト対象の回路のネットリストN1に基づいて配置配線を行い、レイアウト情報L1を作成する(S101)。続いて、タイミング解析部12は、レイアウト情報L1に含まれる配線情報に基づいてRC抽出を行う(S102)。RC抽出の結果、RC情報R1が生成される。続いて、タイミング解析部12は、ネットリストN1、RC情報R1、並びにセルライブラリLIBに含まれる各セルの遅延情報及び機能情報に基づいて遅延計算を行う(S103)。続いて、タイミング解析部12は、遅延計算の結果と、タイミング制約情報TIMとに基づいて静的タイミング解析(STA:Static Timing Analysis)を行い、セットアップタイム制約及びホールドタイム制約の双方に対する遅延余裕値(slack値)を求める(S104)。続いて、タイミング解析部12は、遅延余裕値に基づいて、ホールドタイムエラーの有無を判定する(S105)。ホールドタイムエラーが無い場合(S105でNo)、図6の処理は終了する。
 一方、ホールドタイムエラーが検出された場合(S105でYes)、ホールドタイムエラー(以下、単に「エラー」という。)を除去するために、ステップS106以降において論理解の作成処理が論理解作成部13によって実行される。なお、ステップS106以降では、一つのエラーが除去対象とされる。したがって、複数のエラーが検出されている場合、ステップS106~S109は、繰り返し実行される。
 ステップS106において、論理解作成部13は、除去対象のエラーを効率的に除去するための論理上の修正箇所(以下、「論理修正箇所」という。)の選択とその箇所において改善可能な遅延量を判定する(S106)。例えば、図1の例では、ポイントP1が論理修正箇所として選択され、ポイントP1において改善可能な遅延量が判定される。改善可能な遅延量とは、新たなタイミングエラーを起こさない範囲で追加可能な遅延量をいう。なお、論理修正箇所の前段のセルを、以下、単に「前段のセル」という。また、論理修正箇所の後段のセルを、以下、単に「後段のセル」という。図1の例では、セルA1が前段のセルであり、セルA2が後段のセルである。
 続いて、論理解作成部13は、セルライブラリLIBに登録されているバッファの中から、改善可能な遅延量に相当する遅延値を有するバッファ(以下、「挿入バッファ」という。)を一以上選択する(S107)。すなわち、一つの論理修正箇所に関して、複数のバッファが挿入されてもよい。図1の例では、バッファB5が挿入バッファに相当する。続いて、論理解作成部13は、挿入バッファを、論理修正箇所に挿入したと仮定して遅延計算を行う(S108)。遅延計算の内容は、ステップS103と同様でよい。遅延計算の結果、セットアップタイム制約及びホールドタイム制約の双方に対する遅延余裕値が再計算(更新)される。
 なお、論理解作成部13は、ステップS108の遅延計算に関して、配置解作成部14が、論理解作成部13の期待した(又は予定した)遅延の修正量を再現可能(又は把握可能)なように、所定の規則に基づいて遅延計算を実行する。当該所定の規則は、配置解作成部14との間で当初から決められているものであってもよい。または、論理解作成部13が、当該所定の規則を示す情報を、遅延計算の実行時にメモリ装置103又は補助記憶装置102に記録してもよい。
 所定の規則の一例として、遅延計算において、前段のセルの出力ピンから挿入バッファの入力ピンまでの配線のRC情報、及び挿入バッファの出力ピンから後段のセルの入力ピンまでの配線のRC情報に関してどのような値を用いるかが挙げられる。例えば、前者のRC情報については、挿入バッファの挿入前の状態において、前段のセルの出力ピンと後段のセルの入力ピンを接続する配線のRCの情報を用い、後者のRC情報については、0とするという規則に基づいて遅延計算が行われる。また、タイミング解析部12又は論理解作成部13による遅延計算の過程において得られる、前段セルの出力ピンにおける信号波形のなまり(slew)(以下、「波形なまり」という。)の情報が、メモリ装置103又は補助記憶装置102に保存される。当該情報が、配置解作成部14による遅延計算において利用可能とされるためである。
 続いて、論理解作成部13は、挿入バッファの挿入により新たなタイミングエラーが発生するか否かを判定する(S109)。すなわち、ステップS108において更新された遅延余裕値に基づいて、ホールドタイムエラーの有無が判定される。
 新たなエラーが発生する場合(S109でYes)、論理解作成部13は、ステップS107以降を繰り返し実行する。すなわち、挿入バッファの再選択及び遅延計算等が行われる。一方、エラーが発生しない場合(S109でNo)、論理解作成部13は、回路内にホールドタイムエラーが残っているか否かを判定する(S105)。すなわち、まだ除去対象とされていないホールドタイムエラーの有無が判定され、全てのホールドエラーが除去されるまで、ステップS106~S109が繰り返される。
 全てのホールドエラーが除去されると(S105でNo)、論理解作成部13は、論理修正箇所の有無を判定する(S110)。すなわち、ステップS106において少なくとも一つの論理修正箇所が選択されたか否かが判定される。
 論理修正箇所が無い場合(S110でNo)、図6の処理は終了する。論理修正箇所が有る場合(S110でYes)、論理解作成部13は、論理修正箇所と挿入バッファとの対応情報である論理修正情報U1をメモリ装置103又は補助記憶装置102に出力(記録)する(S111)。なお、論理修正情報U1は、ステップS106~S108の過程において部分的かつ逐次的に出力されてもよい。
 図7は、論理修正情報の一例を示す図である。同図に示される論理修正情報U1は、挿入バッファごとに、バッファ名及び論理修正箇所を含む。バッファ名は、挿入バッファの識別名である。論理修正箇所は、挿入バッファを挿入する論理上の位置であり、前段のセルの出力ピン又は後段のセルの入力ピンによって特定されている。すなわち、論理修正箇所の末尾が「in」である場合、当該挿入バッファの挿入箇所は、「in」以前の識別子(「M1/E1」等)によって識別される後段のセルの入力ピンの前方であることを示す。一方、論理修正箇所の末尾が「out」である場合、当該挿入バッファの挿入箇所は、「out」以前の識別子によって識別される前段のセルの出力ピンの後方であることを示す。
 続いて、論理修正情報U1等に基づいて、配置解作成部14による処理が実行される。ステップS112において、配置解作成部14は、セルライブラリLIBより、使用可能なバッファのサイズ(大きさ)と遅延値との一覧情報(以下、「バッファ一覧情報」という。)を抽出する(S112)。
 図8は、バッファ一覧情報の一例を示す図である。同図に示されるバッファ一覧情報BLは、バッファごとに、バッファ名、サイズ、及び遅延値等を含む。バッファ名は、バッファの識別名である。サイズは、バッファの大きさである。同図では、高さが1固定である例が示されている。したがってサイズの値は幅を示す。但し、高さ及び幅の双方の値がサイズとして示されていてもよい。遅延値は、バッファ自体の有する遅延値である。
 続いて、配置解作成部14は、一つの論理修正箇所に係る挿入バッファ(以下、「対象挿入バッファ」という。)の理想的な配置位置を算出する(S113)。具体的には、配置解作成部14は、論理修正情報U1から一つの論理修正箇所と、当該論理修正箇所に対応付けられているバッファ名を全て取り出す。配置解作成部14は、ネットリストN1及びレイアウト情報L1を参照して当該論理修正箇所の位置情報を算出する。当該位置情報が、挿入バッファの理想配置位置とされる。
 続いて、配置解作成部14は、理想配置位置の近傍領域において、空き領域を探索し、連続する空き領域(以下、「候補領域」という。)の一覧情報(以下、「候補領域リストCL」という。)を作成する(S114)。
 図9は、理想配置位置と近傍領域との一例を説明するための図である。同図に示される配置マップM1は、配置解作成部14が、レイアウト情報L1に基づいて作成した、理想配置位置の近傍のレイアウト情報を図形化したものである。配置マップM1における最小単位の矩形は、バッファのサイズの単位に対応する。すなわち、1つの矩形は、サイズ1に対応する。網掛けが施されている矩形は、セルが配置されていることを示し、白抜きの矩形は空き領域であることを示す。
 配置マップM1において、A1及びA2が記載されている領域は、図1に示されるセルA1又はセルA2を示す。ここで、論理修正箇所は、セルA2の入力ピンによって特定されていることとする。すなわち、当該論理修正箇所に係る対象挿入バッファの後段セルは、セルA2であり、前段セルは、セルA1である。同図において、セルA2の入力ピンの位置は、Prによって示される位置であるとする。したがって、Prによって示される位置が、当該論理修正箇所に係る対象挿入バッファの理想的な配置位置(以下、「理想配置位置Pr」という。)として算出される。
 また、理想配置位置Prと、当該対象挿入バッファの前段セルであるセルA1とを囲む最小の矩形領域R1を中心とする矩形領域が近傍領域とされる。ここで、前段セルが対象とされるのは、理想配置位置Prに係る論理修正箇所が、後段セルの入力ピンに対応する位置であるからである。したがって、仮に、論理修正箇所が、前段セルの出力ピンに対応する位置であるとすると、当該論理修正箇所に係る理想配置位置と、後段セルとを囲む最小の矩形を中心とする矩形領域が近傍領域とされる。近傍領域とは候補領域の探索範囲を限定するためのものである。候補領域の探索範囲を理想配置位置の近傍に限定しようとするのは、後述のステップS116において、対象挿入バッファと遅延のほぼ等しい代替バッファの組み合わせを求めるときに、論理解作成部13が予定していた遅延量に対する誤差を小さくするためである。
 同図では、矩形領域Rnが、近傍領域とされた例が示されている。なお、近傍領域Rnは、空き領域の探索の過程において、空き領域が見つからない場合には、拡大されてもよい。また、近傍領域Rnは、必ずしも、矩形領域R1を中心とする矩形領域でなくてもよい。また、矩形領域Rnは、矩形領域R1と一致する領域であってもよい。
 また、図10は、候補領域リストCLの一例を示す図である。同図に示される候補領域リストCLは、候補領域ごとに、サイズ及び座標を記憶する。サイズは、候補領域の大きさである。座標は、候補領域の位置情報であり、例えば、候補領域の所定の頂点の座標である。
 続いて、配置解作成部14は、全ての対象挿入バッファを、候補領域リストCLにリストアップされている、いずれかの候補領域に排他的に配置可能であるか否かを判定する(S115)。任意の対象挿入バッファのサイズと同じであるか、当該サイズよりも大きい候補領域には、当該対象挿入バッファは配置可能であると判定される。なお、排他的にとは、同じ候補領域に複数の対象挿入バッファが重複して配置されないことをいう。
 全ての対象挿入バッファを排他的に配置可能であれば(S115でYes)、当該各対象挿入バッファを、それぞれが配置可能であると判定された候補領域に配置する(S117)。
 少なくとも一つの対象挿入バッファを配置できない場合(S115でNo)、配置解作成部14は、対象挿入バッファよりサイズの小さい、バッファの組み合わせであって、遅延が対象挿入バッファとほぼ等しくなるような組み合わせを、バッファ一覧情報BLを参照して探索する(S116)。配置解作成部14は、探索されたバッファ(以下、「代替バッファ」という。)の組み合わせによって、挿入対象を代替する。なお、代替バッファは、対象導入バッファと論理等価なバッファである。
 図11は、代替バッファの一例を説明するための図である。同図において、(a)は、セルA1とセルA2との間に、挿入バッファB5が挿入された状態を示す。挿入バッファB5のサイズは、5であるとする。一方、(b)は、挿入バッファB5が、代替バッファB3と代替バッファB2との組み合わせによって代替された例を示す。
 ここで、(a)において、前段のセルA1の入力ピンから後段のセルA2の入力ピンまでの遅延がt1であるとすると、(b)において、セルA1の入力ピンからセルA2の入力ピンまでの遅延t2は、t1と等しくなるように、代替バッファB3及びB2が選択される。すなわち、バッファの挿入時の遅延は、前段のセルの入力ピンから当該バッファの入力ピンまでの遅延と、当該バッファの入力ピンから後段のセルの入力ピンまでの遅延とを加算することにより算出される。なお、(a)及び(b)の双方において、w1によって示される信号の波形は、遅延t1及びt2を計算する際に利用される波形なまりの情報をしめす。
 続いて、配置解作成部14は、代替バッファをいずれかの候補領域に配置する(S117)。
 なお、ステップS113~S117は、論理修正情報U1に含まれる全ての論理修正箇所に関して繰り返し実行される(S118)。その結果、全ての論理修正箇所に関して挿入バッファ又は代替バッフが配置される。
 全ての論理修正箇所に関してバッファの配置が完了すると(S118でNo)、配置解作成部14は、挿入バッファ又は代替バッファの実際の配置位置と、理想配置位置とのずれや、挿入バッファを代替バッファよって代替することによる配線遅延の影響等を検証する。具体的には、配置解作成部14は、配置された挿入バッファ又は代替バッファ(以下、「配置バッファ」という。)の配置位置に基づいて、各配置バッファに繋がるネットの仮の配線長を配置バッファの配置位置に基づいて計算する(S119)。仮の配線長(以下、「仮配線長」という。)とは、厳密な配線を行って求まる配線長ではなく、配線に関する各種のパラメータに関して仮定に基づく値が設定されて算出される配線長をいう。続いて、論理解作成部13は、配置バッファの遅延値及び仮配線長等を考慮して遅延計算を行い、遅延余裕値の再計算を行う(S120)。ステップS120の計算の結果、セットアップタイムエラーが検出された場合(S121でYes)、配置解作成部14は、配置バッファのうちの少なくとも1つを、当該配置バッファより遅延値の小さいバッファに交換する(S122)。配置解作成部14は、バッファの交換後、ステップS120以降を繰り返す。
 セットアップエラーが検出されない場合(S121でNo)、配置解作成部14は、確定した修正情報(各配置バッファの配置位置等)をネットリストN1及びレイアウト情報L1に反映する(S123)。
 続いて、配線解作成部15は、レイアウト情報L1に基づいて、挿入バッファ又は代替バッファの挿入によって生じる未結線部分の配線処理を行う(S124)。未結線部分の配線処理の内容は、公知技術に従えばよい。
 続いて、ステップS116の詳細について説明する。図12は、代替バッファの探索処理の処理手順の一例を説明するためのフローチャートである。
 ステップS201において、配置解作成部14は、全ての対象挿入バッファを理想配置位置に配置した場合の前段のセルの入力ピンから後段のセルの入力ピンまでの遅延の値(以下、「標準遅延」という。)を計算する(S201)。この際、配置解作成部14は、ステップS108において論理解作成部13が遅延計算において従った所定の規則に従って遅延計算を行う。また、配置解作成部14は、論理解作成部13が遅延計算として前提とした情報(例えば、波形なまりの情報)を、メモリ装置103又は補助記憶装置102より取得し、当該情報を前提として遅延計算を行う。すなわち、ステップS201における遅延計算は、ステップS108と同じ規則及び同じ前提に基づいて行われる。
 但し、ステップS108において、対象挿入バッファに関して論理解作成部13によって計算された、前段セルの入力ピンから後段セルの入力ピンまでの遅延の値が、論理修正情報U1に含められていてもよい。この場合、配置解作成部14は、論理修正情報U1に含まれている遅延の値を標準遅延として利用してもよい。また、タイミング解析部12又は論理解作成部13による遅延計算の過程で得られる波形なまりの情報も、論理修正情報U1に含まれていてもよい。
 いずれの場合においても、論理解作成部13による遅延計算の規則が、配置解作成部14においても適用されることにより、配置解作成部14は、論理解作成部13が予定していた遅延量を把握することができる。その結果、配置解作成部14は、当該遅延量との誤差の小さい配置解を探索することができる。
 続いて、配置解作成部14は、対象挿入バッファの中で遅延値が最小であるバッファを、一段階小さい遅延値を有するバッファに交換した場合の遅延の値(以下、「最小遅延」という。)と、一段階大きい遅延値を持つバッファに交換した場合の遅延の値(以下、「最大遅延」という。)を計算する(S202)。ここで計算される遅延の値は、ステップS201と同様に、前段のセルの入力ピンから後段のセルの入力ピンまでの遅延の値である。また、ステップS202においても、ステップS201において利用された規則及び前提が適用される。なお、対象挿入バッファの遅延値よりも一段階小さい遅延値又は一段階大きい遅延値とは、バッファ一覧情報BLにおいて、対象挿入バッファの遅延値の次に小さい遅延値又は次の大きい遅延値をいう。
 図13は、最小遅延及び最大遅延の第一の例を説明するための図である。同図では、対象挿入バッファが一つである場合について説明する。
 (a)は、論理解作成部13によって選択された挿入バッファB5が挿入された場合を示す。したがって、この場合において、前段のセルA1の入力ピンから後段のセルA2の入力ピンまでの遅延の値は、標準遅延に相当する。
 (b)は、バッファB5が、バッファB5よりも一段階小さい遅延値を有するバッファB4に交換された場合を示す。同図の例では、対象挿入バッファは一つであるため、バッファB5は、対象挿入バッファの中で遅延値が最小のバッファである。したがって、バッファB5よりも一段階小さい遅延値を有するバッファB4に交換された場合における、前段のセルA1の入力ピンから後段のセルA2の入力ピンまでの遅延の値は、最小遅延に相当する。
 (c)は、バッファB5が、バッファB5よりも一段階大きい遅延値を有するバッファB8に交換された場合を示す。したがって、この場合における、前段のセルA1の入力ピンから後段のセルA2の入力ピンまでの遅延の値は、最大遅延に相当する。
 また、図14は、最小遅延及び最大遅延の第二の例を説明するための図である。同図では、対象挿入バッファが二つである場合について説明する。
 (a)は、論理解作成部13によって選択された挿入バッファB4及びB2が挿入された場合を示す。したがって、この場合において、前段のセルA1の入力ピンから後段のセルA2の入力ピンまでの遅延の値は、標準遅延に相当する。
 (b)は、バッファB2が、バッファB2よりも一段階小さい遅延値を有するバッファB1に交換された場合を示す。同図の例において、バッファB4よりもバッファB2の方が遅延値は小さいこととする。すなわち、バッファB2は、対象挿入バッファの中で遅延値が最小のバッファである。したがって、バッファB2よりも一段階小さい遅延値を有するバッファB1に交換された場合における、前段のセルA1の入力ピンから後段のセルA2の入力ピンまでの遅延の値は、最小遅延に相当する。
 (c)は、バッファB2が、バッファB2よりも一段階大きい遅延値を有するバッファB4に交換された場合を示す。したがって、この場合における、前段のセルA1の入力ピンから後段のセルA2の入力ピンまでの遅延の値は、最小遅延に相当する。
 なお、挿入バッファの個数は、3つ以上の場合も有るが、その場合の最小遅延及び最大遅延は、図14より自明であるため省略する。
 続いて、配置解作成部14は、標準遅延と一致するか十分に近い遅延を有し、かつ、候補領域に配置可能で総数がなるべく少ないバッファの組み合わせを求める。例えば、配置解作成部14は、最大サイズの候補領域に配置可能な最大の代替バッファをセルライブラリLIBより選択する(S203)。続いて、配置解作成部14は、当該候補領域に当該代替バッファを配置して、当該候補領域を更新する(S204)。ステップS203及びS204は、選択された代替バッファが(例えば、直列に)配置された場合の、前段のセルの入力ピンから後段のセルの入力ピンまでの遅延の値(以下、「代替バッファにより得られる遅延」という。)が標準遅延を超えるまで繰り返される(S205)。2回目以降のステップS203では、そのときの候補領域の中で最大サイズの候補領域が処理対象とされる。
 なお、代替バッファにより得られる遅延を求める際の配線長は、各代替バッファの配置位置を基準として所定の仮定に基づいて算出されてもよい。又は配置位置は近傍領域に限定されているため、一つのバッファは理想配置位置に配置されたと仮定して配線長を求め、次以降のバッファ間の配線長は0とされてもよい。
 代替バッファにより得られる遅延が標準遅延を超えると(S205でYes)、配置解作成部14は、代替バッファにより得られる遅延が最小遅延より大きく、最大遅延より小さくなるように、代替バッファの入れ替えを行う(S206)。例えば、配置解作成部14は、最後に選択された代替バッファを、当該代替バッファの遅延値より小さい、一又は複数のバッファと交換する。すなわち、最小遅延及び最大遅延は、代替バッファにより得られる遅延が、当初の挿入バッファの挿入により得られる遅延(すなわち、論理解作成部13が予定していた遅延)に十分に近いか否かを判定するために使用される。
 代替バッファの組み合わせが決まると、配置解作成部14は、代替バッファの挿入順番にしたがって、代替バッファ間の論理接続を行う(S207)。
 なお、図12の処理手順は、あくまでも一例である。例えば、最大サイズの候補領域に配置可能なバッファを少なくとも1個含み、残りは当該バッファと同じサイズか、又は当該バッファより小さいサイズのバッファを含む組み合わせを最初に複数求めておく。続いて、組み合わせごとに、当該組み合わせに含まれる全てのバッファが候補領域に配置可能か否かを確認して、代替バッファの候補が狭めてられてもよい。
 上述したように、本実施の形態によれば、当初の挿入バッファを配置できない場合、配置対象をより小さいサイズの代替バッファ群に変更することで、当該代替バッファ群を論理解作成部13が選択した論理修正箇所の近傍に配置できる可能性を高めることができる。その結果、論理解作成部13が追加を予定していた遅延と、実際の遅延との誤差を小さくすることができる。また、挿入するバッファの空き領域の探索処理の時間を短縮化することもできる。
 また、挿入されるバッファが、論理修正箇所の近傍に配置されることで、遅延計算において、実際の遅延との誤差を小さくすることができるため、代替バッファを再選択するたびに実行される遅延計算を簡素化して処理時間を短縮することもできる。
 更に、当初の挿入バッファが代替バッファに分解されることにより、論理解作成部13が選択した挿入バッファ等が配置可能な空き領域が見つからなくても、論理修正箇所は再選択される必要はない。結果的にタイミングECOの処理時間を短縮することができる。
 なお、上記では、ホールドタイムエラーを除去するためのタイミングECOを例に挙げて説明してきたが、本発明の実施形態を適用可能な範囲は、ホールドタイムエラーに限定されない。例えば、既にタイミングエラー調整がされている状態での小規模の論理変更(セルの削除及びセルの追加)に本実施の形態が適用されてもよい。
 この場合、配置解作成部14は、不要になったセルを元のレイアウト情報から削除してから、追加するセルの配置解を作成する。この際、追加されるセルは、バッファに限られない。したがって、配置解作成部14は、バッファだけでなく、論理修正情報において追加対象として示されているセル(以下、「追加セル」という。)と論理等価なセルのサイズ及び遅延の一覧を作成する。そして、配置解作成部14は、追加セルを論理変更箇所の近傍に配置する。配置できない場合、配置解作成部14は、追加セルと論理等価でサイズの小さいセルとバッファの組み合わせで、当初の変更予定のセルの遅延を実現できるように追加セルを代替させる。
 なお、本実施の形態において、論理解作成部13は、選択部の一例である。また、配置解作成部14は、探索部の一例である。
 以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10     LSI設計支援装置

11     レイアウト部

12     タイミング解析部

13     論理解作成部

14     配置解作成部

15     配線解作成部

100    ドライブ装置

101    記録媒体

102    補助記憶装置

103    メモリ装置

104    CPU

105    インタフェース装置

106    表示装置

107    入力装置

B      バス

Claims (9)


  1.  設計対象の半導体集積回路のタイミングエラーを除去可能な論理上の修正箇所及び該修正箇所に挿入する第一のバッファを選択し、

     前記修正箇所に関して、前記第一のバッファを配置可能な前記半導体集積回路上の空き領域を探索し、空き領域が無い場合は、前記第一のバッファの挿入によって遅延を代替可能な、該第一のバッファよりも小さい複数のバッファの組み合わせを、前記半導体集積回路への配置対象として探索する処理をコンピュータが実行するタイミングエラー除去方法。

  2.  前記探索する処理は、前記半導体集積回路上において前記論理上の修正箇所に対応する位置から所定範囲内において前記第一のバッファを配置可能な空き領域を探索し、空き領域が無い場合は、前記所定範囲内に配置可能なバッファの組み合わせを探索する請求項1記載のタイミングエラー除去方法。

  3.  前記選択する処理は、所定の規則に基づいて前記論理上の修正箇所の前段のセルから前記論理上の修正箇所の後段のセルまでの遅延を計算し、前記第一のバッファを選択し、

     前記探索する処理は、前記第一のバッファの挿入によって得られる遅延に関して、前記所定の規則に基づいて算出される値を用いて前記組み合わせを探索する請求項1又は2記載のタイミングエラー除去方法。

  4.  設計対象の半導体集積回路のタイミングエラーを除去可能な論理上の修正箇所及び該修正箇所に挿入する第一のバッファを選択する選択部と、

     前記修正箇所に関して、前記第一のバッファを配置可能な前記半導体集積回路上の空き領域を探索し、空き領域が無い場合は、前記第一のバッファの挿入によって遅延を代替可能な、該第一のバッファよりも小さい複数のバッファの組み合わせを、前記半導体集積回路への配置対象として探索する探索部とを有する設計支援装置。

  5.  前記探索部は、前記半導体集積回路上において前記論理上の修正箇所に対応する位置から所定範囲内において前記第一のバッファを配置可能な空き領域を探索し、空き領域が無い場合は、前記所定範囲内に配置可能なバッファの組み合わせを探索する請求項4記載の設計支援装置。

  6.  前記選択部は、所定の規則に基づいて前記論理上の修正箇所の前段のセルから前記論理上の修正箇所の後段のセルまでの遅延を計算し、前記第一のバッファを選択し、

     前記探索部は、前記第一のバッファの挿入によって得られる遅延に関して、前記所定の規則に基づいて算出される値を用いて前記組み合わせを探索する請求項4又は5記載の設計支援装置。

  7.  設計対象の半導体集積回路のタイミングエラーを除去可能な論理上の修正箇所及び該修正箇所に挿入する第一のバッファを選択し、

     前記修正箇所に関して、前記第一のバッファを配置可能な前記半導体集積回路上の空き領域を探索し、空き領域が無い場合は、前記第一のバッファの挿入によって遅延を代替可能な、該第一のバッファよりも小さい複数のバッファの組み合わせを、前記半導体集積回路への配置対象として探索する処理をコンピュータに実行させるプログラム。

  8.  前記探索する処理は、前記半導体集積回路上において前記論理上の修正箇所に対応する位置から所定範囲内において前記第一のバッファを配置可能な空き領域を探索し、空き領域が無い場合は、前記所定範囲内に配置可能なバッファの組み合わせを探索する請求項7記載のプログラム。

  9.  前記選択する処理は、所定の規則に基づいて前記論理上の修正箇所の前段のセルから前記論理上の修正箇所の後段のセルまでの遅延を計算し、前記第一のバッファを選択し、

     前記探索する処理は、前記第一のバッファの挿入によって得られる遅延に関して、前記所定の規則に基づいて算出される値を用いて前記組み合わせを探索する請求項7又は8記載のプログラム。
PCT/JP2011/056457 2011-03-17 2011-03-17 タイミングエラー除去方法、設計支援装置、及びプログラム WO2012124117A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013504491A JPWO2012124117A1 (ja) 2011-03-17 2011-03-17 タイミングエラー除去方法、設計支援装置、及びプログラム
PCT/JP2011/056457 WO2012124117A1 (ja) 2011-03-17 2011-03-17 タイミングエラー除去方法、設計支援装置、及びプログラム
US13/973,789 US8701064B2 (en) 2011-03-17 2013-08-22 Timing error removing method and design support apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/056457 WO2012124117A1 (ja) 2011-03-17 2011-03-17 タイミングエラー除去方法、設計支援装置、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/973,789 Continuation US8701064B2 (en) 2011-03-17 2013-08-22 Timing error removing method and design support apparatus

Publications (1)

Publication Number Publication Date
WO2012124117A1 true WO2012124117A1 (ja) 2012-09-20

Family

ID=46830244

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/056457 WO2012124117A1 (ja) 2011-03-17 2011-03-17 タイミングエラー除去方法、設計支援装置、及びプログラム

Country Status (3)

Country Link
US (1) US8701064B2 (ja)
JP (1) JPWO2012124117A1 (ja)
WO (1) WO2012124117A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346558B2 (en) 2017-06-22 2019-07-09 International Business Machines Corporation Integrated circuit buffering solutions considering sink delays

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013114586A1 (ja) * 2012-02-01 2013-08-08 富士通株式会社 設計支援装置,設計支援方法および設計支援プログラム
TWI493370B (zh) * 2013-03-05 2015-07-21 Univ Nat Chiao Tung 工程變更之保持時間修復方法
US9569570B2 (en) 2015-04-01 2017-02-14 Freescale Semiconductor, Inc. Configurable delay cell
CA2985010A1 (en) * 2016-11-23 2018-05-23 Techinsights Inc. Integrated circuit imaging, rendering and layout editing system and method
US10762259B1 (en) 2018-06-08 2020-09-01 Diakopto, Inc. Circuit design/layout assistance based on sensitivities to parasitics
US10783296B1 (en) 2018-06-08 2020-09-22 Diakopto, Inc. Matched net and device analysis based on parasitics
US11144688B1 (en) * 2018-12-17 2021-10-12 Diakopto, Inc. Virtual repeater insertion
KR20220033314A (ko) * 2020-09-09 2022-03-16 삼성전자주식회사 호스트 프로세서 및 가속기의 동작 방법 및 이들을 포함한 전자 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020567A (ja) * 1998-07-01 2000-01-21 Matsushita Electric Ind Co Ltd 回路修正方法
JP2004326453A (ja) * 2003-04-24 2004-11-18 Sony Corp 半導体集積回路設計方法並びに半導体集積回路設計プログラム
JP2008052659A (ja) * 2006-08-28 2008-03-06 Fujitsu Ltd 半導体集積回路設計におけるホールドエラー対策方法及びホールドエラー対策プログラム
JP2009016487A (ja) * 2007-07-03 2009-01-22 Toshiba Corp 回路設計方法及び回路設計支援装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9606927D0 (en) * 1996-04-02 1996-06-05 Memory Corp Plc Data storage devices
US6230302B1 (en) * 1998-07-20 2001-05-08 International Business Machines Corporation Method and system for performing timing analysis on an integrated circuit design
JP4512934B2 (ja) * 2001-04-13 2010-07-28 富士通セミコンダクター株式会社 論理設計された集積回路に対するレイアウト設計及びタイミング調整の方法及び装置並びにこの方法を実行するためのプログラム及びこのプログラムが記録されたコンピュータ読み取り可能な記録媒体
JP4118578B2 (ja) * 2002-03-14 2008-07-16 富士通株式会社 半導体集積回路の設計方法および設計プログラム
JP2003273221A (ja) * 2002-03-15 2003-09-26 Fujitsu Ltd 配線の遅延調整を可能にする集積回路のレイアウト方法及びそのプログラム
JP4530731B2 (ja) * 2004-06-16 2010-08-25 富士通セミコンダクター株式会社 レイアウト設計装置、レイアウト設計方法、レイアウト設計プログラム、および記録媒体
JP4547198B2 (ja) * 2004-06-30 2010-09-22 富士通株式会社 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体
JP4644614B2 (ja) * 2006-02-27 2011-03-02 富士通セミコンダクター株式会社 レイアウトエディタ装置、配線表示方法、及び配線表示プログラム
US7596643B2 (en) * 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7904865B2 (en) * 2008-01-23 2011-03-08 International Business Machines Corporation Placement driven routing
JP5359655B2 (ja) * 2009-07-30 2013-12-04 富士通セミコンダクター株式会社 生成方法
JP2011164684A (ja) * 2010-02-04 2011-08-25 Toshiba Corp 設計装置、設計方法、及び設計プログラム
JP5609364B2 (ja) * 2010-07-22 2014-10-22 富士通株式会社 集積回路設計装置、集積回路設計方法、及び集積回路設計プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020567A (ja) * 1998-07-01 2000-01-21 Matsushita Electric Ind Co Ltd 回路修正方法
JP2004326453A (ja) * 2003-04-24 2004-11-18 Sony Corp 半導体集積回路設計方法並びに半導体集積回路設計プログラム
JP2008052659A (ja) * 2006-08-28 2008-03-06 Fujitsu Ltd 半導体集積回路設計におけるホールドエラー対策方法及びホールドエラー対策プログラム
JP2009016487A (ja) * 2007-07-03 2009-01-22 Toshiba Corp 回路設計方法及び回路設計支援装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346558B2 (en) 2017-06-22 2019-07-09 International Business Machines Corporation Integrated circuit buffering solutions considering sink delays
US10372837B2 (en) 2017-06-22 2019-08-06 International Business Machines Corporation Integrated circuit buffering solutions considering sink delays
US10372836B2 (en) 2017-06-22 2019-08-06 International Business Machines Corporation Integrated circuit buffering solutions considering sink delays
US10496764B2 (en) 2017-06-22 2019-12-03 International Business Machines Corporation Integrated circuit buffering solutions considering sink delays
US10503841B2 (en) 2017-06-22 2019-12-10 International Business Machines Corporation Integrated circuit buffering solutions considering sink delays

Also Published As

Publication number Publication date
JPWO2012124117A1 (ja) 2014-07-17
US8701064B2 (en) 2014-04-15
US20130346931A1 (en) 2013-12-26

Similar Documents

Publication Publication Date Title
WO2012124117A1 (ja) タイミングエラー除去方法、設計支援装置、及びプログラム
US11392741B2 (en) Computer implemented system and method for generating a layout of a cell defining a circuit component
JP4655240B2 (ja) タイミング解析支援装置
JP5883676B2 (ja) Lsi設計方法
US9569575B2 (en) Digital circuit design method and associated computer program product
US8166432B2 (en) Timing verification method and timing verification apparatus
US9436795B2 (en) Layout verification method and verification apparatus
JP4918934B2 (ja) 半導体集積回路の遅延解析装置及び遅延解析方法並びにそのプログラム
US8560999B2 (en) Routing
JP2011028465A (ja) テストポイント挿入方法
JP5772990B2 (ja) 設計支援装置,設計支援方法および設計支援プログラム
JP4969416B2 (ja) 動作タイミング検証装置及びプログラム
JP2008305132A (ja) 半導体集積回路の設計方法及び設計支援装置
JP2010073136A (ja) ホールドタイムエラーの収束方法、収束装置、及び収束プログラム
JP2007199951A (ja) 半導体集積回路の設計支援装置、設計支援方法および設計支援プログラム
JP2009134439A (ja) ソフトマクロを用いたレイアウト設計方法、ソフトマクロのデータ構造及びソフトマクロライブラリの作成方法
CN115204104A (zh) 计算装置、其操作方法和计算机程序产品
JP2005293349A (ja) 回路設計支援システム、設計方法及びプログラム
JP6107488B2 (ja) 有向グラフ生成方法、有向グラフ生成プログラム、及び有向グラフ生成装置
JP2000150659A (ja) 半導体集積回路装置のレイアウト設計方法
JP2012038266A (ja) 設計支援装置及び設計支援方法
JP2009146175A (ja) クロック配線処理装置、クロック配線処理方法、及びプログラム
JP6589533B2 (ja) 半導体装置のレイアウト設計方法およびレイアウト設計装置
JP5447209B2 (ja) スキャンチェーン形成方法、プログラム及び設計支援装置
JP2010160580A (ja) ホールドエラー修正方法、装置及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11860971

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013504491

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11860971

Country of ref document: EP

Kind code of ref document: A1