JP2009237727A - Method for designing semiconductor integrated circuit - Google Patents

Method for designing semiconductor integrated circuit Download PDF

Info

Publication number
JP2009237727A
JP2009237727A JP2008080732A JP2008080732A JP2009237727A JP 2009237727 A JP2009237727 A JP 2009237727A JP 2008080732 A JP2008080732 A JP 2008080732A JP 2008080732 A JP2008080732 A JP 2008080732A JP 2009237727 A JP2009237727 A JP 2009237727A
Authority
JP
Japan
Prior art keywords
variation
value
timing
slack
cells
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008080732A
Other languages
Japanese (ja)
Other versions
JP4973561B2 (en
Inventor
Nobuaki Nonaka
信昭 野中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008080732A priority Critical patent/JP4973561B2/en
Publication of JP2009237727A publication Critical patent/JP2009237727A/en
Application granted granted Critical
Publication of JP4973561B2 publication Critical patent/JP4973561B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method for designing a semiconductor integrated circuit in the consideration of a variation in a logic composition process. <P>SOLUTION: The method for designing the semiconductor integrated circuit includes steps of: specifying a variation value as a numerical value showing the variation of the delay time of cells; generating a netlist by a logic composition from circuit description; calculating a variation total by totaling variation values of cells configuring each of a plurality of paths reaching the input edge of a flip flop under consideration in the netlist; selecting the maximum value of the variation totals of the plurality of paths as a maximum variation total; selecting the worst value of timing slacks of the plurality of paths as the worst timing slack; and exchanging the cells of the netlist so that the maximum variation total can be decreased in a range in which the worst timing slack can be prevented from being worse than a predetermined slack value. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本願の開示は、一般に計算機利用設計に関し、詳しくは計算機を用いた半導体集積回路の設計方法に関する。   The present disclosure generally relates to computer-aided design, and more particularly to a method for designing a semiconductor integrated circuit using a computer.

半導体集積回路の設計工程においては、まずRTL(Register Transfer Level)等のハードウェア記述言語により回路を記述し、そのRTL等の回路記述に基づいて論理合成し、更に論理合成により生成されたネットリストに基づいてレイアウト設計を行なう。このレイアウト設計の後に、各ゲートのタイミングのバラツキを考慮したタイミング検証を行なうことにより、最終的な動作検証が行なわれる。このレイアウト後のタイミング検証によりタイミング違反が検出されると、レイアウトを変更することによりタイミング違反の解消を図る。またレイアウト変更してもタイミング違反が解消されない場合には、論理合成を再度実行してネットリストを変更する。しかし論理合成段階ではゲートのタイミングのバラツキを考慮していないので、論理合成を再度実行してネットリストを変更しても、レイアウト設計後のタイミング検証で再度タイミング違反が発生してしまう可能性が十分にある。このような理由により、設計工程が収束しにくいという問題があった。   In the design process of a semiconductor integrated circuit, a circuit is first described by a hardware description language such as RTL (Register Transfer Level), logical synthesis is performed based on the circuit description such as RTL, and a netlist generated by the logical synthesis. Layout design based on the above. After this layout design, a final operation verification is performed by performing a timing verification taking into account the timing variation of each gate. When a timing violation is detected by the timing verification after the layout, the timing violation is solved by changing the layout. If the timing violation is not resolved even after changing the layout, the logic synthesis is executed again to change the netlist. However, in the logic synthesis stage, gate timing variation is not taken into account, so even if the logic synthesis is executed again and the netlist is changed, timing violation after the layout design may occur again. There is enough. For these reasons, there has been a problem that the design process is difficult to converge.

図1は、従来の設計工程の概略を示すフローチャートである。図1のステップS1で、RTL記述をゲートにマッピングすることにより論理合成を行なう。即ち、RTL記述から、論理合成ツールを用いることにより、論理ゲート回路を示すネットリストを自動的に生成する。この際、面積や消費電力などの設計制約条件を満たすように回路の自動生成が実行される。   FIG. 1 is a flowchart showing an outline of a conventional design process. In step S1 of FIG. 1, logic synthesis is performed by mapping the RTL description to the gate. That is, a net list indicating a logic gate circuit is automatically generated from the RTL description by using a logic synthesis tool. At this time, automatic circuit generation is performed so as to satisfy design constraint conditions such as area and power consumption.

ステップS2で、タイミング解析によるタイミング最適化を実行する。ステップS1で生成された回路の各論理ゲートはそれぞれ固有の遅延値を有する。ステップS2では、各論理ゲートの遅延値を加算していくことにより論理ゲート回路の遅延値を求める。この遅延値に基づいて、各フリップフロップ入力端でのセットアップ時間やホールド時間などの要求されるタイミング条件が満たされているか否かを確認する。確認した結果、タイミング条件が満たされていない箇所については、回路の組み替えや論理ゲート素子の入れ替え等を実行する。これにより、タイミングが最適化されたネットリストが生成される。   In step S2, timing optimization by timing analysis is executed. Each logic gate of the circuit generated in step S1 has a unique delay value. In step S2, the delay value of the logic gate circuit is obtained by adding the delay value of each logic gate. Based on this delay value, it is confirmed whether required timing conditions such as setup time and hold time at each flip-flop input terminal are satisfied. As a result of the confirmation, reconfiguration of the circuit, replacement of the logic gate element, and the like are executed for a portion where the timing condition is not satisfied. As a result, a netlist with optimized timing is generated.

以上のステップS1及びS2が論理合成工程に相当する。この論理合成工程の後に物理合成工程が実行される。   The above steps S1 and S2 correspond to a logic synthesis process. After this logic synthesis step, a physical synthesis step is executed.

この物理合成工程におけるステップS3で、論理合成工程により生成されたネットリストに基づいてレイアウト設計(プレース&ルート:配置&配線)を行なうとともに、レイアウトを考慮したタイミング最適化を実行する。レイアウト設計においては、論理ゲート回路のネットリストに従ってチップ上にセル(論理ゲート)を自動的に配置するとともに、セル間を結合する配線を引く。タイミング最適化においては、配線の抵抗R、インダクタL、及び容量Cに基づいてタイミング検証を行い、タイミング違反部分のレイアウトを変更することで、タイミングが最適化されたレイアウトを生成する。   In step S3 in this physical synthesis process, layout design (place & route: arrangement & wiring) is performed based on the net list generated in the logic synthesis process, and timing optimization considering layout is executed. In layout design, cells (logic gates) are automatically arranged on a chip according to a net list of logic gate circuits, and wirings that connect the cells are drawn. In timing optimization, timing verification is performed based on the wiring resistance R, inductor L, and capacitance C, and the layout of the timing violation portion is changed to generate a layout with optimized timing.

以上のステップS3の物理合成工程の後にサインオフ検証工程が実行される。サインオフ(Sign-off)検証とは、レイアウト設計終了後に行なう検証であり、半導体集積回路が所望の機能やタイミング仕様を満足しているか否かの最終的な確認作業である。   The sign-off verification process is executed after the physical synthesis process in step S3. The sign-off verification is verification performed after the layout design is completed, and is a final confirmation of whether or not the semiconductor integrated circuit satisfies a desired function or timing specification.

このサインオフ検証工程におけるステップS4で、バラツキを考慮したタイミング検証が実行される。即ち、各論理ゲートの遅延のバラツキ及び配線RLC値のバラツキを規定したライブラリに基づいてタイミングを計算することにより、バラツキの存在する条件の下で所望のタイミング条件が満たされるか否かを検証する。このタイミング検証の結果、タイミング違反が検出されると、ステップS3に戻りレイアウトを変更する。また図1には示されていないが、前述のように、レイアウト変更してもタイミング違反が解消されない場合には、論理合成を再度実行してネットリストを変更する処理が行なわれる。   In step S4 in the sign-off verification process, timing verification considering variation is executed. That is, by calculating the timing based on the library that defines the delay variation of each logic gate and the variation of the wiring RLC value, it is verified whether or not a desired timing condition is satisfied under the condition where the variation exists. . If a timing violation is detected as a result of the timing verification, the process returns to step S3 to change the layout. Although not shown in FIG. 1, as described above, if the timing violation is not eliminated even if the layout is changed, the logic synthesis is executed again to change the netlist.

図1に示す設計工程では、論理合成工程の段階(S1,S2)において全くバラツキが考慮されていないために、その後のバラツキを考慮したタイミング検証(S4)における収束が悪いという問題がある。即ち、S4でのタイミング違反検出に応じたS3でのレイアウト変更が繰り返し何度も実行されたり、更にはS4でのタイミング違反検出に応じた論理合成の再度実行が繰り返し何度も実行されたりする場合がある。
特開平7−334530号公報
The design process shown in FIG. 1 has a problem that the convergence in the timing verification (S4) considering the subsequent variations is poor because the variations are not considered at all in the logic synthesis step (S1, S2). That is, the layout change in S3 corresponding to the timing violation detection in S4 is repeatedly executed, and further, the logic synthesis corresponding to the timing violation detection in S4 is repeatedly executed repeatedly. There is a case.
JP 7-334530 A

以上を鑑みると、論理合成工程においてバラツキを考慮した半導体集積回路の設計方法が望まれる。   In view of the above, a method for designing a semiconductor integrated circuit in consideration of variations in the logic synthesis process is desired.

半導体集積回路の設計方法は、セルの遅延時間のバラツキを示す数値であるバラツキ値をセルの種類毎に規定し、回路記述から論理合成によりネットリストを生成し、該ネットリストにおける着目フリップフロップの入力端に至る複数のパス毎に、パスを構成するセルの該バラツキ値を合計してバラツキ合計を算出し、該複数のパスの該バラツキ合計のうちで最大のものを最大バラツキ合計として選択し、該複数のパスのタイミングスラックのうちで最悪のものをワーストタイミングスラックとして、該ワーストタイミングスラックが所定のスラック値よりも悪くならない範囲で該最大バラツキ合計を減少させるように該ネットリストのセルを入れ替える各段階を含む。   In a semiconductor integrated circuit design method, a variation value, which is a numerical value indicating variation in delay time of a cell, is defined for each cell type, a net list is generated by logic synthesis from a circuit description, and a flip-flop of a target flip-flop in the net list is generated. For each of a plurality of paths reaching the input end, the variation values of the cells constituting the path are summed to calculate a variation sum, and the largest of the variation sums of the plurality of paths is selected as the maximum variation sum. The worst timing slack of the plurality of paths is defined as the worst timing slack, and the netlist cell is set so as to reduce the maximum variation total within a range in which the worst timing slack does not deteriorate below a predetermined slack value. Includes each stage to be replaced.

少なくとも1つの実施例によれば、複数のパスのバラツキ合計のうちで最大のものを最大バラツキ合計として、ワーストタイミングスラックが所定のスラック値よりも悪くならない範囲で最大バラツキ合計を減少させる。これにより、論理合成工程においてバラツキを考慮したタイミング最適化処理を実現することができる。   According to at least one embodiment, the maximum sum of variations among a plurality of paths is regarded as the maximum variation sum, and the maximum variation sum is reduced within a range in which the worst timing slack does not become worse than a predetermined slack value. As a result, it is possible to realize timing optimization processing in consideration of variations in the logic synthesis process.

以下に、本発明の実施例を添付の図面を用いて詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

図2は、論理合成工程においてバラツキを考慮した半導体集積回路の設計方法を示すフローチャートである。図2のフローチャートに示す処理は、後ほど説明するようにコンピュータにより実行される。   FIG. 2 is a flowchart showing a method for designing a semiconductor integrated circuit in consideration of variations in the logic synthesis process. The processing shown in the flowchart of FIG. 2 is executed by a computer as will be described later.

図2のステップS1で、RTL記述をゲートにマッピングすることにより論理合成を行なう。即ち、RTL記述から、論理合成ツールを用いることにより、論理ゲート回路を示すネットリストを自動的に生成する。この際、面積や消費電力などの設計制約条件を満たすように回路の自動生成が実行される。   In step S1 of FIG. 2, logic synthesis is performed by mapping the RTL description to the gate. That is, a net list indicating a logic gate circuit is automatically generated from the RTL description by using a logic synthesis tool. At this time, automatic circuit generation is performed so as to satisfy design constraint conditions such as area and power consumption.

ステップS2で、全フリップフロップ(FF)の最大バラツキ合計を算出する。この最大バラツキ合計は、セルの遅延時間のバラツキを示す数値であるバラツキ値をセルの種類毎に規定したセル種毎バラツキデータベース10を参照して計算される。   In step S2, the maximum total variation of all flip-flops (FF) is calculated. The total maximum variation is calculated with reference to the cell type variation database 10 in which variation values, which are numerical values indicating variations in cell delay time, are defined for each cell type.

図3は、最大バラツキ合計の算出について説明するための図である。図3には、論理合成により生成されたネットリストに対応する回路が示される。図3の回路は、フリップフロップ11乃至16、NAND回路20乃至23、及びインバータ24及び25が含まれる。NAND回路やインバータである各ゲート素子の下に示される「NAND3」や「INV3」等の記述は、それぞれ対応するゲート素子の種類を示す。   FIG. 3 is a diagram for explaining the calculation of the maximum variation total. FIG. 3 shows a circuit corresponding to a net list generated by logic synthesis. The circuit in FIG. 3 includes flip-flops 11 to 16, NAND circuits 20 to 23, and inverters 24 and 25. A description such as “NAND3” or “INV3” shown below each gate element that is a NAND circuit or an inverter indicates the type of the corresponding gate element.

図4は、セル種毎バラツキデータベース10におけるNAND回路についてのセル種毎バラツキデータ31を示す図である。セル種毎バラツキデータ31には、3つの種類のNAND回路NAND1、NAND2、及びNAND3について、相対的なバラツキ値が示される。これらの相対バラツキ値は、値が大きいほど当該ゲートにおける遅延時間のバラツキが大きいことを示す。相対バラツキ値同士の比率は、遅延時間のバラツキの比率であってよい。例えば、相対バラツキ値が4であるNAND1の遅延時間のバラツキは±2nsであり、相対バラツキ値が5であるNAND2の遅延時間のバラツキは±2.5nsであってよい。このように相対バラツキ値は、基準となる遅延時間のバラツキを1としたときに、当該ゲート素子の遅延時間のバラツキを相対的に示した値である。例えば、遅延時間のバラツキが最小の素子がある種のインバータであり、このインバータの遅延時間のバラツキDを基準として使用するとする。この場合、あるゲート素子の相対バラツキ値は、そのゲート素子の遅延時間のバラツキをDで割った値であってよい。   FIG. 4 is a diagram illustrating the cell type variation data 31 for the NAND circuit in the cell type variation database 10. The cell type variation data 31 indicates relative variation values for the three types of NAND circuits NAND1, NAND2, and NAND3. These relative variation values indicate that the larger the value, the greater the variation in delay time at the gate. The ratio between the relative variation values may be the ratio of the delay time variation. For example, the variation in delay time of NAND1 having a relative variation value of 4 may be ± 2 ns, and the variation in delay time of NAND2 having a relative variation value of 5 may be ± 2.5 ns. As described above, the relative variation value is a value relatively indicating variation in delay time of the gate element when the variation in reference delay time is 1. For example, it is assumed that there is a kind of inverter having an element with the smallest variation in delay time, and the variation D in delay time of the inverter is used as a reference. In this case, the relative variation value of a certain gate element may be a value obtained by dividing the variation in delay time of the gate element by D.

セル種毎バラツキデータ31には更に、3つの種類のNAND回路について、相対的な遅延時間である相対遅延値が示される。これらの相対遅延値は、値が大きいほど当該ゲートにおける遅延時間が大きいことを示す。相対遅延値同士の比率は、遅延時間の比率であってよい。例えば、相対遅延値が4であるNAND1の遅延時間は±2nsであり、相対遅延値が3であるNAND2の遅延時間は±1.5nsであってよい。このように相対遅延値は、基準となる時間を1としたときに、当該ゲート素子の遅延時間を相対的に示した値である。例えば、遅延時間が最小の素子がある種のインバータであり、このインバータの遅延時間Dを基準として使用するとする。この場合、あるゲート素子の相対遅延値は、そのゲート素子の遅延時間をDで割った値であってよい。また例えば、基準となる時間をクロックの1サイクルとすれば、相対遅延値は遅延時間をクロックサイクル数で計った値となる。   The cell type variation data 31 further indicates a relative delay value, which is a relative delay time, for three types of NAND circuits. These relative delay values indicate that the larger the value, the longer the delay time at the gate. The ratio between the relative delay values may be the ratio of the delay time. For example, the delay time of NAND1 having a relative delay value of 4 may be ± 2 ns, and the delay time of NAND2 having a relative delay value of 3 may be ± 1.5 ns. Thus, the relative delay value is a value that relatively indicates the delay time of the gate element when the reference time is 1. For example, it is assumed that an element having a minimum delay time is a certain type of inverter, and the delay time D of this inverter is used as a reference. In this case, the relative delay value of a certain gate element may be a value obtained by dividing the delay time of the gate element by D. For example, if the reference time is one clock cycle, the relative delay value is a value obtained by measuring the delay time by the number of clock cycles.

図5は、セル種毎バラツキデータベース10におけるインバータについてのセル種毎バラツキデータ32を示す図である。セル種毎バラツキデータ32には、3つの種類のインバータINV1、INV2、及びINV3について、相対バラツキ値及び相対遅延値が示される。相対バラツキ値及び相対遅延値の意味はNAND回路の場合と同様である。   FIG. 5 is a diagram showing the cell type variation data 32 for the inverter in the cell type variation database 10. The cell type variation data 32 indicates relative variation values and relative delay values for three types of inverters INV1, INV2, and INV3. The meanings of the relative variation value and the relative delay value are the same as in the NAND circuit.

図3において、各ゲート素子の内部に示される数値は、図4又は図5に示される相対バラツキ値である。即ち例えばNAND回路21は、種類がNAND3であるので、図4から相対バラツキ値が10であることが分かる。この値10がNAND回路21の回路シンボル内に記されている。   In FIG. 3, the numerical value shown inside each gate element is the relative variation value shown in FIG. 4 or FIG. That is, for example, since the type of the NAND circuit 21 is NAND3, it can be seen from FIG. 4 that the relative variation value is 10. This value 10 is written in the circuit symbol of the NAND circuit 21.

図2のステップS2における最大バラツキ合計の算出においては、ネットリストにおける着目フリップフロップの入力端に至る複数のパス毎に、パスを構成するセルのバラツキ値を合計してバラツキ合計を算出し、複数のパスのバラツキ合計のうちで最大のものを最大バラツキ合計として選択する。フリップフロップ11を着目フリップフロップとすると、その入力端に至るパスは5つある。即ち、フリップフロップ12の出力からフリップフロップ11の入力に至る第1のパス、フリップフロップ13の出力からフリップフロップ11の入力に至る第2のパス、フリップフロップ14の出力からフリップフロップ11の入力に至る第3のパス、フリップフロップ15の出力からフリップフロップ11の入力に至る第4のパス、フリップフロップ16の出力からフリップフロップ11の入力に至る第5のパスである。これらの5つのパスの各々についてパスを構成するセルのバラツキ値を合計すると、第1のパスについては32、第2のパスについては42、第3のパスについても42、第4のパスについては20、第5のパスについても20となる。これらの5つのパスのバラツキ合計32、42、42、20、及び20のうちで最大の値42を最大バラツキ合計として選択する。同様にして、ネットリストに関係する全てのフリップフロップについて最大バラツキ合計を求める。   In the calculation of the maximum variation total in step S2 of FIG. 2, for each of a plurality of paths reaching the input terminal of the target flip-flop in the netlist, the variation value of the cells constituting the path is totaled to calculate the total variation. The largest one of the total variations of the paths is selected as the maximum variation total. If the flip-flop 11 is the target flip-flop, there are five paths to the input end. That is, the first path from the output of the flip-flop 12 to the input of the flip-flop 11, the second path from the output of the flip-flop 13 to the input of the flip-flop 11, and the output of the flip-flop 14 to the input of the flip-flop 11. A fourth path from the output of the flip-flop 15 to the input of the flip-flop 11, and a fifth path from the output of the flip-flop 16 to the input of the flip-flop 11. Summing up the variation values of the cells that make up the path for each of these five paths is 32 for the first path, 42 for the second path, 42 for the third path, and for the fourth path. 20 for the fifth pass. Among these five path variation sums 32, 42, 42, 20, and 20, the maximum value 42 is selected as the maximum variation sum. Similarly, the maximum variation sum is obtained for all flip-flops related to the netlist.

次に図2のステップS3で、タイミング解析によるタイミング最適化を実行する。ステップS1で生成された回路の各論理ゲートはそれぞれ固有の遅延値を有する。ステップS2では、各論理ゲートの遅延値を加算していくことにより論理ゲート回路の遅延値を求める。この遅延値に基づいて、各フリップフロップ入力端でのセットアップ時間やホールド時間などの要求されるタイミング条件が満たされているか否かを確認する。確認した結果、タイミング条件が満たされていない箇所については、回路の組み替えや論理ゲート素子の入れ替え等を実行する。これにより、タイミングが最適化されたネットリストが生成される。   Next, in step S3 of FIG. 2, timing optimization by timing analysis is executed. Each logic gate of the circuit generated in step S1 has a unique delay value. In step S2, the delay value of the logic gate circuit is obtained by adding the delay value of each logic gate. Based on this delay value, it is confirmed whether required timing conditions such as setup time and hold time at each flip-flop input terminal are satisfied. As a result of the confirmation, reconfiguration of the circuit, replacement of the logic gate element, and the like are executed for a portion where the timing condition is not satisfied. As a result, a netlist with optimized timing is generated.

ステップS4で、最大バラツキ合計を改善するバラツキ最適化処理を実行する。具体的には、着目フリップフロップについて、上記の複数のパスのタイミングスラックのうちで最悪のものをワーストタイミングスラックとする。そして、ワーストタイミングスラックが所定のスラック値よりも悪くならない範囲で最大バラツキ合計を減少させるようにネットリストのセルを入れ替える。   In step S4, a variation optimization process for improving the maximum variation total is executed. Specifically, for the flip-flop of interest, the worst timing slack of the plurality of paths is the worst timing slack. Then, the netlist cells are switched so that the maximum variation total is reduced within a range in which the worst timing slack does not become worse than a predetermined slack value.

図6は、ワーストタイミングスラックについて説明するための図である。図6には図3と同一の回路が示され、図3と同一の構成要素は同一の番号で参照し、その説明は省略する。図6において、NAND回路やインバータである各ゲート素子の上に示される数値は、図4又は図5に示される相対遅延値である。即ち例えばNAND回路21は、種類がNAND3であるので、図4から相対遅延値が2であることが分かる。この値2がNAND回路21の回路シンボルの上に記されている。   FIG. 6 is a diagram for explaining the worst timing slack. 6 shows the same circuit as FIG. 3, and the same components as those of FIG. 3 are referred to by the same numerals, and a description thereof will be omitted. In FIG. 6, the numerical value shown on each gate element which is a NAND circuit or an inverter is a relative delay value shown in FIG. 4 or FIG. That is, for example, since the NAND circuit 21 is of NAND3 type, it can be seen from FIG. 4 that the relative delay value is 2. This value 2 is written on the circuit symbol of the NAND circuit 21.

前述した第1乃至第5のパスのそれぞれについて、相対遅延値の合計値は6、8、8、4、及び4である。あるパスのタイミングスラックとは、そのパスの終点における信号の実際の到達時間と要求到達時間との差である。即ち、タイミングスラックとは、そのパスの終点に信号が到達する時間とタイミング要件を満たすために当該信号が当該終点に到達すべき最も遅い時間との差分である。例えば、フリップフロップ12乃至16が同一のタイミング(時間T=0とする)で信号を出力し、フリップフロップ11の入力端で信号が到達しているべき要求到達時間はT=13であるとする。このT=13は、相対遅延値と同一の単位で時間を表現した数値である。即ち、例えば基準となる遅延時間がDである場合、信号出力タイミングの時間(T=0)から要求到達時間までの時間間隔をDで割ると13になるということである。この場合、フリップフロップ12の出力からフリップフロップ11の入力に至る第1のパスのタイミングスラックは7(=13−6)である。同様にして、フリップフロップ13の出力からフリップフロップ11の入力に至る第2のパスのタイミングスラックは5(=13−8)である。またフリップフロップ14の出力からフリップフロップ11の入力に至る第3のパスのタイミングスラックは5(=13−8)である。フリップフロップ15の出力からフリップフロップ11の入力に至る第4のパスのタイミングスラックは9(=13−4)である。更に、フリップフロップ16の出力からフリップフロップ11の入力に至る第5のパスのタイミングスラックは9(=13−4)である。   For each of the first to fifth paths described above, the total value of the relative delay values is 6, 8, 8, 4, and 4. The timing slack of a certain path is the difference between the actual arrival time of the signal at the end point of the path and the required arrival time. That is, the timing slack is the difference between the time at which a signal reaches the end point of the path and the latest time at which the signal should reach the end point in order to satisfy the timing requirements. For example, it is assumed that the flip-flops 12 to 16 output a signal at the same timing (time T = 0), and the required arrival time that the signal should reach at the input terminal of the flip-flop 11 is T = 13. . T = 13 is a numerical value representing time in the same unit as the relative delay value. That is, for example, when the reference delay time is D, the time interval from the signal output timing time (T = 0) to the required arrival time is divided by D to be 13. In this case, the timing slack of the first path from the output of the flip-flop 12 to the input of the flip-flop 11 is 7 (= 13−6). Similarly, the timing slack of the second path from the output of the flip-flop 13 to the input of the flip-flop 11 is 5 (= 13−8). The timing slack of the third path from the output of the flip-flop 14 to the input of the flip-flop 11 is 5 (= 13−8). The timing slack of the fourth path from the output of the flip-flop 15 to the input of the flip-flop 11 is 9 (= 13−4). Further, the timing slack of the fifth path from the output of the flip-flop 16 to the input of the flip-flop 11 is 9 (= 13−4).

前述のように図2のステップS4のバラツキ最適化処理では、上記の複数のパスのタイミングスラックのうちで最悪のものをワーストタイミングスラックとする。5つのパスのタイミングスラックは、7、5、5、9、及び9である。タイミングスラックは値が小さいほどタイミングに余裕が無いことを意味するので、5つのタイミングスラックのうちで最悪のタイミングスラックは5となる。ステップS4のバラツキ最適化処理では、このワーストタイミングスラックが所定のスラック値よりも悪くならない範囲で最大バラツキ合計を減少させるようにネットリストのセルを入れ替える。例えば、ワーストタイミングスラックが0よりも小さくならない範囲でネットリストのセルを入れ替える。ワーストタイミングスラックが0以上であれば、要求されるタイミング要件を満たしているが、ワーストタイミングスラックが負になると、要求されるタイミング要件が満たされない。従って、ワーストタイミングスラックが0よりも小さくならない範囲でネットリストのセルを入れ替えるということは、要求されるタイミング要件が満たされる範囲で最大バラツキ合計を減少させることを意味する。また例えば、余裕を見て、ワーストタイミングスラックが1よりも小さくならない範囲でネットリストのセルを入れ替えるようにしてもよい。ネットリストのセルの入れ替えについては後ほど詳細に説明する。   As described above, in the variation optimization process in step S4 of FIG. 2, the worst timing slack of the plurality of paths is set to the worst timing slack. The timing slack of the five paths is 7, 5, 5, 9, and 9. The smaller the value of the timing slack, the less timing there is. Therefore, the worst timing slack among the five timing slacks is 5. In the variation optimization process in step S4, the netlist cells are switched so that the maximum variation total is reduced within a range in which the worst timing slack does not become worse than a predetermined slack value. For example, the netlist cells are switched within a range in which the worst timing slack does not become smaller than zero. If the worst timing slack is 0 or more, the required timing requirement is satisfied. However, if the worst timing slack becomes negative, the required timing requirement is not satisfied. Therefore, replacing the netlist cells within a range in which the worst timing slack does not become smaller than 0 means that the maximum variation sum is reduced within a range in which the required timing requirement is satisfied. Further, for example, the net list cells may be switched within a range in which the worst timing slack does not become smaller than 1 with a margin. The replacement of netlist cells will be described in detail later.

図2において以上説明したステップS1乃至S4が論理合成工程に相当する。この論理合成工程の後に物理合成工程が実行される。   Steps S1 to S4 described above in FIG. 2 correspond to the logic synthesis step. After this logic synthesis step, a physical synthesis step is executed.

この物理合成工程におけるステップS5で、論理合成工程により生成されたネットリストに基づいてレイアウト設計(プレース&ルート:配置&配線)を行なうとともに、レイアウトを考慮したタイミング最適化を実行する。レイアウト設計においては、論理ゲート回路のネットリストに従ってチップ上にセル(論理ゲート)を自動的に配置するとともに、セル間を結合する配線を引く。タイミング最適化においては、配線の抵抗R、インダクタL、及び容量Cに基づいてタイミング検証を行い、タイミング違反部分のレイアウトを変更することで、タイミングが最適化されたレイアウトを生成する。   In step S5 in this physical synthesis process, layout design (place & route: arrangement & wiring) is performed based on the net list generated in the logic synthesis process, and timing optimization considering layout is executed. In layout design, cells (logic gates) are automatically arranged on a chip according to a net list of logic gate circuits, and wirings that connect the cells are drawn. In timing optimization, timing verification is performed based on the wiring resistance R, inductor L, and capacitance C, and the layout of the timing violation portion is changed to generate a layout with optimized timing.

以上のステップS5の物理合成工程の後にサインオフ検証工程が実行される。このサインオフ検証工程におけるステップS6で、バラツキを考慮したタイミング検証が実行される。即ち、各論理ゲートの遅延のバラツキ及び配線RLC値のバラツキを規定したライブラリに基づいてタイミングを計算することにより、バラツキの存在する条件の下で所望のタイミング条件が満たされるか否かを検証する。このタイミング検証の結果、タイミング違反が検出されると、ステップS5に戻りレイアウトを変更する。また図2には示されていないが、レイアウト変更してもタイミング違反が解消されない場合には、論理合成を再度実行してネットリストを変更する処理を行なってよい。   The sign-off verification process is executed after the physical synthesis process in step S5. In step S6 in the sign-off verification process, timing verification considering variation is executed. That is, by calculating the timing based on the library that defines the delay variation of each logic gate and the variation of the wiring RLC value, it is verified whether or not a desired timing condition is satisfied under the condition where the variation exists. . If a timing violation is detected as a result of the timing verification, the process returns to step S5 to change the layout. Although not shown in FIG. 2, if the timing violation is not eliminated by changing the layout, logic synthesis may be executed again to change the netlist.

以下に、ワーストタイミングスラックが所定のスラック値よりも悪くならない範囲で最大バラツキ合計を減少させるようにネットリストのセルを入れ替える処理について説明する。この処理では、フリップフロップの入力端から複数のパスを上流に向かいトレースしていくことにより順次見つかったセルを入れ替えるようにしてよい。   The following describes a process of replacing netlist cells so that the maximum variation sum is reduced within a range in which the worst timing slack does not become worse than a predetermined slack value. In this process, the cells sequentially found may be replaced by tracing a plurality of paths upstream from the input end of the flip-flop.

図6の回路を例にとると、フリップフロップ11の入力端からパスを上流に向かいトレースしていくと、まず最初にNAND回路23が見つかる。従って、このNAND回路23がセル入れ替え処理の対象となる。NAND回路23の種類はNAND3であり、図4を参照すると、NAND3よりも相対バラツキ値が小さなNAND回路としてNAND1及びNAND2が利用できることが分かる。この場合、NAND1の方が相対バラツキ値が小さいので、まずNAND回路23をNAND1に入れ替えることを検討する。この際、着目セルをバラツキ値がより小さな別の種類のセルに入れ替えた場合のワーストタイミングスラックを算出し、算出されたワーストタイミングスラックが所定のスラック値よりも悪いか否かを判断する。   Taking the circuit of FIG. 6 as an example, when tracing the path upstream from the input end of the flip-flop 11, the NAND circuit 23 is first found. Therefore, this NAND circuit 23 is a target of the cell replacement process. The type of NAND circuit 23 is NAND3. Referring to FIG. 4, it can be seen that NAND1 and NAND2 can be used as NAND circuits having a relative variation value smaller than that of NAND3. In this case, since the relative variation value of NAND1 is smaller, it is first considered to replace the NAND circuit 23 with NAND1. At this time, worst timing slack is calculated when the target cell is replaced with another type of cell having a smaller variation value, and it is determined whether or not the calculated worst timing slack is worse than a predetermined slack value.

図7は、セルの入れ替えを説明するための図である。図7において、図6と同一の構成要素は同一の番号で参照し、その説明は省略する。   FIG. 7 is a diagram for explaining replacement of cells. In FIG. 7, the same elements as those of FIG. 6 are referred to by the same numerals, and a description thereof will be omitted.

図7に示す回路は、図6に示す回路と比較して、種類がNAND3であるNAND回路23が、種類がNAND1であるNAND回路23Aに入れ替えられていることが異なる。NAND回路23の相対バラツキ値が10で相対遅延値が2であるのに対して、NAND回路23Aの相対バラツキ値は4で相対遅延値が4である。このセル入れ替えにより、最大バラツキ合計が42から36に減少(向上)し、ワーストタイミングスラックが5から3(=13−10)に減少(悪化)している。即ち、着目セルをバラツキ値がより小さな別の種類のセルに入れ替えた場合のワーストタイミングスラックは3である。所定のスラック値を0とすれば、このワーストタイミングスラックは所定のスラック値よりも良好である(大きい)。従って、種類がNAND3であるNAND回路23を種類がNAND1であるNAND回路23Aに入れ替える処理は、ワーストタイミングスラックが所定のスラック値よりも悪くならない範囲で最大バラツキ合計を減少させる。従って、この入れ替え処理を有効な処理として実行し、ネットリストを変更する。   The circuit shown in FIG. 7 differs from the circuit shown in FIG. 6 in that the NAND circuit 23 of the type NAND3 is replaced with a NAND circuit 23A of the type NAND1. The NAND circuit 23 has a relative variation value of 10 and a relative delay value of 2, whereas the NAND circuit 23A has a relative variation value of 4 and a relative delay value of 4. By this cell replacement, the maximum variation total is reduced (improved) from 42 to 36, and the worst timing slack is reduced (deteriorated) from 5 to 3 (= 13-10). That is, the worst timing slack is 3 when the target cell is replaced with another type of cell having a smaller variation value. If the predetermined slack value is 0, this worst timing slack is better (larger) than the predetermined slack value. Therefore, the process of replacing the NAND circuit 23 of the type NAND3 with the NAND circuit 23A of the type NAND1 reduces the maximum variation total within a range where the worst timing slack does not become worse than the predetermined slack value. Therefore, this replacement process is executed as an effective process, and the net list is changed.

その後更に、フリップフロップ11の入力端からパスを上流に向かいトレースしていくと、例えば次にNAND回路22が見つかる。従って、このNAND回路22がセル入れ替え処理の対象となる。なお上流に行くにつれて複数のパスに分岐する場合には、複数のパスの各々を順番にチェックすればよい。なおこの際、最大バラツキ合計に対応するパスを記憶しておき、このパス上にないセルは入れ替えの対象から外すように処理を構成してもよい。   Thereafter, when the path is traced upstream from the input end of the flip-flop 11, for example, the NAND circuit 22 is found next. Therefore, this NAND circuit 22 is a target of cell replacement processing. When branching into a plurality of paths as it goes upstream, each of the plurality of paths may be checked in order. At this time, the processing may be configured such that a path corresponding to the maximum variation total is stored, and cells not on this path are excluded from replacement targets.

NAND回路22の種類はNAND3であり、図4を参照すると、NAND3よりも相対バラツキ値が小さなNAND回路としてNAND1及びNAND2が利用できることが分かる。この場合、NAND1の方が相対バラツキ値が小さいので、まずNAND回路22をNAND1に入れ替えることを検討する。   The type of NAND circuit 22 is NAND3. Referring to FIG. 4, it can be seen that NAND1 and NAND2 can be used as NAND circuits having a relative variation value smaller than that of NAND3. In this case, since the relative variation value of NAND1 is smaller, it is first considered to replace the NAND circuit 22 with NAND1.

図8は、セルの入れ替えを説明するための図である。図8において、図7と同一の構成要素は同一の番号で参照し、その説明は省略する。   FIG. 8 is a diagram for explaining replacement of cells. In FIG. 8, the same components as those of FIG. 7 are referred to by the same numerals, and a description thereof will be omitted.

図8に示す回路は、図7に示す回路と比較して、種類がNAND3であるNAND回路22が、種類がNAND1であるNAND回路22Aに入れ替えられていることが異なる。このセル入れ替えにより、最大バラツキ合計は36のままであり、ワーストタイミングスラックも3のままである。従って、種類がNAND3であるNAND回路22を種類がNAND1であるNAND回路22Aに入れ替える処理は、ワーストタイミングスラックが所定のスラック値(この例では0)よりも悪くならない範囲の処理である。従って、この入れ替え処理を有効な処理として実行し、ネットリストを変更する。なお、このセル入れ替え処理では、ワーストタイミングスラックが所定のスラック値よりも悪くならない範囲ではあるが、最大バラツキ合計36が減少していない。このような場合には、ネットリストを変更しないような手順としてもよい。   The circuit shown in FIG. 8 differs from the circuit shown in FIG. 7 in that the NAND circuit 22 of the type NAND3 is replaced with a NAND circuit 22A of the type NAND1. By this cell replacement, the maximum variation sum remains 36, and the worst timing slack remains 3. Therefore, the process of replacing the NAND circuit 22 of the type NAND3 with the NAND circuit 22A of the type NAND1 is a process in a range where the worst timing slack does not become worse than the predetermined slack value (0 in this example). Therefore, this replacement process is executed as an effective process, and the net list is changed. In this cell replacement process, the maximum variation total 36 does not decrease, although the worst timing slack is within a range that does not become worse than the predetermined slack value. In such a case, the procedure may be such that the netlist is not changed.

その後更に、フリップフロップ11の入力端からパスを上流に向かいトレースしていくと、例えば次にインバータ25が見つかる。従って、このインバータ25がセル入れ替え処理の対象となる。   Thereafter, when the path is traced upstream from the input terminal of the flip-flop 11, for example, the inverter 25 is found next. Therefore, the inverter 25 is a target of the cell replacement process.

インバータ25の種類はINV3であり、図5を参照すると、INV3よりも相対バラツキ値が小さなインバータとしてINV1及びINV2が利用できることが分かる。この場合、INV1の方が相対バラツキ値が小さいので、まずインバータ25をINV1に入れ替えることを検討する。   The type of the inverter 25 is INV3. Referring to FIG. 5, it can be seen that INV1 and INV2 can be used as inverters having a relative variation value smaller than that of INV3. In this case, since the relative variation value of INV1 is smaller, it is first considered to replace the inverter 25 with INV1.

図9は、セルの入れ替えを説明するための図である。図9において、図8と同一の構成要素は同一の番号で参照し、その説明は省略する。   FIG. 9 is a diagram for explaining replacement of cells. 9, the same components as those of FIG. 8 are referred to by the same numerals, and a description thereof will be omitted.

図9に示す回路は、図8に示す回路と比較して、種類がINV3であるインバータ25が、種類がINV1であるインバータ25Aに入れ替えられていることが異なる。このセル入れ替えにより、最大バラツキ合計は36から32になり、ワーストタイミングスラックは3から1(=13−12)になる。従って、種類がINV3であるインバータ25を種類がINV1であるインバータ25Aに入れ替える処理は、ワーストタイミングスラックが所定のスラック値(この例では0)よりも悪くならない範囲の処理で最大バラツキ合計を減少させる。従って、この入れ替え処理を有効な処理として実行し、ネットリストを変更する。   The circuit shown in FIG. 9 is different from the circuit shown in FIG. 8 in that an inverter 25 of type INV3 is replaced with an inverter 25A of type INV1. By this cell replacement, the maximum variation total is 36 to 32, and the worst timing slack is 3 to 1 (= 13-12). Therefore, the process of replacing the inverter 25 of the type INV3 with the inverter 25A of the type INV1 reduces the maximum variation sum by a process in which the worst timing slack is not worse than the predetermined slack value (0 in this example). . Therefore, this replacement process is executed as an effective process, and the net list is changed.

その後更に、フリップフロップ11の入力端からパスを上流に向かいトレースしていくと、例えば次にインバータ24が見つかる。従って、このインバータ24がセル入れ替え処理の対象となる。   Thereafter, when the path is traced further upstream from the input end of the flip-flop 11, for example, the inverter 24 is found next. Therefore, the inverter 24 is a target for cell replacement processing.

インバータ24の種類はINV3であり、図5を参照すると、INV3よりも相対バラツキ値が小さなインバータとしてINV1及びINV2が利用できることが分かる。この場合、INV1の方が相対バラツキ値が小さいので、まずインバータ24をINV1に入れ替えることを検討する。   The type of the inverter 24 is INV3. Referring to FIG. 5, it can be seen that INV1 and INV2 can be used as inverters having a relative variation value smaller than that of INV3. In this case, since the relative variation value of INV1 is smaller, it is first considered to replace the inverter 24 with INV1.

図10は、セルの入れ替えを説明するための図である。図10において、図9と同一の構成要素は同一の番号で参照し、その説明は省略する。   FIG. 10 is a diagram for explaining the replacement of cells. 10, the same components as those of FIG. 9 are referred to by the same numerals, and a description thereof will be omitted.

図10に示す回路は、図9に示す回路と比較して、種類がINV3であるインバータ24が、種類がINV1であるインバータ24Aに入れ替えられていることが異なる。このセル入れ替えにより、最大バラツキ合計は32から28になり、ワーストタイミングスラックは1から−1(=13−14)になる。従って、種類がINV3であるインバータ24を種類がINV1であるインバータ24Aに入れ替える処理は、ワーストタイミングスラックが所定のスラック値(この例では0)よりも悪くなる処理である。従って、この入れ替え処理は無効な処理であり、ネットリストの変更はしない。   The circuit shown in FIG. 10 is different from the circuit shown in FIG. 9 in that the inverter 24 of type INV3 is replaced with an inverter 24A of type INV1. By this cell replacement, the maximum variation sum is 32 to 28, and the worst timing slack is 1 to -1 (= 13-14). Therefore, the process of replacing the inverter 24 of type INV3 with the inverter 24A of type INV1 is a process in which the worst timing slack becomes worse than a predetermined slack value (0 in this example). Therefore, this replacement process is invalid and the netlist is not changed.

再び図5を参照し、INV3よりも相対バラツキ値が小さなインバータとして利用できるINV1及びINV2のうち、INV1が利用できないことが分かったので、次にINV2が利用できるか否かを検討する。   Referring to FIG. 5 again, since it has been found that INV1 cannot be used among INV1 and INV2 that can be used as inverters having a relative variation value smaller than INV3, whether INV2 can be used next is examined.

図11は、セルの入れ替えを説明するための図である。図11において、図9と同一の構成要素は同一の番号で参照し、その説明は省略する。   FIG. 11 is a diagram for explaining replacement of cells. In FIG. 11, the same components as those of FIG. 9 are referred to by the same numerals, and a description thereof will be omitted.

図11に示す回路は、図9に示す回路と比較して、種類がINV3であるインバータ24が、種類がINV2であるインバータ24Bに入れ替えられていることが異なる。このセル入れ替えにより、最大バラツキ合計は32から29になり、ワーストタイミングスラックは1から0(=13−13)になる。従って、種類がINV3であるインバータ24を種類がINV2であるインバータ24Bに入れ替える処理は、ワーストタイミングスラックが所定のスラック値(この例では0)よりも悪くならない範囲の処理で最大バラツキ合計を減少させる。従って、この入れ替え処理を有効な処理として実行し、ネットリストを変更する。   The circuit shown in FIG. 11 differs from the circuit shown in FIG. 9 in that the inverter 24 of type INV3 is replaced with an inverter 24B of type INV2. By this cell replacement, the maximum variation total is 32 to 29, and the worst timing slack is 1 to 0 (= 13-13). Therefore, the process of replacing the inverter 24 of the type INV3 with the inverter 24B of the type INV2 reduces the maximum variation total in a process in which the worst timing slack is not worse than a predetermined slack value (0 in this example). . Therefore, this replacement process is executed as an effective process, and the net list is changed.

以上のようにして、フリップフロップの入力端から複数のパスを上流に向かいトレースしていくことにより順次見つかったセルを入れ替え対象として検討する。入れ替えにより、ワーストタイミングスラックが所定のスラック値よりも悪くならない範囲で最大バラツキ合計を減少させるようにネットリストを変更する。例えば、入れ替え対象のセルがなくなるか又は更なる有効な入れ替え処理が不可能となるまで処理を繰り返して、最大バラツキ合計を減少させてよい。また或いは、最大バラツキ合計が所定の値以下になった時点で処理を終了させるようにしてもよい。   As described above, cells sequentially found by tracing a plurality of paths upstream from the input end of the flip-flop are considered as replacement targets. By exchanging, the net list is changed so that the maximum variation total is reduced within a range in which the worst timing slack does not become worse than a predetermined slack value. For example, the process may be repeated until there is no cell to be replaced or no further effective replacement process is possible, and the maximum variation total may be reduced. Alternatively, the processing may be terminated when the maximum variation total becomes a predetermined value or less.

以下に、図1に示す半導体集積回路の設計方法と図2に示す半導体集積回路の設計手法との相違点について説明する。図12は、設計対象の回路の一例を示す図である。図12に示す回路は、フリップフロップ41及び42並びに40個のインバータ43−1乃至43−40を含む。フリップフロップ41の出力端から出力される信号が、直列接続された40段のインバータ43−1乃至43−40を伝搬して、フリップフロップ42の入力端に到達する。   The difference between the semiconductor integrated circuit design method shown in FIG. 1 and the semiconductor integrated circuit design method shown in FIG. 2 will be described below. FIG. 12 is a diagram illustrating an example of a circuit to be designed. The circuit shown in FIG. 12 includes flip-flops 41 and 42 and 40 inverters 43-1 to 43-40. A signal output from the output terminal of the flip-flop 41 propagates through the 40-stage inverters 43-1 to 43-40 connected in series and reaches the input terminal of the flip-flop 42.

図13は、フリップフロップ42のデータ取り込みタイミングについて説明するための図である。図13(a)において、フリップフロップ41の出力端から時間T=0でデータ信号dataを出力し、フリップフロップ42の入力端において時間T=10でクロック信号clkの立ち上がりエッジに同期してデータ信号を取り込む。図13(a)において、データ信号dataの欄に示す斜線でハッチされたバー51の長さは、フリップフロップ41の出力端からフリップフロップ42の入力端までのデータ信号dataの伝搬時間(遅延時間)を示したものである。即ち、T=0でフリップフロップ41の出力端から出力されたデータは、T=5でフリップフロップ42の入力端に到達する。データ信号dataの欄に示すハッチ無しのバー52は、フリップフロップ42の入力端においてデータ信号dataが有効である時間を示す。また矢印53は、フリップフロップ42のセットアップタイムを示す。従って、例えば矢印の長さを2.5とすると、フリップフロップ42の入力端でデータ信号が到達しているべき要求到達時間はT=7.5である。データ信号dataは、要求到達時間T=7.5の前にフリップフロップ42の入力端に到達しているので、要求タイミングは満たされている。   FIG. 13 is a diagram for explaining the data capture timing of the flip-flop 42. In FIG. 13A, the data signal data is output from the output terminal of the flip-flop 41 at time T = 0, and the data signal is synchronized with the rising edge of the clock signal clk at the input terminal of the flip-flop 42 at time T = 10. Capture. In FIG. 13A, the length of the bar 51 hatched with diagonal lines in the column of the data signal data indicates the propagation time (delay time) of the data signal data from the output end of the flip-flop 41 to the input end of the flip-flop 42. ). That is, data output from the output terminal of the flip-flop 41 at T = 0 reaches the input terminal of the flip-flop 42 at T = 5. A hatched bar 52 shown in the column of the data signal data indicates a time during which the data signal data is valid at the input terminal of the flip-flop 42. An arrow 53 indicates the setup time of the flip-flop 42. Therefore, for example, if the length of the arrow is 2.5, the required arrival time that the data signal should reach at the input terminal of the flip-flop 42 is T = 7.5. Since the data signal data reaches the input terminal of the flip-flop 42 before the request arrival time T = 7.5, the request timing is satisfied.

