WO2009110615A1 - 半導体集積回路の設計装置、半導体集積回路の設計方法、並びに半導体集積回路を設計するコンピュータ・プログラム - Google Patents
半導体集積回路の設計装置、半導体集積回路の設計方法、並びに半導体集積回路を設計するコンピュータ・プログラム Download PDFInfo
- Publication number
- WO2009110615A1 WO2009110615A1 PCT/JP2009/054341 JP2009054341W WO2009110615A1 WO 2009110615 A1 WO2009110615 A1 WO 2009110615A1 JP 2009054341 W JP2009054341 W JP 2009054341W WO 2009110615 A1 WO2009110615 A1 WO 2009110615A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- circuit
- latch
- semiconductor integrated
- flip
- flop
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Definitions
- the present invention relates to the technical field of a design apparatus (design system) that supports the design of a semiconductor integrated circuit.
- a flip-flop circuit in the circuit is generally realized by a method synchronized with a clock.
- the clock frequency to which the longest value of propagation delay between flip-flop circuits in the circuit is synchronized is determined.
- the shorter the propagation delay between the flip-flop circuits the better.
- the time until the flip-flop circuit can read data and the time between two flip-flop circuits connected by the propagation signal are supplied. Due to the time difference between the clocks, a propagation delay of more than a certain time value defined between individual flip-flop circuits is required, and a delay of more than a certain time value exists between the flip-flop circuits connected by the propagation signal.
- Non-Patent Document 1 Patent Documents 1, 2, 3, 4, 5, and 6. Yes.
- the semiconductor integrated circuit design system of Non-Patent Document 1 includes a semiconductor integrated circuit data, a circuit delay measurement system, a delay buffer insertion determination system, and a delay buffer insertion system.
- the circuit delay measurement system measures the delay of the circuit pair, and the delay buffer insertion determination system uses the measurement result to determine the location where the hold error may occur.
- the delay buffer insertion system generates a hold error. Insert a delay buffer that causes a delay. As shown in FIG. 8, when the occurrence of a hold error in which two flip-flop circuits are directly connected without a circuit element causing a delay is expected, the delay gate is set by the semiconductor integrated circuit design system. Inserted to eliminate the hold error.
- the semiconductor integrated circuit design system disclosed in Patent Document 1 includes a semiconductor integrated circuit data, a circuit delay measurement system, a latch circuit insertion determination system, and a latch circuit insertion system.
- the circuit delay measurement system measures the delay of the pair, and using the measurement result, the latch circuit insertion determination system determines the part where the hold error may occur, and the latch circuit insertion system detects the half cycle of the clock. Inserts a latch circuit that blocks signal transmission and permits signal transmission for half the clock period. As a result, a half-cycle delay of the clock is given to the hold error signal line.
- FIG. 12 when the occurrence of a hold error such that two flip-flop circuits are directly connected without a circuit element causing a delay is expected, the latch circuit is Once inserted, a half of the clock period is inserted to eliminate the HODE error.
- Patent Document 2 Although a design method using a latch circuit is proposed in Patent Document 2, there is a problem that it is very difficult to apply a design method applied to a general flip-flop-based synchronous circuit.
- Patent Document 3 discloses that “if a flip-flop circuit under any condition can be divided into latch circuits, it is determined by conditions such as a delay in a preceding stage path and a delay in a following stage path”.
- the logic circuit In the design of the flip-flop circuit in the pipeline, the logic circuit is arranged with the clock cycle lengthened by a predetermined value, and the flip-flop circuit related to the error path that causes an error with respect to the target value of the clock cycle is The logic circuit is rearranged by replacement, the allowable maximum logic delay time of the logic path can be increased, and the pipeline design can be easily performed.
- the signal wiring connection system 61 of the present embodiment includes a logic design data storage unit 62 that stores logic design data of a semiconductor device, and a new via connection wiring by analyzing the timing of the signal wiring.
- Timing information for storing timing analysis information related to signal propagation delay time of signal wiring program storage unit 63 storing a program for creating a pattern
- placement and wiring information storage unit 64 for storing logic element placement and wiring path information A storage unit 65, a via information storage unit 66 that stores via information regarding signal wirings that are formed in different wiring layers and are connected to each other through vias, and means for executing a series of signal wiring connection processing are provided.
- the output device 69 that outputs the processing result via the input / output control unit 68, and the processing control unit 67 It is composed of an input device 70 for inputting instructions and the like. ”,“ A method for connecting signal wirings that can obtain a signal propagation delay time sufficient for timing control between logic elements, and connection of the signal wirings ” Can provide system ".
- Patent Document 5 states that “in hierarchical design, block information related to the function of a circuit is input from a plurality of timing information databases provided corresponding to each of a plurality of design hierarchies and having netlist information related to a wiring form.
- a plurality of timing distribution generation units capable of outputting timing distribution values obtained by allocating delay values caused by delay elements of the plurality of timing elements, and dynamically changing connections between the plurality of timing distribution generation units, and a plurality of timings ⁇ It is configured with inter-tier linkage managers that send and receive correction information related to timing distribution values between each of the distribution creation units '' and ⁇
- the timing specification is changed, It can be referred to immediately, eliminating reference mistakes when changing specifications, and combining temporary wiring with actual wiring
- the delay optimizing unit 6 includes a step of inserting a level latch circuit into a signal path that violates the minimum delay constraint, and this inserting step includes an output terminal included in the sequence synchronization circuit.
- the step of calculating the degree of duplication of signal paths that violate the minimum delay constraint every time, and the level latch circuit is inserted so that the LSI layout pattern area of the sequence synchronization circuit is minimized in order from the signal path with the largest degree of duplication
- the calculation processing time can be shortened because the maximum delay time is not affected, and the increase in the LSI layout pattern area of the sequence synchronization circuit is reduced. It can be ".
- Patent Documents 1 to 6 or Non-Patent Document 1 specifically discloses a solution for the following two problems.
- the first problem is that a design technique for eliminating a hold error by inserting a delay gate into a semiconductor integrated circuit in which a hold error occurs causes a significant increase in the area of the semiconductor circuit.
- a delay gate that intentionally generates a delay requires a large area in order to create normal gate circuit elements in order to intentionally generate a delay. This tendency is expected to be further increased in the future ultra-fine process, and even in the current process level, there is a case where the circuit area is increased to about twice to eliminate the hold error.
- the second problem is that, in a design method in which a latch circuit that eventually generates a delay of a half cycle of a clock is inserted into a semiconductor integrated circuit in order to eliminate a hold error, for example, a half cycle of a clock is already present.
- the latch circuit that gives a delay of half the clock period has a delay that is too large. This is because there is a case where the delay becomes longer than the assumed clock cycle.
- an object of the present invention is to generate a signal line having a delay value smaller than a delay value set individually for a propagation signal between flip-flop circuits with respect to a semiconductor integrated circuit.
- An object of the present invention is to provide a design apparatus (design system) in which an increase in the semiconductor circuit area is small and a small delay can be controlled in order to eliminate the hold error.
- a semiconductor integrated circuit design apparatus is a design apparatus for designing a semiconductor integrated circuit including a flip-flop circuit mounted on a semiconductor integrated circuit, and includes: an input of the flip-flop circuit; A hold error is detected according to the timing analysis data including the value of the output node, and a timing analysis unit that identifies a node in which the hold error has occurred, and an analysis result by the timing analysis unit is referred to.
- FF (flip-flop circuit) latching means for converting the flip-flop circuit into two types of latch circuits, a high latch circuit and a low latch circuit, and referring to the analysis result by the timing analysis means, the two types of latch circuits
- the signal for the position on the circuit arrangement and the position on the circuit arrangement of the node Based on the output direction and the position of the latch circuit on the circuit arrangement, the latch move destination determining means for selecting the latch circuit to be fixed out of the two types of latch circuits, and the latch move destination determining means are selected.
- the semiconductor integrated circuit design method is a design method for designing a semiconductor integrated circuit including a flip-flop circuit mounted on the semiconductor integrated circuit, and the timing analysis function allows the input of the flip-flop circuit and The hold error is detected according to the timing analysis data including the value of the output node, the node where the hold error has occurred is identified, and the analysis result by the timing analysis function is referred to by the FF (flip-flop circuit) latching function.
- the flip-flop circuits at both ends of the node are converted into two types of latch circuits, a high latch circuit and a low latch circuit, and the two types of latch circuits are referred to by the latch movement destination determination function by referring to the analysis result by the timing analysis function.
- a latch circuit to be fixed is selected from the two types of latch circuits, and the latch is performed by a circuit information conversion function.
- a computer program is a computer program for operation control of a design apparatus for designing a semiconductor integrated circuit including a flip-flop circuit mounted on a semiconductor integrated circuit, and the computer program
- a hold error is detected according to timing analysis data including the values of the input and output nodes of the flip-flop circuit, and a timing analysis function for identifying a node where the hold error has occurred, and an analysis result by the timing analysis function is referred to FF (flip-flop circuit) latching function that converts the flip-flop circuits at both ends of the node into two types of latch circuits, a high latch circuit and a low latch circuit, and an analysis result by the timing analysis function,
- FF flip-flop circuit
- the two types of latch circuits Based on the signal input / output direction with respect to the position on the circuit arrangement and the position on the circuit arrangement of the node, and the position on the circuit arrangement of the latch circuit, the latch to be fixed out of the two types of latch circuits
- a computer executes a latch movement destination determination function for selecting a circuit
- the purpose of the invention is to read a computer program that implements a semiconductor integrated circuit design apparatus or a semiconductor integrated circuit design method having the above-described configurations by a computer, and the computer program that stores the computer program. This is also achieved by a simple storage medium.
- a hold error that occurs in a signal line having a delay value smaller than a delay value set individually for a propagation signal between flip-flop circuits is eliminated for a semiconductor integrated circuit. Therefore, a design apparatus (design system) capable of controlling a small delay with a small area increase is realized.
- the first effect of the present invention is that the flip-flop circuit has two latches as compared with the delay gate insertion method in which the circuit element is simply inserted and the latch circuit insertion method. Since it is only converted into a circuit, there is not much increase in area. In particular, it is expected that the number and area will increase in the future when it is used to adjust the timing mismatch problem caused by miniaturized wiring that increases capacity and circuit elements whose operation speed is improved by miniaturization. Compared to the adjustment method using a delay gate, the two latch circuits have almost the same area as the flip-flop circuit to be replaced. Therefore, the latch circuit is derived from a multi-input circuit element or a multi-output circuit element. In order to eliminate a hold error even if the number increases, it is possible to cope with a very small area. In addition, since the area is reduced, low power consumption can be realized.
- the second effect of the present invention is that fine delay control is possible depending on the destination of the high latch circuit and low latch circuit converted from the flip-flop circuit.
- the latch circuit insertion method and the delay gate insertion method only half of the clock frequency or the delay amount of the delay gate prepared in advance can be inserted as a countermeasure against a hold error.
- either the high latch circuit or the low latch circuit is used. Although this is fixed, it is possible to perform fine delay adjustment for eliminating the hold error by the moving method of the moving high latch circuit or the low latch circuit.
- a function block expression is used as a unit for realizing the program and method according to the present invention, and means is used to represent hardware in the apparatus according to the present invention.
- the present invention is applied to a synchronous circuit of each circuit by inputting a CLK (clock) signal to any FF as a set signal of a set-reset flip-flop circuit is described.
- CLK clock
- the present invention can also be applied to an asynchronous circuit that operates by recognizing the set signal as input data of another circuit instead of CLK.
- the expression “position on the circuit arrangement” is used, but the position on the schematic circuit arrangement and the physical position on the layout.
- 1 is a block diagram of a semiconductor integrated circuit design system according to a first embodiment of the present invention.
- 1 is a block diagram of a semiconductor integrated circuit design system according to a first embodiment of the present invention. It is a flowchart of the FF latching process of the semiconductor integrated circuit design system which is 1st embodiment which concerns on this invention. It is a flowchart of the latch circuit movement destination process of the semiconductor integrated circuit design system which is 1st embodiment which concerns on this invention.
- 1 is a configuration diagram of an FF, a low latch circuit, and a high latch circuit of a semiconductor integrated circuit design system according to a first embodiment of the present invention.
- a system for designing a semiconductor integrated circuit is a system (design apparatus) that supports the design of a semiconductor integrated circuit, and has six functions as a functional configuration. It consists of blocks and seven databases associated with these functional blocks.
- the functional blocks include a timing analysis function block 102, an FF latching determination function block 104 coupled to the timing analysis function block 102, a latch move destination determination function block 105 coupled to the timing analysis function block 102, FF latching function block 108 coupled to FF latching determination function block 104, latch circuit moving function block 109 coupled to latch destination determination function block 105, FF latching function block 108, and latch circuit moving function A circuit information conversion function block 112 combined with the block 109 is configured.
- the database also includes the semiconductor integrated circuit data 101 coupled to the timing analysis function block 102, the timing analysis coupled to the timing analysis function block 102, the FF latching determination function block 104, and the latch movement destination determination function block 105.
- Data 103, latched FF data 106 combined with the FF latching determination function block 104 and the FF latching function block 108, the latch movement destination determination function block 105, and the latch circuit movement function block 109 Latch circuit movement data 107, testable latch circuit data 110 coupled to the circuit information conversion function block 112, through mode latch circuit data 111 coupled to the circuit information conversion function block 112, and the circuit information It consists hold measures the semiconductor integrated circuit data 113 to be coupled with conversion function block 112.
- the timing analysis function block 102 measures the propagation delay of each circuit element of the semiconductor integrated circuit and the propagation delay between the flip-flop circuits. Specifically, the timing analysis method is used to calculate the delay of adjacent circuit element gates and wiring delays, respectively, and using these, the delay between circuit element gates, the propagation delay value of the connection between connected flip-flop circuits The delay position is operated so as to specify the position and delay value on the circuit arrangement at the gate or circuit block level, and output as timing analysis data.
- the timing analysis method means element level simulation, gate level simulation with delay, post-layout simulation, etc. Specifically, Primetime (trademark), TimeMill (trademark), SPICE (Synopsys, USA) Trademark).
- the FF latching determination function block 104 determines a flip-flop circuit to be divided into two, a high latch circuit and a low latch circuit, from the timing analysis data 103. More specifically, it is determined from the timing analysis data 103 which flip-flop circuit can be eliminated by converting the latch error into two latch circuits by converting and moving two latch circuits in the flip-flop circuit. For this purpose, the operation is performed so as to determine the flip-flop circuit before and after the node, which is a flip-flop circuit that identifies and latches the delayed node of the signal, and outputs it as latched FF data.
- the latch destination determination function block 105 determines from the timing analysis data 103 whether to fix the high latch circuit or the low latch circuit and determines the destination of the latch circuit that is not fixed. Specifically, after latching is performed from the flip-flop circuit determined in the FF latching determination function block 104, it is determined whether the converted high latch circuit or low latch circuit is fixed, and the latch circuit that is not fixed is moved. Latch circuit movement data is generated by operating so as to determine the destination. The position is determined so as to be a position on the circuit layout that is delayed to the extent that no hold error occurs. A wiring delay value per unit distance of the wiring is obtained in advance, a wiring length as a necessary delay time is calculated, and a position where the wiring length is realized is determined on the circuit arrangement.
- the FF latching functional block 108 determines circuit connection information after actually converting the FF into two latch circuits from the latched FF data. Specifically, it operates to determine how to change the connection information of the circuit after latching the flip-flop circuit.
- the latch circuit moving function block 109 determines the connection information of the circuit after moving the latch circuit from the latch circuit moving data 107. Specifically, the latch circuit to be fixed and the latch circuit to be moved are determined, and the operation is performed to determine how to change the connection information of the circuit after moving the latch circuit to be moved.
- the circuit information conversion function block 112 uses the FF latch function block 108, the result of the latch circuit moving function block 109, and the testable latch circuit 110 as a fixed latch circuit, and the through mode latch circuit 111 as the moving latch circuit. Is used to actually change the semiconductor integrated circuit design data 101 and obtain the hold countermeasure semiconductor integrated circuit data, and output to the hold countermeasure semiconductor integrated circuit design data.
- each database is roughly configured as follows.
- the semiconductor integrated circuit data 101 includes a gate level net list to be designed and manufactured, library data including HDL, delay data and process data, wiring length and wiring capacity extracted from one-chip or core level data and layout data, and the like. This is the data that can simulate delay information including wiring.
- Timing analysis data 103 is result data of timing analysis by the timing analysis function block 102. This is a test input signal and potential displacement information on the time axis of each node.
- the latched FF data 106 is a result of determining the flip-flop circuit to be divided into the high latch circuit and the low latch circuit from the timing analysis data 103 by the FF latch determination function block 104.
- the latch circuit movement data 107 is data obtained by determining whether the high latch circuit or the low latch circuit is fixed from the timing analysis data 103 by the latch movement destination determination function block 105 and determining the movement destination of the latch circuit that is not fixed. is there. Specifically, it is the position information on the schematic circuit of the high latch circuit and the low latch circuit and the coordinate information on the layout arrangement, and the delay time necessary to eliminate the hold error and the delay time necessary to achieve the delay time. Includes wiring length information.
- the testable latch circuit data 110 is a database of latch circuits suitable for a scan test that can be fixed from the FF latching functional block 108 and the latch circuit moving functional block 109, and for generating the hold countermeasure semiconductor integrated circuit data 113. It is a library. When there is an instruction to use a testable latch circuit at the time of design, the circuit of this database is used.
- the through mode latch circuit data 111 is a database of latch circuits provided with the through mode, and is a library for generating the hold countermeasure semiconductor integrated circuit data 113. When there is an instruction to use a through mode latch circuit at the time of design, the circuit of this database is used.
- the hold countermeasure semiconductor integrated circuit data 113 is design data generated by the semiconductor integrated circuit design apparatus according to the present invention. This is circuit data in which the hold error has been eliminated.
- FIG. 2 shows a schematic block diagram in the case where the present invention is configured by an electronic computer (computer) having one central processing element.
- a system for designing a semiconductor integrated circuit according to the present invention comprises a central processing element (CPU) 3, a program memory 5 and a database memory 7.
- the program memory 5 may be a magnetic memory, a semiconductor memory, or a memory according to another method, but the timing analysis function block 102, the FF latch determination function block 104, the latch move destination determination function block 105, and the FF latch function block 108
- the latch circuit moving function block 109 and the circuit information conversion function block 112 are stored and operated in cooperation with the central processing element 3 in the stored state or after being transferred to another memory device and operated. Good.
- the database memory 7 may also be a magnetic memory, a semiconductor memory, or a memory by another technique, but the semiconductor integrated circuit data 101, the timing analysis data 103, the latched FF data 106, the latch circuit movement data 107, and the testable latch circuit data 110. And through mode latch circuit data 111 and hold countermeasure semiconductor integrated circuit data 113.
- the semiconductor integrated circuit design system shown in FIG. 2 executes the computer program (software) read from the program memory 5 by the central processing element (CPU) 3 of the apparatus, 1 is implemented.
- FIG. 1 the overall operation of the first embodiment according to the present invention will be described in detail with reference to the flowcharts of FIGS. 1, 2, 3 and 4.
- FIG. 1 the overall operation of the first embodiment according to the present invention will be described in detail with reference to the flowcharts of FIGS. 1, 2, 3 and 4.
- the timing analysis function block 102 is a semiconductor integrated circuit which is design data used when manufacturing a semiconductor integrated circuit as shown in FIG. 3 before the manufacture of the semiconductor integrated circuit, that is, at the time of designing the semiconductor integrated circuit.
- design data 101 propagation delays between the logic element gates and between the flip-flop circuits are calculated and output as timing analysis data 103 using an appropriate test pattern (SA2).
- SA2 test pattern
- the timing analysis function block 102 determines whether or not a hold error has occurred from the calculated propagation delay between the logic element gates and between the flip-flop circuits (SA4). If no hold error has occurred, the timing analysis function block 102 ends the timing analysis (SA6).
- the FF latching determination function block 104 determines a flip-flop circuit to be latched using the timing analysis result 103 storing the propagation delay information (SA8).
- the FF latch determination function block 104 detects a path between flip-flop circuits (FF) that may generate a hold error, and determines to latch the FFs at both ends thereof.
- the FF latch determination function block 104 searches the input path of the flip-flop circuit on the input side for the node where the hold error has occurred (SA10).
- the FF latch determination function block 104 searches the input path of the flip-flop circuit on the input side for the node, and determines the presence or absence of a hold error (SA12). If there is a hold error, the FF latch determination function block 104 returns to the further latch determination step (SA8). If there is no hold error, the FF latch determination function block 104 completes the timing analysis (SA14).
- the FF latch determination function block 104 searches the output path of the flip-flop circuit on the output side for the node where the hold error has occurred (SA16).
- the FF latch determination function block 104 searches the output path of the flip-flop circuit on the output side for the node, and determines the presence or absence of a hold error (SA18). If there is a hold error, the FF latch determination function block 104 returns to the further latch determination step (SA8). If there is no hold error, the FF latch determination function block 104 completes the timing analysis (SA20).
- the FF latching determination function block 104 continuously performs latching when a hold error occurs in the outer paths of the FFs at both ends. In this way, the FF latching determination function block 104 determines and outputs the latched FF data 106.
- the FF latching functional block 108 determines a circuit operation method such as replacement of a clock line and replacement of a signal line when the FF is used as a latch circuit from the latched FF data 106.
- the latch movement destination determination function block 105 determines the latch circuit that fixes the latch circuit and the latch circuit that moves, and the movement destination of the latch circuit To decide.
- the latch move destination determination function block 105 processes the FFs determined to be latched according to the flowchart of FIG.
- the FF latching functional block 108 determines the FF to be latched (SB2).
- the latch move destination determining function block 105 searches for the high latch circuit and the low latch circuit obtained by converting the flip-flop circuit (SB4).
- the FF latching functional block 108 fixes the high latch circuit if the position of the latch circuit on the circuit arrangement is on the input side of the node where the hold error occurs (SB6).
- the latch movement destination determination function block 105 fixes the position on the circuit arrangement of the low latch circuit on the output side of the hold error (SB8).
- the latch movement destination determination function block 105 adopts the same fixing method as the latch circuit fixing method before and after the successive hold errors (SB10). However, the latch movement destination determination function block 105 may be selected when the front and rear are different.
- the latch movement destination determination function block 105 moves the moving latch circuit one by one in the direction different from that of the fixed latch circuit (SB12).
- the timing analysis function block 102 calculates and outputs the propagation delay between the logic element gates and between the flip-flop circuits as the timing analysis data 103 using an appropriate test pattern for the circuit in this state (SB14).
- the timing analysis function block 102 determines whether or not a hold error has occurred from the timing analysis data 103 (SB16). If there is a hold error, the latch movement destination determination function block 105 moves the circuit that moves again one circuit element at a time in a direction different from the fixed latch circuit (SB12).
- the latch movement destination determination function block 105 completes the timing analysis (SB18). Thus, the movement is repeated until the hold error is eliminated. In this way, the latch movement destination determination function block 105 generates the latch circuit movement data 107. Then, the switching of the signal lines before and after the latch circuit is moved is executed by the latch circuit moving function block 109.
- the flip-flop circuit inputs the output of the low latch circuit, which is a latch circuit in which the inverted clock signal is input to the clock signal, to the input of the high latch circuit that inputs the normal signal of the clock signal. It is a circuit configured. Therefore, even if the flip-flop circuit is latched, the function as a sequential circuit is not lost. Further, after the FF is converted into two latch circuits, one side of the two latch circuits is fixed on the timing position on the circuit arrangement, so that on the circuit arrangement of the FF before conversion. Since the latch circuit whose position is fixed can be stored, formal verification and scan test can be performed in the same manner as before the latch circuit conversion.
- formal verification is verification in which the position on the circuit arrangement of FFs is important, and is a method used in circuit design designed only with flip-flop circuits.
- This is a method of mathematically verifying the equivalence between the logical expression of the combinational circuit and the design specification by direct comparison of the mutual logical expressions.
- the scan test is a method of judging whether the semiconductor integrated circuit is non-defective or defective by collating the result with an expected value by inputting an external signal to the FF to the combinational circuit.
- Any of the verification methods is a method used in designing only a normal flip-flop circuit.
- the latch circuit to be converted is a through mode latch circuit 111.
- the latch circuit that operates is operated to pass through a signal during testing, and the latch circuit that is fixed is a scan flip-flop circuit during testing. Since the testable latch circuit 110 that operates to operate and the location where the testable latch circuit 110 with the scan flip-flop circuit is located is the same as the FF before conversion on the circuit layout, Can be tested in the same way as before the FF is converted to a latch circuit.
- the circuit information conversion function block 112 receives the circuit change information 602 as shown in FIG. 7, and the text file circuit correction 601 in the semiconductor integrated circuit design data 101 is applied.
- the circuit change information functional block changes only a necessary portion of the text file of the semiconductor integrated circuit design data 101.
- the circuit described in the upper block is an OR circuit to which an AND circuit and its output are input, the input is Y, Z, and C, and the output is B.
- a NOT circuit is inserted before the input C in the lower block of FIG.
- the influence is D.
- the semiconductor integrated circuit design data 101 includes schematic data and its binary data shown in a drawing such as a circuit diagram, layout data indicating the multilayer structure on the semiconductor in the drawing in the case of a semiconductor, and a mask for constituting the layout.
- a drawing such as a circuit diagram
- layout data indicating the multilayer structure on the semiconductor in the drawing in the case of a semiconductor
- a mask for constituting the layout In addition to data, it is composed of netlist data displayed in text and HDL (Hardware description language) data in which function descriptions at the gate level and macro level are described.
- HDL Hardware description language
- the hold countermeasure semiconductor integrated circuit design data 113 in which the hold countermeasure is taken only by a small increment of the area by the FF latching is obtained.
- FIG. 9 shows a general clock-synchronized flip-flop base circuit. Between FF2 and FF3, the propagation delay is too short, and the circuit generates a malfunction called a hold error. In the conventional method, a delay gate having a large area or a latch circuit having a large delay of half the clock frequency but difficult to control is inserted here.
- the timing analysis function block 10 divides the FF1 and FF2, FF2 and FF3, and FF3 and FF4 between the FF circuits as in the SA2 step.
- a propagation delay is obtained for each combinational circuit element, and it is determined that FF2 and FF3 have generated a hold error.
- the FF latching determination function block 104 determines that FF2 and FF3 are latched as in the SA8 step.
- the latch move destination determination function block 105 has the FF2 on the hold error input side of the low latch circuit L1 and the high latch circuit H1 obtained by converting the FF2 as in the process of FIG. And H1 is fixed. L1 decides to move to the input side. Further, in the latch movement destination determination function block 105, since FF3 is on the output side of the hold error, L2 is fixed and H2 is moved after FF3 is converted into the low latch circuit L2 and the high latch circuit H2. Here, which of FF2 and FF3 is to be latched is determined by the length of the delay time necessary for eliminating the hold error. When the transmission time between FF2 and FF3 in FIG.
- T1 in order to extend the transmission time, as shown in FIG. 10A, FF2 is latched and transmission between the low latches L1 and FF3 is performed.
- the hold error can be eliminated by extending the time to T2.
- the hold error can be eliminated by latching FF3 and extending the transmission time between FF2 and high latch H2 to T3.
- both FF2 and FF3 are latched, and the transmission time between the low latch L1 and the high latch H2 is extended to T4, so that the hold error can be eliminated.
- the latch circuits L1 and H2 can operate the original latch function while further improving the function of the through mode latch circuit as shown in FIG.
- a selector circuit capable of mode switching is incorporated, and an original latch circuit and an FF circuit for scan test are connected as an input to the selector circuit.
- the selector circuit is activated by the mode input signal to select the latch function or the scan test function. Therefore, an input signal is passed through during the scan test, H1 and L2 are testable latch circuits, and a selector is mounted in the circuit so as to operate as a scan FF during the scan test. Therefore, the scan test can be executed in the same manner as the FF circuit before conversion.
- a selector circuit capable of mode switching can be arranged so that a latch circuit and a circuit that does not pass through the latch circuit can be selected without mounting a scanning FF in the first place. In this case, it is possible to select whether or not to operate the latch circuit having this function.
- the circuit after the change is equivalent in design to the circuit before the change
- the design data Minimize unresolved parts of text-based consistency of design data, as the above text changes often lead to significantly different results if consistency with other circuit representations is not resolved It can be suppressed to prevent new design errors from occurring elsewhere. Specifically, the correction shown in FIG. 8 can be prevented.
- This process increases the delay between L1 and H2 and eliminates hold errors, and makes it easy to verify the format, scan test, and the downstream design flow can expect almost the same result as before conversion. Generated.
- FIG. 11 is a functional block diagram of a system for designing a semiconductor integrated circuit according to the present invention.
- FIG. 12 is a structural diagram in which a system for designing a semiconductor integrated circuit according to the present invention is applied to an electronic computer.
- 13 is a flowchart of a system for designing a semiconductor integrated circuit according to the present invention. Corresponding to FIGS. 1, 2, and 3 in the first embodiment, those adopting the same numbers have the same structure.
- the hold error is eliminated by the method shown in the second embodiment, in order to finely adjust the timing in the timing analysis, as data in the semiconductor integrated circuit design data 101.
- the high latch circuit and the low latch circuit an example of a semiconductor integrated circuit design system in which a plurality of high latch circuits and low latch circuit libraries having different gate widths are provided and fine adjustment is performed in timing analysis is shown.
- an FF latching presence / absence driving force determination function block 115 is provided. From the timing analysis data 103, to the latch movement destination decision function block 105 that decides whether to fix the high latch circuit or the low latch circuit and decides the movement destination of the latch circuit that is not fixed, the high latch circuit and low latch circuit.
- the FF latching presence / absence driving force determination function block 115 selects and determines a function block to be selected by providing several types of libraries with the driving force of the output gate as the gate width.
- the function of the FF latching presence / absence driving force determination function block 115 is that the latch circuit driving force selection step is provided after the FFs at both ends of the error FF are latched, and the flowchart of FIG. And different.
- the configuration as in this embodiment facilitates fine adjustment of the driving force.
- a design malfunction caused by a propagation delay between two flip-flop circuits called a hold error is too small for a semiconductor integrated circuit with a small area increase, and It can be used to solve with a simple design method. It is possible to respond to various requests.
- the present invention can be applied to anything as long as it relates to the technical field of a design apparatus (design system) that supports the design of a semiconductor integrated circuit, and the use possibility thereof is not limited in any way. .
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
半導体集積回路に対して、ホールドエラーを解消するために、小さい面積の増加で、かつ、小さい遅延の制御が可能で、かつ、通常のフリップフロップ回路のみの設計で利用されるような形式検証、スキャンテストを利用可能にするような設計装置を提供する。 タイミング解析手段と、前記タイミング解析手段による解析結果を参照して、前記ノードの両端のフリップフロップ回路を、ハイラッチ回路とローラッチ回路との2種類のラッチ回路に変換するFF(フリップフロップ回路)ラッチ化手段と、前記ラッチ回路の回路配置上の位置とに基づいて、前記2種類のラッチ回路のうち、固定すべきラッチ回路を選択するラッチ移動先決定手段と、前記ラッチ移動先決定手段によって選択された固定すべきラッチ回路の回路情報を、変換すべき回路の結線情報に変換する回路情報変換手段とを備える。
Description
本発明は、本発明は半導体集積回路の設計を支援する設計装置(設計システム)の技術分野に関する。
本発明に関する現時点での技術水準をより十分に説明する目的で、本願で引用され或いは特定される特許、特許出願、特許公報、科学論文等の全てを、ここに、参照することでそれらの全ての説明を組入れる。
同期式半導体集積回路においては、一般に回路中のフリップフロップ回路がクロックに同期する方式で実現されている。同期式半導体集積回路では、回路中のフリップフロップ回路間の伝播遅延の最長値が同期されるクロックの周波数を決定する。一方、フリップフロップ回路間の伝播遅延は短ければ短いほどよいわけではなく、フリップフロップ回路がデータを読み取れるようになるまでの時間や、伝播信号で接続された2個のフリップフロップ回路間に供給されるクロックの時間差などの影響で、個別のフリップフロップ回路間に規定される、ある時間値以上の伝播遅延が必要であり、伝播信号で接続されたフリップフロップ回路間にある時間値以上の遅延がないと、前のクロックの信号をフリップフロップ回路がデータを取り込んでしまうなど誤動作が発生する。このような誤動作をホールドエラーと呼び、このような誤動作を防ぐための、関連する半導体集積回路設計システム例が非特許文献1、特許文献1、2、3、4、5、6に記載されている。
非特許文献1の半導体集積回路設計システムは、図12に示すように半導体集積回路データと、回路遅延測定システムと、遅延バッファ挿入判断システムと、遅延バッファ挿入システムからなり、信号が伝播するフリップフロップ回路対の遅延を回路遅延測定システムが測定し、その測定結果を使って遅延バッファ挿入判断システムが、ホールドエラーが発生する可能性がある部位を判断して、遅延バッファ挿入システムはホールドエラーが発生しないように遅延を生じさせる遅延バッファを挿入する。図8に示すように、2個のフリップフロップ回路間が遅延を生じる回路素子なしに直結されているようなホールドエラーの発生が予想される場合は、本半導体集積回路設計システムによって、遅延ゲートが挿入されてホールドエラーが解消される。
特許文献1の半導体集積回路設計システムは、図13に示すように半導体集積回路データと、回路遅延測定システムと、ラッチ回路挿入判断システムと、ラッチ回路挿入システムからなり、信号が伝播するフリップフロップ回路対の遅延を回路遅延測定システムが測定し、その測定結果を使ってラッチ回路挿入判断システムが、ホールドエラーが発生する可能性がある部位を判断して、ラッチ回路挿入システムが、クロックの半周期は信号の伝達を阻止し、クロックの半周期は信号の伝達を許すラッチ回路を挿入する。その結果、クロックの半周期の遅延がホールドエラー信号線に与えられることになる。図12に示すように、2個のフリップフロップ回路間が遅延を生じる回路素子なしに直結されているようなホールドエラーの発生が予想される場合は、本半導体集積回路設計システムによって、ラッチ回路が挿入されて、クロック周期の半分の遅延が挿入されることによって、ホードエラーが解消される。
また、ラッチ回路を使った設計手法が特許文献2に提案されているが、一般的なフリップフロップベースの同期回路で適用される設計手法の適用が非常に困難であるという問題点もある。
特許文献3は、「いずれの条件下でのフリップフロップ回路もラッチ回路へ分割することが可能な場合には、前段のパスの遅延と後段のパスの遅延などの条件によって決定する。」と開示されており、「パイプラインのフリップフロップ回路設計においてクロック周期を所定値長くして論理回路を配置し、クロック周期の目標値に対してエラーを生じるエラーパスに関連するフリップフロップ回路をラッチ回路で置換して論理回路を再配置しており、論理パスの許容最大論理遅延時間を長くすることができ、パイプライン設計を容易に行なうことができる。」と記載されている。
また、特許文献4は、「本実施の形態の信号配線の接続システム61は、半導体装置の論理設計データを格納した論理設計データ記憶部62と、信号配線のタイミングを解析して新しいビア接続配線パターンを作成するプログラムなどを格納したプログラム格納部63と、論理素子の配置および配線経路情報を格納する配置配線情報記憶部64と、信号配線の信号伝播遅延時間に関するタイミング解析情報を格納するタイミング情報記憶部65と、異なる配線層にそれぞれ形成され、且つビアを通して互いに接続する信号配線に関するビア情報を格納するビア情報記憶部66と、一連の信号配線の接続処理を実行するための手段を備えた処理制御部67と、入出力制御部68を介して処理結果を出力する出力装置69と、処理制御部67への指示等を入力する入力装置70とで構成されている。」と記載されており、「論理素子間のタイミング制御に十分な信号伝播遅延時間が得られる信号配線の接続方法、該信号配線の接続システムを提供することができる」ものである。
さらに、特許文献5は、「階層設計において、複数の設計階層のそれぞれに対応して設けられ、配線形態に関するネットリスト情報を有する複数のタイミング情報データベースから回路の機能に関するブロック情報を入力され、回路の遅延要素により生じる遅延値を配分して得るタイミング配分値を出力しうる複数のタイミング配分作成部と、複数のタイミング配分作成部のそれぞれの間の接続を動的に変更するとともに、複数のタイミング配分作成部のそれぞれの間とタイミング配分値に関する修正情報を送受信する階層間連携マネージャとをそなえて構成されている」と記載されており、「タイミング仕様が変更されたときに、その影響範囲を即座に参照でき、仕様変更の参照ミスがなくなる。また、仮配線と実配線との組み合わせにより、フロアプランの実行速度向上と精度の向上の両立が図れる。さらに、階層エンティティを用いることができ分散設計環境が構築でき、トップダウン設計において、必要部分のみ詳細化でき、一つの設計チームにおいて、試行検討で分割されたタイミング仕様の良否を検討でき、インプリメント時の問題を予測でき、手戻りを削減できる」ものである。
一方、特許文献6は、「遅延最適化部6では、前記最小遅延制約に違反した信号経路にレベルラッチ回路を挿入するステップを備え、この挿入するステップは、前記順序同期回路に含まれる出力端毎に最小遅延制約に違反した信号経路の重複度を計算するステップと、この重複度が大きい信号経路から順に前記順序同期回路のLSIレイアウトパターン面積が最小となるように前記レベルラッチ回路を挿入するステップとを備えたところにある」と記載され、「最大遅延時間に影響を与えることがないため、計算処理時間を短縮することができる。また、順序同期回路のLSIレイアウトパターン面積増加を低減させることができる」ものである。
VLSIシステム設計 回路と実装の基礎、 中澤喜三郎、中村宏監訳、丸善株式会社、356から358ページ
特許登録第2677256号公報
特開2005-277909号公報
特開2003-234643号公報
特開2005-26390号公報
特開2007-188517号公報
特開平09-008143号公報
しかしながら、特許文献1乃至6または非特許文献1のいずれもが以下の2つの問題点については具体的には解決手法については開示していない。
第1の問題点は、ホールドエラーを発生している半導体集積回路に対して、遅延ゲートを挿入して、ホールドエラーを解消させる設計手法は、半導体回路面積の大幅な増大を招くということである。遅延を故意に発生させるような遅延ゲートは、遅延を故意に発生させるために、通常のゲート回路素子を積み重ねて作成するため大きな面積を必要とする。この傾向は将来の超微細プロセスではさらに大きくなると予想されており、現状のプロセスレベルでも、ホールドエラーを解消するために回路面積が倍程度まで大きくなる場合が発生するからである。
第2の問題点は、半導体集積回路に対して、ホールドエラーを解消させるために、クロックの半周期の遅延を結果的に生成するラッチ回路を挿入する設計手法では、たとえば、すでにクロックの半周期ほどの遅延を持ち、かつホールドエラーを発生しているフリップフロップ回路間を接続する信号に対しては、クロックの半周期の遅延を与えるラッチ回路では、遅延が大きくなりすぎて、フリップフロップ回路間の遅延が想定するクロック周期よりも大きくなってしまうような場合が発生するからである。
以上の問題点を鑑みると、本発明の目的は、半導体集積回路に対して、フリップフロップ回路間の伝播信号に関して、個別に設定される遅延値よりも小さい遅延値となっている信号線に発生するホールドエラーを解消するために、半導体回路面積の増加が小さく、かつ、小さい遅延の制御が可能な設計装置(設計システム)を提供することにある。
上記の課題を解決すべく本発明に係る半導体集積回路の設計装置は、半導体集積回路に搭載されるフリップフロップ回路を含む半導体集積回路を設計する設計装置であって、前記フリップフロップ回路の入力および出力ノードの値を含むタイミング解析データに応じてホールドエラーを検出すると共に、ホールドエラーが発生したノードを特定するタイミング解析手段と、前記タイミング解析手段による解析結果を参照して、前記ノードの両端のフリップフロップ回路を、ハイラッチ回路とローラッチ回路との2種類のラッチ回路に変換するFF(フリップフロップ回路)ラッチ化手段と、前記タイミング解析手段による解析結果を参照して、前記2種類のラッチ回路の回路配置上の位置と前記ノードの回路配置上の位置とに対する信号の入出力方向と、前記ラッチ回路の回路配置上の位置とに基づいて、前記2種類のラッチ回路のうち、固定すべきラッチ回路を選択するラッチ移動先決定手段と、前記ラッチ移動先決定手段によって選択された固定すべきラッチ回路の回路情報を、変換すべき回路の結線情報に変換する回路情報変換手段とを備えることで前記半導体集積回路設計データで発生するホールドエラーを解消する。
また、本発明に係る半導体集積回路の設計方法は、半導体集積回路に搭載されるフリップフロップ回路を含む半導体集積回路を設計する設計方法であって、タイミング解析機能によって、前記フリップフロップ回路の入力および出力ノードの値を含むタイミング解析データに応じてホールドエラーを検出すると共に、ホールドエラーが発生したノードを特定し、FF(フリップフロップ回路)ラッチ化機能により、前記タイミング解析機能による解析結果を参照して、前記ノードの両端のフリップフロップ回路を、ハイラッチ回路とローラッチ回路との2種類のラッチ回路に変換し、ラッチ移動先決定機能により、前記タイミング解析機能による解析結果を参照して、前記2種類のラッチ回路の回路配置上の位置と前記ノードの回路配置上の位置とに対する信号の入出力方向と、前記ラッチ回路の回路配置上の位置とに基づいて、前記2種類のラッチ回路のうち、固定すべきラッチ回路を選択し、回路情報変換機能により、前記ラッチ移動先決定機能によって選択された固定すべきラッチ回路の回路情報を、変換すべき回路の結線情報に変換することで前記半導体集積回路設計データで発生するホールドエラーを解消する。
さらに、本発明に係るコンピュータ・プログラムは、半導体集積回路に搭載されるフリップフロップ回路を含む半導体集積回路を設計する設計装置の動作制御のためのコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、前記フリップフロップ回路の入力および出力ノードの値を含むタイミング解析データに応じてホールドエラーを検出すると共に、ホールドエラーが発生したノードを特定するタイミング解析機能と、前記タイミング解析機能による解析結果を参照して、前記ノードの両端のフリップフロップ回路を、ハイラッチ回路とローラッチ回路との2種類のラッチ回路に変換するFF(フリップフロップ回路)ラッチ化機能と、前記タイミング解析機能による解析結果を参照して、前記2種類のラッチ回路の回路配置上の位置と前記ノードの回路配置上の位置とに対する信号の入出力方向と、前記ラッチ回路の回路配置上の位置とに基づいて、前記2種類のラッチ回路のうち、固定すべきラッチ回路を選択するラッチ移動先決定機能と、前記ラッチ移動先決定機能によって選択された固定すべきラッチ回路の回路情報を、変換すべき回路の結線情報に変換する回路情報変換機能とをコンピュータに実行させることで前記半導体集積回路設計データで発生するホールドエラーを解消する。
尚、同目的は、上記の各構成を有する半導体集積回路の設計装置、或いは半導体集積回路の設計方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
上記の本発明によれば、半導体集積回路に対して、フリップフロップ回路間の伝播信号に関して、個別に設定される遅延値よりも小さい遅延値となっている信号線に発生するホールドエラーを解消するために、小さい面積の増加で、かつ、小さい遅延の制御が可能な設計装置(設計システム)などが実現する。
即ち、本発明に係る上述の構成により、本発明の第一の効果は、単純に回路素子を挿入する遅延ゲート挿入方法や、ラッチ回路挿入方法と比較して、フリップフロップ回路を2個のラッチ回路に変換するのみなので、面積の増加があまりないということである。特に将来、微細化して容量の増大する配線と、微細化により動作速度が向上する回路素子とを原因とするタイミング不一致問題の調整を図るために用いられることでその数と面積が増加すると予想される遅延ゲートを用いた調整手法などと比べれば、2個のラッチ回路は置き換えるべきフリップフロップ回路とほぼ同じ面積であるため、仮に多入力回路素子や、多出力回路素子などに由来してラッチ回路の数が増加しても、ホールドエラーを解消するために、非常に小さい面積で対応可能となることである。また、省面積であることから低消費電力化も実現できることである。
本発明の第二の効果は、フリップフロップ回路を変換したハイラッチ回路とローラッチ回路の移動先により、細かな遅延制御が可能となるためである。たとえば、ラッチ回路挿入手法や遅延ゲート挿入手法では、クロック周波数の半分や、あらかじめ準備された遅延ゲートの遅延分しかホールドエラー対策として挿入できないが、本発明の場合は、ハイラッチ回路あるいはローラッチ回路のどちらかは固定されるが、移動するハイラッチ回路、あるいはローラッチ回路の移動方法により、ホールドエラー解消のための細かい遅延調整が可能であることである。
なお、本明細書では本発明に係るプログラムと方法を実現する単位として機能ブロックなる表現を用い、本発明に係る装置において、ハードウェアをさすものとして手段を用いている。
また、本発明としてセットリセットフリップフロップ回路のセット信号としてCLK(クロック)信号をいずれのFFにも入力することで各回路の同期式回路に適用した例について説明している。しかし、セット信号をCLKでなく他回路の入力データと認識して作動させる非同期式回路についても適用可能であることは言うまでもない。
また本発明では「回路配置上の位置」という表現を用いているが、スケマティック回路配置上の位置とレイアウト上の物理的な位置である。
101 半導体集積回路データ
102 タイミング解析機能ブロック
103 タイミング解析データ
104 FFラッチ化判断機能ブロック
106 ラッチ化FFデータ
105 ラッチ移動先決定機能ブロック
107 ラッチ回路移動データ
108 FFラッチ化機能ブロック
109 ラッチ回路移動機能ブロック
110 テスト可能ラッチ回路データ
111 スルーモードラッチ回路データ
112 回路情報変換機能ブロック
113 ホールド対策半導体集積回路データ
115 FFラッチ化有無駆動力判断機能ブロック
102 タイミング解析機能ブロック
103 タイミング解析データ
104 FFラッチ化判断機能ブロック
106 ラッチ化FFデータ
105 ラッチ移動先決定機能ブロック
107 ラッチ回路移動データ
108 FFラッチ化機能ブロック
109 ラッチ回路移動機能ブロック
110 テスト可能ラッチ回路データ
111 スルーモードラッチ回路データ
112 回路情報変換機能ブロック
113 ホールド対策半導体集積回路データ
115 FFラッチ化有無駆動力判断機能ブロック
以下本発明の実施の形態について以下に説明する。
なお、本発明は、上記の実施の形態に限定されず、本発明の技術思想の範囲内において、実施の形態が適宜変更され得るものである。
(第一の実施形態)
図1を参照すると、本発明の第一の実施形態である半導体集積回路を設計するシステムは、半導体集積回路の設計を支援するシステム(設計装置)であって、機能的な構成として6つの機能ブロックとこれらの機能ブロックと関連する7つのデータベースとから構成される。
図1を参照すると、本発明の第一の実施形態である半導体集積回路を設計するシステムは、半導体集積回路の設計を支援するシステム(設計装置)であって、機能的な構成として6つの機能ブロックとこれらの機能ブロックと関連する7つのデータベースとから構成される。
即ち、機能ブロックは、タイミング解析機能ブロック102と、前記タイミング解析機能ブロック102と結合するFFラッチ化判断機能ブロック104と、前記タイミング解析機能ブロック102と結合するラッチ移動先決定機能ブロック105と、前記FFラッチ化判断機能ブロック104と結合するFFラッチ化機能ブロック108と、前記ラッチ移動先決定機能ブロック105と結合するラッチ回路移動機能ブロック109と、前記FFラッチ化機能ブロック108並びに前記ラッチ回路移動機能ブロック109と結合する回路情報変換機能ブロック112から構成される。
また、データベースは、前記タイミング解析機能ブロック102と結合する半導体集積回路データ101と、前記タイミング解析機能ブロック102と前記FFラッチ化判断機能ブロック104と前記ラッチ移動先決定機能ブロック105と結合するタイミング解析データ103と、前記FFラッチ化判断機能ブロック104並びに前記FFラッチ化機能ブロック108と結合するラッチ化FFデータ106と、前記ラッチ移動先決定機能ブロック105と並びに前記ラッチ回路移動機能ブロック109と結合するラッチ回路移動データ107と、前記回路情報変換機能ブロック112と結合するテスト可能ラッチ回路データ110と、前記回路情報変換機能ブロック112と結合するスルーモードラッチ回路データ111と、前記回路情報変換機能ブロック112と結合するホールド対策半導体集積回路データ113とから構成される。
これらの機能ブロックは、それぞれ概略つぎのように動作する。
タイミング解析機能ブロック102は、半導体集積回路の各回路素子の伝播遅延とフリップフロップ回路間の伝播遅延を測定する。詳細には、タイミング解析手法を使って隣接する回路素子ゲートの遅延、配線の遅延をそれぞれ計算し、それらを使って回路素子ゲート間の遅延、接続されたフリップフロップ回路間の接続の伝播遅延値を解析し、遅延位置をゲートまたは回路ブロックレベルでの回路配置上の位置と遅延値を特定するように動作してタイミング解析データとして出力する。ここで、タイミング解析手法としては、素子レベルシミュレーションと、遅延付ゲートレベルシミュレーションと、ポストレイアウトシミュレーション等を意味し、具体的には米国Synopsys社のPrimetime(商標)や、TimeMill(商標)、SPICE(商標)が用いられる。
FFラッチ化判断機能ブロック104は、タイミング解析データ103からハイラッチ回路とローラッチ回路の2個に分割するフリップフロップ回路を決定する。詳細には、タイミング解析データ103から、ホールドエラーをフリップフロップ回路における2個のラッチ回路変換と移動により、どのフリップフロップ回路をラッチ回路に変換したら解消できるかを判断する。このために、信号の遅延しているノードを特定してラッチ化するフリップフロップ回路である前記ノードの前後のフリップフロップ回路を決定するように動作させてラッチ化FFデータとして出力する。
ラッチ移動先決定機能ブロック105は、タイミング解析データ103からハイラッチ回路とローラッチ回路のどちらかを固定するかを決定して固定しないラッチ回路の移動先を決定する。詳細には、FFラッチ化判断機能ブロック104で判断したフリップフロップ回路からラッチ化を行った後に、変換されたハイラッチ回路、ローラッチ回路のどちらかを固定するかを決定し、固定しないラッチ回路の移動先を決定するように動作させてラッチ回路移動データを生成する。ホールドエラーが発生しない程度に遅延する回路配置上の位置となるように決定する。予め配線の単位距離当たりの配線遅延値を求めておき、必要な遅延時間となる配線長を算出して、その配線長を実現する位置を回路配置上で決定する。
FFラッチ化機能ブロック108は、ラッチ化FFデータから実際にFFを2個のラッチ回路に変換した後の回路の接続情報を決定する。具体的には、フリップフロップ回路をラッチ化したあとの回路の接続情報をどう変更したらよいかを決定するように動作する。
ラッチ回路移動機能ブロック109は、ラッチ回路移動データ107からラッチ回路の移動後の回路の接続情報を決定する。具体的には、固定するラッチ回路、移動するラッチ回路を決定し、移動するラッチ回路を移動したあとの回路の接続情報をどう変更したらよいかを決定するように動作する。
回路情報変換機能ブロック112は、FFラッチ化機能ブロック108と、ラッチ回路移動機能ブロック109の結果と、固定するラッチ回路としてテスト可能ラッチ回路110を使い、移動するラッチ回路として、スルーモードラッチ回路111を使い、101の半導体集積回路設計データを実際に変更させ、ホールド対策半導体集積回路データを得るように動作して、ホールド対策半導体集積回路設計データへ出力する。
また、データベースは、それぞれ概略つぎのように構成される。
半導体集積回路データ101は、設計製造するゲートレベルネットリストとHDLと遅延データやプロセスデータを含むライブラリデータと1チップまたはコアレベルのデータとレイアウトデータより抽出された配線長と配線容量等を含むことで配線まで含めた遅延情報がシミュレート可能なデータである。
タイミング解析データ103は、タイミング解析機能ブロック102によるタイミング解析の結果データである。テスト用入力信号と各ノードの時間軸上の電位変位情報である。
ラッチ化FFデータ106は、FFラッチ化判断機能ブロック104によってタイミング解析データ103からハイラッチ回路とローラッチ回路の2個に分割するフリップフロップ回路を決定した結果である。
ラッチ回路移動データ107は、ラッチ移動先決定機能ブロック105によって、タイミング解析データ103からハイラッチ回路とローラッチ回路のどちらかを固定するかを決定して固定しないラッチ回路の移動先を決定した結果データである。具体的には、ハイラッチ回路とローラッチ回路のスケマティック回路上の位置情報とレイアウト配置上の座標情報であり、ホールドエラーを解消するために必要な遅延時間と、その遅延時間を達成するために必要な配線長情報が含まれる。
テスト可能ラッチ回路データ110は、FFラッチ化機能ブロック108とラッチ回路移動機能ブロック109から固定することできるスキャンテストに適したラッチ回路のデータベースであって、ホールド対策半導体集積回路データ113を生成するためのライブラリである。設計時にテスト可能ラッチ回路を使用する旨の指示があった場合は、本データベースの回路が使用される。
スルーモードラッチ回路データ111は、スルーモードを設けたラッチ回路のデータベースであって、ホールド対策半導体集積回路データ113を生成するためのライブラリである。設計時にスルーモードラッチ回路を使用する旨の指示があった場合は、本データベースの回路が使用される。
ホールド対策半導体集積回路データ113は、本発明に係る半導体集積回路の設計装置によって生成される設計データである。ホールドエラーが解消した回路データである。
なお、図2に本発明について中央演算素子が1つである電子計算機(コンピュータ)で構成した場合の概略ブロック図を図2に示す。本発明に係る半導体集積回路を設計するシステムは、中央演算素子(CPU)3と、プログラムメモリ5とデータベースメモリ7とから構成される。プログラムメモリ5は、磁気メモリ、半導体メモリまたは、他の手法によるメモリでもよいが、タイミング解析機能ブロック102とFFラッチ化判断機能ブロック104とラッチ移動先決定機能ブロック105とFFラッチ化機能ブロック108とラッチ回路移動機能ブロック109回路情報変換機能ブロック112とが格納され、格納された状態で中央演算素子3と協働して動作しても、さらに他のメモリ装置に転送してから動作させてもよい。データベースメモリ7も、磁気メモリ、半導体メモリまたは、他の手法によるメモリでもよいが、半導体集積回路データ101とタイミング解析データ103とラッチ化FFデータ106とラッチ回路移動データ107とテスト可能ラッチ回路データ110とスルーモードラッチ回路データ111とホールド対策半導体集積回路データ113とから構成される。
本実施形態において、図2に示す半導体集積回路の設計システムは、上記プログラムメモリ5から読み出したコンピュータ・プログラム(ソフトウェア)を、当該装置の中央演算素子(CPU)3にて実行することによって、図1に示す各機能ブロックの機能を実現する。
次に、図1、図2、図3並びに図4のフローチャートを参照して本発明に係る第一の実施の形態の全体の動作について詳細に説明する。
まず、タイミング解析機能ブロック102は、半導体集積回路の製造前、すなわち半導体集積回路の設計時において、図3に示すように半導体集積回路の製造を行う際に利用される設計データである半導体集積回路設計データ101に対して、各論理素子ゲート間、フリップフロップ回路間の伝播遅延を、適切なテストパターンを用いてタイミング解析データ103として算出して出力する(SA2)。
タイミング解析機能ブロック102は、算出された各論理素子ゲート間、フリップフロップ回路間の伝播遅延からホールドエラーの発生の有無を判定する(SA4)。タイミング解析機能ブロック102は、ホールドエラーが発生していない場合は、タイミング解析を終了させる(SA6)。
ホールドエラーが発生している場合は、FFラッチ化判断機能ブロック104は、その伝播遅延情報を格納したタイミング解析結果103を使って、ラッチ化するフリップフロップ回路を決定する(SA8)。FFラッチ化判断機能ブロック104は、ホールドエラーを発生してうるフリップフロップ回路(FF)間パスを検出し、その両端のFFをラッチ化することに決定する。
まず、FFラッチ化判断機能ブロック104は、ホールドエラーの発生しているノードについて入力側のフリップフロップ回路の入力パスを検索する(SA10)。FFラッチ化判断機能ブロック104は、ノードについて入力側のフリップフロップ回路の入力パスを検索して、ホールドエラーの有無を判定する(SA12)。FFラッチ化判断機能ブロック104は、ホールドエラーがある場合は、さらなるラッチ化の決定工程へ戻る(SA8)。FFラッチ化判断機能ブロック104は、ホールドエラーが無い場合は、タイミング解析を完了する(SA14)。
他方、FFラッチ化判断機能ブロック104は、ホールドエラーの発生しているノードについて出力側のフリップフロップ回路の出力パスを検索する(SA16)。FFラッチ化判断機能ブロック104は、ノードについて出力側のフリップフロップ回路の出力パスを検索して、ホールドエラーの有無を判定する(SA18)。FFラッチ化判断機能ブロック104は、ホールドエラーがある場合は、さらなるラッチ化の決定工程へ戻る(SA8)。FFラッチ化判断機能ブロック104は、ホールドエラーが無い場合は、タイミング解析を完了する(SA20)。
そのほかに、FFラッチ化判断機能ブロック104は、その両端のFFの外側パスにホールドエラーが発生する場合は、連続してラッチ化を行うこととする。このようにして、FFラッチ化判断機能ブロック104は、ラッチ化FFデータ106が決定して出力する。また、FFラッチ化機能ブロック108は、ラッチ化FFデータ106からFFをラッチ回路にした場合のクロック線の付け替えや信号線の付け替えといった回路操作方法が決定する。
FFラッチ化機能ブロック108が、ラッチ化するFFが決定すると、ラッチ移動先決定機能ブロック105は、そのラッチ回路を固定するラッチ回路と、移動するラッチ回路とを決定し、そのラッチ回路の移動先を決定する。ラッチ移動先決定機能ブロック105は、ラッチ化を決断したFFに関して、図3のフローチャートに従って処理する。
すなわち、FFラッチ化機能ブロック108は、ラッチ化するFFが決定する(SB2)。ラッチ移動先決定機能ブロック105は、フリップフロップ回路を変換したハイラッチ回路とローラッチ回路を検索する(SB4)。FFラッチ化機能ブロック108は、ラッチ回路の回路配置上の位置がホールドエラーの発生するノードの入力側ならハイラッチ回路を固定する(SB6)。
ラッチ移動先決定機能ブロック105は、ホールドエラーの出力側ならローラッチ回路の回路配置上の位置を固定する(SB8)。
ラッチ移動先決定機能ブロック105は、連続するホールドエラーの中間ならば、その前後のラッチ回路固定方式と同じ固定方式とする(SB10)。ただし、ラッチ移動先決定機能ブロック105は、前後が異なる場合はどちらを選択してもよい。
そして、ラッチ移動先決定機能ブロック105は、移動するラッチ回路を固定ラッチ回路とは異なる方向に、回路素子1個づつ移動する(SB12)。
タイミング解析機能ブロック102は、この状態の回路について、各論理素子ゲート間、フリップフロップ回路間の伝播遅延を、適切なテストパターンを用いてタイミング解析データ103として算出して出力する(SB14)。タイミング解析機能ブロック102は、このタイミング解析データ103からホールドエラーの発生の有無を判定する(SB16)。ホールドエラーがある場合は、ラッチ移動先決定機能ブロック105は、再び移動するラッチ回路を固定ラッチ回路とは異なる方向に、回路素子1個づつ移動する(SB12)。
ホールドエラーがない場合は、ラッチ移動先決定機能ブロック105は、タイミング解析を完了する(SB18)。こうして、ホールドエラーが解消するまで移動を繰り返す。このようにしてラッチ移動先決定機能ブロック105は、ラッチ回路移動データ107を生成する。そしてラッチ回路を移動した後の前後の信号線のつけかえなどがラッチ回路移動機能ブロック109によって実行される。
この際に図5に示すように、フリップフロップ回路は、クロック信号に反転クロック信号を入力したラッチ回路であるローラッチ回路の出力を、クロック信号の通常の信号を入力するハイラッチ回路の入力に入力して構成される回路である。従って、フリップフロップ回路をラッチ化しても順序回路としての機能は失われない。さらに、FFが2個のラッチ回路に変換された後、この2個のラッチ回路の片側が回路配置上のタイミング位置上で固定化されることによって、変換される前のFFの回路配置上の位置を固定されたラッチ回路を保存することが可能であるため、形式的検証やスキャンテストがラッチ回路変換前と同様に実行できる。ここで、形式的検証とは、FFの回路配置上の位置が重要となる検証であって、フリップフロップ回路のみで設計される回路設計で利用されるような手法であり、フリップフロップ回路間の組み合わせ回路の論理式と設計仕様との等価性を相互の論理式の直接比較により数学的に検証する手法である。また、スキャンテストとは、組合せ回路に対するFFへの外部信号入力により、その結果を期待値と照合して、半導体集積回路の良品、不良品を判断する手法である。いずれの検証方法も通常のフリップフロップ回路のみの設計で利用される手法である。
変換されるラッチ回路は図6示すように、移動するラッチ回路はスルーモードラッチ回路111となり、テスト時は信号をスルーさせるように動作し、固定するラッチ回路は、テスト時はスキャンフリップフロップ回路として動作させるように働くテスト可能ラッチ回路110であり、かつ上記のようにスキャンフリップフロップ回路があるテスト可能ラッチ回路110が位置する場所は回路配置上で変換前のFFと同じであるので、テスト時はFFをラッチ回路に変換する前と同じ方法でテストが可能である。
これらの処理は回路情報変換機能ブロック112を使って、半導体集積回路設計データ101に適用される。回路情報変換機能ブロック112は、図7に示すように回路変更情報602を受けて、半導体集積回路設計データ101におけるテキストファイル回路修正601が適用される。回路変更情報機能ブロックは、半導体集積回路設計データ101のテキストファイルに対して、必要な部分だけ変更を行う。具体的には、図8では上段ブロックに記載される回路は、AND回路とその出力が入力されるOR回路であり、入力がY、Z、Cであり、出力がBとなっている。一方、図8の下段ブロックでは、入力Cの手前にNOT回路が挿入されている。ここでは、入力信号Cの反転だけが追加された修正となっている。このため、影響はDとなる。特にNOT回路を用いたバッファ回路ではNOT回路の個数が奇数となるだけで論理が反転し、回路ミスの原因となる。半導体集積回路設計データ101は、回路図等の図面で示されるスケマティックデータおよびそのバイナリデータと、半導体の場合はその半導体上の多層構造を図面で表示したレイアウトデータと、レイアウトを構成するためのマスクデータの他に、テキストで表示されたネットリストデータと、ゲートレベルやマクロレベルの機能記述がなされたHDL(Hardware description language)データから構成される。ところが、特にゲートレベルやマクロレベルの機能記述がなされたHDLデータでは、その記載について僅かな変更でも、その回路本来の動作を阻害するエラーを発生させる場合がある。従って、テキストレベルの修正であっても、回路上の他の機能への影響を最小限に保持する必要がある。そこで、FF変換前のファイルとなるべく近い状態を保つことによって、レイアウトなどの下流設計ツールがなるべく同じような設計を行うようにする目的である。
このような処理によって、ホールド対策が、FFのラッチ化による面積の微増分だけで対策されたホールド対策半導体集積回路設計データ113が得られる。
(第二の実施形態)
本発明に係る第二の実施形態について示す。図9は一般的なクロック同期のフリップフロップベース回路である。このFF2とFF3の間は、伝播遅延が短すぎ、回路がホールドエラーと呼ばれる誤動作を発生してしまう。従来手法は、ここに面積の大きい遅延ゲートや、クロック周波数の半分という大きい遅延を持つが制御が難しいラッチ回路を挿入していた。
本発明に係る第二の実施形態について示す。図9は一般的なクロック同期のフリップフロップベース回路である。このFF2とFF3の間は、伝播遅延が短すぎ、回路がホールドエラーと呼ばれる誤動作を発生してしまう。従来手法は、ここに面積の大きい遅延ゲートや、クロック周波数の半分という大きい遅延を持つが制御が難しいラッチ回路を挿入していた。
本発明の第二の実施の形態では、図9の回路に対して、タイミング解析機能ブロック10が、SA2工程のように、フリップフロップ回路間FF1とFF2、FF2とFF3、FF3とFF4を各FF間の組合せ回路素子単位での伝播遅延を求め、FF2とFF3がホールドエラーを発生していると判断する。具体的にはFF3回路はあらかじめクロックが入力されてから、予め定められた時間を経過して初めてデータを受け入れられるかが定められている。この予め定められた時間がホールドタイムとなる。ところが、FF2の出力するデータについてFF2が高速化したことによりホールドタイム以前にFF3回路に到着した場合がホールドエラーとなる。FF3回路にとってホールドタイム以前に到着したデータは本来のデータと検出されない可能性や到着していない異なるデータとして検出される恐れがある。その結果、図10(a)、(b)、(c)に示すようにFFラッチ化判断機能ブロック104が、FF2とFF3をSA8工程のようにラッチ化すると判断する。
続いて、ラッチ移動先決定機能ブロック105は、図4の工程のようにFF2を変換したローラッチ回路L1とハイラッチ回路H1のうち、FF2はホールドエラーの入力側にあるので、ローラッチ回路L1を移動対象と決定し、H1は固定する。そしてL1は入力側に移動させることを決定する。さらに、ラッチ移動先決定機能ブロック105は、FF3はホールドエラーの出力側にあるので、FF3をローラッチ回路L2、ハイラッチ回路H2に変換した後L2は固定し、H2は移動させる。ここで、FF2とFF3のいずれの回路をラッチ化するかについては、ホールドエラーを解消するために必要な遅延時間の長さによって定まる。図9におけるFF2とFF3との間の伝達時間がT1である場合、その伝達時間を延長させるためには、図10(a)のように、FF2をラッチ化して、ローラッチL1とFF3間の伝達時間を引き延ばしてT2とすることでホールドエラーを解消することができる。また、図10(b)のようにFF3をラッチ化して、FF2とハイラッチH2間の伝達時間を引き延ばしてT3とすることでホールドエラーを解消することができる。さらには、図10(c)のようにFF2とFF3の両者をラッチ化して、ローラッチL1とハイラッチH2間の伝達時間を引き延ばしてT4とすることでホールドエラーを解消することもできる。
この作業によって、図10(c)のようにL1からH2の間がラッチ化変換前よりも伝播遅延が大きくなって、ホールドエラーが解消される。この際、従来手法のように挿入により増加したゲート数分の面積増加はなく、FFを2個のラッチ回路に変換した際に生じるゲート以下の面積増加分の何倍かが増加するだけである。
このような変換の際に、H1とL2が固定されているため、H1はFF2とL2はFF3と回路配置上で同じタイミング位置に存在する。そのため、H1とL2で保持されるデータはFF2、あるいはFF3と同じ値となる。この結果として、FFの回路配置上の位置情報を使って実行される、組合せ回路の形式的検証、及び、組合せ回路に対するFFへの外部信号入力によるスキャンテストがラッチ回路変換前と同様に実行できる。
一方、このラッチ回路L1、H2は図6(a)に示すようなスルーモードラッチ回路にさらに機能を向上させながら本来のラッチ機能を作動させることができる。スルーモードラッチ回路であれば、モード切替の可能なセレクタ回路を内蔵させて、さらにこのセレクタ回路への入力として本来のラッチ回路とスキャンテスト用のFF回路とが接続される。このため、モード入力信号によってセレクタ回路を作動させることで、ラッチ機能を作動させるかスキャンテスト機能を作動させることで選択可能である。そこで、スキャンテスト時は入力信号をスルーし、H1、L2はテスト可能ラッチ回路となって、スキャンテスト時はスキャンFFとして動作するようにセレクタが回路内に実装されている。そのため、スキャンテストは変換前のFF回路とまったく同様に実行可能である。
さらに、図6(b)に示すようにそもそもスキャン用のFFを搭載せずにラッチ回路とラッチ回路を通過さない回路とを選択できるようにモード切替可能なセレクタ回路を配置させることもできる。この場合は、本機能の備わったラッチ回路を作動させる場合とさせない場合とを選択することができる。
FF2のL1、H1の変換、L1の移動、FF3のL2、H2への変換とH2の移動、テスト可能ラッチ回路やスルーモードラッチ回路への変換は、図8に示すように、必要な部分だけ変更を行う。これは、FF変換前のファイルとなるべく近い状態を保つことによって、レイアウトなどの下流設計ツールがなるべく同じような設計を行うようにする目的である。特にホールドエラーはレイアウトによって生じる場合があるので、変更は局所的に行わないと本発明手法でホールドエラーを解消させても、変更後の回路が変更前の回路と設計上は等価でも、設計データ上のテキスト上の変更点で他の回路表現との整合性が解決していないと大幅に異なる結果が得られることも多いので、設計データのテキストベースの整合性の未解決部を最小限に抑えて、他のところで新たな設計エラーが起きないように防止できる。具体的には図8に示される修正を防止することができる。
このような処理によって、L1とH2の間の遅延が大きくなってホールドエラーが解消された上、形式検証容易、スキャンテスト容易、かつ、下流設計フローが変換前とほぼ同じ結果が期待できる回路が生成される。
(第三の実施形態)
続いて、図11、図12及び図13を用いて、本発明に係る半導体集積回路設計システムの第3の実施形態について説明する。図11は、本発明に係る半導体集積回路を設計するシステムの機能ブロックの構成図であり、図12は本発明に係る半導体集積回路を設計するシステムを電子計算機に適用した構成図であり、図13は本発明に係る半導体集積回路を設計するシステムのフローチャートである。それぞれ第一の実施の形態における図1、2、3に対応し、同一の番号を採用したものは同一の構造から構成される。
続いて、図11、図12及び図13を用いて、本発明に係る半導体集積回路設計システムの第3の実施形態について説明する。図11は、本発明に係る半導体集積回路を設計するシステムの機能ブロックの構成図であり、図12は本発明に係る半導体集積回路を設計するシステムを電子計算機に適用した構成図であり、図13は本発明に係る半導体集積回路を設計するシステムのフローチャートである。それぞれ第一の実施の形態における図1、2、3に対応し、同一の番号を採用したものは同一の構造から構成される。
第三の実施の形態は、第二の実施の形態に示す手法でホールドエラーを解消する際に、タイミング解析において、タイミングの微調整を行うために、半導体集積回路設計データ101内のデータとして、ハイラッチ回路、ローラッチ回路のいずれにおいても、ゲート幅の異なる複数のハイラッチ回路、ローラッチ回路ライブラリを設けて、タイミング解析において微調整を図る半導体集積回路設計システムの例を示すものである。
第三の実施の形態の半導体集積回路設計システムにおいて、第二の実施の形態との大きな差異は、FFラッチ化有無駆動力判断機能ブロック115を備える点である。タイミング解析データ103からハイラッチ回路とローラッチ回路のどちらかを固定するかを決定して固定しないラッチ回路の移動先を決定するラッチ移動先決定機能ブロック105に対して、さらに、ハイラッチ回路とローラッチ回路の出力ゲートの駆動力をゲート幅として数種類のライブラリを設けて、選択させる機能ブロックとして、FFラッチ化有無駆動力判断機能ブロック115が選択して決定する。
FFラッチ化有無駆動力判断機能ブロック115の機能としては、エラーFF両端のFFをラッチ化した後に、ラッチ回路の駆動力選択工程が設けられる点で、第二の実施の形態における図3のフローチャートとで異なる。
本実施の形態のように構成することで、駆動力の微調整が容易になる。
本発明の実施により、本発明によれば、半導体集積回路に対して、ホールドエラーと呼ばれる2個のフリップフロップ回路間の伝播遅延が小さすぎることに起因する設計誤動作要因を小さい面積増加で、かつ、簡単な設計方法で解消するように利用できる。されるとともに様々な要請に対応することが可能である。
本発明は、半導体集積回路の設計を支援する設計装置(設計システム)の技術分野に関するものであれば、あらゆるものに適用することが可能であり、その利用の可能性において何ら限定するものではない。
幾つかの好適な実施の形態及び実施例に関連付けして本発明を説明したが、これら実施の形態及び実施例は単に実例を挙げて発明を説明するためのものであって、限定することを意味するものではないことが理解できる。本明細書を読んだ後であれば、当業者にとって等価な構成要素や技術による数多くの変更および置換が容易であることが明白であるが、このような変更および置換は、添付の請求項の真の範囲及び精神に該当するものであることは明白である。
Claims (13)
- 半導体集積回路に搭載されるフリップフロップ回路を含む半導体集積回路を設計する設計装置であって、
前記フリップフロップ回路の入力および出力ノードの値を含むタイミング解析データに応じてホールドエラーを検出すると共に、ホールドエラーが発生したノードを特定するタイミング解析手段と、
前記タイミング解析手段による解析結果を参照して、前記ノードの両端のフリップフロップ回路を、ハイラッチ回路とローラッチ回路との2種類のラッチ回路に変換するFF(フリップフロップ回路)ラッチ化手段と、
前記タイミング解析手段による解析結果を参照して、前記2種類のラッチ回路の回路配置上の位置と前記ノードの回路配置上の位置とに対する信号の入出力方向と、前記ラッチ回路の回路配置上の位置とに基づいて、前記2種類のラッチ回路のうち、固定すべきラッチ回路を選択するラッチ移動先決定手段と、
前記ラッチ移動先決定手段によって選択された固定すべきラッチ回路の回路情報を、変換すべき回路の結線情報に変換する回路情報変換手段とを備える
ことを特徴とする半導体集積回路の設計装置。 - 前記ラッチ移動先決定手段は、
前記ノードの入力側および出力側の何れか一方の回路を、複数個用いてラッチ化する
ことを特徴とする請求項1記載の半導体集積回路の設計装置。 - 前記ラッチ移動先決定手段は、
前記ノードの前後に位置するフリップフロップ回路をラッチ化する際に、元のフリップフロップ回路の回路配置上の位置に、前記ラッチ化手段によって変換されたハイラッチ回路あるいはローラッチ回路を固定する
ことを特徴とする請求項1記載の半導体集積回路の設計装置。 - 前記回路情報変換手段は、
前記ノード近傍の装置をラッチ化する際に、元のフリップフロップ回路の回路配置上の位置に、前記ラッチ化手段によって変換されたハイラッチ回路あるいはローラッチ回路を固定することにより、前記元のフリップフロップ回路の回路配置上の位置を固定する
ことを特徴とする請求項3記載の半導体集積回路の設計装置。 - 前記回路情報変換手段は、
前記元のフリップフロップ回路の回路配置上の位置に固定されたハイラッチ回路あるいはローラッチ回路をテストする際に、スキャンフリップフロップ回路となるような機能を有するテスト可能ラッチ回路を実行する一方で、
固定せずに移動されたハイラッチ回路あるいはローラッチ回路をテストする際には、スルーするように動作するスルーモードラッチ回路として、前記ラッチ化手段による変換前と同様なスキャンテストを実行する
ことを特徴とする請求項4記載の半導体集積回路の設計装置。 - 前記回路情報変換手段は、
設計対象の回路全体を表現するテキストファイルのうち、前記変換すべき回路の結線情報に対応する一部分のテキストファイルだけを変更する
ことを特徴とする請求項1乃至請求項5の何れかに記載の半導体集積回路の設計装置。 - 前記2種類のラッチ回路は、
その出力段ゲートのゲート幅の異なる回路を選択することで駆動力を調整可能である
ことを特徴とする請求項1乃至請求項6の何れかに記載の半導体集積回路の設計装置。 - 半導体集積回路に搭載されるフリップフロップ回路を含む半導体集積回路を設計する設計方法であって、
タイミング解析機能によって、前記フリップフロップ回路の入力および出力ノードの値を含むタイミング解析データに応じてホールドエラーを検出すると共に、ホールドエラーが発生したノードを特定し、
FF(フリップフロップ回路)ラッチ化機能により、前記タイミング解析機能による解析結果を参照して、前記ノードの両端のフリップフロップ回路を、ハイラッチ回路とローラッチ回路との2種類のラッチ回路に変換し、
ラッチ移動先決定機能により、前記タイミング解析機能による解析結果を参照して、前記2種類のラッチ回路の回路配置上の位置と前記ノードの回路配置上の位置とに対する信号の入出力方向と、前記ラッチ回路の回路配置上の位置とに基づいて、前記2種類のラッチ回路のうち、固定すべきラッチ回路を選択し、
回路情報変換機能により、前記ラッチ移動先決定機能によって選択された固定すべきラッチ回路の回路情報を、変換すべき回路の結線情報に変換する
ことを特徴とする半導体集積回路の設計方法。 - 前記ラッチ移動先決定機能により、
前記ノードの入力側および出力側の何れか一方の回路を、複数個用いてラッチ化する
ことを特徴とする請求項8記載の半導体集積回路の設計方法。 - 前記ラッチ移動先決定機能により、
前記ノードの前後に位置するフリップフロップ回路をラッチ化する際に、元のフリップフロップ回路の回路配置上の位置に、前記ラッチ化機能によって変換されたハイラッチ回路あるいはローラッチ回路を固定する
ことを特徴とする請求項8記載の半導体集積回路の設計方法。 - 前記回路情報変換機能は、
前記ノード近傍の装置をラッチ化する際に、元のフリップフロップ回路の回路配置上の位置に、前記ラッチ化機能によって変換されたハイラッチ回路あるいはローラッチ回路を固定することにより、前記元のフリップフロップ回路の回路配置上の位置を固定する
ことを特徴とする請求項10記載の半導体集積回路の設計方法。 - 前記回路情報変換機能により、
前記元のフリップフロップ回路の回路配置上の位置に固定されたハイラッチ回路あるいはローラッチ回路をテストする際に、スキャンフリップフロップ回路となるような機能を有するテスト可能ラッチ回路を実行する一方で、
固定せずに移動したハイラッチ回路あるいはローラッチ回路をテストする際には、スルーするように動作するスルーモードラッチ回路として、前記ラッチ化機能による変換前と同様なスキャンテストを実行する
ことを特徴とする請求項11記載の半導体集積回路の設計方法。 - 半導体集積回路に搭載されるフリップフロップ回路を含む半導体集積回路を設計する設計装置の動作制御のためのコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
前記フリップフロップ回路の入力および出力ノードの値を含むタイミング解析データに応じてホールドエラーを検出すると共に、ホールドエラーが発生したノードを特定するタイミング解析機能と、
前記タイミング解析機能による解析結果を参照して、前記ノードの両端のフリップフロップ回路を、ハイラッチ回路とローラッチ回路との2種類のラッチ回路に変換するFF(フリップフロップ回路)ラッチ化機能と、
前記タイミング解析機能による解析結果を参照して、前記2種類のラッチ回路の回路配置上の位置と前記ノードの回路配置上の位置とに対する信号の入出力方向と、前記ラッチ回路の回路配置上の位置とに基づいて、前記2種類のラッチ回路のうち、固定すべきラッチ回路を選択するラッチ移動先決定機能と、
前記ラッチ移動先決定機能によって選択された固定すべきラッチ回路の回路情報を、変換すべき回路の結線情報に変換する回路情報変換機能とをコンピュータに実行させる
ことを特徴とするコンピュータ・プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008058824 | 2008-03-07 | ||
JP2008-058824 | 2008-03-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009110615A1 true WO2009110615A1 (ja) | 2009-09-11 |
Family
ID=41056164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2009/054341 WO2009110615A1 (ja) | 2008-03-07 | 2009-03-06 | 半導体集積回路の設計装置、半導体集積回路の設計方法、並びに半導体集積回路を設計するコンピュータ・プログラム |
Country Status (2)
Country | Link |
---|---|
TW (1) | TW200945088A (ja) |
WO (1) | WO2009110615A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580282A (zh) * | 2020-12-23 | 2021-03-30 | 海光信息技术股份有限公司 | 用于集成电路设计验证的方法、装置、设备以及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8813014B2 (en) * | 2009-12-30 | 2014-08-19 | Taiwan Semiconductor Manufacturing Co., Ltd. | Semiconductor device and method for making the same using semiconductor fin density design rules |
US10354886B2 (en) * | 2013-02-22 | 2019-07-16 | Synopsys, Inc. | Hybrid evolutionary algorithm for triple-patterning |
US10872190B2 (en) * | 2018-07-16 | 2020-12-22 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method and system for latch-up prevention |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000305962A (ja) * | 1999-04-16 | 2000-11-02 | Nec Corp | 遅延最適化方法及び遅延最適化装置並びに記録媒体 |
JP2004056238A (ja) * | 2002-07-17 | 2004-02-19 | Nec Corp | 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム |
-
2009
- 2009-03-06 WO PCT/JP2009/054341 patent/WO2009110615A1/ja active Application Filing
- 2009-03-09 TW TW098107572A patent/TW200945088A/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000305962A (ja) * | 1999-04-16 | 2000-11-02 | Nec Corp | 遅延最適化方法及び遅延最適化装置並びに記録媒体 |
JP2004056238A (ja) * | 2002-07-17 | 2004-02-19 | Nec Corp | 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム |
Non-Patent Citations (1)
Title |
---|
HIROSHI YOSHIKAWA ET AL.: "Latch Henkan ni yoru Ronri Kairo no Chien Saitekika", FIT (FORUM ON INFORMATION TECHNOLOGY) 2002, THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, INFORMATION PROCESSING SOCIETY OF JAPAN, 13 September 2002 (2002-09-13), pages 43 - 44 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580282A (zh) * | 2020-12-23 | 2021-03-30 | 海光信息技术股份有限公司 | 用于集成电路设计验证的方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW200945088A (en) | 2009-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9117044B2 (en) | Hierarchical verification of clock domain crossings | |
US6536031B2 (en) | Method for generating behavior model description of circuit and apparatus for logic verification | |
KR100517537B1 (ko) | 반도체 집적회로의 설계방법 | |
US7886245B2 (en) | Structure for optimizing the signal time behavior of an electronic circuit design | |
US7216318B1 (en) | Method and system for false path analysis | |
US8037443B1 (en) | System, method, and computer program product for optimizing an altered hardware design utilizing power reports | |
JP5040758B2 (ja) | シミュレーション装置、シミュレーション方法及びプログラム | |
WO2009110615A1 (ja) | 半導体集積回路の設計装置、半導体集積回路の設計方法、並びに半導体集積回路を設計するコンピュータ・プログラム | |
Gayathri et al. | RTL synthesis of case study using design compiler | |
CN113642285A (zh) | 确定和验证时钟域交叉中的亚稳态 | |
JP4200465B2 (ja) | 半導体集積回路の設計方法及び設計システム | |
Iizuka et al. | A tool set for the design of asynchronous circuits with bundled-data implementation | |
JP2014001937A (ja) | スキャンテスト方法、プログラムおよびスキャンテスト回路 | |
US8943457B2 (en) | Simulating scan tests with reduced resources | |
US6654939B2 (en) | Method of designing logic circuit, and computer product | |
JP2009009318A (ja) | 非同期回路検証用のプログラムデータ生成方法、非同期回路検証方法及び非同期回路検証装置 | |
JP7069608B2 (ja) | 半導体設計支援装置、半導体設計支援方法及びプログラム | |
Vij | Algorithms and methodology to design asynchronous circuits using synchronous CAD tools and flows | |
WO2010101029A1 (ja) | 半導体集積回路設計装置、半導体集積回路設計方法、及び半導体集積回路設計プログラム | |
US7246053B2 (en) | Method for transforming behavioral architectural and verification specifications into cycle-based compliant specifications | |
US8160859B2 (en) | Medium storing logic simulation program, logic simulation apparatus, and logic simulation method | |
Kuentzer et al. | Test oriented design and layout generation of an asynchronous controller for the blade template | |
JP7354815B2 (ja) | 検証支援装置、検証支援方法および検証支援プログラム | |
Hekkala | CDC logic verification in RTL design | |
JP2006106838A (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: 09718073 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09718073 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |