JP2011232787A - Designing device, designing method and program for semiconductor integrated circuit - Google Patents
Designing device, designing method and program for semiconductor integrated circuit Download PDFInfo
- Publication number
- JP2011232787A JP2011232787A JP2010099581A JP2010099581A JP2011232787A JP 2011232787 A JP2011232787 A JP 2011232787A JP 2010099581 A JP2010099581 A JP 2010099581A JP 2010099581 A JP2010099581 A JP 2010099581A JP 2011232787 A JP2011232787 A JP 2011232787A
- Authority
- JP
- Japan
- Prior art keywords
- flip
- flop
- clock
- signal
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明は、半導体集積回路の設計装置、設計方法及びプログラムに関するものである。 The present invention relates to a semiconductor integrated circuit design apparatus, design method, and program.
LSI設計では、フリップフロップで機能ブロック間の同期をとることで、データの受け渡しを行っている。一方、LSIのレイアウト生成後、フリップフロップ間でホールド時間の規定を満たしているかシミュレーション等で遅延検査を行う。この検査でホールドエラーが発生した箇所に対しては、遅延を発生させる回路を設けたり、逆相のクロックで動作するフリップフロップを挿入したりして対処を行う。なお、このような技術が特許文献1や特許文献2等に開示されている。
In LSI design, data is transferred by synchronizing the functional blocks with flip-flops. On the other hand, after the LSI layout is generated, a delay test is performed by simulation or the like to check whether the hold time is defined between flip-flops. The location where a hold error has occurred in this inspection is dealt with by providing a circuit for generating a delay or inserting a flip-flop operating with a reverse phase clock. Such a technique is disclosed in
例えば、図24、図27に、クロックゲーティングされた2つのフリップフロップを有し、そのフリップフロップ間に、ホールドエラーを回避するため新たにクロックゲーティングされたフリップフロップを挿入する半導体集積回路の設計例を示す。 For example, FIG. 24 and FIG. 27 show a semiconductor integrated circuit having two flip-flops clock-gated and inserting a new clock-gated flip-flop between the flip-flops to avoid a hold error. A design example is shown.
まず、図24にフリップフロップ挿入前の半導体集積回路1の構成を示す。図24に示すように、半導体集積回路1は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。
First, FIG. 24 shows a configuration of the semiconductor integrated
フリップフロップFF1は、前段回路からデータをデータ入力端子Dに入力する。そして、クロック入力端子に入力するゲーティングクロック信号GCLK1に応じて、データ入力端子Dに入力したデータをラッチし、データ出力端子QにデータAとして出力する。 The flip-flop FF1 inputs data from the previous circuit to the data input terminal D. Then, the data input to the data input terminal D is latched according to the gating clock signal GCLK1 input to the clock input terminal, and is output as the data A to the data output terminal Q.
このデータAは、所定の論理動作を行う論理回路10を経て、データBとして、フリップフロップFF2のデータ入力端子Dに入力される。そして、フリップフロップFF2は、クロック入力端子に入力するゲーティングクロック信号GCLK2に応じてデータBをラッチし、データ出力端子Qに出力する。
The data A is input to the data input terminal D of the flip-flop FF2 as data B through the
ここで、クロックゲーティングセルCGC1、CGC2は、それぞれフリップフロップFF11とAND回路AND11とを有する。図25にクロックゲーティングセルCGC1の単体の構成と、その動作を説明するタイミングチャートを示す。 Here, each of the clock gating cells CGC1 and CGC2 includes a flip-flop FF11 and an AND circuit AND11. FIG. 25 shows a single unit configuration of the clock gating cell CGC1 and a timing chart for explaining the operation thereof.
フリップフロップFF11は、データ入力端子Dにイネーブル信号EN1を入力する。また、クロック入力端子に基準クロックCLKの逆相(半周期ずれた)クロック信号を入力する。フリップフロップFF11は、クロック入力端子に入力したクロック信号に応じて、イネーブル信号EN1をラッチし、データ出力端子Qから出力する。 The flip-flop FF11 inputs the enable signal EN1 to the data input terminal D. In addition, a clock signal having a phase opposite to that of the reference clock CLK (half cycle shifted) is input to the clock input terminal. The flip-flop FF11 latches the enable signal EN1 according to the clock signal input to the clock input terminal, and outputs it from the data output terminal Q.
AND回路AND11は、一方の入力端子に基準クロックを入力し、他方の入力端子にフリップフロップFF11のデータ出力端子Qからのデータを入力する。そして、積演算し、出力端子から出力する。 The AND circuit AND11 inputs a reference clock to one input terminal, and inputs data from the data output terminal Q of the flip-flop FF11 to the other input terminal. The product is calculated and output from the output terminal.
図25に示すように、時刻t1以前は、イネーブル信号EN1がハイレベルであり、フリップフロップFF11の出力データもハイレベルとなっている。このため、AND回路AND11の出力端子からは、他方の入力端子に入力される基準クロックと同位相のゲーティングクロック信号GCLK1が出力される。 As shown in FIG. 25, before time t1, the enable signal EN1 is at a high level, and the output data of the flip-flop FF11 is also at a high level. Therefore, a gating clock signal GCLK1 having the same phase as the reference clock input to the other input terminal is output from the output terminal of the AND circuit AND11.
時刻t1にイネーブル信号EN1がロウレベルに立ち下がる。その後、基準クロックCLKの逆相(半周期ずれた)クロック信号の立ち上がりエッジに対応し、時刻t2にフリップフロップFF11の出力データもロウレベルとなる。このため、AND回路AND11の出力は、ロウレベルに固定される。 At time t1, the enable signal EN1 falls to the low level. Thereafter, corresponding to the rising edge of the clock signal having a reverse phase (shifted by a half cycle) of the reference clock CLK, the output data of the flip-flop FF11 also becomes low level at time t2. For this reason, the output of the AND circuit AND11 is fixed at the low level.
時刻t3にイネーブル信号EN1が再びハイレベルに立ち上がる。その後、基準クロックCLKの逆相(半周期ずれた)クロック信号の立ち上がりエッジに対応し、時刻t4にフリップフロップFF11の出力データもハイレベルとなる。これ以降は、時刻t1以前と同様に、AND回路AND11の出力は、基準クロックと同位相のゲーティングクロック信号GCLK1が出力される。 At time t3, the enable signal EN1 rises again to the high level. After that, the output data of the flip-flop FF11 also becomes high level at time t4 corresponding to the rising edge of the clock signal having the opposite phase (half cycle shifted) of the reference clock CLK. Thereafter, as in the case before time t1, the output of the AND circuit AND11 is the gating clock signal GCLK1 having the same phase as the reference clock.
なお、クロックゲーティングセルCGC2についても、上記説明のうちイネーブル信号EN1がEN2に、ゲーティングクロック信号GCLK2がGCLK1に置き換わる以外は同様である。これ以降、クロックゲーティングセルCGC1、CGC2と同様の構成を有するクロックゲーティングセルを「AND型クロックゲーティングセル」と称す。 The same applies to the clock gating cell CGC2 except that the enable signal EN1 is replaced with EN2 and the gating clock signal GCLK2 is replaced with GCLK1 in the above description. Hereinafter, a clock gating cell having the same configuration as the clock gating cells CGC1 and CGC2 is referred to as an “AND type clock gating cell”.
図26に、図24の半導体集積回路1の動作を説明するタイミングチャートを示す。但し、この動作タイミングチャートでは、ホールドエラーが発生せず、半導体集積回路1が理想的な動作を行っているものとする。以下では、それを前提に説明する。
FIG. 26 is a timing chart for explaining the operation of the semiconductor integrated
図26に示すように、時刻t1にゲーティングクロック信号GCLK1の立ち上がりに応じてフリップフロップFF1は、データ入力端子Dに入力したデータをラッチし、データ出力端子からデータA1として出力する。このデータA1は、論理回路10を経てフリップフロップFF2にデータB1として入力される。
As shown in FIG. 26, the flip-flop FF1 latches the data input to the data input terminal D in response to the rise of the gating clock signal GCLK1 at time t1, and outputs the data as data A1 from the data output terminal. The data A1 is input as data B1 to the flip-flop FF2 via the
時刻t2にイネーブル信号EN1がロウレベルに立ち下がる。このため、ゲーティングクロック信号GCLK1がロウレベルに固定され、フリップフロップFF1からの出力データもデータA1で固定される。同様に、論理回路10からフリップフロップFF2に入力されるデータもデータB1に固定される。
At time t2, the enable signal EN1 falls to the low level. For this reason, the gating clock signal GCLK1 is fixed at the low level, and the output data from the flip-flop FF1 is also fixed at the data A1. Similarly, data input from the
一方、イネーブル信号EN2は、時刻t5以前においてハイレベルである。よって、時刻t1、t3、t4に、クロックゲーティングセルCGC2から基準クロックと同相のゲーティングクロック信号GCLK2が出力されている。このため、フリップフロップFF2は、時刻t3、t4のゲーティングクロック信号GCLK2の立ち上がりに応じて、データB1をラッチし、出力する。 On the other hand, the enable signal EN2 is at a high level before time t5. Therefore, the gating clock signal GCLK2 in phase with the reference clock is output from the clock gating cell CGC2 at times t1, t3, and t4. Therefore, the flip-flop FF2 latches and outputs the data B1 in response to the rising of the gating clock signal GCLK2 at times t3 and t4.
時刻t5にイネーブル信号EN2がロウレベルに立ち下がる。このため、ゲーティングクロック信号GCLK2がロウレベルに固定される。よって、フリップフロップFF2の出力は、時刻t4でラッチしたデータB1で固定される。 At time t5, the enable signal EN2 falls to the low level. For this reason, the gating clock signal GCLK2 is fixed to the low level. Therefore, the output of the flip-flop FF2 is fixed at the data B1 latched at time t4.
時刻t6にイネーブル信号EN1がハイレベルに立ち上がる。このため、クロックゲーティングセルCGC1から再び基準クロックと同相のゲーティングクロック信号GCLK1が出力される。そして、このゲーティングクロック信号GCLK1の立ち上がりエッジに応じて、時刻t7、t9、t10、t11・・・に、フリップフロップFF1からデータA6、A7、A8、A9・・・が出力される。なお、このデータA6、A7、A8、A9・・・は、論理回路10を経てフリップフロップFF2にデータB6、B7、B8、B9・・・として入力される。 At time t6, the enable signal EN1 rises to a high level. For this reason, the gating clock signal GCLK1 in phase with the reference clock is output from the clock gating cell CGC1 again. In response to the rising edge of the gating clock signal GCLK1, data A6, A7, A8, A9... Are output from the flip-flop FF1 at times t7, t9, t10, t11. The data A6, A7, A8, A9,... Are input as data B6, B7, B8, B9,.
一方、時刻t8にイネーブル信号EN2がハイレベルに立ち上がる。このため、クロックゲーティングセルCGC2から再び基準クロックと同相のゲーティングクロック信号GCLK2が出力される。そして、時刻t9、t10、t11・・・に、それぞれゲーティングクロック信号GCLK2の立ち上がりエッジに応じて、フリップフロップFF2が、論理回路10からのデータB6、B7、B8、・・・をラッチして、出力する。
On the other hand, the enable signal EN2 rises to a high level at time t8. For this reason, the gating clock signal GCLK2 in phase with the reference clock is output from the clock gating cell CGC2 again. Then, at times t9, t10, t11,..., The flip-flop FF2 latches the data B6, B7, B8,... From the
しかし、図24の半導体集積回路1が上述したような理想的動作とならず、ホールドエラーが発生した場合、フリップフロップFF1、FF2の間に、基準クロックCLKの逆相(半周期ずれた)クロック信号に同期したフリップフロップを接続し、ホールドエラー補償を行う。
However, when the semiconductor integrated
図27にフリップフロップ挿入後の半導体集積回路1の構成を示す。図27に示すように、半導体集積回路1は、フリップフロップFF1、FF2、FF3と、クロックゲーティングセルCGC1、CGC2とを有する。図27の半導体集積回路1が図24と異なるのは、論理回路10とフリップフロップFF2との間に、フリップフロップFF3が挿入されている点である。なお、このフリップフロップFF3は、ホールドエラーを回避するため、クロック入力端子にクロックゲーティングセルCGC2の出力するゲーティングクロック信号GCLK2の逆相の(半周期ずれた)クロック信号を入力する。
FIG. 27 shows the configuration of the semiconductor integrated
図28に、図27の半導体集積回路1の動作を説明するタイミングチャートを示す。図27に示すように、時刻t1にゲーティングクロック信号GCLK1の立ち上がりに応じてフリップフロップFF1は、データ入力端子Dに入力したデータをラッチし、データ出力端子からデータA1として出力する。このデータA1は、論理回路10を経てフリップフロップFF3にデータB1として入力される。
FIG. 28 is a timing chart for explaining the operation of the semiconductor integrated
時刻t2にイネーブル信号EN1がロウレベルに立ち下がる。このため、ゲーティングクロック信号GCLK1がロウレベルに固定され、フリップフロップFF1からの出力データもデータA1で固定される。同様に、フリップフロップFF3に入力されるデータもデータB1に固定される。 At time t2, the enable signal EN1 falls to the low level. For this reason, the gating clock signal GCLK1 is fixed at the low level, and the output data from the flip-flop FF1 is also fixed at the data A1. Similarly, data input to the flip-flop FF3 is also fixed to data B1.
一方、イネーブル信号EN2は、時刻t7以前においてハイレベルである。よって、時刻t1、t4、t6に立ち上がりエッジを有した、基準クロックと同相のゲーティングクロック信号GCLK2が出力されている。 On the other hand, the enable signal EN2 is at a high level before time t7. Therefore, the gating clock signal GCLK2 having the rising edge at the times t1, t4, and t6 and having the same phase as the reference clock is output.
ここで、上述したように、フリップフロップFF3は、クロック入力端子にゲーティングクロック信号GCLK2の逆相の(半周期ずれた)クロック信号GCLK2Bを入力する。このため、フリップフロップFF3は、時刻t3、t5、t8のゲーティングクロック信号GCLK2Bの立ち上がりに応じて、論理回路10からのデータB1をラッチし、出力する。
Here, as described above, the flip-flop FF3 inputs the clock signal GCLK2B having a phase opposite to that of the gating clock signal GCLK2 (shifted by a half cycle) to the clock input terminal. Therefore, the flip-flop FF3 latches and outputs the data B1 from the
更に、フリップフロップFF2が、時刻t4、t6のゲーティングクロック信号GCLK2の立ち上がりに応じて、フリップフロップFF3からのデータB1をラッチし、出力する。 Further, the flip-flop FF2 latches and outputs the data B1 from the flip-flop FF3 in response to the rising of the gating clock signal GCLK2 at times t4 and t6.
時刻t7にイネーブル信号EN2がロウレベルに立ち下がる。このため、ゲーティングクロック信号GCLK2がロウレベル、ゲーティングクロック信号GCLK2Bがハイレベルに固定される。よって、フリップフロップFF3の出力は、時刻t8でラッチしたデータB1で固定される。フリップフロップFF2の出力は、時刻t6でラッチしたデータB1で固定される。 At time t7, the enable signal EN2 falls to the low level. For this reason, the gating clock signal GCLK2 is fixed to the low level and the gating clock signal GCLK2B is fixed to the high level. Therefore, the output of the flip-flop FF3 is fixed at the data B1 latched at time t8. The output of the flip-flop FF2 is fixed at the data B1 latched at time t6.
時刻t9にイネーブル信号EN1がハイレベルに立ち上がる。このため、クロックゲーティングセルCGC1から再び基準クロックと同相のゲーティングクロック信号GCLK1が出力される。そして、このゲーティングクロック信号GCLK1の立ち上がりエッジに応じて、時刻t10、t12、t14、t16・・・に、フリップフロップFF1からデータA6、A7、A8、A9・・・が出力される。なお、このデータA6、A7、A8、A9・・・は、論理回路10を経てフリップフロップFF3にデータB5、B6、B7、B8、B9・・・として入力される。 At time t9, the enable signal EN1 rises to a high level. For this reason, the gating clock signal GCLK1 in phase with the reference clock is output from the clock gating cell CGC1 again. In response to the rising edge of the gating clock signal GCLK1, data A6, A7, A8, A9... Are output from the flip-flop FF1 at times t10, t12, t14, t16. The data A6, A7, A8, A9,... Are inputted as data B5, B6, B7, B8, B9,.
一方、時刻t11にイネーブル信号EN2がハイレベルに立ち上がる。このため、クロックゲーティングセルCGC2から再び基準クロックと同相のゲーティングクロック信号GCLK2が出力される。そして、それぞれゲーティングクロック信号GCLK2Bの立ち上がりエッジに応じて、時刻t13、t15、t17・・・に、フリップフロップFF3が、論理回路10からのデータB7、B8、B9・・・をラッチして、出力する。
On the other hand, the enable signal EN2 rises to a high level at time t11. For this reason, the gating clock signal GCLK2 in phase with the reference clock is output from the clock gating cell CGC2 again. Then, in response to the rising edge of the gating clock signal GCLK2B, the flip-flop FF3 latches the data B7, B8, B9... From the
更に、時刻t14、t16・・・で、それぞれゲーティングクロック信号GCLK2の立ち上がりエッジに応じて、フリップフロップFF2が、上述したフリップフロップFF3の出力するデータB7、B8・・・をラッチして、出力する。 Further, at times t14, t16,..., The flip-flop FF2 latches and outputs the data B7, B8,... Output from the above-described flip-flop FF3 in response to the rising edge of the gating clock signal GCLK2. To do.
しかし、ホールドエラー回避のため、図27のようにゲートクロックキングされたフリップフロップFF3を挿入した場合、以下のような問題が発生する。まず、図26に示すように、理想的な動作を行う図24の半導体集積回路1では、時刻t1から7個目の基準クロック立ち上がりエッジで(時刻t9)で、フリップフロップFF2がデータB6をラッチ、出力している。
However, when a flip-flop FF3 gate-clocked as shown in FIG. 27 is inserted to avoid a hold error, the following problem occurs. First, as shown in FIG. 26, in the semiconductor integrated
一方、図28に示すように、フリップフロップFF3を挿入した図27の半導体集積回路1では、時刻t1から7個目の基準クロックの立ち上がりエッジで(時刻t12)、フリップフロップFF2がデータB1をラッチ、出力している。
On the other hand, as shown in FIG. 28, in the semiconductor integrated
これは、フリップフロップFF2の前段のフリップフロップFF3がゲーティングクロック信号GCLK2の逆相のゲーティングクロック信号GCLK2Bの立ち上がりエッジに応じてデータをラッチ、出力するために発生する。 This occurs because the flip-flop FF3 in the previous stage of the flip-flop FF2 latches and outputs data according to the rising edge of the gating clock signal GCLK2B having a phase opposite to that of the gating clock signal GCLK2.
図28に示すように、フリップフロップFF3が入力したデータをラッチし、出力できるのが時刻t13である。このため、フリップフロップFF3は、時刻t1から7個目の基準クロック立ち上がりエッジ(時刻t12)では、論理回路10からのデータB6をラッチできず、破棄してしまう。よって、フリップフロップFF3を挿入した半導体集積回路1(図27)では、フリップフロップFF2の時刻t1から7個目の基準クロック立ち上がりエッジにおいて出力するデータが、理想的動作を行う半導体集積回路1(図24)のデータと異なった結果となる。よって、フリップフロップFF3の挿入した半導体集積回路1(図27)は、フリップフロップFF3の挿入しない半導体集積回路1(図24)と異なる動作結果を出力してしまい、動作不正が発生する。
As shown in FIG. 28, the data input by the flip-flop FF3 can be latched and output at time t13. Therefore, the flip-flop FF3 cannot latch the data B6 from the
また、このような動作不正を起こさない構成として、図29に示すように、挿入したフリップフロップFF3の入力クロック信号をゲーティングしない半導体集積回路1の構成が考えられる。
Further, as a configuration that does not cause such operation irregularity, as shown in FIG. 29, a configuration of the semiconductor integrated
この場合、図30の動作タイミングチャートに示すように、時刻t2でのイネーブル信号EN2の立ち下がりに関係なく、フリップフロップFF3に基準クロックの逆相クロック信号CLKBが入力される。このクロック信号CLKBの立ち上がりエッジに応じて、フリップフロップFF3が入力データをラッチし、出力する。 In this case, as shown in the operation timing chart of FIG. 30, the reverse-phase clock signal CLKB of the reference clock is input to the flip-flop FF3 regardless of the fall of the enable signal EN2 at time t2. In response to the rising edge of the clock signal CLKB, the flip-flop FF3 latches and outputs the input data.
このため、時刻t2以降、フリップフロップFF3は、時刻t3、t4、t5、t6、t8、t10・・・で、それぞれデータB1、B1、B1、B6、B7、B8をラッチし、後段のフリップフロップFF2へ出力する。そして、フリップフロップFF2は、イネーブル信号EN2がハイレベルに立ち上がった後、時刻t7、t9、t11・・・で、ゲーティングクロック信号GCLK2の立ち上がりエッジに応じて、それぞれデータB6、B7、B8・・・をラッチし、出力する。 Therefore, after time t2, the flip-flop FF3 latches data B1, B1, B1, B6, B7, B8 at time t3, t4, t5, t6, t8, t10. Output to FF2. Then, after the enable signal EN2 rises to a high level, the flip-flop FF2 receives data B6, B7, B8,... At times t7, t9, t11... According to the rising edge of the gating clock signal GCLK2, respectively.・ Latch and output.
図30からもわかるように、この場合、フリップフロップFF3の挿入後の半導体集積回路1(図29)と、挿入前の半導体集積回路1(図24)とで、フリップフロップFF2が出力するデータは同じとなり、動作不正が発生しない。 As can be seen from FIG. 30, in this case, the data output by the flip-flop FF2 between the semiconductor integrated circuit 1 (FIG. 29) after the insertion of the flip-flop FF3 and the semiconductor integrated circuit 1 (FIG. 24) before the insertion is It becomes the same, and operation fraud does not occur.
しかし、このフリップフロップFF3は、クロックゲーティングされていないため、イネーブル信号に関わりなく常に動作し続けてしまう。このため、クロックゲーティングを行うことで、折角フリップフロップFF1、FF2の消費電力を削減しても、フリップフロップFF3の消費電力分の増加で、半導体集積回路1のトータルの消費電力低減効果が薄れてしまう問題が発生する。よって、挿入されるフリップフロップFF3は、クロックゲーティングを前提として既存回路に挿入されることが期待される。
However, since the flip-flop FF3 is not clock-gated, it always operates regardless of the enable signal. For this reason, even if the power consumption of the folding flip-flops FF1 and FF2 is reduced by performing clock gating, the total power consumption reduction effect of the semiconductor integrated
以上のように、ホールドエラー解消のため、前段と後段のフリップフロップの間に、クロックゲーティングされたフリップフロップを挿入する場合、フリップフロップの挿入の仕方によっては、図28で示したような動作不正が発生する可能性がある。よって、ホールドエラー補償のためクロックゲーティングされたフリップフロップの挿入する場合に、上記のような動作不正の発生しない半導体集積装置の設計装置、設計方法が求められている。 As described above, in order to eliminate a hold error, when a clock-gated flip-flop is inserted between the front-stage flip-flop and the rear-stage flip-flop, the operation shown in FIG. 28 is performed depending on how the flip-flop is inserted. Fraud may occur. Therefore, there is a need for a semiconductor integrated device design apparatus and design method that does not cause the above-described operation fraud when a clock-gated flip-flop is inserted for hold error compensation.
なお、特許文献1の技術もホールドエラーを補償するための技術である。この従来技術では、前段フリップフロップと後段フリップフロップとの間にローラッチ回路を挿入している。このローラッチは、遅延素子として動作し、ホールドエラーを回避する。しかし、このローラッチ回路に対してホールドエラーが発生した場合、ローラッチ回路が遅延素子として動作せず、前段フリップフロップのラッチした信号が、遅延せずそのまま後段フリップフロップに入力されてしまう可能性がある。このため、ローラッチ回路そのもののホールドエラーを回避する処理が必要となる。
The technique of
また、特許文献2の技術もホールドエラーを補償するための技術である。この従来技術では、回路のホールド補償するため、フリップフロップの後段にクロック信号の半周期の遅延を設けている。この半周期の遅延を設ける機構として、ローラッチ回路と逆相フリップフロップが記載されている。しかし、ローラッチ回路を用いた場合は、上記特許文献1と同様、ローラッチ回路そのもののホールドエラーを回避する処理が必要となる。また、逆相フリップフロップを用いた場合は、クロックゲーティングに関する記載がなく、図28で説明した問題が発生する可能性がある。
The technique of
本発明の一態様は、クロック入力端子に入力されるクロック信号に応じて、入力データをラッチし、出力する第1、第2のフリップフロップを有し、前記第2のフリップフロップが、所定の論理回路を経由した前記第1のフリップフロップの出力信号を入力される半導体集積回路において、前記第1のフリップフロップと前記第2のフリップフロップとの間に新たに、前記第1もしくは第2のフリップフロップに入力されるクロック信号の半周期ずれたクロック信号に応じて、入力データをラッチし出力する第3のフリップフロップを接続する半導体集積回路の設計方法であって、前記半導体集積回路が、少なくとも入力される第1のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第1の値となる第1のクロックゲーティング回路と、入力される第2のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第2の値となる第2のクロックゲーティング回路と、のうちどちらか一方を有し、前記第1のフリップフロップに入力されるクロック信号が、前記第1のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記第1のフリップフロップと前記論理回路との間に接続し、入力クロック信号を前記第1のクロックゲーティング回路からの信号とし、もしくは、前記第2のフリップフロップに入力されるクロック信号が、前記第2のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記論理回路と前記第2のフリップフロップとの間に接続し、入力クロック信号を前記第2のクロックゲーティング回路からの信号とする
半導体集積回路の設計方法である。
One embodiment of the present invention includes first and second flip-flops that latch and output input data in accordance with a clock signal input to a clock input terminal. The second flip-flop In a semiconductor integrated circuit to which an output signal of the first flip-flop via a logic circuit is input, the first or second flip-flop is newly provided between the first flip-flop and the second flip-flop. A method of designing a semiconductor integrated circuit that connects a third flip-flop that latches and outputs input data according to a clock signal that is shifted by a half cycle of a clock signal input to the flip-flop, the semiconductor integrated circuit comprising: At least the first enable signal that is input outputs a signal that is synchronized with the reference clock when activated, and the signal that is output when deactivated is the first signal. The first clock gating circuit having the value of " and the second enable signal input outputs a signal synchronized with the reference clock when activated, and the signal output when deactivated is the second value. The second clock gating circuit, and the clock signal input to the first flip-flop is a signal from the first clock gating circuit, The third flip-flop is connected between the first flip-flop and the logic circuit, and an input clock signal is used as a signal from the first clock gating circuit, or the second flip-flop Is a signal from the second clock gating circuit, the third flip-flop is connected to the logic circuit and the logic circuit. Connected between the second flip-flop, a method for designing a semiconductor integrated circuit of the input clock signal signal from the second clock gating circuit.
本発明の他の態様は、クロック入力端子に入力されるクロック信号に応じて、入力データをラッチし、出力する第1、第2のフリップフロップを有し、前記第2のフリップフロップが、所定の論理回路を経由した前記第1のフリップフロップの出力信号を入力される半導体集積回路において、前記第1のフリップフロップと前記第2のフリップフロップとの間に新たに、前記第1もしくは第2のフリップフロップに入力されるクロック信号の半周期ずれたクロック信号に応じて、入力データをラッチし出力する第3のフリップフロップを接続する半導体集積回路の設計装置であって、前記半導体集積回路が、少なくとも入力される第1のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第1の値となる第1のクロックゲーティング回路と、入力される第2のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第2の値となる第2のクロックゲーティング回路と、のうちどちらか一方を有し、前記第1のフリップフロップに入力されるクロック信号が、前記第1のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記第1のフリップフロップと前記論理回路との間に接続し、入力クロック信号を前記第1のクロックゲーティング回路からの信号とし、もしくは、前記第2のフリップフロップに入力されるクロック信号が、前記第2のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記論理回路と前記第2のフリップフロップとの間に接続し、入力クロック信号を前記第2のクロックゲーティング回路からの信号とする半導体集積回路の設計装置である。 Another aspect of the present invention includes first and second flip-flops that latch and output input data in accordance with a clock signal input to a clock input terminal, and the second flip-flop has a predetermined value. In the semiconductor integrated circuit to which the output signal of the first flip-flop via the logic circuit is input, the first or second flip-flop is newly provided between the first flip-flop and the second flip-flop. A semiconductor integrated circuit design apparatus for connecting a third flip-flop that latches and outputs input data in response to a clock signal shifted by a half cycle of the clock signal input to the flip-flop, wherein the semiconductor integrated circuit includes: A signal that is synchronized with the reference clock is output when at least the first enable signal that is input is activated, and a signal that is output when the first enable signal is inactivated. The first clock gating circuit having a value of 1 and the input second enable signal output a signal synchronized with the reference clock when activated, and the signal output when deactivated is the second A clock signal input to the first flip-flop is a signal from the first clock gating circuit. The third flip-flop is connected between the first flip-flop and the logic circuit, and the input clock signal is a signal from the first clock gating circuit, or the second flip-flop When the clock signal input to the clock is a signal from the second clock gating circuit, the third flip-flop is connected to the logic circuit. Connected between the second flip-flop, a design device of a semiconductor integrated circuit according to the signal of the input clock signal from said second clock gating circuit.
本発明の更に他の態様は、クロック入力端子に入力されるクロック信号に応じて、入力データをラッチし、出力する第1、第2のフリップフロップを有し、前記第2のフリップフロップが、所定の論理回路を経由した前記第1のフリップフロップの出力信号を入力される半導体集積回路において、前記第1のフリップフロップと前記第2のフリップフロップとの間に新たに、前記第1もしくは第2のフリップフロップに入力されるクロック信号の半周期ずれたクロック信号に応じて、入力データをラッチし出力する第3のフリップフロップを接続する半導体集積回路の設計プログラムであって、前記半導体集積回路が、少なくとも入力される第1のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第1の値となる第1のクロックゲーティング回路と、入力される第2のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第2の値となる第2のクロックゲーティング回路と、のうちどちらか一方を有し、前記第1のフリップフロップに入力されるクロック信号が、前記第1のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記第1のフリップフロップと前記論理回路との間に接続し、入力クロック信号を前記第1のクロックゲーティング回路からの信号とし、もしくは、前記第2のフリップフロップに入力されるクロック信号が、前記第2のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記論理回路と、前記第2のフリップフロップとの間に接続し、入力クロック信号を前記第2のクロックゲーティング回路からの信号とする半導体集積回路の設計プログラムである。 Still another aspect of the present invention includes first and second flip-flops that latch and output input data in accordance with a clock signal input to a clock input terminal, and the second flip-flop includes: In a semiconductor integrated circuit to which an output signal of the first flip-flop that has passed through a predetermined logic circuit is input, the first or second flip-flop is newly provided between the first flip-flop and the second flip-flop. A semiconductor integrated circuit design program for connecting a third flip-flop that latches and outputs input data in response to a clock signal shifted by a half cycle of a clock signal input to two flip-flops, the semiconductor integrated circuit Output a signal synchronized with the reference clock when at least the first enable signal input is activated, and output when deactivated A signal that outputs a first clock gating circuit whose signal has a first value and a second enable signal that is input are synchronized with the reference clock when activated, and that is output when deactivated Is a second clock gating circuit having a second value, and the clock signal input to the first flip-flop is a signal from the first clock gating circuit. The third flip-flop is connected between the first flip-flop and the logic circuit, and the input clock signal is a signal from the first clock gating circuit, or When the clock signal input to the second flip-flop is a signal from the second clock gating circuit, the third flip-flop is And a circuit, connected between said second flip-flop, a design program of the semiconductor integrated circuit of the signal of the input clock signal from said second clock gating circuit.
本発明は、前段の第1のフリップフロップと、後段の第2のフリップフロップに対応するクロックゲーティング回路のタイプに応じて、半導体集積回路が所定の構成となるよう第3のフリップフロップを接続し、且つ、第3のフリップフロップに対応するクロックゲーティング回路を選択可能とする。 In the present invention, the third flip-flop is connected so that the semiconductor integrated circuit has a predetermined configuration according to the type of the clock gating circuit corresponding to the first flip-flop at the front stage and the second flip-flop at the rear stage. In addition, the clock gating circuit corresponding to the third flip-flop can be selected.
本発明は、ホールドエラー補償のために、前段、後段フリップフロップ間にクロックゲーティングされたフリップフロップを挿入する場合に、フリップフロップ挿入後の半導体集積回路の構成が動作不正となることを防ぐことを可能とする。 The present invention prevents a configuration of a semiconductor integrated circuit after a flip-flop from being illegally operated when a clock-gated flip-flop is inserted between the front and rear flip-flops for hold error compensation. Is possible.
発明の実施の形態1
以下、本発明を適用した具体的な実施の形態1について、図面を参照しながら詳細に説明する。この実施の形態1は、本発明を半導体集積回路の設計装置、及び、設計方法に適用したものである。 Hereinafter, a specific first embodiment to which the present invention is applied will be described in detail with reference to the drawings. In the first embodiment, the present invention is applied to a semiconductor integrated circuit design apparatus and design method.
図1に本実施の形態1にかかる半導体集積回路の設計装置100のブロック構成の一例を示す。図1に示すように、半導体集積回路の設計装置100は、回路設計データベース101と、タイミング解析部102と、フリップフロップ挿入部104とを有する。ここで、フリップフロップ挿入部104が、本発明の特徴部分を構成する。
FIG. 1 shows an example of a block configuration of a semiconductor integrated
回路設計データベース101は、所定の機能を有した半導体集積回路を設計するために必要な様々な情報を有する。この情報には、例えば、半導体集積回路が備える論理素子(AND回路、OR回路、XOR回路等)やフリップフロップ等の情報、前記論理素子等が有する遅延情報、フリップフロップのタイミング情報、そして、単位配線長あたりの遅延情報等がある。
The
タイミング解析部102は、設計した半導体集積回路に対し、ホールドエラーの発生、及び、エラータイミング等を解析する。そして、その解析結果として、半導体集積回路のどこの箇所に、どれくらいのタイミングでホールドエラーが発生しているのかの情報を有するホールドエラー情報103を出力する。
The
フリップフロップ挿入部104は、上記ホールドエラー情報103+に応じて、半導体集積回路の必要な箇所に、ホールドエラー補償のためのフリップフロップ(以下、挿入フリップフロップと称す)を挿入する。フリップフロップ挿入部104は、挿入フリップフロップを挿入する場合、前段及び後段のフリップフロップに対応するクロックゲーティングセルのタイプに応じて、最適な箇所に挿入フリップフロップを挿入する。また同時に、挿入フリップフロップのゲーティングクロックを、前段もしくは後段のフリップフロップに対応するクロックゲーティングセルが出力するゲーティングクロックから選択する。そして、挿入フリップフロップが挿入され、ホールドエラーが解消された半導体集積回路の回路構成及びその接続情報を回路接続情報105として出力する。なお、挿入フリップフロップは、入力するゲーティングクロックの逆相の(半周期ずれた)クロック信号で動作する。
The flip-
また、フリップフロップ挿入部104は、前段及び後段のフリップフロップに対応するクロックゲーティングセルのタイプが所定の組み合わせの場合、前段及び後段のフリップフロップに対応するクロックゲーティングセルのタイプを変更する。変更後は、上述した動作により、挿入フリップフロップを挿入する。
The flip-
以下、図面を参考に、本発明の特徴部分を構成するフリップフロップ挿入部104の動作を説明する。
Hereinafter, the operation of the flip-
図2に、フリップフロップ挿入部104で挿入フリップフロップが挿入されていない半導体集積回路2のブロック構成図を示す。図2に示すように、半導体集積回路2は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。
FIG. 2 shows a block configuration diagram of the semiconductor integrated
フリップフロップFF1は、前段回路からデータをデータ入力端子Dに入力する。そして、クロック入力端子に入力するゲーティングクロック信号GCLK1に応じて、データ入力端子Dに入力したデータをラッチし、データ出力端子QにデータAとして出力する。 The flip-flop FF1 inputs data from the previous circuit to the data input terminal D. Then, the data input to the data input terminal D is latched according to the gating clock signal GCLK1 input to the clock input terminal, and is output as the data A to the data output terminal Q.
このデータAは、所定の論理動作を行う論理回路10を経て、データBとして、フリップフロップFF2のデータ入力端子Dに入力される。そして、フリップフロップFF2は、クロック入力端子に入力するゲーティングクロック信号GCLK2に応じてデータBをラッチし、データ出力端子Qに出力する。
The data A is input to the data input terminal D of the flip-flop FF2 as data B through the
ここで、クロックゲーティングセルCGC1、CGC2は、それぞれフリップフロップFF11とAND回路AND11とを有する。つまり、クロックゲーティングセルCGC1、CGC2は、両方とも上述したAND型クロックゲーティングセルである。 Here, each of the clock gating cells CGC1 and CGC2 includes a flip-flop FF11 and an AND circuit AND11. That is, the clock gating cells CGC1 and CGC2 are both the AND type clock gating cells described above.
フリップフロップFF11は、データ入力端子Dにイネーブル信号EN1を入力する。また、クロック入力端子に基準クロックCLKの逆相(半周期ずれた)クロック信号を入力する。フリップフロップFF11は、クロック入力端子に入力したクロック信号に応じて、イネーブル信号EN1をラッチし、データ出力端子Qから出力する。 The flip-flop FF11 inputs the enable signal EN1 to the data input terminal D. In addition, a clock signal having a phase opposite to that of the reference clock CLK (half cycle shifted) is input to the clock input terminal. The flip-flop FF11 latches the enable signal EN1 according to the clock signal input to the clock input terminal, and outputs it from the data output terminal Q.
AND回路AND11は、一方の入力端子に基準クロックを入力し、他方の入力端子にフリップフロップFF11のデータ出力端子Qからのデータを入力する。そして、積演算し、出力端子から出力する。 The AND circuit AND11 inputs a reference clock to one input terminal, and inputs data from the data output terminal Q of the flip-flop FF11 to the other input terminal. The product is calculated and output from the output terminal.
なお、図2からもわかるように半導体集積回路2は、図24の半導体集積回路1と同様の構成となっている。よって、ホールドエラーが発生しない理想的な動作を行う場合の半導体集積回路2の動作タイミングチャートは、図26と同様でありここでの説明は省略する。
As can be seen from FIG. 2, the semiconductor integrated
次に、タイミング解析部102で、半導体集積回路2にホールドエラーが発生すると判断され、ホールドエラー情報103に基づき、フリップフロップ挿入部104がフリップフロップFF1、FF2の間に、挿入フリップフロップFF3を挿入する場合を考える。図3に、フリップフロップFF3が挿入された場合の半導体集積回路2のブロック構成を示す。
Next, the
図3に示すように、フリップフロップ挿入部104は、挿入フリップフロップFF3を、フリップフロップFF1と論理回路10との間に接続する。そして、フリップフロップ挿入部104は、挿入フリップフロップFF3のゲーティングクロック信号をクロックゲーティングセルCGC1から供給されるよう接続した構成とする。
As shown in FIG. 3, the flip-
図4に、図3の半導体集積回路2の動作を説明するタイミングチャートを示す。図4に示すように、時刻t1にゲーティングクロック信号GCLK1の立ち上がりに応じてフリップフロップFF1は、データ入力端子Dに入力したデータをラッチし、データA1として出力する。時刻t2にイネーブル信号EN1がロウレベルに立ち下がる。このため、ゲーティングクロック信号GCLK1がロウレベルに固定され、フリップフロップFF1からの出力データもデータA1で固定される。
FIG. 4 is a timing chart for explaining the operation of the semiconductor integrated
ここで、フリップフロップFF3は、クロック入力端子にゲーティングクロック信号GCLK1の逆相の(半周期ずれた)クロック信号GCLK1Bを入力する。このため、フリップフロップFF3は、時刻t3のクロック信号GCLK1Bの立ち上がりエッジに応じて、フリップフロップFF1からの出力データA1をラッチし、出力する。但し、上述したように時刻t2以降、ゲーティングクロック信号GCLK1がロウレベルに固定されるため、時刻t3以降のフリップフロップFF3の出力データもデータA1で固定される。このデータA1は、論理回路10を経てフリップフロップFF2にデータB1として入力される。
Here, the flip-flop FF3 inputs a clock signal GCLK1B having a phase opposite to that of the gating clock signal GCLK1 (shifted by a half cycle) to the clock input terminal. Therefore, the flip-flop FF3 latches and outputs the output data A1 from the flip-flop FF1 in accordance with the rising edge of the clock signal GCLK1B at time t3. However, since the gating clock signal GCLK1 is fixed at the low level after time t2 as described above, the output data of the flip-flop FF3 after time t3 is also fixed with the data A1. The data A1 is input as data B1 to the flip-flop FF2 via the
一方、イネーブル信号EN2は、時刻t6以前においてハイレベルである。よって、時刻t1、t4、t5に立ち上がりエッジを有した、基準クロックと同相のゲーティングクロック信号GCLK2が出力されている。このため、フリップフロップFF2は、時刻t4、t5のゲーティングクロック信号GCLK2の立ち上がりに応じて、論理回路10からのデータB1をラッチし、出力する。
On the other hand, the enable signal EN2 is at a high level before time t6. Therefore, the gating clock signal GCLK2 having the rising edge at the times t1, t4, and t5 and having the same phase as the reference clock is output. Therefore, the flip-flop FF2 latches and outputs the data B1 from the
そして、時刻t6にイネーブル信号EN2がロウレベルに立ち下がる。このため、ゲーティングクロック信号GCLK2がロウレベルに固定される。よって、フリップフロップFF2の出力も、時刻t5でラッチしたデータB1で固定される。 At time t6, the enable signal EN2 falls to the low level. For this reason, the gating clock signal GCLK2 is fixed to the low level. Therefore, the output of the flip-flop FF2 is also fixed at the data B1 latched at time t5.
次に、時刻t7にイネーブル信号EN1がハイレベルに立ち上がる。このため、クロックゲーティングセルCGC1から再び基準クロックと同相のゲーティングクロック信号GCLK1が出力される。そして、このゲーティングクロック信号GCLK1の立ち上がりエッジに応じて、時刻t8、t11、t13、t15・・・にフリップフロップFF1からデータA6、A7、A8、A9・・・が出力される。 Next, the enable signal EN1 rises to a high level at time t7. For this reason, the gating clock signal GCLK1 in phase with the reference clock is output from the clock gating cell CGC1 again. In response to the rising edge of the gating clock signal GCLK1, data A6, A7, A8, A9... Are output from the flip-flop FF1 at times t8, t11, t13, t15.
そして、クロック信号GCLK1Bの立ち上がりエッジに応じて、時刻t10、t12、t14、t16・・・にフリップフロップFF2が、それぞれフリップフロップFF3の出力データA6、A7、A8、A9・・・をラッチし、論理回路10へ出力する。このデータA6、A7、A8、A9・・・は、論理回路10を経てフリップフロップFF2にデータB6、B7、B8、B9・・・として入力される。
Then, in response to the rising edge of the clock signal GCLK1B, the flip-flop FF2 latches the output data A6, A7, A8, A9... At the time t10, t12, t14, t16. Output to the
一方、時刻t9にイネーブル信号EN2がハイレベルに立ち上がる。このため、クロックゲーティングセルCGC2から再び基準クロックと同相のゲーティングクロック信号GCLK2が出力される。そして、時刻t11、t13、t15・・・で、それぞれゲーティングクロック信号GCLK2の立ち上がりエッジに応じて、フリップフロップFF2が、論理回路10からのデータB6、B7、B8・・・をラッチして、出力する。
On the other hand, the enable signal EN2 rises to a high level at time t9. For this reason, the gating clock signal GCLK2 in phase with the reference clock is output from the clock gating cell CGC2 again. Then, at times t11, t13, t15..., The flip-flop FF2 latches the data B6, B7, B8... From the
以上のように、挿入フリップフロップFF3を挿入後の図3の半導体集積回路2は、時刻t1から7個目の基準クロック立ち上がりエッジで(時刻t11)で、フリップフロップFF2がデータB6をラッチ、出力している。これは、挿入フリップフロップFF3を挿入していない図2の半導体集積回路2の理想的な動作と同じ動作結果となる。
As described above, the semiconductor integrated
次に、図5に、後段のフリップフロップに対応するクロックゲーティングセルの構成が半導体集積回路2と異なる構成の半導体集積回路3のブロック構成図を示す。また、フリップフロップ挿入部104が、この半導体集積回路3に対して挿入フリップフロップFF3を挿入した構成を図7に示す。
Next, FIG. 5 shows a block configuration diagram of the semiconductor integrated
まず、図5に示すように、半導体集積回路3は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。図5の半導体集積回路3が図2の半導体集積回路2と異なるのは、クロックゲーティングセルCGC2の構成である。よって、特にことわらない限り、ここではクロックゲーティングセルCGC2についてのみ説明する。
First, as shown in FIG. 5, the semiconductor integrated
クロックゲーティングセルCGC2は、フリップフロップFF21とOR回路OR21とを有する。図6にクロックゲーティングセルCGC2の単体の構成と、その動作を説明するタイミングチャートを示す。図6に示すように、時刻t1以前は、イネーブル信号EN2がハイレベルであり、イネーブル信号EN2の反転信号EN2Bがロウレベルである。よって、フリップフロップFF21の出力データもロウレベルとなっている。このため、OR回路OR21の出力端子からは、他方の入力端子に入力される基準クロックと同位相のゲーティングクロック信号GCLK2が出力される。 The clock gating cell CGC2 includes a flip-flop FF21 and an OR circuit OR21. FIG. 6 shows a configuration of a single clock gating cell CGC2 and a timing chart for explaining its operation. As shown in FIG. 6, before time t1, the enable signal EN2 is at a high level, and the inverted signal EN2B of the enable signal EN2 is at a low level. Therefore, the output data of the flip-flop FF21 is also at a low level. For this reason, the gating clock signal GCLK2 having the same phase as the reference clock input to the other input terminal is output from the output terminal of the OR circuit OR21.
時刻t1にイネーブル信号EN2がロウレベルに立ち下がり、反転信号EN2Bがハイレベルに立ち上がる。その後、基準クロックCLKの逆相(半周期ずれた)クロック信号の立ち上がりエッジに対応し、時刻t2にフリップフロップFF21の出力データもハイレベルとなる。このため、OR回路OR21の出力は、ハイレベルに固定される。 At time t1, the enable signal EN2 falls to the low level, and the inverted signal EN2B rises to the high level. Thereafter, the output data of the flip-flop FF21 also becomes a high level at time t2 in response to the rising edge of the clock signal having a reverse phase (shifted by a half cycle) of the reference clock CLK. For this reason, the output of the OR circuit OR21 is fixed at a high level.
時刻t3にイネーブル信号EN2が再びハイレベルに立ち上がり、反転信号EN2Bがロウレベルに立ち下がる。その後、基準クロックCLKの逆相(半周期ずれた)クロック信号の立ち上がりエッジに対応し、時刻t4にフリップフロップFF21の出力データもロウレベルとなる。これ以降は、時刻t1以前と同様に、OR回路OR21の出力は、基準クロックと同位相のゲーティングクロック信号GCLK2が出力される。 At time t3, the enable signal EN2 rises again to the high level, and the inverted signal EN2B falls to the low level. After that, corresponding to the rising edge of the clock signal having a phase opposite to that of the reference clock CLK (shifted by a half cycle), the output data of the flip-flop FF21 also becomes low level at time t4. Thereafter, as in the time before time t1, the output of the OR circuit OR21 is the gating clock signal GCLK2 having the same phase as the reference clock.
これ以降、図5のクロックゲーティングセルCGC2と同様の構成のクロックゲーティングセルを「OR型クロックゲーティングセル」と称す。 Hereinafter, the clock gating cell having the same configuration as the clock gating cell CGC2 of FIG. 5 is referred to as an “OR type clock gating cell”.
なお、ホールドエラーが発生しない理想的な動作を行う場合の半導体集積回路3の動作タイミングチャートは、イネーブル信号EN2がロウレベルの場合、ゲーティングクロック信号GCLK2がハイレベルに固定される以外、基本的に図26と同様である。このため、ここでの説明は省略する。
The operation timing chart of the semiconductor integrated
次に、タイミング解析部102で、半導体集積回路3にホールドエラーが発生すると判断され、ホールドエラー情報103に基づき、フリップフロップ挿入部104がフリップフロップFF1、FF2の間に、挿入フリップフロップFF3を挿入する場合を考える。
Next, the
図7に示すように、フリップフロップ挿入部104によって、フリップフロップFF3が挿入された後の半導体集積回路3は、フリップフロップFF3が、フリップフロップFF1と論理回路10との間に接続され、ゲーティングクロックがクロックゲーティングセルCGC1から供給されるよう接続された構成となる。
As shown in FIG. 7, in the semiconductor integrated
図8に、図7の半導体集積回路3の動作タイミングチャートを示す。但し、この図8の半導体集積回路3の動作タイミングチャートも、イネーブル信号EN2がロウレベルの場合、ゲーティングクロック信号GCLK2がハイレベルに固定される以外、基本的に図4と同様である。このため、ここでの説明は省略する。
FIG. 8 shows an operation timing chart of the semiconductor integrated
以上のように、挿入フリップフロップFF3を挿入後の図7の半導体集積回路3は、時刻t1から7個目の基準クロック立ち上がりエッジで(時刻t11)で、フリップフロップFF2がデータB6をラッチ、出力している。これは、挿入フリップフロップFF3を挿入していない図5の半導体集積回路3の理想的な動作と同じ動作結果となる。
As described above, the semiconductor integrated
以上、図3、図7のように、挿入フリップフロップFF3の前段のフリップフロップFF1に対応したクロックゲーティングセルCGC1がAND型クロックゲーティングセルである場合、フリップフロップ挿入部104は、挿入フリップフロップFF3を、前段フリップフロップFF1と論理回路10との間に接続する。そして、フリップフロップ挿入部104は、挿入フリップフロップFF3のゲーティングクロック信号をクロックゲーティングセルCGC1から供給されるよう接続した構成とする。
As described above, when the clock gating cell CGC1 corresponding to the flip-flop FF1 in the preceding stage of the insertion flip-flop FF3 is an AND type clock gating cell as shown in FIGS. The FF3 is connected between the previous flip-flop FF1 and the
このような接続構成とすることで、挿入フリップフロップFF3を挿入後の半導体集積回路2、3において、動作不正が発生することを回避することができる。そして、この図3、図7に示される半導体集積回路2、3の回路構成を有した回路接続情報105がフリップフロップ挿入部104から出力される。
By adopting such a connection configuration, it is possible to avoid the occurrence of incorrect operation in the semiconductor integrated
更に、図9に、フリップフロップFF1、FF2に対応するクロックゲーティングセルの構成が半導体集積回路2、3と異なる場合の半導体集積回路4のブロック構成図を示す。また、フリップフロップ挿入部104が、この半導体集積回路4に対して挿入フリップフロップFF3を挿入した構成を図10に示す。
Further, FIG. 9 shows a block configuration diagram of the semiconductor integrated
図9に示すように、半導体集積回路4は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。図9の半導体集積回路4は、クロックゲーティングセルCGC1、CGC2が共にOR型クロックゲーティングセルであり、その点が半導体集積回路2、3と異なる。
As shown in FIG. 9, the semiconductor integrated
なお、ホールドエラーが発生しない理想的な動作を行う場合の半導体集積回路4の動作タイミングチャートは、イネーブル信号EN1、EN2がロウレベルの場合、それぞれゲーティングクロック信号GCLK1、GCLK2がハイレベルに固定される以外、基本的に図26と同様である。このため、ここでの説明は省略する。
In the operation timing chart of the semiconductor integrated
次に、タイミング解析部102で、半導体集積回路4にホールドエラーが発生すると判断され、ホールドエラー情報103に基づき、フリップフロップ挿入部104がフリップフロップFF1、FF2の間に、挿入フリップフロップFF3を挿入する場合を考える。
Next, the
図10に示すように、フリップフロップ挿入部104によって、フリップフロップFF3が挿入された後の半導体集積回路4は、フリップフロップFF3が、論理回路10とフリップフロップFF2との間に接続され、ゲーティングクロックがクロックゲーティングセルCGC2から供給されるよう接続された構成となる。
As shown in FIG. 10, in the semiconductor integrated
図11に、図10の半導体集積回路4の動作を説明するタイミングチャートを示す。図11に示すように、時刻t1にゲーティングクロック信号GCLK1の立ち上がりに応じてフリップフロップFF1は、データ入力端子Dに入力したデータをラッチし、データA1として出力する。時刻t2にイネーブル信号EN1がロウレベルに立ち下がる。このため、ゲーティングクロック信号GCLK1がハイレベルに固定され、フリップフロップFF1からの出力データもデータA1で固定される。このデータA1は、論理回路10を経てフリップフロップFF2にデータB1として入力される。
FIG. 11 is a timing chart for explaining the operation of the semiconductor integrated
一方、イネーブル信号EN2は、時刻t7以前においてハイレベルである。よって、時刻t1、t4、t6に立ち上がりエッジを有した、基準クロックと同相のゲーティングクロック信号GCLK2が出力されている。 On the other hand, the enable signal EN2 is at a high level before time t7. Therefore, the gating clock signal GCLK2 having the rising edge at the times t1, t4, and t6 and having the same phase as the reference clock is output.
ここで、上述したように、フリップフロップFF3は、クロック入力端子にゲーティングクロック信号GCLK2の逆相の(半周期ずれた)クロック信号GCLK2Bを入力する。このため、フリップフロップFF3は、時刻t3、t5のクロック信号GCLK2Bの立ち上がりエッジに応じて、論理回路10からの出力データB1をラッチし、出力する。
Here, as described above, the flip-flop FF3 inputs the clock signal GCLK2B having a phase opposite to that of the gating clock signal GCLK2 (shifted by a half cycle) to the clock input terminal. Therefore, the flip-flop FF3 latches and outputs the output data B1 from the
更に、フリップフロップFF2が、時刻t4、t6のゲーティングクロック信号GCLK2の立ち上がりに応じて、フリップフロップFF3からのデータB1をラッチし、出力する。 Further, the flip-flop FF2 latches and outputs the data B1 from the flip-flop FF3 in response to the rising of the gating clock signal GCLK2 at times t4 and t6.
そして、時刻t7にイネーブル信号EN2がロウレベルに立ち下がる。このため、ゲーティングクロック信号GCLK2がハイレベル、ゲーティングクロック信号GCLK2Bがロウレベルに固定される。よって、フリップフロップFF3の出力が、時刻t5でラッチしたデータB1で固定される。同様に、フリップフロップFF2の出力も、時刻t6でラッチしたデータB1で固定される。 At time t7, the enable signal EN2 falls to the low level. Therefore, the gating clock signal GCLK2 is fixed at the high level and the gating clock signal GCLK2B is fixed at the low level. Therefore, the output of the flip-flop FF3 is fixed at the data B1 latched at time t5. Similarly, the output of the flip-flop FF2 is also fixed at the data B1 latched at time t6.
次に、時刻t8にイネーブル信号EN1がハイレベルに立ち上がる。このため、クロックゲーティングセルCGC1から再び基準クロックと同相のゲーティングクロック信号GCLK1が出力される。そして、このゲーティングクロック信号GCLK1の立ち上がりエッジに応じて、時刻t9、t12、t14、t16・・・にフリップフロップFF1からデータA6、A7、A8、A9・・・が論理回路10へ出力される。このデータA6、A7、A8、A9・・・は、論理回路10を経てフリップフロップFF2にデータB6、B7、B8、B9・・・として入力される。
Next, the enable signal EN1 rises to a high level at time t8. For this reason, the gating clock signal GCLK1 in phase with the reference clock is output from the clock gating cell CGC1 again. Then, in response to the rising edge of the gating clock signal GCLK1, data A6, A7, A8, A9... Are output from the flip-flop FF1 to the
一方、時刻t10にイネーブル信号EN2がハイレベルに立ち上がる。このため、クロックゲーティングセルCGC2から再び基準クロックと同相のゲーティングクロック信号GCLK2が出力される。そして、時刻t11、t13、t15、t17・・・で、それぞれゲーティングクロック信号GCLK2Bの立ち上がりエッジに応じて、フリップフロップFF2が、論理回路10からのデータB6、B7、B8、・・・をラッチして、出力する。
On the other hand, the enable signal EN2 rises to a high level at time t10. For this reason, the gating clock signal GCLK2 in phase with the reference clock is output from the clock gating cell CGC2 again. At time t11, t13, t15, t17,..., The flip-flop FF2 latches the data B6, B7, B8,... From the
更に、フリップフロップFF2が、時刻t12、t14、t16・・・のゲーティングクロック信号GCLK2の立ち上がりに応じて、フリップフロップFF3からのデータBB6、B7、B8、・・・をラッチし、出力する。 Further, the flip-flop FF2 latches and outputs the data BB6, B7, B8,... From the flip-flop FF3 in response to the rising of the gating clock signal GCLK2 at times t12, t14, t16.
以上のように、挿入フリップフロップFF3を挿入後の図10の半導体集積回路4は、時刻t1から7個目の基準クロック立ち上がりエッジで(時刻t12)で、フリップフロップFF2がデータB6をラッチ、出力している。これは、挿入フリップフロップFF3を挿入していない図9の半導体集積回路4の理想的な動作と同じ動作結果となる。
As described above, the semiconductor integrated
よって、挿入フリップフロップFF3の前段のフリップフロップFF1及び後段のフリップフロップFF2に対応したクロックゲーティングセルが共にOR型クロックゲーティングセルである場合、フリップフロップ挿入部104は、フリップフロップFF3を、論理回路10と後段フリップフロップFF2との間に接続し、ゲーティングクロックをクロックゲーティングセルCGC2から供給するよう接続する。このような接続構成とすることで、挿入フリップフロップFF3を挿入後の半導体集積回路4において、動作不正が発生することを回避することができる。
Therefore, when both the clock gating cells corresponding to the preceding flip-flop FF1 and the subsequent flip-flop FF2 of the insertion flip-flop FF3 are OR-type clock gating cells, the flip-
そして、この図10に示される半導体集積回路4の回路構成を有した回路接続情報105がフリップフロップ挿入部104から出力される。
Then,
次に、図12に、フリップフロップFF1、FF2に対応するクロックゲーティングセルの構成が半導体集積回路2、3、4と異なる場合の半導体集積回路5のブロック構成図を示す。
Next, FIG. 12 shows a block configuration diagram of the semiconductor integrated
図12に示すように、半導体集積回路5は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。図12の半導体集積回路5は、クロックゲーティングセルCGC1、CGC2が、それぞれOR型、AND型クロックゲーティングセルであり、その点が半導体集積回路2、3、4と異なる。
As shown in FIG. 12, the semiconductor integrated
この半導体集積回路5の場合では、タイミング解析部102でホールドエラーが発生すると判断されても、フリップフロップ挿入部104は、フリップフロップFF1、FF2の間に、新たにフリップフロップFF3を挿入しないと決定する。
In the case of this semiconductor integrated
そして、クロックゲーティングセルCGC1をAND型クロックゲーティングセルに変更、つまり図2の半導体集積回路2と同様の構成に変更し、その変更後に図3の半導体集積回路2と同様の接続でフリップフロップFF3を挿入する。もしくは、クロックゲーティングセルCGC2をOR型クロックゲーティングセルに変更、つまり図9の半導体集積回路4と同様の構成に変更し、その変更後に図10の半導体集積回路4と同様の接続でフリップフロップFF3を挿入する。
Then, the clock gating cell CGC1 is changed to an AND type clock gating cell, that is, the same configuration as that of the semiconductor integrated
このため、フリップフロップ挿入部104の上記のような動作により、半導体集積回路5は、最終的に図3もしくは図10の構成に変更される。このため、タイミング解析部102において、半導体集積回路5でホールドエラーが発生したと判断された場合であっても、半導体集積回路5は、結果的に図3もしくは図10の構成に変更され、動作不正が発生することを回避する構成の半導体集積回路となる。そして、この半導体集積回路の構成を有した回路接続情報105がフリップフロップ挿入部104から出力される。
For this reason, the semiconductor integrated
以上のようなフリップフロップ挿入部104による回路設計の動作を説明するフローチャートを図13に示す。図13に示すように、まず、フリップフロップ挿入部104は、ホールドエラーが発生した箇所の前段フリップフロップ(以下、フリップフロップFF1と称す)及び後段フリップフロップ(以下、フリップフロップFF2と称す)の入力クロック信号がゲーティングされているか否かを判定する(S101)。
FIG. 13 is a flowchart for explaining the circuit design operation by the flip-
そして、フリップフロップFF1及びフリップフロップFF2の入力クロック信号が共にゲーティングされていない場合(S101YES)、挿入する挿入フリップフロップ(以下、フリップフロップFF3と称す)の入力クロック信号もゲーティング無しとする(S102)。 If the input clock signals of the flip-flop FF1 and the flip-flop FF2 are not gated (S101 YES), the input clock signal of the inserted flip-flop to be inserted (hereinafter referred to as flip-flop FF3) is also not gated ( S102).
一方、ステップS101で、フリップフロップFF1、FF2のうち少なくとも1つで、入力クロック信号がゲーティングされていると判定された場合(S101NO)、フリップフロップFF1に対応するクロックゲーティングセル(以下、クロックゲーティングセルCGC1と称す)がAND型クロックゲーティングセルであるか否かを判定する(S103)。 On the other hand, if it is determined in step S101 that the input clock signal is gated in at least one of the flip-flops FF1 and FF2 (NO in S101), a clock gating cell (hereinafter referred to as a clock) corresponding to the flip-flop FF1. It is determined whether or not the gating cell CGC1 is an AND type clock gating cell (S103).
そして、クロックゲーティングセルCGC1がAND型クロックゲーティングセルであると判定された場合(S103YES)、フリップフロップFF3をフリップフロップFF1と論理回路10との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC1から供給する(S104)。
If it is determined that the clock gating cell CGC1 is an AND type clock gating cell (S103 YES), the flip-flop FF3 is inserted between the flip-flop FF1 and the
一方、ステップS103で、クロックゲーティングセルCGC1がAND型クロックゲーティングセルでないと判定された場合(S103NO)、フリップフロップFF2に対応するクロックゲーティングセル(以下、クロックゲーティングセルCGC2と称す)がOR型クロックゲーティングセルであるか否かを判定する(S105)。 On the other hand, if it is determined in step S103 that the clock gating cell CGC1 is not an AND type clock gating cell (NO in S103), a clock gating cell corresponding to the flip-flop FF2 (hereinafter referred to as clock gating cell CGC2) is present. It is determined whether or not it is an OR type clock gating cell (S105).
そして、クロックゲーティングセルCGC2がOR型クロックゲーティングセルであると判定された場合(S105YES)、フリップフロップFF3を論理回路10とフリップフロップFF2との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC2から供給する(S106)。
When it is determined that the clock gating cell CGC2 is an OR type clock gating cell (S105 YES), the flip-flop FF3 is inserted between the
一方、ステップS105で、クロックゲーティングセルCGC2がOR型クロックゲーティングセルでないと判定された場合(S105NO)、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされているか否かを判定する(S107)。 On the other hand, if it is determined in step S105 that the clock gating cell CGC2 is not an OR type clock gating cell (NO in S105), whether the input clock signal is gated in one of the flip-flops FF1 and FF2. Is determined (S107).
そして、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされていないと判定された場合(S107YES)、入力クロック信号がゲーティングされていないフリップフロップFF1と論理回路10との間、もしくは、論理回路10と入力クロック信号がゲーティングされていないフリップフロップFF2との間にフリップフロップFF3を挿入する。そして、そのフリップフロップFF3の入力クロック信号もゲーティング無しとする(S102)。
If it is determined that the input clock signal is not gated in one of the flip-flops FF1 and FF2 (YES in S107), the flip-flop FF1 in which the input clock signal is not gated and the
一方、ステップS107で、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされていると判定された場合(S107NO)、クロックゲーティングセルCGC1がOR型クロックゲーティングセルであるか否かを判定する(S108)。 On the other hand, if it is determined in step S107 that the input clock signal is gated by one of the flip-flops FF1 and FF2 (S107 NO), the clock gating cell CGC1 is an OR type clock gating cell. It is determined whether or not (S108).
そして、クロックゲーティングセルCGC1がOR型クロックゲーティングセルであると判定された場合(S108YES)、クロックゲーティングセルCGC1をOR型からAND型クロックゲーティングセルに変更する(S109)。そして、フリップフロップFF3をフリップフロップFF1と論理回路10との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC1から供給する(S104)。
If it is determined that the clock gating cell CGC1 is an OR type clock gating cell (YES in S108), the clock gating cell CGC1 is changed from the OR type to the AND type clock gating cell (S109). Then, the flip-flop FF3 is inserted between the flip-flop FF1 and the
一方、ステップS108で、クロックゲーティングセルCGC1がOR型クロックゲーティングセルでないと判定された場合(S108NO)、クロックゲーティングセルCGC2はAND型であるので、これをAND型からOR型クロックゲーティングセルに変更する(S110)。そして、フリップフロップFF3を論理回路10とフリップフロップFF2との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC2から供給する(S106)。
On the other hand, if it is determined in step S108 that the clock gating cell CGC1 is not an OR type clock gating cell (NO in S108), since the clock gating cell CGC2 is an AND type, this is changed from an AND type to an OR type clock gating cell. Change to a cell (S110). Then, the flip-flop FF3 is inserted between the
また、フリップフロップ挿入部104は図14に示すフローチャートのような設計動作をしてもよい。図14に示すように、まず、フリップフロップ挿入部104は、ホールドエラーが発生した箇所のフリップフロップFF1及びFF2の入力クロック信号がゲーティングされているか否かを判定する(S201)。
Further, the flip-
そして、フリップフロップFF1及びフリップフロップFF2の入力クロック信号が共にゲーティングされていない場合(S201YES)、フリップフロップFF3の入力クロック信号もゲーティング無しとする(S202)。 If both the input clock signals of the flip-flops FF1 and FF2 are not gated (YES in S201), the input clock signal of the flip-flop FF3 is also not gated (S202).
一方、ステップS201で、フリップフロップFF1、FF2のうち少なくとも1つで、入力クロック信号がゲーティングされていると判定された場合(S201NO)、フリップフロップFF2に対応するクロックゲーティングセルCGC2がOR型クロックゲーティングセルであるか否かを判定する(S203)。 On the other hand, if it is determined in step S201 that the input clock signal is gated in at least one of the flip-flops FF1 and FF2 (S201 NO), the clock gating cell CGC2 corresponding to the flip-flop FF2 is OR-type. It is determined whether or not it is a clock gating cell (S203).
そして、クロックゲーティングセルCGC2がOR型クロックゲーティングセルであると判定された場合(S203YES)、フリップフロップFF3を論理回路10とフリップフロップFF2との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC2から供給する(S204)。
When it is determined that the clock gating cell CGC2 is an OR type clock gating cell (YES in S203), the flip-flop FF3 is inserted between the
一方、ステップS203で、クロックゲーティングセルCGC2がOR型クロックゲーティングセルでないと判定された場合(S203NO)、フリップフロップFF1に対応するクロックゲーティングセルCGC1がAND型クロックゲーティングセルであるか否かを判定する(S205)。 On the other hand, if it is determined in step S203 that the clock gating cell CGC2 is not an OR type clock gating cell (NO in S203), whether or not the clock gating cell CGC1 corresponding to the flip-flop FF1 is an AND type clock gating cell. Is determined (S205).
そして、クロックゲーティングセルCGC1がAND型クロックゲーティングセルであると判定された場合(S205YES)、フリップフロップFF3をフリップフロップFF1と論理回路10との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC1から供給する(S206)。
If it is determined that the clock gating cell CGC1 is an AND type clock gating cell (S205 YES), the flip-flop FF3 is inserted between the flip-flop FF1 and the
一方、ステップS205で、クロックゲーティングセルCGC1がAND型クロックゲーティングセルでないと判定された場合(S205NO)、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされているか否かを判定する(S207)。 On the other hand, if it is determined in step S205 that the clock gating cell CGC1 is not an AND type clock gating cell (NO in S205), whether or not the input clock signal is gated in one of the flip-flops FF1 and FF2. Is determined (S207).
そして、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされていないと判定された場合(S207YES)、入力クロック信号がゲーティングされていないフリップフロップFF1と論理回路10との間、もしくは、論理回路10と入力クロック信号がゲーティングされていないフリップフロップFF2との間にフリップフロップFF3を挿入する。そして、そのフリップフロップFF3の入力クロック信号もゲーティング無しとする(S202)。
If it is determined that one of the flip-flops FF1 and FF2 does not gate the input clock signal (YES in S207), the flip-flop FF1 that does not gate the input clock signal and the
一方、ステップS207で、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされていると判定された場合(S207NO)、クロックゲーティングセルCGC2がAND型クロックゲーティングセルであるか否かを判定する(S208)。 On the other hand, when it is determined in step S207 that the input clock signal is gated in one of the flip-flops FF1 and FF2 (S207 NO), the clock gating cell CGC2 is an AND type clock gating cell. It is determined whether or not (S208).
そして、クロックゲーティングセルCGC2がAND型クロックゲーティングセルであると判定された場合(S208YES)、クロックゲーティングセルCGC2をAND型からOR型クロックゲーティングセルに変更する(S209)。そして、フリップフロップFF3を論理回路10とフリップフロップFF2との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC2から供給する(S204)。
If it is determined that the clock gating cell CGC2 is an AND type clock gating cell (S208 YES), the clock gating cell CGC2 is changed from an AND type to an OR type clock gating cell (S209). Then, the flip-flop FF3 is inserted between the
一方、ステップS208で、クロックゲーティングセルCGC2がAND型クロックゲーティングセルでないと判定された場合(S208NO)、クロックゲーティングセルCGC1はOR型であるので、これをOR型からAND型クロックゲーティングセルに変更する(S210)。そして、フリップフロップFF3をフリップフロップFF1と論理回路10との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC1から供給する(S206)。
On the other hand, if it is determined in step S208 that the clock gating cell CGC2 is not an AND type clock gating cell (NO in S208), the clock gating cell CGC1 is an OR type, and this is changed from an OR type to an AND type clock gating. Change to a cell (S210). Then, the flip-flop FF3 is inserted between the flip-flop FF1 and the
この図14のステップS204により、フリップフロップ挿入部104は、図5の半導体集積回路3から図15のような構成の半導体集積回路6を生成することができる。この半導体集積回路6は、半導体集積回路3にホールドエラー補償用の挿入フリップフロップFF3が挿入された構成となっている。
By step S204 in FIG. 14, the flip-
ここで、図7の半導体集積回路3も、図5の半導体集積回路3にホールドエラー補償用の挿入フリップフロップFF3を挿入した構成である。但し、上述したように、図7の半導体集積回路3は、図13のフローチャートの動作に基づき、ステップS104により、フリップフロップFF1と論理回路10との間に接続され、ゲーティングクロックがAND型のクロックゲーティングセルCGC1から供給されるよう接続された構成となる。しかし、図15の半導体集積回路6は、図14のステップS204により、挿入フリップフロップFF3が、論理回路10とフリップフロップFF2との間に接続され、ゲーティングクロックがOR型のクロックゲーティングセルCGC2から供給されるよう接続された構成となる。
Here, the semiconductor integrated
図15に示すように、フリップフロップ挿入部104によって、フリップフロップFF3が挿入された後の半導体集積回路6は、フリップフロップFF3が、論理回路10とフリップフロップFF2との間に接続され、ゲーティングクロックがOR型のクロックゲーティングセルCGC2から供給されるよう接続された構成となる。図15の半導体集積回路6の動作タイミングチャートを図16に示す。
As shown in FIG. 15, in the semiconductor integrated
図16に示すように、時刻t1にゲーティングクロック信号GCLK1の立ち上がりに応じてフリップフロップFF1は、データ入力端子Dに入力したデータをラッチし、データA1として出力する。時刻t2にイネーブル信号EN1がロウレベルに立ち下がる。このため、ゲーティングクロック信号GCLK1がロウレベルに固定され、フリップフロップFF1からの出力データもデータA1で固定される。このデータA1は、論理回路10を経てフリップフロップFF3にデータB1として入力される。
As shown in FIG. 16, the flip-flop FF1 latches the data input to the data input terminal D and outputs it as data A1 in response to the rise of the gating clock signal GCLK1 at time t1. At time t2, the enable signal EN1 falls to the low level. For this reason, the gating clock signal GCLK1 is fixed at the low level, and the output data from the flip-flop FF1 is also fixed at the data A1. This data A1 is input as data B1 to the flip-flop FF3 via the
一方、イネーブル信号EN2は、時刻t7以前においてハイレベルである。よって、時刻t1、t4、t6に立ち上がりエッジを有した、基準クロックと同相のゲーティングクロック信号GCLK2が出力されている。 On the other hand, the enable signal EN2 is at a high level before time t7. Therefore, the gating clock signal GCLK2 having the rising edge at the times t1, t4, and t6 and having the same phase as the reference clock is output.
ここで、上述したように、フリップフロップFF3は、クロック入力端子にゲーティングクロック信号GCLK2の逆相の(半周期ずれた)クロック信号GCLK2Bを入力する。このため、フリップフロップFF3は、時刻t3、t5のクロック信号GCLK2Bの立ち上がりエッジに応じて、論理回路10からの出力データB1をラッチし、出力する。
Here, as described above, the flip-flop FF3 inputs the clock signal GCLK2B having a phase opposite to that of the gating clock signal GCLK2 (shifted by a half cycle) to the clock input terminal. Therefore, the flip-flop FF3 latches and outputs the output data B1 from the
更に、フリップフロップFF2が、時刻t4、t6のゲーティングクロック信号GCLK2の立ち上がりに応じて、フリップフロップFF3からのデータB1をラッチし、出力する。 Further, the flip-flop FF2 latches and outputs the data B1 from the flip-flop FF3 in response to the rising of the gating clock signal GCLK2 at times t4 and t6.
そして、時刻t7にイネーブル信号EN2がロウレベルに立ち下がる。このため、ゲーティングクロック信号GCLK2がハイレベル、ゲーティングクロック信号GCLK2Bがロウレベルに固定される。よって、フリップフロップFF3の出力が、時刻t5でラッチしたデータB1で固定される。同様に、フリップフロップFF2の出力も、時刻t6でラッチしたデータB1で固定される。 At time t7, the enable signal EN2 falls to the low level. Therefore, the gating clock signal GCLK2 is fixed at the high level and the gating clock signal GCLK2B is fixed at the low level. Therefore, the output of the flip-flop FF3 is fixed at the data B1 latched at time t5. Similarly, the output of the flip-flop FF2 is also fixed at the data B1 latched at time t6.
次に、時刻t8にイネーブル信号EN1がハイレベルに立ち上がる。このため、クロックゲーティングセルCGC1から再び基準クロックと同相のゲーティングクロック信号GCLK1が出力される。そして、このゲーティングクロック信号GCLK1の立ち上がりエッジに応じて、時刻t9、t12、t14、t16・・・にフリップフロップFF1からデータA6、A7、A8、A9・・・が論理回路10へ出力される。このデータA6、A7、A8、A9・・・は、論理回路10を経てフリップフロップFF2にデータB6、B7、B8、B9・・・として入力される。
Next, the enable signal EN1 rises to a high level at time t8. For this reason, the gating clock signal GCLK1 in phase with the reference clock is output from the clock gating cell CGC1 again. Then, in response to the rising edge of the gating clock signal GCLK1, data A6, A7, A8, A9... Are output from the flip-flop FF1 to the
一方、時刻t10にイネーブル信号EN2がハイレベルに立ち上がる。このため、クロックゲーティングセルCGC2から再び基準クロックと同相のゲーティングクロック信号GCLK2が出力される。そして、時刻t11、t13、t15、t17・・・で、それぞれゲーティングクロック信号GCLK2Bの立ち上がりエッジに応じて、フリップフロップFF2が、論理回路10からのデータB6、B7、B8、B9・・・をラッチして、出力する。
On the other hand, the enable signal EN2 rises to a high level at time t10. For this reason, the gating clock signal GCLK2 in phase with the reference clock is output from the clock gating cell CGC2 again. Then, at times t11, t13, t15, t17..., The flip-flop FF2 receives the data B6, B7, B8, B9... From the
更に、フリップフロップFF2が、時刻t12、t14、t16・・・のゲーティングクロック信号GCLK2の立ち上がりに応じて、フリップフロップFF3からのデータBB6、B7、B8、・・・をラッチし、出力する。 Further, the flip-flop FF2 latches and outputs the data BB6, B7, B8,... From the flip-flop FF3 in response to the rising of the gating clock signal GCLK2 at times t12, t14, t16.
以上のように、挿入フリップフロップFF3を挿入後の図15の半導体集積回路6は、時刻t1から7個目の基準クロック立ち上がりエッジで(時刻t12)で、フリップフロップFF2がデータB6をラッチ、出力している。これは、挿入フリップフロップFF3を挿入していない図7の半導体集積回路4の理想的な動作と同じ動作結果となる。
As described above, the semiconductor integrated
よって、挿入フリップフロップFF3の前段のフリップフロップFF1に対応したクロックゲーティングセルCGC1がAND型クロックゲーティングセル、後段のフリップフロップFF2に対応したクロックゲーティングセルCGC2がOR型クロックゲーティングセルである場合、フリップフロップ挿入部104は、図14のフローチャートに従い、フリップフロップFF3を、論理回路10と後段フリップフロップFF2との間に接続し、ゲーティングクロックをクロックゲーティングセルCGC2から供給するよう接続する。このような接続構成とすることで、挿入フリップフロップFF3を挿入後の半導体集積回路6において、動作不正が発生することを回避することができる。
Therefore, the clock gating cell CGC1 corresponding to the preceding flip-flop FF1 of the insertion flip-flop FF3 is an AND type clock gating cell, and the clock gating cell CGC2 corresponding to the subsequent flip flop FF2 is an OR type clock gating cell. In this case, the flip-
以上、本実施の形態1にかかるフリップフロップ挿入部104は、前段フリップフロップFF1及び後段フリップフロップFF2に対応するクロックゲーティングセルのタイプを判定する。そして、判定結果に応じて挿入フリップフロップFF3を、自動で所定の場所に挿入し、対応するクロックゲーティングセルを選択する。
As described above, the flip-
図17に、フリップフロップ挿入部104が、挿入フリップフロップFF3を挿入する場合の場所及び入力クロック信号を供給するクロックゲーティングセルのタイプと、前段フリップフロップFF1及び後段フリップフロップFF2に対応するクロックゲーティングセルのタイプをまとめた表を示す。
In FIG. 17, the flip-
図17に示すように、クロックゲーティングセルCGC1、CGC2が共にAND型クロックゲーティングセルである場合、フリップフロップ挿入部104は、挿入フリップフロップFF3を前段フリップフロップFF1と論理回路10との間(前段フリップフロップFF1の直後)に接続し、入力クロック信号をクロックゲーティングセルCGC1から供給されるよう構成する。
As shown in FIG. 17, when both the clock gating cells CGC1 and CGC2 are AND type clock gating cells, the flip-
また、クロックゲーティングセルCGC1、CGC2が共にOR型クロックゲーティングセルである場合、フリップフロップ挿入部104は、挿入フリップフロップFF3を論理回路10と後段フリップフロップFF2との間(後段フリップフロップFF2の直前)に接続し、入力クロック信号をクロックゲーティングセルCGC2から供給されるよう構成する。
When both the clock gating cells CGC1 and CGC2 are OR type clock gating cells, the flip-
また、クロックゲーティングセルCGC1がAND型クロックゲーティングセル、クロックゲーティングセルCGC2がOR型クロックゲーティングセルである場合、フリップフロップ挿入部104は、挿入フリップフロップFF3を前段フリップフロップFF1と論理回路10との間(前段フリップフロップFF1の直後)に接続し、入力クロック信号がクロックゲーティングセルCGC1から供給されるよう構成する。
When the clock gating cell CGC1 is an AND type clock gating cell and the clock gating cell CGC2 is an OR type clock gating cell, the flip-
但し、フリップフロップ挿入部104の動作(図14参照)によっては、挿入フリップフロップFF3を後段フリップフロップFF2との間(後段フリップフロップFF2の直前)に接続し、入力クロック信号がクロックゲーティングセルCGC2から供給されるよう構成する。 However, depending on the operation of the flip-flop insertion unit 104 (see FIG. 14), the insertion flip-flop FF3 is connected to the rear flip-flop FF2 (immediately before the rear flip-flop FF2), and the input clock signal is the clock gating cell CGC2. Configured to be supplied from.
また、クロックゲーティングセルCGC1がOR型クロックゲーティングセル、クロックゲーティングセルCGC2がAND型クロックゲーティングセルである場合、フリップフロップ挿入部104は、この状態では挿入フリップフロップFF3を挿入せず、クロックゲーティングセルCGC1をAND型クロックゲーティングセルに変更する。そして、変更後は、上記と同様、挿入フリップフロップFF3を前段フリップフロップFF1と論理回路10との間(前段フリップフロップFF1の直後)に接続し、入力クロック信号をクロックゲーティングセルCGC1から供給されるよう構成する。
When the clock gating cell CGC1 is an OR type clock gating cell and the clock gating cell CGC2 is an AND type clock gating cell, the flip-
但し、フリップフロップ挿入部104の動作(図14参照)によっては、クロックゲーティングセルCGC2をOR型クロックゲーティングセルに変更する。そして、変更後は、上記と同様、挿入フリップフロップFF3を論理回路10と後段フリップフロップFF2との間(後段フリップフロップFF2の直前)に接続し、入力クロック信号をクロックゲーティングセルCGC2から供給されるよう構成する。
However, depending on the operation of the flip-flop insertion unit 104 (see FIG. 14), the clock gating cell CGC2 is changed to an OR type clock gating cell. After the change, similarly to the above, the insertion flip-flop FF3 is connected between the
ここで、従来技術では、挿入フリップフロップFF3を挿入する場合、挿入フリップフロップFF3に入力されるゲーティングクロック信号によっては、図28で説明したような問題が発生する可能性があった。しかし、本実施の形態1のフリップフロップ挿入部104は、図17の表にまとめた組み合わせに応じて、クロックゲーティングされた挿入フリップフロップFF3を、前段フリップフロップFF1と後段フリップフロップFF2との間に接続することができる。この接続方法により、フリップフロップFF3の挿入前の理想的な動作行う半導体集積回路と、挿入フリップフロップFF3を挿入後の半導体集積回路とで、動作結果が同じなるように挿入フリップフロップFF3を挿入することが可能である。
Here, in the conventional technique, when the insertion flip-flop FF3 is inserted, the problem described with reference to FIG. 28 may occur depending on the gating clock signal input to the insertion flip-flop FF3. However, the flip-
以上により、本実施の形態1の半導体集積回路の設計装置100は、ホールドエラーが発生した半導体集積回路に、クロックゲーティングされたホールドエラー補償用の挿入フリップフロップFF3を挿入する場合、動作不正を起こさない正しい動作結果を得ることができる半導体集積回路の構成をミスなく確実に設計することができる。また、この場合、既存のクロックゲーティングセルを挿入フリップフロップFF3に適用することができ、挿入フリップフロップFF3用に新たなクロックゲーティングセルを設置する必要がなく、半導体集積回路の回路面積の増加を抑制できる。また、挿入フリップフロップFF3はクロックゲーティングされているため、半導体集積回路の消費電力の増加も、挿入フリップフロップFF3がクロックゲーティングされていない場合と比較し、低減化できる。
As described above, the semiconductor integrated
発明の実施の形態2
以下、本発明を適用した具体的な実施の形態2について、図面を参照しながら詳細に説明する。この実施の形態2は、実施の形態1と同様、本発明を半導体集積回路の設計方法、及び、設計装置に適用したものである。本実施の形態2の設計装置は、実施の形態1で説明した図1と同様である。本実施の形態2が、実施の形態1と異なるのは、フリップフロップ挿入部104が、挿入フリップフロップFF3を挿入する対象とする半導体集積回路の構成である。
Hereinafter, a specific second embodiment to which the present invention is applied will be described in detail with reference to the drawings. In the second embodiment, as in the first embodiment, the present invention is applied to a semiconductor integrated circuit design method and design apparatus. The design apparatus according to the second embodiment is the same as that shown in FIG. 1 described in the first embodiment. The second embodiment is different from the first embodiment in the configuration of a semiconductor integrated circuit in which the flip-
例えば、図18に、半導体集積回路の一例として、挿入フリップフロップFF3が挿入される前の半導体集積回路7のブロック構成図を示す。
For example, FIG. 18 shows a block configuration diagram of the semiconductor integrated
図18に示すように、半導体集積回路7は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。実施の形態1と異なり、フリップフロップFF1、FF2が、それぞれクロックゲーティングセルCGC1、CGC2の供給するゲーティングクロックと逆相(半周期ずれた)の入力クロックを入力している点である。
As shown in FIG. 18, the semiconductor integrated
なお、以下では、ゲーティングクロックの逆相(半周期ずれた)の信号を入力クロックとするフリップフロップを、ネガティブフリップフロップと称する。また、以下ではゲーティングクロックと同相の信号を入力クロックとするフリップフロップを、ポジティブフリップフロップと称する。 In the following description, a flip-flop that uses a signal having a phase opposite to that of the gating clock (shifted by a half cycle) as an input clock is referred to as a negative flip-flop. Hereinafter, a flip-flop that uses a signal in phase with the gating clock as an input clock is referred to as a positive flip-flop.
図18に示すように、フリップフロップFF1は、前段回路からデータをデータ入力端子Dに入力する。そして、クロック入力端子に入力するゲーティングクロック信号GCLK1の逆相(半周期ずれた)の信号に応じて、データ入力端子Dに入力したデータをラッチし、データ出力端子QにデータAとして出力する。 As shown in FIG. 18, the flip-flop FF1 inputs data from the previous circuit to the data input terminal D. Then, the data input to the data input terminal D is latched and output as data A to the data output terminal Q in accordance with a signal having a reverse phase (shifted by a half cycle) of the gating clock signal GCLK1 input to the clock input terminal. .
このデータAは、所定の論理動作を行う論理回路10を経て、データBとして、フリップフロップFF2のデータ入力端子Dに入力される。そして、フリップフロップFF2は、クロック入力端子に入力するゲーティングクロック信号GCLK2の逆相(半周期ずれた)の信号に応じて、データBをラッチし、データ出力端子Qに出力する。
The data A is input to the data input terminal D of the flip-flop FF2 as data B through the
クロックゲーティングセルCGC1、CGC2は、それぞれOR型クロックゲーティングセルである。 Each of the clock gating cells CGC1 and CGC2 is an OR type clock gating cell.
これは、図2の半導体集積回路2のポジティブフリップフロップをネガティブに、AND型クロックゲーティングセルをOR型クロックゲーティングセルに変更した構成となっている。
This is a configuration in which the positive flip-flop of the semiconductor integrated
この半導体集積回路7に、ホールドエラーが発生する場合は、フリップフロップ挿入部104が挿入フリップフロップFF3を挿入する。このとき、挿入フリップフロップFF3は、ホールドエラー解消のためポジティブフリップフロップとして挿入される。
When a hold error occurs in the semiconductor integrated
図19に、挿入フリップフロップFF3が挿入された後の半導体集積回路7のブロック構成図を示す。図19に示すように、半導体集積回路7は、フリップフロップFF1、FF2、FF3と、クロックゲーティングセルCGC1、CGC2とを有する。
FIG. 19 shows a block configuration diagram of the semiconductor integrated
ポジティブフリップフロップである挿入フリップフロップFF3は、前段フリップフロップFF1と論理回路10との間に接続され、ゲーティングクロックがクロックゲーティングセルCGC1から供給されるよう接続された構成となる。これは、図3の半導体集積回路2のポジティブフリップフロップをネガティブに、AND型クロックゲーティングセルをOR型クロックゲーティングセルに変更した構成となっている。
The insertion flip-flop FF3, which is a positive flip-flop, is connected between the previous-stage flip-flop FF1 and the
この図19の半導体集積回路7の動作結果は、図18の半導体集積回路7の理想的な動作結果と同じとなり、動作不正が発生しない。
The operation result of the semiconductor integrated
ここで、上述したように、挿入フリップフロップFF3の挿入前後の半導体集積回路7の構成は、それぞれ挿入フリップフロップFF3の挿入前後の半導体集積回路2の構成において、ポジティブフリップフロップとネガティブフリップフロップを入れ替え、AND型クロックゲーティングセルとOR型クロックゲーティングセルを入れ替えた構成となっている。
Here, as described above, the configuration of the semiconductor integrated
更に同様に、実施の形態1で例示した、半導体集積回路3〜6の構成においても、ポジティブフリップフロップとネガティブフリップフロップ、AND型クロックゲーティングセルとOR型クロックゲーティングセルを入れ替えた構成とすることで、挿入フリップフロップFF3の挿入前後での動作不正が発生しない。
Similarly, in the configuration of the semiconductor integrated
よって、本実施の形態2のフリップフロップ挿入部104も、実施の形態1と同様、前段フリップフロップFF1と後段フリップフロップFF2との間に挿入フリップフロップFF3を挿入する。但し、この挿入フリップフロップFF3の挿入前後の半導体集積回路の構成は、実施の形態1で例示した、半導体集積回路2〜6において、ポジティブフリップフロップとネガティブフリップフロップ、AND型クロックゲーティングセルとOR型クロックゲーティングセルを入れ替えた構成となる。そして、フリップフロップ挿入部104は、挿入フリップフロップFF3挿入後の構成の半導体集積回路の回路接続情報105を出力する。
Therefore, the flip-
以上のような実施の形態2のフリップフロップ挿入部104による回路設計の動作を説明するフローチャートを図20に示す。図20に示すように、まず、フリップフロップ挿入部104は、ホールドエラーが発生した箇所の前段フリップフロップFF1(ネガティブフリップフロップ)及び後段フリップフロップFF2(ネガティブフリップフロップ)の入力クロック信号がゲーティングされているか否かを判定する(S301)。
FIG. 20 shows a flowchart for explaining the circuit design operation by the flip-
そして、フリップフロップFF1及びフリップフロップFF2の入力クロック信号が共にゲーティングされていない場合(S301YES)、挿入する挿入フリップフロップFF3(ポジティブフリップフロップ)の入力クロック信号もゲーティング無しとする(S302)。 If both the input clock signals of the flip-flops FF1 and FF2 are not gated (S301 YES), the input clock signal of the insertion flip-flop FF3 (positive flip-flop) to be inserted is also not gated (S302).
一方、ステップS301で、フリップフロップFF1、FF2のうち少なくとも1つで、入力クロック信号がゲーティングされていると判定された場合(S301NO)、フリップフロップFF1に対応するクロックゲーティングセルCGC1がOR型クロックゲーティングセルであるか否かを判定する(S303)。 On the other hand, when it is determined in step S301 that the input clock signal is gated in at least one of the flip-flops FF1 and FF2 (S301 NO), the clock gating cell CGC1 corresponding to the flip-flop FF1 is the OR type. It is determined whether it is a clock gating cell (S303).
そして、クロックゲーティングセルCGC1がOR型クロックゲーティングセルであると判定された場合(S303YES)、フリップフロップFF3をフリップフロップFF1と論理回路10との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC1から供給する(S304)。
When it is determined that the clock gating cell CGC1 is an OR type clock gating cell (YES in S303), the flip-flop FF3 is inserted between the flip-flop FF1 and the
一方、ステップS303で、クロックゲーティングセルCGC1がOR型クロックゲーティングセルでないと判定された場合(S303NO)、フリップフロップFF2に対応するクロックゲーティングセルCGC2がAND型クロックゲーティングセルであるか否かを判定する(S305)。 On the other hand, if it is determined in step S303 that the clock gating cell CGC1 is not an OR type clock gating cell (NO in S303), whether or not the clock gating cell CGC2 corresponding to the flip-flop FF2 is an AND type clock gating cell. Is determined (S305).
そして、クロックゲーティングセルCGC2がAND型クロックゲーティングセルであると判定された場合(S305YES)、フリップフロップFF3を論理回路10とフリップフロップFF2との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC2から供給する(S306)。
If it is determined that the clock gating cell CGC2 is an AND type clock gating cell (S305 YES), the flip-flop FF3 is inserted between the
一方、ステップS305で、クロックゲーティングセルCGC2がAND型クロックゲーティングセルでないと判定された場合(S305NO)、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされているか否かを判定する(S307)。 On the other hand, if it is determined in step S305 that the clock gating cell CGC2 is not an AND type clock gating cell (NO in S305), whether or not the input clock signal is gated in one of the flip-flops FF1 and FF2. Is determined (S307).
そして、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされていないと判定された場合(S307YES)、入力クロック信号がゲーティングされていないフリップフロップFF1と論理回路10との間、もしくは、論理回路10と入力クロック信号がゲーティングされていないフリップフロップFF2との間にフリップフロップFF3を挿入する。そして、そのフリップフロップFF3の入力クロック信号もゲーティング無しとする(S302)。
If it is determined that the input clock signal is not gated by one of the flip-flops FF1 and FF2 (YES in S307), the flip-flop FF1 that is not gated for the input clock signal and the
一方、ステップS307で、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされていると判定された場合(S307NO)、クロックゲーティングセルCGC1がAND型クロックゲーティングセルであるか否かを判定する(S308)。 On the other hand, if it is determined in step S307 that the input clock signal is gated in one of the flip-flops FF1 and FF2 (S307 NO), the clock gating cell CGC1 is an AND type clock gating cell. It is determined whether or not (S308).
そして、クロックゲーティングセルCGC1がAND型クロックゲーティングセルであると判定された場合(S308YES)、クロックゲーティングセルCGC1をAND型からOR型クロックゲーティングセルに変更する(S309)。そして、フリップフロップFF3をフリップフロップFF1と論理回路10との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC1から供給する(S304)。
When it is determined that the clock gating cell CGC1 is an AND type clock gating cell (S308 YES), the clock gating cell CGC1 is changed from the AND type to the OR type clock gating cell (S309). Then, the flip-flop FF3 is inserted between the flip-flop FF1 and the
一方、ステップS308で、クロックゲーティングセルCGC1がAND型クロックゲーティングセルでないと判定された場合(S308NO)、クロックゲーティングセルCGC2はOR型であるので、これをOR型からAND型クロックゲーティングセルに変更する(S310)。そして、フリップフロップFF3を論理回路10とフリップフロップFF2との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC2から供給する(S306)。
On the other hand, if it is determined in step S308 that the clock gating cell CGC1 is not an AND type clock gating cell (NO in S308), since the clock gating cell CGC2 is an OR type, this is changed from an OR type to an AND type clock gating. Change to a cell (S310). Then, the flip-flop FF3 is inserted between the
また、フリップフロップ挿入部104は図21に示すフローチャートのような設計動作をしてもよい。図21に示すように、まず、フリップフロップ挿入部104は、ホールドエラーが発生した箇所のフリップフロップFF1及びFF2の入力クロック信号がゲーティングされているか否かを判定する(S401)。
Further, the flip-
そして、フリップフロップFF1及びフリップフロップFF2の入力クロック信号が共にゲーティングされていない場合(S401YES)、フリップフロップFF3の入力クロック信号もゲーティング無しとする(S402)。 If the input clock signals of the flip-flop FF1 and the flip-flop FF2 are not gated (S401 YES), the input clock signal of the flip-flop FF3 is also not gated (S402).
一方、ステップS401で、フリップフロップFF1、FF2のうち少なくとも1つで、入力クロック信号がゲーティングされていると判定された場合(S401NO)、フリップフロップFF2に対応するクロックゲーティングセルCGC2がAND型クロックゲーティングセルであるか否かを判定する(S403)。 On the other hand, when it is determined in step S401 that the input clock signal is gated in at least one of the flip-flops FF1 and FF2 (NO in S401), the clock gating cell CGC2 corresponding to the flip-flop FF2 is an AND type. It is determined whether or not it is a clock gating cell (S403).
そして、クロックゲーティングセルCGC2がAND型クロックゲーティングセルであると判定された場合(S403YES)、フリップフロップFF3を論理回路10とフリップフロップFF2との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC2から供給する(S404)。
If it is determined that the clock gating cell CGC2 is an AND type clock gating cell (YES in S403), the flip-flop FF3 is inserted between the
一方、ステップS403で、クロックゲーティングセルCGC2がAND型クロックゲーティングセルでないと判定された場合(S403NO)、フリップフロップFF1に対応するクロックゲーティングセルCGC1がOR型クロックゲーティングセルであるか否かを判定する(S405)。 On the other hand, if it is determined in step S403 that the clock gating cell CGC2 is not an AND type clock gating cell (NO in S403), whether or not the clock gating cell CGC1 corresponding to the flip-flop FF1 is an OR type clock gating cell. Is determined (S405).
そして、クロックゲーティングセルCGC1がOR型クロックゲーティングセルであると判定された場合(S405YES)、フリップフロップFF3をフリップフロップFF1と論理回路10との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC1から供給する(S406)。
If it is determined that the clock gating cell CGC1 is an OR type clock gating cell (YES in S405), the flip-flop FF3 is inserted between the flip-flop FF1 and the
一方、ステップS405で、クロックゲーティングセルCGC1がOR型クロックゲーティングセルでないと判定された場合(S405NO)、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされているか否かを判定する(S407)。 On the other hand, if it is determined in step S405 that the clock gating cell CGC1 is not an OR type clock gating cell (NO in S405), whether or not the input clock signal is gated in any one of the flip-flops FF1 and FF2. Is determined (S407).
そして、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされていないと判定された場合(S407YES)、入力クロック信号がゲーティングされていないフリップフロップFF1と論理回路10との間、もしくは、論理回路10と入力クロック信号がゲーティングされていないフリップフロップFF2との間にフリップフロップFF3を挿入する。そして、そのフリップフロップFF3の入力クロック信号もゲーティング無しとする(S402)。
If it is determined that the input clock signal is not gated in one of the flip-flops FF1 and FF2 (YES in S407), the flip-flop FF1 in which the input clock signal is not gated and the
一方、ステップS407で、フリップフロップFF1、FF2のどちらか1つで、入力クロック信号がゲーティングされていると判定された場合(S407NO)、クロックゲーティングセルCGC2がOR型クロックゲーティングセルであるか否かを判定する(S408)。 On the other hand, if it is determined in step S407 that the input clock signal is gated in one of the flip-flops FF1 and FF2 (S407 NO), the clock gating cell CGC2 is an OR type clock gating cell. It is determined whether or not (S408).
そして、クロックゲーティングセルCGC2がOR型クロックゲーティングセルであると判定された場合(S408YES)、クロックゲーティングセルCGC2をOR型からAND型クロックゲーティングセルに変更する(S409)。そして、フリップフロップFF3を論理回路10とフリップフロップFF2との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC2から供給する(S404)。
When it is determined that the clock gating cell CGC2 is an OR type clock gating cell (YES in S408), the clock gating cell CGC2 is changed from the OR type to the AND type clock gating cell (S409). Then, the flip-flop FF3 is inserted between the
一方、ステップS408で、クロックゲーティングセルCGC2がOR型クロックゲーティングセルでないと判定された場合(S408NO)、クロックゲーティングセルCGC1はAND型であるので、これをAND型からOR型クロックゲーティングセルに変更する(S410)。そして、フリップフロップFF3をフリップフロップFF1と論理回路10との間に挿入し、フリップフロップFF3の入力クロックをクロックゲーティングセルCGC1から供給する(S406)。
On the other hand, if it is determined in step S408 that the clock gating cell CGC2 is not an OR type clock gating cell (NO in S408), since the clock gating cell CGC1 is an AND type, this is changed from an AND type to an OR type clock gating. Change to a cell (S410). Then, the flip-flop FF3 is inserted between the flip-flop FF1 and the
以上、本実施の形態2にかかるフリップフロップ挿入部104は、ネガティブフリップフロップである前段フリップフロップFF1及び後段フリップフロップFF2に対応するクロックゲーティングセルのタイプを判定する。そして、判定結果に応じてポジティブフリップフロップである挿入フリップフロップFF3を、自動で所定の場所に挿入し、対応するクロックゲーティングセルを選択する。
As described above, the flip-
図22に、フリップフロップ挿入部104が、挿入フリップフロップFF3を挿入する場合の場所及び入力クロック信号を供給するクロックゲーティングセルのタイプと、前段フリップフロップFF1及び後段フリップフロップFF2に対応するクロックゲーティングセルのタイプをまとめた表を示す。
In FIG. 22, the flip-
図22に示すように、クロックゲーティングセルCGC1、CGC2が共にOR型クロックゲーティングセルである場合、フリップフロップ挿入部104は、挿入フリップフロップFF3を前段フリップフロップFF1と論理回路10との間(前段フリップフロップFF1の直後)に接続し、入力クロック信号をクロックゲーティングセルCGC1から供給されるよう構成する。
As shown in FIG. 22, when both of the clock gating cells CGC1 and CGC2 are OR type clock gating cells, the flip-
また、クロックゲーティングセルCGC1、CGC2が共にAND型クロックゲーティングセルである場合、フリップフロップ挿入部104は、挿入フリップフロップFF3を論理回路10と後段フリップフロップFF2との間(後段フリップフロップFF2の直前)に接続し、入力クロック信号をクロックゲーティングセルCGC2から供給されるよう構成する。
When the clock gating cells CGC1 and CGC2 are both AND type clock gating cells, the flip-
また、クロックゲーティングセルCGC1がOR型クロックゲーティングセル、クロックゲーティングセルCGC2がAND型クロックゲーティングセルである場合、フリップフロップ挿入部104は、挿入フリップフロップFF3を前段フリップフロップFF1と論理回路10との間(前段フリップフロップFF1の直後)に接続し、入力クロック信号がクロックゲーティングセルCGC1から供給されるよう構成する。
When the clock gating cell CGC1 is an OR type clock gating cell and the clock gating cell CGC2 is an AND type clock gating cell, the flip-
但し、フリップフロップ挿入部104の動作によっては、挿入フリップフロップFF3を後段フリップフロップFF2との間(後段フリップフロップFF2の直前)に接続し、入力クロック信号がクロックゲーティングセルCGC2から供給されるよう構成する。
However, depending on the operation of the flip-
また、クロックゲーティングセルCGC1がAND型クロックゲーティングセル、クロックゲーティングセルCGC2がOR型クロックゲーティングセルである場合、フリップフロップ挿入部104は、この状態では挿入フリップフロップFF3を挿入せず、クロックゲーティングセルCGC2をOR型クロックゲーティングセルに変更する。そして、変更後は、上記と同様、挿入フリップフロップFF3を前段フリップフロップFF1と論理回路10との間(前段フリップフロップFF1の直後)に接続し、入力クロック信号をクロックゲーティングセルCGC1から供給されるよう構成する。
When the clock gating cell CGC1 is an AND type clock gating cell and the clock gating cell CGC2 is an OR type clock gating cell, the flip-
但し、フリップフロップ挿入部104の動作によっては、クロックゲーティングセルCGC1をAND型クロックゲーティングセルに変更する。そして、変更後は、上記と同様、挿入フリップフロップFF3を論理回路10と後段フリップフロップFF2との間(後段フリップフロップFF2の直前)に接続し、入力クロック信号をクロックゲーティングセルCGC2から供給されるよう構成する。
However, depending on the operation of the flip-
本実施の形態2のフリップフロップ挿入部104は、図22の表にまとめた組み合わせに応じて、ポジティブフリップフロップであるクロックゲーティングされた挿入フリップフロップFF3を、ネガティブフリップフロップである前段フリップフロップFF1とネガティブフリップフロップである後段フリップフロップFF2との間に接続することができる。この接続方法により、実施の形態1と同様、フリップフロップFF3の挿入前の理想的な動作行う半導体集積回路と、挿入フリップフロップFF3を挿入後の半導体集積回路とで、動作結果が同じなるように挿入フリップフロップFF3を挿入することが可能である。
The flip-
以上により、本実施の形態2の半導体集積回路の設計装置100は、ホールドエラーが発生した半導体集積回路に、クロックゲーティングされたホールドエラー補償用の挿入フリップフロップを挿入する場合、動作不正を起こさない正しい動作結果を得ることができる半導体集積回路の構成をミスなく確実に設計することができる。また、この場合も、実施の形態1と同様、既存のクロックゲーティングセルを挿入フリップフロップFF3に適用することができ、挿入フリップフロップFF3用に新たなクロックゲーティングセルを設置する必要がなく、半導体集積回路の回路面積の増加を抑制できる。また、挿入フリップフロップFF3はクロックゲーティングされているため、半導体集積回路の消費電力の増加も、挿入フリップフロップFF3がクロックゲーティングされていない場合と比較し、低減化できる。
As described above, the semiconductor integrated
なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能である。 Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention.
例えば、上述した実施の形態1、2の半導体集積回路の設計装置は、図23に示すようなPC等のコンピュータ200で実現してもよい。以下、このようなコンピュータ200で、半導体集積回路の設計装置を構成した例を簡単に説明する。図23に示すようにコンピュータ200は、CPU201と、主メモリ202と、HDD203と、ROM204と、入出力装置205と、バス206とを有する。バス206は、CPU201、主メモリ202、HDD203、ROM204、入出力装置205と接続され、各種情報を伝達する。
For example, the above-described semiconductor integrated circuit design apparatus according to the first and second embodiments may be realized by a
上述した回路設計データベースはコンピュータ200のHDD203や、ネットワーク内のデータベース207等に保存されている。そして、CPU201は、HDD203もしくはROM204に格納されている本発明の半導体集積回路の設計を実現するためのプログラム(以下、処理プログラムと称す)を呼び出し、主メモリ202に展開する。
The circuit design database described above is stored in the
上述したタイミング解析部102、フリップフロップ挿入部104は、この処理プログラム内でモジュール化されている。なお、このコンピュータ200を制御するオペレーティングシステムが各モジュールプログラムを制御するようにしてもよい。
The
例えば、タイミング解析部102として動作するプログラムは、HDD203等が有する回路設計データベース101から回路接続情報、遅延情報等を読み出し、ホールドエラー情報103を生成する。
For example, a program that operates as the
そして、フリップフロップ挿入部104として動作するプログラムが、実施の形態1、2で説明した動作により、回路接続情報105を生成する。
Then, the program operating as the flip-
なお、タイミング解析部102、フリップフロップ挿入部104をプログラムではなく、専用のハードウエアで実現してもよい。
Note that the
100、200 半導体集積回路の設計装置
101 回路設計データベース
102 タイミング解析部
103 ホールドエラー情報
104 フリップフロップ挿入部
105 回路接続情報
FF1 前段フリップフロップ
FF2 後段フリップフロップ
FF3 挿入フリップフロップ
10 論理回路
CGC1、CGC2 クロックゲーティングセル
FF11 AND型クロックゲーティングセルが備えるフリップフロップ
FF21 OR型クロックゲーティングセルが備えるフリップフロップ
AND11 AND回路
OR21 OR回路
DESCRIPTION OF
Claims (8)
前記第1のフリップフロップと前記第2のフリップフロップとの間に新たに、前記第1もしくは第2のフリップフロップに入力されるクロック信号の半周期ずれたクロック信号に応じて、入力データをラッチし出力する第3のフリップフロップを接続する半導体集積回路の設計方法であって、
前記半導体集積回路が、少なくとも
入力される第1のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第1の値となる第1のクロックゲーティング回路と、
入力される第2のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第2の値となる第2のクロックゲーティング回路と、のうちどちらか一方を有し、
前記第1のフリップフロップに入力されるクロック信号が、前記第1のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記第1のフリップフロップと前記論理回路との間に接続し、入力クロック信号を前記第1のクロックゲーティング回路からの信号とし、
もしくは、前記第2のフリップフロップに入力されるクロック信号が、前記第2のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記論理回路と前記第2のフリップフロップとの間に接続し、入力クロック信号を前記第2のクロックゲーティング回路からの信号とする
半導体集積回路の設計方法。 The first and second flip-flops that latch and output input data according to a clock signal input to the clock input terminal, and the second flip-flop passes through a predetermined logic circuit. In a semiconductor integrated circuit to which an output signal of one flip-flop is input,
Input data is newly latched between the first flip-flop and the second flip-flop in accordance with a clock signal shifted by a half cycle of the clock signal input to the first or second flip-flop. A method for designing a semiconductor integrated circuit to which a third flip-flop for output is connected,
The semiconductor integrated circuit outputs a signal that is synchronized with a reference clock when at least a first enable signal that is input is activated, and a signal that has a first value when the signal is deactivated A gating circuit;
A second clock gating circuit that outputs a signal synchronized with a reference clock when the second enable signal that is input is activated and a signal that is output when the second enable signal is deactivated; Have either one,
When the clock signal input to the first flip-flop is a signal from the first clock gating circuit, the third flip-flop is connected between the first flip-flop and the logic circuit. Connected between the input clock signal and the signal from the first clock gating circuit,
Alternatively, when the clock signal input to the second flip-flop is a signal from the second clock gating circuit, the third flip-flop is connected to the logic circuit and the second flip-flop. And a method for designing a semiconductor integrated circuit in which the input clock signal is a signal from the second clock gating circuit.
請求項1に記載の半導体集積回路の設計方法。 The clock signal input to the first flip-flop is a signal from the second clock gating circuit, and the clock signal input to the second flip-flop is the first clock gate. When the signal is from a gating circuit, the second clock gating circuit is changed to the first clock gating circuit, or the first clock gating circuit is changed to the second clock gating circuit. The method of designing a semiconductor integrated circuit according to claim 1 to be changed.
前記基準クロックの半周期ずれたクロック信号に応じて、前記第1のイネーブル信号をラッチし、出力する第4のフリップフロップと、
前記基準クロックと、前記第4のフリップフロップの出力する信号とを入力し、積演算した結果を前記第1のクロックゲーティング回路の出力信号とするAND回路と、を有する
請求項1または請求国2に記載の半導体集積回路の設計方法。 The first clock gating circuit includes:
A fourth flip-flop that latches and outputs the first enable signal in response to a clock signal shifted by a half cycle of the reference clock;
2. An AND circuit that inputs the reference clock and a signal output from the fourth flip-flop and uses a product operation result as an output signal of the first clock gating circuit. 3. A method of designing a semiconductor integrated circuit according to 2.
前記基準クロックの半周期ずれたクロック信号に応じて、前記第2のイネーブル信号の反転信号をラッチし、出力する第5のフリップフロップと、
前記基準クロックと、前記第5のフリップフロップの出力する信号とを入力し、和演算した結果を前記第2のクロックゲーティング回路の出力信号とするOR回路と、を有する
請求項1または請求国2に記載の半導体集積回路の設計方法。 The second clock gating circuit includes:
A fifth flip-flop that latches and outputs an inverted signal of the second enable signal in response to a clock signal shifted by a half cycle of the reference clock;
2. An OR circuit that inputs the reference clock and a signal output from the fifth flip-flop and uses a sum operation result as an output signal of the second clock gating circuit. 3. A method of designing a semiconductor integrated circuit according to 2.
前記第1のフリップフロップと前記第2のフリップフロップとの間に新たに、前記第1もしくは第2のフリップフロップに入力されるクロック信号の半周期ずれたクロック信号に応じて、入力データをラッチし出力する第3のフリップフロップを接続する半導体集積回路の設計装置であって、
前記半導体集積回路が、少なくとも
入力される第1のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第1の値となる第1のクロックゲーティング回路と、
入力される第2のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第2の値となる第2のクロックゲーティング回路と、のうちどちらか一方を有し、
前記第1のフリップフロップに入力されるクロック信号が、前記第1のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記第1のフリップフロップと前記論理回路との間に接続し、入力クロック信号を前記第1のクロックゲーティング回路からの信号とし、
もしくは、前記第2のフリップフロップに入力されるクロック信号が、前記第2のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記論理回路と前記第2のフリップフロップとの間に接続し、入力クロック信号を前記第2のクロックゲーティング回路からの信号とする
半導体集積回路の設計装置。 The first and second flip-flops that latch and output input data according to a clock signal input to the clock input terminal, and the second flip-flop passes through a predetermined logic circuit. In a semiconductor integrated circuit to which an output signal of one flip-flop is input,
Input data is newly latched between the first flip-flop and the second flip-flop in accordance with a clock signal shifted by a half cycle of the clock signal input to the first or second flip-flop. A device for designing a semiconductor integrated circuit to which a third flip-flop for output is connected,
The semiconductor integrated circuit outputs a signal that is synchronized with a reference clock when at least a first enable signal that is input is activated, and a signal that has a first value when the signal is deactivated A gating circuit;
A second clock gating circuit that outputs a signal synchronized with a reference clock when the second enable signal that is input is activated and a signal that is output when the second enable signal is deactivated; Have either one,
When the clock signal input to the first flip-flop is a signal from the first clock gating circuit, the third flip-flop is connected between the first flip-flop and the logic circuit. Connected between the input clock signal and the signal from the first clock gating circuit,
Alternatively, when the clock signal input to the second flip-flop is a signal from the second clock gating circuit, the third flip-flop is connected to the logic circuit and the second flip-flop. And an input clock signal as a signal from the second clock gating circuit.
請求項5に記載の半導体集積回路の設計装置。 The clock signal input to the first flip-flop is a signal from the second clock gating circuit, and the clock signal input to the second flip-flop is the first clock gate. When the signal is from a gating circuit, the second clock gating circuit is changed to the first clock gating circuit, or the first clock gating circuit is changed to the second clock gating circuit. The semiconductor integrated circuit design apparatus according to claim 5 to be changed.
前記第1のフリップフロップと前記第2のフリップフロップとの間に新たに、前記第1もしくは第2のフリップフロップに入力されるクロック信号の半周期ずれたクロック信号に応じて、入力データをラッチし出力する第3のフリップフロップを接続する半導体集積回路の設計プログラムであって、
前記半導体集積回路が、少なくとも
入力される第1のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第1の値となる第1のクロックゲーティング回路と、
入力される第2のイネーブル信号が、活性化のとき基準クロックと同期した信号を出力し、非活性化のとき出力する信号が第2の値となる第2のクロックゲーティング回路と、のうちどちらか一方を有し、
前記第1のフリップフロップに入力されるクロック信号が、前記第1のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記第1のフリップフロップと前記論理回路との間に接続し、入力クロック信号を前記第1のクロックゲーティング回路からの信号とし、
もしくは、前記第2のフリップフロップに入力されるクロック信号が、前記第2のクロックゲーティング回路からの信号である場合は、前記第3のフリップフロップを、前記論理回路と、前記第2のフリップフロップとの間に接続し、入力クロック信号を前記第2のクロックゲーティング回路からの信号とする
半導体集積回路の設計プログラム。 The first and second flip-flops that latch and output input data according to a clock signal input to the clock input terminal, and the second flip-flop passes through a predetermined logic circuit. In a semiconductor integrated circuit to which an output signal of one flip-flop is input,
Input data is newly latched between the first flip-flop and the second flip-flop in accordance with a clock signal shifted by a half cycle of the clock signal input to the first or second flip-flop. A semiconductor integrated circuit design program for connecting the third flip-flop to be output,
The semiconductor integrated circuit outputs a signal that is synchronized with a reference clock when at least a first enable signal that is input is activated, and a signal that has a first value when the signal is deactivated A gating circuit;
A second clock gating circuit that outputs a signal synchronized with a reference clock when the second enable signal that is input is activated and a signal that is output when the second enable signal is deactivated; Have either one,
When the clock signal input to the first flip-flop is a signal from the first clock gating circuit, the third flip-flop is connected between the first flip-flop and the logic circuit. Connected between the input clock signal and the signal from the first clock gating circuit,
Alternatively, when the clock signal input to the second flip-flop is a signal from the second clock gating circuit, the third flip-flop is connected to the logic circuit and the second flip-flop. A program for designing a semiconductor integrated circuit that is connected between the first clock gating circuit and the input clock signal as a signal from the second clock gating circuit.
請求項7に記載の半導体集積回路の設計プログラム。 The clock signal input to the first flip-flop is a signal from the second clock gating circuit, and the clock signal input to the second flip-flop is the first clock gate. When the signal is from a gating circuit, the second clock gating circuit is changed to the first clock gating circuit, or the first clock gating circuit is changed to the second clock gating circuit. The semiconductor integrated circuit design program according to claim 7 to be changed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010099581A JP2011232787A (en) | 2010-04-23 | 2010-04-23 | Designing device, designing method and program for semiconductor integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010099581A JP2011232787A (en) | 2010-04-23 | 2010-04-23 | Designing device, designing method and program for semiconductor integrated circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011232787A true JP2011232787A (en) | 2011-11-17 |
Family
ID=45322067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010099581A Pending JP2011232787A (en) | 2010-04-23 | 2010-04-23 | Designing device, designing method and program for semiconductor integrated circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011232787A (en) |
-
2010
- 2010-04-23 JP JP2010099581A patent/JP2011232787A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210382518A1 (en) | Timing error detection and correction circuit | |
US6651230B2 (en) | Method for reducing design effect of wearout mechanisms on signal skew in integrated circuit design | |
JP2008028930A (en) | Semiconductor integrated circuit, and method of designing the same | |
US6078202A (en) | Semiconductor device having portions that operate at different frequencies, and method of designing the device | |
US20130069697A1 (en) | Synchronizer with high reliability | |
JP2003500723A (en) | Clock system for multiple component system | |
US6915497B2 (en) | Automatic design system for wiring on LSI | |
US20090271747A1 (en) | Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit | |
JP4264436B2 (en) | Flip-flop functional element, semiconductor integrated circuit, semiconductor integrated circuit design method, and semiconductor integrated circuit design apparatus | |
US9449127B1 (en) | System for verifying timing constraints of IC design | |
JP6833140B2 (en) | Circuit design support system and circuit design support program | |
US20050251776A1 (en) | Integrated circuit design system | |
US8453090B2 (en) | System and method for optimizing logic timing | |
US7735038B2 (en) | Design structure to reduce power consumption within a clock gated synchronous circuit and clock gated synchronous circuit | |
JP2009044709A (en) | Semiconductor device | |
US7415685B2 (en) | Method of verifying the power off effect of a design entity at register transfer level and method of modeling the power off effect | |
JP2011232787A (en) | Designing device, designing method and program for semiconductor integrated circuit | |
US20030088838A1 (en) | Black box timing model for latch-based systems | |
US20080250372A1 (en) | Method and a Computer Readable Medium for Analyzing a Design of an Integrated Circuit | |
JP7069608B2 (en) | Semiconductor design support device, semiconductor design support method and program | |
US8448114B1 (en) | Method for dual edge clock and buffer tree synthesis | |
EP2320565A1 (en) | A delay component | |
US7480607B2 (en) | Circuit design verification | |
US8564351B2 (en) | Clock phase compensation for adjusted voltage circuits | |
Sinha et al. | AdvanceTechnique to Accompolish Power Aware CDC Verification |