図1の半導体集積回路の設計方法における論理合成工程は、バラツキは考慮することなく、要求タイミングが満たされることのみを考慮している。従って、図13(a)に示すようなタイミング関係が満たされれば、論理合成工程は終了する。しかしその後、サインオフ工程でバラツキを考慮したタイミング検証を実行すると、例えば図13(b)のようなタイミング違反が検出される。図13(b)では、バー54がデータ信号dataの到達時間のバラツキを示している。バー54の右端が矢印53の左端よりも時間的に後に位置しているので、最悪の条件では、要求タイミングが満たされないことになる。このようなタイミング違反を収束させるためにレイアウト変更或いは更に論理合成のやり直しが必要になり、設計処理の収束が悪い。   The logic synthesis step in the semiconductor integrated circuit design method of FIG. 1 considers only that the required timing is satisfied without considering variations. Therefore, when the timing relationship as shown in FIG. 13A is satisfied, the logic synthesis process is completed. However, after that, when timing verification is performed in consideration of variations in the sign-off process, for example, a timing violation as shown in FIG. 13B is detected. In FIG. 13B, the bar 54 indicates variations in the arrival time of the data signal data. Since the right end of the bar 54 is located later in time than the left end of the arrow 53, the required timing is not satisfied under the worst conditions. In order to converge such timing violations, it is necessary to change the layout or redo the logic synthesis, and the convergence of the design process is poor.

図14は、図2の半導体集積回路の設計工程によるタイミング最適化を説明するための図である。図14において、図13と同一の部分は同一の番号で参照し、その説明は省略する。図14(a)は、図13(b)と同様の図であり、斜線でハッチされたバー51の長さは、フリップフロップ41の出力端からフリップフロップ42の入力端までのデータ信号dataの伝搬時間(遅延時間)を示したものである。またハッチ無しのバー52は、フリップフロップ42の入力端においてデータ信号dataが有効である時間を示す。また矢印53は、フリップフロップ42のセットアップタイムを示す。データ信号dataの到達時間のバラツキを示しているバー54の右端が、矢印53の左端よりも時間的に後に位置しているので、最悪の条件では、要求タイミングが満たされないことになる。   FIG. 14 is a diagram for explaining timing optimization by the design process of the semiconductor integrated circuit of FIG. 14, the same parts as those in FIG. 13 are referred to by the same numerals, and a description thereof will be omitted. FIG. 14A is a diagram similar to FIG. 13B, and the length of the bar 51 hatched with diagonal lines indicates the length of the data signal data from the output end of the flip-flop 41 to the input end of the flip-flop 42. The propagation time (delay time) is shown. A hatched bar 52 indicates a time during which the data signal data is valid at the input end of the flip-flop 42. An arrow 53 indicates the setup time of the flip-flop 42. Since the right end of the bar 54 indicating the variation in the arrival time of the data signal data is located temporally after the left end of the arrow 53, the required timing is not satisfied under the worst condition.

図2の半導体集積回路の設計方法における論理合成工程は、バラツキを考慮してタイミング最適化を行なっている。従って、図14(a)に示すような違法なタイミング関係を、論理合成工程において、図14(b)に示すようなタイミング関係に修正することができる。即ち、図12に示す回路において、最大バラツキ合計が減少するようにセル(インバータ)の入れ替えを行なう。この際、ワーストタイミングスラックが所定のスラック値よりも悪くならない範囲でセルの入れ替えが実行される。図14(b)では、斜線でハッチされたバー61の長さは、セル入れ替えにより増大したデータ信号dataの伝搬時間(遅延時間)を示す。ハッチ無しのバー62は、フリップフロップ42の入力端においてデータ信号dataが有効である時間を示す。ワーストタイミングスラックが所定のスラック値(例えば0)よりも悪くならない範囲でセルの入れ替えを実行するので、要求到達時間T=7.5の前にデータ信号dataがフリップフロップ42の入力端に到達していることが保証される。   The logic synthesis step in the semiconductor integrated circuit design method of FIG. 2 performs timing optimization in consideration of variations. Therefore, the illegal timing relationship as shown in FIG. 14A can be corrected to the timing relationship as shown in FIG. 14B in the logic synthesis step. That is, in the circuit shown in FIG. 12, the cells (inverters) are replaced so that the maximum total variation is reduced. At this time, cell replacement is performed within a range in which the worst timing slack does not become worse than a predetermined slack value. In FIG. 14B, the length of the bar 61 hatched with diagonal lines indicates the propagation time (delay time) of the data signal data increased by cell replacement. A hatched bar 62 indicates the time that the data signal data is valid at the input end of the flip-flop 42. Since the replacement of the cells is executed within a range in which the worst timing slack does not become worse than a predetermined slack value (for example, 0), the data signal data reaches the input terminal of the flip-flop 42 before the required arrival time T = 7.5. It is guaranteed that

また図14(b)では、バー64がデータ信号dataの到達時間のバラツキを示している。セルの入れ替え処理により、図14(a)のバー54の幅に比較して図14(b)のバー64の幅は減少している。即ち、最大バラツキ合計が減少している。この結果、バー64の右端が矢印53の左端よりも時間的に前に位置しているので、最悪の条件でも、要求タイミングが満たされることになる。このように論理合成工程においてバラツキを考慮してタイミング最適化を実行するので、その後のサインオフ工程でのバラツキを考慮したタイミング検証において、タイミング違反の収束性が向上する。   In FIG. 14B, the bar 64 indicates the variation in the arrival time of the data signal data. Due to the cell replacement process, the width of the bar 64 in FIG. 14B is reduced compared to the width of the bar 54 in FIG. That is, the maximum variation total is decreasing. As a result, the right end of the bar 64 is positioned in time before the left end of the arrow 53, so that the required timing is satisfied even in the worst condition. As described above, timing optimization is performed in consideration of variations in the logic synthesis process, so that the convergence of timing violation is improved in timing verification considering variations in the subsequent sign-off process.

図15は、本発明による半導体集積回路の設計方法を実行する装置の構成を示す図である。   FIG. 15 is a diagram showing a configuration of an apparatus for executing a semiconductor integrated circuit design method according to the present invention.

図15に示されるように、半導体集積回路の設計方法を実行する装置は、例えばパーソナルコンピュータやエンジニアリングワークステーション等のコンピュータにより実現される。図15の装置は、コンピュータ510と、コンピュータ510に接続されるディスプレイ装置520、通信装置523、及び入力装置よりなる。入力装置は、例えばキーボード521及びマウス522を含む。コンピュータ510は、CPU511、RAM512、ROM513、ハードディスク等の二次記憶装置514、可換媒体記憶装置515、及びインターフェース516を含む。   As shown in FIG. 15, the apparatus for executing the semiconductor integrated circuit design method is realized by a computer such as a personal computer or an engineering workstation. 15 includes a computer 510, a display device 520 connected to the computer 510, a communication device 523, and an input device. The input device includes a keyboard 521 and a mouse 522, for example. The computer 510 includes a CPU 511, a RAM 512, a ROM 513, a secondary storage device 514 such as a hard disk, a replaceable medium storage device 515, and an interface 516.

キーボード521及びマウス522は、ユーザとのインターフェースを提供するものであり、コンピュータ510を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。ディスプレイ装置520は、コンピュータ510で処理された結果等を表示すると共に、コンピュータ510を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。通信装置523は、遠隔地との通信を行なうためのものであり、例えばモデムやネットワークインターフェース等よりなる。   The keyboard 521 and the mouse 522 provide an interface with the user, and various commands for operating the computer 510, user responses to requested data, and the like are input. The display device 520 displays the results processed by the computer 510 and displays various data to enable interaction with the user when operating the computer 510. The communication device 523 is for performing communication with a remote place, and includes, for example, a modem or a network interface.

半導体集積回路の設計方法は、コンピュータ510が実行可能なコンピュータプログラムとして提供される。このコンピュータプログラムは、可換媒体記憶装置515に装着可能な記憶媒体Mに記憶されており、記憶媒体Mから可換媒体記憶装置515を介して、RAM512或いは二次記憶装置514にロードされる。或いは、このコンピュータプログラムは、遠隔地にある記憶媒体(図示せず)に記憶されており、この記憶媒体から通信装置523及びインターフェース516を介して、RAM512或いは二次記憶装置514にロードされる。   A method for designing a semiconductor integrated circuit is provided as a computer program executable by the computer 510. This computer program is stored in the storage medium M that can be mounted on the replaceable medium storage device 515, and is loaded from the storage medium M to the RAM 512 or the secondary storage device 514 via the replaceable medium storage device 515. Alternatively, the computer program is stored in a remote storage medium (not shown), and is loaded from the storage medium to the RAM 512 or the secondary storage device 514 via the communication device 523 and the interface 516.

キーボード521及び/又はマウス522を介してユーザからプログラム実行指示があると、CPU511は、記憶媒体M、遠隔地記憶媒体、或いは二次記憶装置514からプログラムをRAM512にロードする。CPU511は、RAM512の空き記憶空間をワークエリアとして使用して、RAM512にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。なおROM513は、コンピュータ510の基本動作を制御するための制御プログラムが格納されている。   When there is a program execution instruction from the user via the keyboard 521 and / or the mouse 522, the CPU 511 loads the program from the storage medium M, the remote storage medium, or the secondary storage device 514 to the RAM 512. The CPU 511 uses the free storage space of the RAM 512 as a work area, executes the program loaded in the RAM 512, and advances the process while appropriately interacting with the user. The ROM 513 stores a control program for controlling basic operations of the computer 510.

上記コンピュータプログラムを実行することにより、コンピュータ510が、上記各実施例で説明されたように半導体集積回路の設計方法を実行する。   By executing the computer program, the computer 510 executes the semiconductor integrated circuit design method as described in the above embodiments.

以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。   As mentioned above, although this invention was demonstrated based on the Example, this invention is not limited to the said Example, A various deformation | transformation is possible within the range as described in a claim.

従来の設計工程の概略を示すフローチャートである。It is a flowchart which shows the outline of the conventional design process. 論理合成工程においてバラツキを考慮した半導体集積回路の設計方法を示すフローチャートである。5 is a flowchart illustrating a method for designing a semiconductor integrated circuit in consideration of variations in a logic synthesis process. 最大バラツキ合計の算出について説明するための図である。It is a figure for demonstrating calculation of the largest variation total. セル種毎バラツキデータベースにおけるNAND回路についてのセル種毎バラツキデータを示す図である。It is a figure which shows the variation data for every cell type about the NAND circuit in the variation database for every cell type. セル種毎バラツキデータベースにおけるインバータについてのセル種毎バラツキデータを示す図である。It is a figure which shows the variation data for every cell type about the inverter in the variation database for every cell type. ワーストタイミングスラックについて説明するための図である。It is a figure for demonstrating worst timing slack. セルの入れ替えを説明するための図である。It is a figure for demonstrating replacement of a cell. セルの入れ替えを説明するための図である。It is a figure for demonstrating replacement of a cell. セルの入れ替えを説明するための図である。It is a figure for demonstrating replacement of a cell. セルの入れ替えを説明するための図である。It is a figure for demonstrating replacement of a cell. セルの入れ替えを説明するための図である。It is a figure for demonstrating replacement of a cell. 設計対象の回路の一例を示す図である。It is a figure which shows an example of the circuit of design object. フリップフロップのデータ取り込みタイミングについて説明するための図である。It is a figure for demonstrating the data acquisition timing of a flip-flop. 図2の半導体集積回路の設計工程によるタイミング最適化を説明するための図である。FIG. 3 is a diagram for explaining timing optimization by a design process of the semiconductor integrated circuit of FIG. 2. 本発明による半導体集積回路の設計方法を実行する装置の構成を示す図である。It is a figure which shows the structure of the apparatus which performs the design method of the semiconductor integrated circuit by this invention.

符号の説明Explanation of symbols

10 セル種毎バラツキデータベース
11〜16 フリップフロップ
20〜23 NAND回路
24、25 インバータ
31 セル種毎バラツキデータ
32 セル種毎バラツキデータ
510 コンピュータ
511 CPU
512 RAM
513 ROM
514 二次記憶装置
515 可換媒体記憶装置
516 インターフェース
520 ディスプレイ装置
521 キーボード
522 マウス
523 通信装置
10 Cell type variation database 11 to 16 Flip-flops 20 to 23 NAND circuits 24 and 25 Inverter 31 Cell type variation data 32 Cell type variation data 510 Computer 511 CPU
512 RAM
513 ROM
514 Secondary storage device 515 Exchangeable media storage device 516 Interface 520 Display device 521 Keyboard 522 Mouse 523 Communication device

Claims (5)

セルの遅延時間のバラツキを示す数値であるバラツキ値をセルの種類毎に規定し、
回路記述から論理合成によりネットリストを生成し、
該ネットリストにおける着目フリップフロップの入力端に至る複数のパス毎に、パスを構成するセルの該バラツキ値を合計してバラツキ合計を算出し、該複数のパスの該バラツキ合計のうちで最大のものを最大バラツキ合計として選択し、
該複数のパスのタイミングスラックのうちで最悪のものをワーストタイミングスラックとして、該ワーストタイミングスラックが所定のスラック値よりも悪くならない範囲で該最大バラツキ合計を減少させるように該ネットリストのセルを入れ替える
各段階を含む半導体集積回路の設計方法。
A variation value, which is a numerical value indicating variation in the delay time of the cell, is defined for each cell type,
A net list is generated from the circuit description by logic synthesis,
For each of a plurality of paths leading to the input terminal of the target flip-flop in the netlist, the variation value of the cells constituting the path is summed to calculate a variation sum, and the largest of the variation sums of the plurality of paths is calculated. Select the thing as the maximum variation total,
The worst timing slack of the plurality of paths is set as the worst timing slack, and the cells of the netlist are switched so that the maximum variation total is reduced within a range in which the worst timing slack does not become worse than a predetermined slack value. A method of designing a semiconductor integrated circuit including each stage.
該セルを入れ替えた該ネットリストに基づいてレイアウト設計し、
該レイアウト設計により生成されたレイアウトの回路に対してバラツキを考慮したタイミング検証を実行する
各段階を更に含む請求項1記載の半導体集積回路の設計方法。
A layout design based on the netlist with the cells replaced,
2. The method of designing a semiconductor integrated circuit according to claim 1, further comprising each step of performing timing verification in consideration of variations with respect to a circuit having a layout generated by the layout design.
該セルを入れ替える段階は、該入力端から該複数のパスを上流に向かいトレースしていくことにより順次見つかったセルを入れ替える段階である請求項1記載の半導体集積回路の設計方法。   2. The method of designing a semiconductor integrated circuit according to claim 1, wherein the step of replacing the cells is a step of replacing cells sequentially found by tracing the plurality of paths upstream from the input end. 該セルを入れ替える段階は、
着目セルを該バラツキ値がより小さな別の種類のセルに入れ替えた場合の該ワーストタイミングスラックを算出し、
該算出されたワーストタイミングスラックが該所定のスラック値よりも悪いか否かを判断する
各段階を含む請求項1記載の半導体集積回路の設計方法。
The step of replacing the cells is as follows:
Calculating the worst timing slack when the target cell is replaced with another type of cell having a smaller variation value;
2. The method for designing a semiconductor integrated circuit according to claim 1, further comprising: determining whether the calculated worst timing slack is worse than the predetermined slack value.
該所定のスラック値はゼロである請求項1記載の半導体集積回路の設計方法。   2. The method of designing a semiconductor integrated circuit according to claim 1, wherein the predetermined slack value is zero.
JP2008080732A 2008-03-26 2008-03-26 A method for designing a semiconductor integrated circuit. Expired - Fee Related JP4973561B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008080732A JP4973561B2 (en) 2008-03-26 2008-03-26 A method for designing a semiconductor integrated circuit.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008080732A JP4973561B2 (en) 2008-03-26 2008-03-26 A method for designing a semiconductor integrated circuit.

Publications (2)

Publication Number Publication Date
JP2009237727A true JP2009237727A (en) 2009-10-15
JP4973561B2 JP4973561B2 (en) 2012-07-11

Family

ID=41251623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008080732A Expired - Fee Related JP4973561B2 (en) 2008-03-26 2008-03-26 A method for designing a semiconductor integrated circuit.

Country Status (1)

Country Link
JP (1) JP4973561B2 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221456A (en) * 1995-02-17 1996-08-30 Hitachi Ltd Timing verification method and system therefor
JP2000082092A (en) * 1998-06-29 2000-03-21 Matsushita Electric Ind Co Ltd Design method for integrated circuit
JP2000183171A (en) * 1998-12-14 2000-06-30 Hitachi Ltd Method of designing logic integrated circuit, and logic circuit
JP2005092885A (en) * 2003-09-19 2005-04-07 Internatl Business Mach Corp <Ibm> System and method for statistical timing analysis of digital circuits
JP2007173509A (en) * 2005-12-22 2007-07-05 Renesas Technology Corp Semiconductor integrated circuit device and method for design thereof
JP2007280222A (en) * 2006-04-10 2007-10-25 Toshiba Corp Design system of semiconductor integrated circuit
JP2009075822A (en) * 2007-09-20 2009-04-09 Toshiba Corp Semiconductor circuit design apparatus

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221456A (en) * 1995-02-17 1996-08-30 Hitachi Ltd Timing verification method and system therefor
JP2000082092A (en) * 1998-06-29 2000-03-21 Matsushita Electric Ind Co Ltd Design method for integrated circuit
JP2000183171A (en) * 1998-12-14 2000-06-30 Hitachi Ltd Method of designing logic integrated circuit, and logic circuit
JP2005092885A (en) * 2003-09-19 2005-04-07 Internatl Business Mach Corp <Ibm> System and method for statistical timing analysis of digital circuits
JP2007173509A (en) * 2005-12-22 2007-07-05 Renesas Technology Corp Semiconductor integrated circuit device and method for design thereof
JP2007280222A (en) * 2006-04-10 2007-10-25 Toshiba Corp Design system of semiconductor integrated circuit
JP2009075822A (en) * 2007-09-20 2009-04-09 Toshiba Corp Semiconductor circuit design apparatus

Also Published As

Publication number Publication date
JP4973561B2 (en) 2012-07-11

Similar Documents

Publication Publication Date Title
US9251300B2 (en) Methods and tools for designing integrated circuits with auto-pipelining capabilities
JP5410523B2 (en) Method and apparatus for close placement of ordered cells
US10031986B1 (en) System and method for creating a spice deck for path-based analysis of an electronic circuit design using a stage-based technique
JP2007183932A (en) Timing analysis method and device
US8266566B2 (en) Stability-dependent spare cell insertion
JP2004502259A (en) Method and system for checking tiered metal terminations, surroundings, and exposure
US11651131B2 (en) Glitch source identification and ranking
US11681842B2 (en) Latency offset in pre-clock tree synthesis modeling
US7882483B2 (en) Method for checking constraints equivalence of an integrated circuit design
Papa et al. RUMBLE: an incremental, timing-driven, physical-synthesis optimization algorithm
US9047434B2 (en) Clustering for processing of circuit design data
US11574101B2 (en) Techniques for providing optimizations based on categories of slack in timing paths
JP5444985B2 (en) Information processing device
US11042678B2 (en) Clock gate latency modeling based on analytical frameworks
US10540464B1 (en) Critical path aware voltage drop analysis of an integrated circuit
JP4973561B2 (en) A method for designing a semiconductor integrated circuit.
Wu et al. Two approaches for timing-driven placement by Lagrangian relaxation
US20140130000A1 (en) Structural rule analysis with tcl scripts in synthesis or sta tools and integrated circuit design tools
JP5262435B2 (en) Circuit design apparatus and circuit design method
US8689161B2 (en) Methods for designing integrated circuits employing pre-determined timing-realizable clock-insertion delays and integrated circuit design tools
Pasricha et al. Capps: A framework for power–performance tradeoffs in bus-matrix-based on-chip communication architecture synthesis
CN113536726A (en) Vector generation for maximum instantaneous peak power
US11087059B2 (en) Clock domain crossing verification of integrated circuit design using parameter inference
JP5929367B2 (en) Semiconductor design apparatus and semiconductor design method
Kumar et al. Methodology for Timing Closure in VLSI Physical Design containing high clock to Q Memory Delay

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120313

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120326

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150420

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees