JP2011232787A - Designing device, designing method and program for semiconductor integrated circuit - Google Patents

Designing device, designing method and program for semiconductor integrated circuit Download PDF

Info

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
Application number
JP2010099581A
Other languages
Japanese (ja)
Inventor
Hideyuki Emura
秀之 江村
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010099581A priority Critical patent/JP2011232787A/en
Publication of JP2011232787A publication Critical patent/JP2011232787A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a designing device for a semiconductor integrated circuit capable of eliminating the possibility that an operational failure might occur due to the difference between operational results of the semiconductor integrated circuit before and after a insertion FF is inserted when a clock-gated insertion FF for compensating a hold error is connected between a clock-gated front stage FF and a clock-gated subsequent stage FF.SOLUTION: A designing method for a semiconductor integrated circuit according to the present invention comprises the steps of: newly connecting a clock-gated insertion FF between a clock-gated front stage FF and a clock-gated subsequent stage FF; and determining a clock gating cell to be inputted into the insertion FF depending on types of the clock-gating cells corresponding to the front stage FF and the subsequent stage FF.

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 Patent Document 1, Patent Document 2, and the like.

例えば、図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 circuit 1 before the flip-flop is inserted. As shown in FIG. 24, the semiconductor integrated circuit 1 includes flip-flops FF1 and FF2, and clock gating cells CGC1 and CGC2.

フリップフロップ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 logic circuit 10 that performs a predetermined logic operation. Then, the flip-flop FF2 latches the data B in accordance with the gating clock signal GCLK2 input to the clock input terminal and outputs it to the data output terminal Q.

ここで、クロックゲーティングセル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 circuit 1 of FIG. However, in this operation timing chart, it is assumed that no hold error occurs and the semiconductor integrated circuit 1 performs an ideal operation. Below, it demonstrates on the assumption.

図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 logic circuit 10.

時刻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 logic circuit 10 to the flip-flop FF2 is also fixed to the data B1.

一方、イネーブル信号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 logic circuit 10 in response to the rising edge of the gating clock signal GCLK2. ,Output.

しかし、図24の半導体集積回路1が上述したような理想的動作とならず、ホールドエラーが発生した場合、フリップフロップFF1、FF2の間に、基準クロックCLKの逆相(半周期ずれた)クロック信号に同期したフリップフロップを接続し、ホールドエラー補償を行う。   However, when the semiconductor integrated circuit 1 of FIG. 24 does not have the ideal operation as described above and a hold error occurs, a clock having a phase opposite to the reference clock CLK (shifted by a half cycle) is provided between the flip-flops FF1 and FF2. A flip-flop synchronized with the signal is connected to perform hold error compensation.

図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 circuit 1 after the flip-flop is inserted. As shown in FIG. 27, the semiconductor integrated circuit 1 includes flip-flops FF1, FF2, and FF3, and clock gating cells CGC1 and CGC2. The semiconductor integrated circuit 1 in FIG. 27 differs from that in FIG. 24 in that a flip-flop FF3 is inserted between the logic circuit 10 and the flip-flop FF2. In order to avoid a hold error, the flip-flop FF3 inputs a clock signal having a phase opposite to that of the gating clock signal GCLK2 output from the clock gating cell CGC2 (shifted by a half cycle) to the clock input terminal.

図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 circuit 1 of FIG. As shown in FIG. 27, at time t1, the flip-flop FF1 latches the data input to the data input terminal D according to the rise of the gating clock signal GCLK1, and outputs the data as data A1 from the data output terminal. This data A1 is input as data B1 to the flip-flop FF3 via the logic circuit 10.

時刻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 logic circuit 10 in response to the rise of the gating clock signal GCLK2B at times t3, t5, and t8.

更に、フリップフロップ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 logic circuit 10 at times t13, t15, t17. Output.

更に、時刻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.

特開平9−8143号公報Japanese Patent Laid-Open No. 9-8143 特開2004−186515号公報JP 2004-186515 A

しかし、ホールドエラー回避のため、図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 circuit 1 of FIG. 24 that performs an ideal operation, the flip-flop FF2 latches the data B6 at the seventh reference clock rising edge from time t1 (time t9). Is output.

一方、図28に示すように、フリップフロップFF3を挿入した図27の半導体集積回路1では、時刻t1から7個目の基準クロックの立ち上がりエッジで(時刻t12)、フリップフロップFF2がデータB1をラッチ、出力している。   On the other hand, as shown in FIG. 28, in the semiconductor integrated circuit 1 of FIG. 27 in which the flip-flop FF3 is inserted, the flip-flop FF2 latches the data B1 at the rising edge of the seventh reference clock from time t1 (time t12). Is output.

これは、フリップフロップ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 logic circuit 10 at the seventh reference clock rising edge (time t12) from time t1, and discards it. Therefore, in the semiconductor integrated circuit 1 (FIG. 27) in which the flip-flop FF3 is inserted, the data output at the seventh reference clock rising edge from the time t1 of the flip-flop FF2 performs the ideal operation. The result is different from the data of 24). Therefore, the semiconductor integrated circuit 1 in which the flip-flop FF3 is inserted (FIG. 27) outputs an operation result different from that of the semiconductor integrated circuit 1 in which the flip-flop FF3 is not inserted (FIG. 24).

また、このような動作不正を起こさない構成として、図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 circuit 1 that does not gate the input clock signal of the inserted flip-flop FF3 is conceivable.

この場合、図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 circuit 1 is reduced due to the increase in the power consumption of the flip-flop FF3. Problem occurs. Therefore, the inserted flip-flop FF3 is expected to be inserted into an existing circuit on the premise of clock gating.

以上のように、ホールドエラー解消のため、前段と後段のフリップフロップの間に、クロックゲーティングされたフリップフロップを挿入する場合、フリップフロップの挿入の仕方によっては、図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 Patent Document 1 is also a technique for compensating for a hold error. In this prior art, a low latch circuit is inserted between the front-stage flip-flop and the rear-stage flip-flop. This low latch operates as a delay element and avoids a hold error. However, when a hold error occurs in the row latch circuit, the row latch circuit does not operate as a delay element, and the signal latched by the previous stage flip-flop may be input to the subsequent stage flip-flop without delay. . For this reason, processing for avoiding a hold error of the low latch circuit itself is required.

また、特許文献2の技術もホールドエラーを補償するための技術である。この従来技術では、回路のホールド補償するため、フリップフロップの後段にクロック信号の半周期の遅延を設けている。この半周期の遅延を設ける機構として、ローラッチ回路と逆相フリップフロップが記載されている。しかし、ローラッチ回路を用いた場合は、上記特許文献1と同様、ローラッチ回路そのもののホールドエラーを回避する処理が必要となる。また、逆相フリップフロップを用いた場合は、クロックゲーティングに関する記載がなく、図28で説明した問題が発生する可能性がある。   The technique of Patent Document 2 is also a technique for compensating for a hold error. In this prior art, a half-cycle delay of the clock signal is provided at the subsequent stage of the flip-flop in order to compensate the hold of the circuit. As a mechanism for providing this half-cycle delay, a low latch circuit and a reverse-phase flip-flop are described. However, when a low latch circuit is used, a process for avoiding a hold error of the low latch circuit itself is required, as in the above-mentioned Patent Document 1. Further, when a reverse phase flip-flop is used, there is no description about clock gating, and the problem described with reference to FIG. 28 may occur.

本発明の一態様は、クロック入力端子に入力されるクロック信号に応じて、入力データをラッチし、出力する第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 is a block configuration diagram of a semiconductor integrated circuit design apparatus according to a first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入する前の半導体集積回路の構成図である。FIG. 3 is a configuration diagram of a semiconductor integrated circuit before the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入した後の半導体集積回路の構成図である。1 is a configuration diagram of a semiconductor integrated circuit after an insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入した後の半導体集積回路の動作タイミングチャートである。3 is an operation timing chart of the semiconductor integrated circuit after the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入する前の半導体集積回路の構成図である。FIG. 3 is a configuration diagram of a semiconductor integrated circuit before the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; OR型クロックゲーティングセルの単体の構成とその動作を説明するための動作タイミングチャートである。5 is an operation timing chart for explaining the configuration and operation of a single OR type clock gating cell. 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入した後の半導体集積回路の動作タイミングチャートである。3 is an operation timing chart of the semiconductor integrated circuit after the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入した後の半導体集積回路の動作タイミングチャートである。3 is an operation timing chart of the semiconductor integrated circuit after the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入する前の半導体集積回路の構成図である。FIG. 3 is a configuration diagram of a semiconductor integrated circuit before the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入した後の半導体集積回路の動作タイミングチャートである。3 is an operation timing chart of the semiconductor integrated circuit after the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入した後の半導体集積回路の動作タイミングチャートである。3 is an operation timing chart of the semiconductor integrated circuit after the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入する前の半導体集積回路の構成図である。FIG. 3 is a configuration diagram of a semiconductor integrated circuit before the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかるフリップフロップ挿入部の動作を説明するためのフローチャートである。3 is a flowchart for explaining the operation of the flip-flop insertion unit according to the first exemplary embodiment; 実施の形態1にかかるフリップフロップ挿入部の動作を説明するためのフローチャートである。3 is a flowchart for explaining the operation of the flip-flop insertion unit according to the first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入する前の半導体集積回路の構成図である。FIG. 3 is a configuration diagram of a semiconductor integrated circuit before the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入した後の半導体集積回路の動作タイミングチャートである。3 is an operation timing chart of the semiconductor integrated circuit after the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the first exemplary embodiment; 実施の形態1にかかるフリップフロップ挿入部が挿入フリップフロップを挿入する場合の組み合わせをまとめた表である。6 is a table summarizing combinations when the flip-flop insertion unit according to the first exemplary embodiment inserts an insertion flip-flop. 実施の形態2にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入する前の半導体集積回路の構成図である。FIG. 6 is a configuration diagram of a semiconductor integrated circuit before the insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the second embodiment; 実施の形態2にかかる半導体集積回路の設計装置が、挿入フリップフロップを挿入した後の半導体集積回路の構成図である。FIG. 6 is a configuration diagram of a semiconductor integrated circuit after an insertion flip-flop is inserted by the semiconductor integrated circuit design apparatus according to the second exemplary embodiment; 実施の形態2にかかるフリップフロップ挿入部の動作を説明するためのフローチャートである。10 is a flowchart for explaining an operation of the flip-flop insertion unit according to the second exemplary embodiment; 実施の形態2にかかるフリップフロップ挿入部の動作を説明するためのフローチャートである。10 is a flowchart for explaining an operation of the flip-flop insertion unit according to the second exemplary embodiment; 実施の形態2にかかるフリップフロップ挿入部が挿入フリップフロップを挿入する場合の組み合わせをまとめた表である。10 is a table summarizing combinations when the flip-flop insertion unit according to the second exemplary embodiment inserts an insertion flip-flop. その他の実施の形態にかかる半導体集積回路の設計装置の構成を示すブロック図である。It is a block diagram which shows the structure of the design apparatus of the semiconductor integrated circuit concerning other embodiment. 従来の半導体集積回路の設計装置が、挿入フリップフロップを挿入する前の半導体集積回路の構成図である。It is a block diagram of a semiconductor integrated circuit before a conventional semiconductor integrated circuit design apparatus inserts an insertion flip-flop. AND型クロックゲーティングセルの動作を説明するための動作タイミングチャートである。6 is an operation timing chart for explaining the operation of an AND type clock gating cell. 従来の半導体集積回路の設計装置が、挿入フリップフロップを挿入する前の半導体集積回路の構成図である。It is a block diagram of a semiconductor integrated circuit before a conventional semiconductor integrated circuit design apparatus inserts an insertion flip-flop. 従来の半導体集積回路の設計装置が、挿入フリップフロップを挿入した後の半導体集積回路の構成図である。It is a block diagram of a semiconductor integrated circuit after a conventional semiconductor integrated circuit design apparatus has inserted an insertion flip-flop. 従来の半導体集積回路の設計装置が、挿入フリップフロップを挿入した後の半導体集積回路の動作タイミングチャートである。5 is an operation timing chart of a semiconductor integrated circuit after a conventional semiconductor integrated circuit design apparatus has inserted an insertion flip-flop. 挿入フリップフロップに対してクロックゲーティングしていないクロック信号を入力した場合の半導体集積回路の構成図である。It is a block diagram of a semiconductor integrated circuit when a clock signal that is not clock-gated is input to an insertion flip-flop. 挿入フリップフロップに対してクロックゲーティングしていないクロック信号を入力した場合の動作タイミングチャートである。It is an operation | movement timing chart at the time of inputting the clock signal which is not clock-gating with respect to an insertion flip-flop.

発明の実施の形態1   Embodiment 1 of the Invention

以下、本発明を適用した具体的な実施の形態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 circuit design apparatus 100 according to the first exemplary embodiment. As illustrated in FIG. 1, the semiconductor integrated circuit design apparatus 100 includes a circuit design database 101, a timing analysis unit 102, and a flip-flop insertion unit 104. Here, the flip-flop insertion unit 104 constitutes a characteristic part of the present invention.

回路設計データベース101は、所定の機能を有した半導体集積回路を設計するために必要な様々な情報を有する。この情報には、例えば、半導体集積回路が備える論理素子(AND回路、OR回路、XOR回路等)やフリップフロップ等の情報、前記論理素子等が有する遅延情報、フリップフロップのタイミング情報、そして、単位配線長あたりの遅延情報等がある。   The circuit design database 101 includes various pieces of information necessary for designing a semiconductor integrated circuit having a predetermined function. This information includes, for example, information about logic elements (AND circuit, OR circuit, XOR circuit, etc.) and flip-flops provided in the semiconductor integrated circuit, delay information of the logic elements, etc., timing information of flip-flops, and unit There is delay information per wiring length.

タイミング解析部102は、設計した半導体集積回路に対し、ホールドエラーの発生、及び、エラータイミング等を解析する。そして、その解析結果として、半導体集積回路のどこの箇所に、どれくらいのタイミングでホールドエラーが発生しているのかの情報を有するホールドエラー情報103を出力する。   The timing analysis unit 102 analyzes occurrence of a hold error, error timing, and the like for the designed semiconductor integrated circuit. Then, as an analysis result, hold error information 103 having information on where and in what timing a hold error has occurred is output in the semiconductor integrated circuit.

フリップフロップ挿入部104は、上記ホールドエラー情報103+に応じて、半導体集積回路の必要な箇所に、ホールドエラー補償のためのフリップフロップ(以下、挿入フリップフロップと称す)を挿入する。フリップフロップ挿入部104は、挿入フリップフロップを挿入する場合、前段及び後段のフリップフロップに対応するクロックゲーティングセルのタイプに応じて、最適な箇所に挿入フリップフロップを挿入する。また同時に、挿入フリップフロップのゲーティングクロックを、前段もしくは後段のフリップフロップに対応するクロックゲーティングセルが出力するゲーティングクロックから選択する。そして、挿入フリップフロップが挿入され、ホールドエラーが解消された半導体集積回路の回路構成及びその接続情報を回路接続情報105として出力する。なお、挿入フリップフロップは、入力するゲーティングクロックの逆相の(半周期ずれた)クロック信号で動作する。   The flip-flop insertion unit 104 inserts a flip-flop for hold error compensation (hereinafter referred to as an insertion flip-flop) at a necessary location of the semiconductor integrated circuit in accordance with the hold error information 103+. When inserting the insertion flip-flop, the flip-flop insertion unit 104 inserts the insertion flip-flop at an optimal location according to the type of the clock gating cell corresponding to the preceding and succeeding flip-flops. At the same time, the gating clock of the inserted flip-flop is selected from the gating clocks output from the clock gating cell corresponding to the preceding or succeeding flip-flop. Then, the circuit configuration and connection information of the semiconductor integrated circuit in which the insertion flip-flop is inserted and the hold error is eliminated is output as circuit connection information 105. The insertion flip-flop operates with a clock signal having a phase opposite to that of the input gating clock (shifted by a half cycle).

また、フリップフロップ挿入部104は、前段及び後段のフリップフロップに対応するクロックゲーティングセルのタイプが所定の組み合わせの場合、前段及び後段のフリップフロップに対応するクロックゲーティングセルのタイプを変更する。変更後は、上述した動作により、挿入フリップフロップを挿入する。   The flip-flop insertion unit 104 changes the type of the clock gating cell corresponding to the front-stage and rear-stage flip-flops when the types of clock gating cells corresponding to the front-stage and rear-stage flip-flops are a predetermined combination. After the change, the insertion flip-flop is inserted by the above-described operation.

以下、図面を参考に、本発明の特徴部分を構成するフリップフロップ挿入部104の動作を説明する。   Hereinafter, the operation of the flip-flop insertion unit 104 constituting the characteristic part of the present invention will be described with reference to the drawings.

図2に、フリップフロップ挿入部104で挿入フリップフロップが挿入されていない半導体集積回路2のブロック構成図を示す。図2に示すように、半導体集積回路2は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。   FIG. 2 shows a block configuration diagram of the semiconductor integrated circuit 2 in which no insertion flip-flop is inserted in the flip-flop insertion unit 104. As shown in FIG. 2, the semiconductor integrated circuit 2 includes flip-flops FF1 and FF2, and clock gating cells CGC1 and CGC2.

フリップフロップ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 logic circuit 10 that performs a predetermined logic operation. Then, the flip-flop FF2 latches the data B in accordance with the gating clock signal GCLK2 input to the clock input terminal and outputs it to the data output terminal Q.

ここで、クロックゲーティングセル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 circuit 2 has the same configuration as the semiconductor integrated circuit 1 of FIG. Therefore, an operation timing chart of the semiconductor integrated circuit 2 in the case of performing an ideal operation in which a hold error does not occur is the same as that in FIG. 26, and description thereof is omitted here.

次に、タイミング解析部102で、半導体集積回路2にホールドエラーが発生すると判断され、ホールドエラー情報103に基づき、フリップフロップ挿入部104がフリップフロップFF1、FF2の間に、挿入フリップフロップFF3を挿入する場合を考える。図3に、フリップフロップFF3が挿入された場合の半導体集積回路2のブロック構成を示す。   Next, the timing analysis unit 102 determines that a hold error occurs in the semiconductor integrated circuit 2, and based on the hold error information 103, the flip-flop insertion unit 104 inserts the insertion flip-flop FF3 between the flip-flops FF1 and FF2. Consider the case. FIG. 3 shows a block configuration of the semiconductor integrated circuit 2 when the flip-flop FF3 is inserted.

図3に示すように、フリップフロップ挿入部104は、挿入フリップフロップFF3を、フリップフロップFF1と論理回路10との間に接続する。そして、フリップフロップ挿入部104は、挿入フリップフロップFF3のゲーティングクロック信号をクロックゲーティングセルCGC1から供給されるよう接続した構成とする。   As shown in FIG. 3, the flip-flop insertion unit 104 connects the insertion flip-flop FF3 between the flip-flop FF1 and the logic circuit 10. The flip-flop inserting unit 104 is connected so that the gating clock signal of the inserting flip-flop FF3 is supplied from the clock gating cell CGC1.

図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 circuit 2 of FIG. As shown in FIG. 4, 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.

ここで、フリップフロップ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 logic circuit 10.

一方、イネーブル信号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 logic circuit 10 in response to the rising of the gating clock signal GCLK2 at times t4 and t5.

そして、時刻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 logic circuit 10. The data A6, A7, A8, A9,... Are input as data B6, B7, B8, B9,.

一方、時刻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 logic circuit 10 in response to the rising edge of the gating clock signal GCLK2, respectively. Output.

以上のように、挿入フリップフロップFF3を挿入後の図3の半導体集積回路2は、時刻t1から7個目の基準クロック立ち上がりエッジで(時刻t11)で、フリップフロップFF2がデータB6をラッチ、出力している。これは、挿入フリップフロップFF3を挿入していない図2の半導体集積回路2の理想的な動作と同じ動作結果となる。   As described above, the semiconductor integrated circuit 2 in FIG. 3 after inserting the insertion flip-flop FF3 latches and outputs the data B6 at the seventh reference clock rising edge from time t1 (time t11). is doing. This is the same operation result as the ideal operation of the semiconductor integrated circuit 2 of FIG. 2 in which the insertion flip-flop FF3 is not inserted.

次に、図5に、後段のフリップフロップに対応するクロックゲーティングセルの構成が半導体集積回路2と異なる構成の半導体集積回路3のブロック構成図を示す。また、フリップフロップ挿入部104が、この半導体集積回路3に対して挿入フリップフロップFF3を挿入した構成を図7に示す。   Next, FIG. 5 shows a block configuration diagram of the semiconductor integrated circuit 3 having a configuration different from that of the semiconductor integrated circuit 2 in the configuration of the clock gating cell corresponding to the subsequent flip-flop. FIG. 7 shows a configuration in which the flip-flop insertion unit 104 inserts the insertion flip-flop FF3 into the semiconductor integrated circuit 3.

まず、図5に示すように、半導体集積回路3は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。図5の半導体集積回路3が図2の半導体集積回路2と異なるのは、クロックゲーティングセルCGC2の構成である。よって、特にことわらない限り、ここではクロックゲーティングセルCGC2についてのみ説明する。   First, as shown in FIG. 5, the semiconductor integrated circuit 3 includes flip-flops FF1 and FF2, and clock gating cells CGC1 and CGC2. The semiconductor integrated circuit 3 of FIG. 5 differs from the semiconductor integrated circuit 2 of FIG. 2 in the configuration of the clock gating cell CGC2. Therefore, only the clock gating cell CGC2 will be described here unless otherwise specified.

クロックゲーティングセル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 circuit 3 in the case of performing an ideal operation in which no hold error occurs basically shows that the gating clock signal GCLK2 is fixed to the high level when the enable signal EN2 is at the low level. This is the same as FIG. For this reason, explanation here is omitted.

次に、タイミング解析部102で、半導体集積回路3にホールドエラーが発生すると判断され、ホールドエラー情報103に基づき、フリップフロップ挿入部104がフリップフロップFF1、FF2の間に、挿入フリップフロップFF3を挿入する場合を考える。   Next, the timing analysis unit 102 determines that a hold error occurs in the semiconductor integrated circuit 3, and based on the hold error information 103, the flip-flop insertion unit 104 inserts the insertion flip-flop FF3 between the flip-flops FF1 and FF2. Consider the case.

図7に示すように、フリップフロップ挿入部104によって、フリップフロップFF3が挿入された後の半導体集積回路3は、フリップフロップFF3が、フリップフロップFF1と論理回路10との間に接続され、ゲーティングクロックがクロックゲーティングセルCGC1から供給されるよう接続された構成となる。   As shown in FIG. 7, in the semiconductor integrated circuit 3 after the flip-flop FF3 is inserted by the flip-flop insertion unit 104, the flip-flop FF3 is connected between the flip-flop FF1 and the logic circuit 10, and the gating The clock is connected to be supplied from the clock gating cell CGC1.

図8に、図7の半導体集積回路3の動作タイミングチャートを示す。但し、この図8の半導体集積回路3の動作タイミングチャートも、イネーブル信号EN2がロウレベルの場合、ゲーティングクロック信号GCLK2がハイレベルに固定される以外、基本的に図4と同様である。このため、ここでの説明は省略する。   FIG. 8 shows an operation timing chart of the semiconductor integrated circuit 3 of FIG. However, the operation timing chart of the semiconductor integrated circuit 3 in FIG. 8 is basically the same as that in FIG. 4 except that when the enable signal EN2 is at low level, the gating clock signal GCLK2 is fixed at high level. For this reason, explanation here is omitted.

以上のように、挿入フリップフロップFF3を挿入後の図7の半導体集積回路3は、時刻t1から7個目の基準クロック立ち上がりエッジで(時刻t11)で、フリップフロップFF2がデータB6をラッチ、出力している。これは、挿入フリップフロップFF3を挿入していない図5の半導体集積回路3の理想的な動作と同じ動作結果となる。   As described above, the semiconductor integrated circuit 3 of FIG. 7 after inserting the insertion flip-flop FF3 latches and outputs the data B6 at the seventh reference clock rising edge from time t1 (time t11). is doing. This is the same operation result as the ideal operation of the semiconductor integrated circuit 3 of FIG. 5 in which the insertion flip-flop FF3 is not inserted.

以上、図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 logic circuit 10. The flip-flop inserting unit 104 is connected so that the gating clock signal of the inserting flip-flop FF3 is supplied from the clock gating cell CGC1.

このような接続構成とすることで、挿入フリップフロップ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 circuits 2 and 3 after the insertion flip-flop FF3 is inserted. Then, circuit connection information 105 having the circuit configuration of the semiconductor integrated circuits 2 and 3 shown in FIGS. 3 and 7 is output from the flip-flop insertion unit 104.

更に、図9に、フリップフロップFF1、FF2に対応するクロックゲーティングセルの構成が半導体集積回路2、3と異なる場合の半導体集積回路4のブロック構成図を示す。また、フリップフロップ挿入部104が、この半導体集積回路4に対して挿入フリップフロップFF3を挿入した構成を図10に示す。   Further, FIG. 9 shows a block configuration diagram of the semiconductor integrated circuit 4 when the configuration of the clock gating cells corresponding to the flip-flops FF1 and FF2 is different from that of the semiconductor integrated circuits 2 and 3. FIG. 10 shows a configuration in which the flip-flop inserting unit 104 inserts the inserting flip-flop FF3 into the semiconductor integrated circuit 4.

図9に示すように、半導体集積回路4は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。図9の半導体集積回路4は、クロックゲーティングセルCGC1、CGC2が共にOR型クロックゲーティングセルであり、その点が半導体集積回路2、3と異なる。   As shown in FIG. 9, the semiconductor integrated circuit 4 includes flip-flops FF1 and FF2, and clock gating cells CGC1 and CGC2. The semiconductor integrated circuit 4 of FIG. 9 is different from the semiconductor integrated circuits 2 and 3 in that both clock gating cells CGC1 and CGC2 are OR type clock gating cells.

なお、ホールドエラーが発生しない理想的な動作を行う場合の半導体集積回路4の動作タイミングチャートは、イネーブル信号EN1、EN2がロウレベルの場合、それぞれゲーティングクロック信号GCLK1、GCLK2がハイレベルに固定される以外、基本的に図26と同様である。このため、ここでの説明は省略する。   In the operation timing chart of the semiconductor integrated circuit 4 when performing an ideal operation in which no hold error occurs, when the enable signals EN1 and EN2 are at low level, the gating clock signals GCLK1 and GCLK2 are fixed at high level, respectively. Other than this, it is basically the same as FIG. For this reason, explanation here is omitted.

次に、タイミング解析部102で、半導体集積回路4にホールドエラーが発生すると判断され、ホールドエラー情報103に基づき、フリップフロップ挿入部104がフリップフロップFF1、FF2の間に、挿入フリップフロップFF3を挿入する場合を考える。   Next, the timing analysis unit 102 determines that a hold error occurs in the semiconductor integrated circuit 4. Based on the hold error information 103, the flip-flop insertion unit 104 inserts the insertion flip-flop FF 3 between the flip-flops FF 1 and FF 2. Consider the case.

図10に示すように、フリップフロップ挿入部104によって、フリップフロップFF3が挿入された後の半導体集積回路4は、フリップフロップFF3が、論理回路10とフリップフロップFF2との間に接続され、ゲーティングクロックがクロックゲーティングセルCGC2から供給されるよう接続された構成となる。   As shown in FIG. 10, in the semiconductor integrated circuit 4 after the flip-flop FF3 is inserted by the flip-flop insertion unit 104, the flip-flop FF3 is connected between the logic circuit 10 and the flip-flop FF2, and the gating is performed. The clock is connected to be supplied from the clock gating cell CGC2.

図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 circuit 4 of FIG. As shown in FIG. 11, the flip-flop FF1 latches the data input to the data input terminal D and outputs it as data A1 in response to the rising 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 a high level, and the output data from the flip-flop FF1 is also fixed at the data A1. The data A1 is input as data B1 to the flip-flop FF2 via the logic circuit 10.

一方、イネーブル信号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 logic circuit 10 in accordance with the rising edge of the clock signal GCLK2B at times t3 and t5.

更に、フリップフロップ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 logic circuit 10 at times t9, t12, t14, t16. . The data A6, A7, A8, A9,... Are input as data B6, B7, B8, B9,.

一方、時刻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 logic circuit 10 in response to the rising edge of the gating clock signal GCLK2B. And output.

更に、フリップフロップ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 circuit 4 of FIG. 10 after inserting the insertion flip-flop FF3 latches and outputs the data B6 at the seventh reference clock rising edge from time t1 (time t12). is doing. This is the same operation result as the ideal operation of the semiconductor integrated circuit 4 of FIG. 9 in which the insertion flip-flop FF3 is not inserted.

よって、挿入フリップフロップ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-flop inserting unit 104 determines that the flip-flop FF3 The circuit 10 is connected between the post-stage flip-flop FF2 and connected to supply a gating clock from the clock gating cell CGC2. By adopting such a connection configuration, it is possible to avoid the occurrence of incorrect operation in the semiconductor integrated circuit 4 after the insertion flip-flop FF3 is inserted.

そして、この図10に示される半導体集積回路4の回路構成を有した回路接続情報105がフリップフロップ挿入部104から出力される。   Then, circuit connection information 105 having the circuit configuration of the semiconductor integrated circuit 4 shown in FIG.

次に、図12に、フリップフロップFF1、FF2に対応するクロックゲーティングセルの構成が半導体集積回路2、3、4と異なる場合の半導体集積回路5のブロック構成図を示す。   Next, FIG. 12 shows a block configuration diagram of the semiconductor integrated circuit 5 when the configuration of the clock gating cells corresponding to the flip-flops FF1 and FF2 is different from that of the semiconductor integrated circuits 2, 3, and 4.

図12に示すように、半導体集積回路5は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。図12の半導体集積回路5は、クロックゲーティングセルCGC1、CGC2が、それぞれOR型、AND型クロックゲーティングセルであり、その点が半導体集積回路2、3、4と異なる。   As shown in FIG. 12, the semiconductor integrated circuit 5 includes flip-flops FF1 and FF2, and clock gating cells CGC1 and CGC2. In the semiconductor integrated circuit 5 of FIG. 12, the clock gating cells CGC 1 and CGC 2 are OR type and AND type clock gating cells, respectively, which are different from the semiconductor integrated circuits 2, 3, and 4.

この半導体集積回路5の場合では、タイミング解析部102でホールドエラーが発生すると判断されても、フリップフロップ挿入部104は、フリップフロップFF1、FF2の間に、新たにフリップフロップFF3を挿入しないと決定する。   In the case of this semiconductor integrated circuit 5, even if the timing analysis unit 102 determines that a hold error occurs, the flip-flop insertion unit 104 determines that a new flip-flop FF3 is not inserted between the flip-flops FF1 and FF2. To do.

そして、クロックゲーティングセル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 circuit 2 of FIG. 2, and the flip-flop is connected by the same connection as that of the semiconductor integrated circuit 2 of FIG. Insert FF3. Alternatively, the clock gating cell CGC2 is changed to an OR type clock gating cell, that is, the same configuration as that of the semiconductor integrated circuit 4 of FIG. 9 is changed, and then the flip-flop is connected by the same connection as that of the semiconductor integrated circuit 4 of FIG. Insert FF3.

このため、フリップフロップ挿入部104の上記のような動作により、半導体集積回路5は、最終的に図3もしくは図10の構成に変更される。このため、タイミング解析部102において、半導体集積回路5でホールドエラーが発生したと判断された場合であっても、半導体集積回路5は、結果的に図3もしくは図10の構成に変更され、動作不正が発生することを回避する構成の半導体集積回路となる。そして、この半導体集積回路の構成を有した回路接続情報105がフリップフロップ挿入部104から出力される。   For this reason, the semiconductor integrated circuit 5 is finally changed to the configuration of FIG. 3 or FIG. 10 by the operation of the flip-flop insertion unit 104 as described above. Therefore, even if the timing analysis unit 102 determines that a hold error has occurred in the semiconductor integrated circuit 5, the semiconductor integrated circuit 5 is consequently changed to the configuration of FIG. 3 or FIG. The semiconductor integrated circuit is configured to avoid the occurrence of fraud. Then, circuit connection information 105 having the configuration of the semiconductor integrated circuit is output from the flip-flop insertion unit 104.

以上のようなフリップフロップ挿入部104による回路設計の動作を説明するフローチャートを図13に示す。図13に示すように、まず、フリップフロップ挿入部104は、ホールドエラーが発生した箇所の前段フリップフロップ(以下、フリップフロップFF1と称す)及び後段フリップフロップ(以下、フリップフロップFF2と称す)の入力クロック信号がゲーティングされているか否かを判定する(S101)。   FIG. 13 is a flowchart for explaining the circuit design operation by the flip-flop insertion unit 104 as described above. As shown in FIG. 13, first, the flip-flop insertion unit 104 receives inputs of a front-stage flip-flop (hereinafter referred to as a flip-flop FF1) and a rear-stage flip-flop (hereinafter referred to as a flip-flop FF2) where a hold error has occurred. It is determined whether or not the clock signal is gated (S101).

そして、フリップフロップ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 logic circuit 10, and the input clock of the flip-flop FF3 is set. It is supplied from the clock gating cell CGC1 (S104).

一方、ステップ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 logic circuit 10 and the flip-flop FF2, and the input clock of the flip-flop FF3 is set. It is supplied from the clock gating cell CGC2 (S106).

一方、ステップ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 logic circuit 10 The flip-flop FF3 is inserted between the logic circuit 10 and the flip-flop FF2 to which the input clock signal is not gated. The input clock signal of the flip-flop FF3 is also not gated (S102).

一方、ステップ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 logic circuit 10, and the input clock of the flip-flop FF3 is supplied from the clock gating cell CGC1 (S104).

一方、ステップ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 logic circuit 10 and the flip-flop FF2, and the input clock of the flip-flop FF3 is supplied from the clock gating cell CGC2 (S106).

また、フリップフロップ挿入部104は図14に示すフローチャートのような設計動作をしてもよい。図14に示すように、まず、フリップフロップ挿入部104は、ホールドエラーが発生した箇所のフリップフロップFF1及びFF2の入力クロック信号がゲーティングされているか否かを判定する(S201)。   Further, the flip-flop insertion unit 104 may perform a design operation as shown in the flowchart of FIG. As shown in FIG. 14, first, the flip-flop inserting unit 104 determines whether or not the input clock signals of the flip-flops FF1 and FF2 at the place where the hold error has occurred are gated (S201).

そして、フリップフロップ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 logic circuit 10 and the flip-flop FF2, and the input clock of the flip-flop FF3 is set. It is supplied from the clock gating cell CGC2 (S204).

一方、ステップ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 logic circuit 10, and the input clock of the flip-flop FF3 is set. It is supplied from the clock gating cell CGC1 (S206).

一方、ステップ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 logic circuit 10 The flip-flop FF3 is inserted between the logic circuit 10 and the flip-flop FF2 to which the input clock signal is not gated. Then, the input clock signal of the flip-flop FF3 is also not gated (S202).

一方、ステップ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 logic circuit 10 and the flip-flop FF2, and the input clock of the flip-flop FF3 is supplied from the clock gating cell CGC2 (S204).

一方、ステップ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 logic circuit 10, and the input clock of the flip-flop FF3 is supplied from the clock gating cell CGC1 (S206).

この図14のステップS204により、フリップフロップ挿入部104は、図5の半導体集積回路3から図15のような構成の半導体集積回路6を生成することができる。この半導体集積回路6は、半導体集積回路3にホールドエラー補償用の挿入フリップフロップFF3が挿入された構成となっている。   By step S204 in FIG. 14, the flip-flop inserting unit 104 can generate the semiconductor integrated circuit 6 having the configuration as shown in FIG. 15 from the semiconductor integrated circuit 3 in FIG. The semiconductor integrated circuit 6 has a configuration in which an insertion flip-flop FF3 for hold error compensation is inserted into the semiconductor integrated circuit 3.

ここで、図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 circuit 3 of FIG. 7 also has a configuration in which an insertion flip-flop FF3 for hold error compensation is inserted into the semiconductor integrated circuit 3 of FIG. However, as described above, the semiconductor integrated circuit 3 in FIG. 7 is connected between the flip-flop FF1 and the logic circuit 10 in step S104 based on the operation of the flowchart in FIG. The clock gating cell CGC1 is connected to be supplied. However, in the semiconductor integrated circuit 6 of FIG. 15, the insertion flip-flop FF3 is connected between the logic circuit 10 and the flip-flop FF2 and the gating clock is the OR type clock gating cell CGC2 in step S204 of FIG. It becomes the structure connected so that it might be supplied from.

図15に示すように、フリップフロップ挿入部104によって、フリップフロップFF3が挿入された後の半導体集積回路6は、フリップフロップFF3が、論理回路10とフリップフロップFF2との間に接続され、ゲーティングクロックがOR型のクロックゲーティングセルCGC2から供給されるよう接続された構成となる。図15の半導体集積回路6の動作タイミングチャートを図16に示す。   As shown in FIG. 15, in the semiconductor integrated circuit 6 after the flip-flop FF3 is inserted by the flip-flop insertion unit 104, the flip-flop FF3 is connected between the logic circuit 10 and the flip-flop FF2. The configuration is such that the clock is supplied from the OR type clock gating cell CGC2. FIG. 16 shows an operation timing chart of the semiconductor integrated circuit 6 of FIG.

図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 logic circuit 10.

一方、イネーブル信号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 logic circuit 10 in accordance with the rising edge of the clock signal GCLK2B at times t3 and t5.

更に、フリップフロップ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 logic circuit 10 at times t9, t12, t14, t16. . The data A6, A7, A8, A9,... Are input as data B6, B7, B8, B9,.

一方、時刻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 logic circuit 10 according to the rising edge of the gating clock signal GCLK2B. Latch and output.

更に、フリップフロップ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 circuit 6 of FIG. 15 after inserting the insertion flip-flop FF3 latches and outputs the data B6 at the seventh reference clock rising edge from time t1 (time t12). is doing. This is the same operation result as the ideal operation of the semiconductor integrated circuit 4 of FIG. 7 in which the insertion flip-flop FF3 is not inserted.

よって、挿入フリップフロップ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-flop insertion unit 104 connects the flip-flop FF3 between the logic circuit 10 and the subsequent-stage flip-flop FF2 and connects the gating clock to be supplied from the clock gating cell CGC2 according to the flowchart of FIG. . By adopting such a connection configuration, it is possible to avoid the occurrence of unauthorized operation in the semiconductor integrated circuit 6 after the insertion flip-flop FF3 is inserted.

以上、本実施の形態1にかかるフリップフロップ挿入部104は、前段フリップフロップFF1及び後段フリップフロップFF2に対応するクロックゲーティングセルのタイプを判定する。そして、判定結果に応じて挿入フリップフロップFF3を、自動で所定の場所に挿入し、対応するクロックゲーティングセルを選択する。   As described above, the flip-flop insertion unit 104 according to the first exemplary embodiment determines the types of clock gating cells corresponding to the front-stage flip-flop FF1 and the rear-stage flip-flop FF2. Then, the insertion flip-flop FF3 is automatically inserted at a predetermined location according to the determination result, and the corresponding clock gating cell is selected.

図17に、フリップフロップ挿入部104が、挿入フリップフロップFF3を挿入する場合の場所及び入力クロック信号を供給するクロックゲーティングセルのタイプと、前段フリップフロップFF1及び後段フリップフロップFF2に対応するクロックゲーティングセルのタイプをまとめた表を示す。   In FIG. 17, the flip-flop insertion unit 104 inserts the insertion flip-flop FF3, the type of the clock gating cell that supplies the input clock signal, and the clock gate corresponding to the front-stage flip-flop FF1 and the rear-stage flip-flop FF2. A table summarizing the types of ting cells is shown.

図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-flop inserting unit 104 inserts the inserting flip-flop FF3 between the preceding flip-flop FF1 and the logic circuit 10 ( The input clock signal is supplied from the clock gating cell CGC1.

また、クロックゲーティングセル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-flop inserting unit 104 places the insertion flip-flop FF3 between the logic circuit 10 and the rear-stage flip-flop FF2 (the rear-stage flip-flop FF2). And the input clock signal is supplied from the clock gating cell CGC2.

また、クロックゲーティングセル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-flop inserting unit 104 replaces the inserting flip-flop FF3 with the preceding flip-flop FF1. 10 (immediately after the previous flip-flop FF1) and the input clock signal is supplied from the clock gating cell CGC1.

但し、フリップフロップ挿入部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-flop inserting unit 104 does not insert the insertion flip-flop FF3 in this state, The clock gating cell CGC1 is changed to an AND type clock gating cell. After the change, the insertion flip-flop FF3 is connected between the previous flip-flop FF1 and the logic circuit 10 (immediately after the previous flip-flop FF1), and the input clock signal is supplied from the clock gating cell CGC1, as described above. Configure to

但し、フリップフロップ挿入部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 logic circuit 10 and the rear-stage flip-flop FF2 (immediately before the rear-stage flip-flop FF2), and the input clock signal is supplied from the clock gating cell CGC2. Configure to

ここで、従来技術では、挿入フリップフロップ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-flop insertion unit 104 according to the first embodiment is configured such that the clock-gated insertion flip-flop FF3 is connected between the front-stage flip-flop FF1 and the rear-stage flip-flop FF2 according to the combinations summarized in the table of FIG. Can be connected to. With this connection method, the insertion flip-flop FF3 is inserted so that the operation result is the same between the semiconductor integrated circuit that performs an ideal operation before the insertion of the flip-flop FF3 and the semiconductor integrated circuit after the insertion flip-flop FF3 is inserted. It is possible.

以上により、本実施の形態1の半導体集積回路の設計装置100は、ホールドエラーが発生した半導体集積回路に、クロックゲーティングされたホールドエラー補償用の挿入フリップフロップFF3を挿入する場合、動作不正を起こさない正しい動作結果を得ることができる半導体集積回路の構成をミスなく確実に設計することができる。また、この場合、既存のクロックゲーティングセルを挿入フリップフロップFF3に適用することができ、挿入フリップフロップFF3用に新たなクロックゲーティングセルを設置する必要がなく、半導体集積回路の回路面積の増加を抑制できる。また、挿入フリップフロップFF3はクロックゲーティングされているため、半導体集積回路の消費電力の増加も、挿入フリップフロップFF3がクロックゲーティングされていない場合と比較し、低減化できる。   As described above, the semiconductor integrated circuit design apparatus 100 according to the first embodiment corrects an operation error when inserting the hold error compensating insertion flip-flop FF3 into the semiconductor integrated circuit in which the hold error has occurred. It is possible to reliably design a configuration of a semiconductor integrated circuit capable of obtaining a correct operation result that does not occur without error. In this case, the existing clock gating cell can be applied to the insertion flip-flop FF3, and it is not necessary to install a new clock gating cell for the insertion flip-flop FF3, thereby increasing the circuit area of the semiconductor integrated circuit. Can be suppressed. Further, since the insertion flip-flop FF3 is clock-gated, the increase in power consumption of the semiconductor integrated circuit can be reduced as compared with the case where the insertion flip-flop FF3 is not clock-gated.

発明の実施の形態2   Embodiment 2 of the Invention

以下、本発明を適用した具体的な実施の形態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-flop inserting unit 104 is to insert the insertion flip-flop FF3.

例えば、図18に、半導体集積回路の一例として、挿入フリップフロップFF3が挿入される前の半導体集積回路7のブロック構成図を示す。   For example, FIG. 18 shows a block configuration diagram of the semiconductor integrated circuit 7 before the insertion flip-flop FF3 is inserted as an example of the semiconductor integrated circuit.

図18に示すように、半導体集積回路7は、フリップフロップFF1、FF2と、クロックゲーティングセルCGC1、CGC2とを有する。実施の形態1と異なり、フリップフロップFF1、FF2が、それぞれクロックゲーティングセルCGC1、CGC2の供給するゲーティングクロックと逆相(半周期ずれた)の入力クロックを入力している点である。   As shown in FIG. 18, the semiconductor integrated circuit 7 includes flip-flops FF1 and FF2, and clock gating cells CGC1 and CGC2. Unlike the first embodiment, the flip-flops FF1 and FF2 are input with input clocks having a phase opposite to that of the gating clock supplied by the clock gating cells CGC1 and CGC2, respectively (shifted by a half cycle).

なお、以下では、ゲーティングクロックの逆相(半周期ずれた)の信号を入力クロックとするフリップフロップを、ネガティブフリップフロップと称する。また、以下ではゲーティングクロックと同相の信号を入力クロックとするフリップフロップを、ポジティブフリップフロップと称する。   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 logic circuit 10 that performs a predetermined logic operation. Then, the flip-flop FF2 latches the data B in accordance with a signal having a reverse phase (shifted by a half cycle) of the gating clock signal GCLK2 input to the clock input terminal, and outputs the data B to the data output terminal Q.

クロックゲーティングセル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 circuit 2 of FIG. 2 is changed to negative and the AND type clock gating cell is changed to an OR type clock gating cell.

この半導体集積回路7に、ホールドエラーが発生する場合は、フリップフロップ挿入部104が挿入フリップフロップFF3を挿入する。このとき、挿入フリップフロップFF3は、ホールドエラー解消のためポジティブフリップフロップとして挿入される。   When a hold error occurs in the semiconductor integrated circuit 7, the flip-flop insertion unit 104 inserts the insertion flip-flop FF3. At this time, the insertion flip-flop FF3 is inserted as a positive flip-flop to eliminate a hold error.

図19に、挿入フリップフロップFF3が挿入された後の半導体集積回路7のブロック構成図を示す。図19に示すように、半導体集積回路7は、フリップフロップFF1、FF2、FF3と、クロックゲーティングセルCGC1、CGC2とを有する。   FIG. 19 shows a block configuration diagram of the semiconductor integrated circuit 7 after the insertion flip-flop FF3 is inserted. As shown in FIG. 19, the semiconductor integrated circuit 7 includes flip-flops FF1, FF2, and FF3, and clock gating cells CGC1 and CGC2.

ポジティブフリップフロップである挿入フリップフロップ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 logic circuit 10, and is connected so that a gating clock is supplied from the clock gating cell CGC1. This is a configuration in which the positive flip-flop of the semiconductor integrated circuit 2 of FIG. 3 is set to negative and the AND type clock gating cell is changed to an OR type clock gating cell.

この図19の半導体集積回路7の動作結果は、図18の半導体集積回路7の理想的な動作結果と同じとなり、動作不正が発生しない。   The operation result of the semiconductor integrated circuit 7 shown in FIG. 19 is the same as the ideal operation result of the semiconductor integrated circuit 7 shown in FIG.

ここで、上述したように、挿入フリップフロップFF3の挿入前後の半導体集積回路7の構成は、それぞれ挿入フリップフロップFF3の挿入前後の半導体集積回路2の構成において、ポジティブフリップフロップとネガティブフリップフロップを入れ替え、AND型クロックゲーティングセルとOR型クロックゲーティングセルを入れ替えた構成となっている。   Here, as described above, the configuration of the semiconductor integrated circuit 7 before and after the insertion flip-flop FF3 is inserted is the same as the configuration of the semiconductor integrated circuit 2 before and after the insertion flip-flop FF3 is inserted. The AND type clock gating cell and the OR type clock gating cell are interchanged.

更に同様に、実施の形態1で例示した、半導体集積回路3〜6の構成においても、ポジティブフリップフロップとネガティブフリップフロップ、AND型クロックゲーティングセルとOR型クロックゲーティングセルを入れ替えた構成とすることで、挿入フリップフロップFF3の挿入前後での動作不正が発生しない。   Similarly, in the configuration of the semiconductor integrated circuits 3 to 6 illustrated in the first embodiment, the positive flip-flop, the negative flip-flop, the AND-type clock gating cell, and the OR-type clock gating cell are replaced. As a result, the incorrect operation before and after the insertion of the insertion flip-flop FF3 does not occur.

よって、本実施の形態2のフリップフロップ挿入部104も、実施の形態1と同様、前段フリップフロップFF1と後段フリップフロップFF2との間に挿入フリップフロップFF3を挿入する。但し、この挿入フリップフロップFF3の挿入前後の半導体集積回路の構成は、実施の形態1で例示した、半導体集積回路2〜6において、ポジティブフリップフロップとネガティブフリップフロップ、AND型クロックゲーティングセルとOR型クロックゲーティングセルを入れ替えた構成となる。そして、フリップフロップ挿入部104は、挿入フリップフロップFF3挿入後の構成の半導体集積回路の回路接続情報105を出力する。   Therefore, the flip-flop insertion unit 104 of the second embodiment also inserts the insertion flip-flop FF3 between the front-stage flip-flop FF1 and the rear-stage flip-flop FF2, as in the first embodiment. However, the configuration of the semiconductor integrated circuit before and after the insertion of the insertion flip-flop FF3 is the same as that of the semiconductor integrated circuits 2 to 6 exemplified in the first embodiment, in the positive flip-flop, the negative flip-flop, the AND type clock gating cell, and the OR. The type clock gating cell is replaced. Then, the flip-flop insertion unit 104 outputs the circuit connection information 105 of the semiconductor integrated circuit having the configuration after the insertion flip-flop FF3 is inserted.

以上のような実施の形態2のフリップフロップ挿入部104による回路設計の動作を説明するフローチャートを図20に示す。図20に示すように、まず、フリップフロップ挿入部104は、ホールドエラーが発生した箇所の前段フリップフロップFF1(ネガティブフリップフロップ)及び後段フリップフロップFF2(ネガティブフリップフロップ)の入力クロック信号がゲーティングされているか否かを判定する(S301)。   FIG. 20 shows a flowchart for explaining the circuit design operation by the flip-flop insertion unit 104 of the second embodiment as described above. As shown in FIG. 20, first, the flip-flop inserting unit 104 gates the input clock signals of the front-stage flip-flop FF1 (negative flip-flop) and the rear-stage flip-flop FF2 (negative flip-flop) at the location where the hold error has occurred. It is determined whether or not (S301).

そして、フリップフロップ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 logic circuit 10, and the input clock of the flip-flop FF3 is set. It is supplied from the clock gating cell CGC1 (S304).

一方、ステップ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 logic circuit 10 and the flip-flop FF2, and the input clock of the flip-flop FF3 is set. It is supplied from the clock gating cell CGC2 (S306).

一方、ステップ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 logic circuit 10 The flip-flop FF3 is inserted between the logic circuit 10 and the flip-flop FF2 to which the input clock signal is not gated. The input clock signal of the flip-flop FF3 is also not gated (S302).

一方、ステップ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 logic circuit 10, and the input clock of the flip-flop FF3 is supplied from the clock gating cell CGC1 (S304).

一方、ステップ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 logic circuit 10 and the flip-flop FF2, and the input clock of the flip-flop FF3 is supplied from the clock gating cell CGC2 (S306).

また、フリップフロップ挿入部104は図21に示すフローチャートのような設計動作をしてもよい。図21に示すように、まず、フリップフロップ挿入部104は、ホールドエラーが発生した箇所のフリップフロップFF1及びFF2の入力クロック信号がゲーティングされているか否かを判定する(S401)。   Further, the flip-flop insertion unit 104 may perform a design operation as shown in the flowchart of FIG. As shown in FIG. 21, first, the flip-flop inserting unit 104 determines whether or not the input clock signals of the flip-flops FF1 and FF2 at the place where the hold error has occurred are gated (S401).

そして、フリップフロップ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 logic circuit 10 and the flip-flop FF2, and the input clock of the flip-flop FF3 is set. It is supplied from the clock gating cell CGC2 (S404).

一方、ステップ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 logic circuit 10, and the input clock of the flip-flop FF3 is set. It is supplied from the clock gating cell CGC1 (S406).

一方、ステップ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 logic circuit 10 The flip-flop FF3 is inserted between the logic circuit 10 and the flip-flop FF2 to which the input clock signal is not gated. The input clock signal of the flip-flop FF3 is also not gated (S402).

一方、ステップ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 logic circuit 10 and the flip-flop FF2, and the input clock of the flip-flop FF3 is supplied from the clock gating cell CGC2 (S404).

一方、ステップ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 logic circuit 10, and the input clock of the flip-flop FF3 is supplied from the clock gating cell CGC1 (S406).

以上、本実施の形態2にかかるフリップフロップ挿入部104は、ネガティブフリップフロップである前段フリップフロップFF1及び後段フリップフロップFF2に対応するクロックゲーティングセルのタイプを判定する。そして、判定結果に応じてポジティブフリップフロップである挿入フリップフロップFF3を、自動で所定の場所に挿入し、対応するクロックゲーティングセルを選択する。   As described above, the flip-flop insertion unit 104 according to the second exemplary embodiment determines the types of clock gating cells corresponding to the front-stage flip-flop FF1 and the rear-stage flip-flop FF2 that are negative flip-flops. Then, the insertion flip-flop FF3, which is a positive flip-flop, is automatically inserted at a predetermined location according to the determination result, and the corresponding clock gating cell is selected.

図22に、フリップフロップ挿入部104が、挿入フリップフロップFF3を挿入する場合の場所及び入力クロック信号を供給するクロックゲーティングセルのタイプと、前段フリップフロップFF1及び後段フリップフロップFF2に対応するクロックゲーティングセルのタイプをまとめた表を示す。   In FIG. 22, the flip-flop insertion unit 104 inserts the insertion flip-flop FF3, the type of the clock gating cell that supplies the input clock signal, and the clock gate corresponding to the front-stage flip-flop FF1 and the rear-stage flip-flop FF2. A table summarizing the types of ting cells is shown.

図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-flop inserting unit 104 places the inserting flip-flop FF3 between the preceding flip-flop FF1 and the logic circuit 10 ( The input clock signal is supplied from the clock gating cell CGC1.

また、クロックゲーティングセル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-flop inserting unit 104 places the insertion flip-flop FF3 between the logic circuit 10 and the rear-stage flip-flop FF2 (the rear-stage flip-flop FF2). And the input clock signal is supplied from the clock gating cell CGC2.

また、クロックゲーティングセル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-flop inserting unit 104 replaces the inserting flip-flop FF3 with the preceding flip-flop FF1. 10 (immediately after the previous flip-flop FF1) and the input clock signal is supplied from the clock gating cell CGC1.

但し、フリップフロップ挿入部104の動作によっては、挿入フリップフロップFF3を後段フリップフロップFF2との間(後段フリップフロップFF2の直前)に接続し、入力クロック信号がクロックゲーティングセルCGC2から供給されるよう構成する。   However, depending on the operation of the flip-flop insertion unit 104, the insertion flip-flop FF3 is connected to the rear-stage flip-flop FF2 (immediately before the rear-stage flip-flop FF2), and the input clock signal is supplied from the clock gating cell CGC2. Constitute.

また、クロックゲーティングセル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-flop insertion unit 104 does not insert the insertion flip-flop FF3 in this state, The clock gating cell CGC2 is changed to an OR type clock gating cell. After the change, the insertion flip-flop FF3 is connected between the previous flip-flop FF1 and the logic circuit 10 (immediately after the previous flip-flop FF1), and the input clock signal is supplied from the clock gating cell CGC1, as described above. Configure to

但し、フリップフロップ挿入部104の動作によっては、クロックゲーティングセルCGC1をAND型クロックゲーティングセルに変更する。そして、変更後は、上記と同様、挿入フリップフロップFF3を論理回路10と後段フリップフロップFF2との間(後段フリップフロップFF2の直前)に接続し、入力クロック信号をクロックゲーティングセルCGC2から供給されるよう構成する。   However, depending on the operation of the flip-flop insertion unit 104, the clock gating cell CGC1 is changed to an AND type clock gating cell. After the change, similarly to the above, the insertion flip-flop FF3 is connected between the logic circuit 10 and the rear-stage flip-flop FF2 (immediately before the rear-stage flip-flop FF2), and the input clock signal is supplied from the clock gating cell CGC2. Configure to

本実施の形態2のフリップフロップ挿入部104は、図22の表にまとめた組み合わせに応じて、ポジティブフリップフロップであるクロックゲーティングされた挿入フリップフロップFF3を、ネガティブフリップフロップである前段フリップフロップFF1とネガティブフリップフロップである後段フリップフロップFF2との間に接続することができる。この接続方法により、実施の形態1と同様、フリップフロップFF3の挿入前の理想的な動作行う半導体集積回路と、挿入フリップフロップFF3を挿入後の半導体集積回路とで、動作結果が同じなるように挿入フリップフロップFF3を挿入することが可能である。   The flip-flop insertion unit 104 according to the second embodiment replaces the clock-gated insertion flip-flop FF3, which is a positive flip-flop, with the preceding flip-flop FF1, which is a negative flip-flop, according to the combinations summarized in the table of FIG. And a subsequent flip-flop FF2 which is a negative flip-flop. By this connection method, as in the first embodiment, the operation result is the same between the semiconductor integrated circuit that performs an ideal operation before the insertion of the flip-flop FF3 and the semiconductor integrated circuit after the insertion flip-flop FF3 is inserted. It is possible to insert the insertion flip-flop FF3.

以上により、本実施の形態2の半導体集積回路の設計装置100は、ホールドエラーが発生した半導体集積回路に、クロックゲーティングされたホールドエラー補償用の挿入フリップフロップを挿入する場合、動作不正を起こさない正しい動作結果を得ることができる半導体集積回路の構成をミスなく確実に設計することができる。また、この場合も、実施の形態1と同様、既存のクロックゲーティングセルを挿入フリップフロップFF3に適用することができ、挿入フリップフロップFF3用に新たなクロックゲーティングセルを設置する必要がなく、半導体集積回路の回路面積の増加を抑制できる。また、挿入フリップフロップFF3はクロックゲーティングされているため、半導体集積回路の消費電力の増加も、挿入フリップフロップFF3がクロックゲーティングされていない場合と比較し、低減化できる。   As described above, the semiconductor integrated circuit design apparatus 100 according to the second embodiment causes an operation error when the clock-gated hold error compensation insertion flip-flop is inserted into the semiconductor integrated circuit in which the hold error has occurred. It is possible to reliably design a semiconductor integrated circuit configuration capable of obtaining a correct operation result without any mistake. Also in this case, as in the first embodiment, the existing clock gating cell can be applied to the insertion flip-flop FF3, and there is no need to install a new clock gating cell for the insertion flip-flop FF3. An increase in the circuit area of the semiconductor integrated circuit can be suppressed. Further, since the insertion flip-flop FF3 is clock-gated, the increase in power consumption of the semiconductor integrated circuit can be reduced as compared with the case where the insertion flip-flop FF3 is not clock-gated.

なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能である。   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 computer 200 such as a PC as shown in FIG. Hereinafter, an example in which such a computer 200 constitutes a semiconductor integrated circuit design apparatus will be briefly described. As illustrated in FIG. 23, the computer 200 includes a CPU 201, a main memory 202, an HDD 203, a ROM 204, an input / output device 205, and a bus 206. A bus 206 is connected to the CPU 201, the main memory 202, the HDD 203, the ROM 204, and the input / output device 205, and transmits various types of information.

上述した回路設計データベースはコンピュータ200のHDD203や、ネットワーク内のデータベース207等に保存されている。そして、CPU201は、HDD203もしくはROM204に格納されている本発明の半導体集積回路の設計を実現するためのプログラム(以下、処理プログラムと称す)を呼び出し、主メモリ202に展開する。   The circuit design database described above is stored in the HDD 203 of the computer 200, the database 207 in the network, or the like. Then, the CPU 201 calls a program (hereinafter referred to as a processing program) for realizing the design of the semiconductor integrated circuit of the present invention stored in the HDD 203 or the ROM 204 and develops it in the main memory 202.

上述したタイミング解析部102、フリップフロップ挿入部104は、この処理プログラム内でモジュール化されている。なお、このコンピュータ200を制御するオペレーティングシステムが各モジュールプログラムを制御するようにしてもよい。   The timing analysis unit 102 and the flip-flop insertion unit 104 described above are modularized in this processing program. Note that an operating system that controls the computer 200 may control each module program.

例えば、タイミング解析部102として動作するプログラムは、HDD203等が有する回路設計データベース101から回路接続情報、遅延情報等を読み出し、ホールドエラー情報103を生成する。   For example, a program that operates as the timing analysis unit 102 reads circuit connection information, delay information, and the like from the circuit design database 101 included in the HDD 203 and the like, and generates hold error information 103.

そして、フリップフロップ挿入部104として動作するプログラムが、実施の形態1、2で説明した動作により、回路接続情報105を生成する。   Then, the program operating as the flip-flop inserting unit 104 generates the circuit connection information 105 by the operation described in the first and second embodiments.

なお、タイミング解析部102、フリップフロップ挿入部104をプログラムではなく、専用のハードウエアで実現してもよい。   Note that the timing analysis unit 102 and the flip-flop insertion unit 104 may be realized by dedicated hardware instead of a program.

100、200 半導体集積回路の設計装置
101 回路設計データベース
102 タイミング解析部
103 ホールドエラー情報
104 フリップフロップ挿入部
105 回路接続情報
FF1 前段フリップフロップ
FF2 後段フリップフロップ
FF3 挿入フリップフロップ
10 論理回路
CGC1、CGC2 クロックゲーティングセル
FF11 AND型クロックゲーティングセルが備えるフリップフロップ
FF21 OR型クロックゲーティングセルが備えるフリップフロップ
AND11 AND回路
OR21 OR回路
DESCRIPTION OF SYMBOLS 100, 200 Semiconductor integrated circuit design apparatus 101 Circuit design database 102 Timing analysis part 103 Hold error information 104 Flip-flop insertion part 105 Circuit connection information FF1 Front-stage flip-flop FF2 Rear-stage flip-flop FF3 Insertion flip-flop 10 Logic circuits CGC1, CGC2 Flip flop FF21 provided in the AND type clock gating cell Flip flop AND11 AND circuit OR21 OR circuit provided in the OR type clock gating cell

Claims (8)

クロック入力端子に入力されるクロック信号に応じて、入力データをラッチし、出力する第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のクロックゲーティング回路からの信号とする
半導体集積回路の設計方法。
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のフリップフロップに入力されるクロック信号が、前記第2のクロックゲーティング回路からの信号であり、且つ、前記第2のフリップフロップに入力されるクロック信号が、前記第1のクロックゲーティング回路からの信号である場合は、前記第2のクロックゲーティング回路を前記第1のクロックゲーティング回路に変更、もしくは、前記第1のクロックゲーティング回路を前記第2のクロックゲーティング回路に変更する
請求項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のクロックゲーティング回路は、
前記基準クロックの半周期ずれたクロック信号に応じて、前記第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のクロックゲーティング回路は、
前記基準クロックの半周期ずれたクロック信号に応じて、前記第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のフリップフロップを有し、前記第2のフリップフロップが、所定の論理回路を経由した前記第1のフリップフロップの出力信号を入力される半導体集積回路において、
前記第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.
前記第1のフリップフロップに入力されるクロック信号が、前記第2のクロックゲーティング回路からの信号であり、且つ、前記第2のフリップフロップに入力されるクロック信号が、前記第1のクロックゲーティング回路からの信号である場合は、前記第2のクロックゲーティング回路を前記第1のクロックゲーティング回路に変更、もしくは、前記第1のクロックゲーティング回路を前記第2のクロックゲーティング回路に変更する
請求項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のフリップフロップを有し、前記第2のフリップフロップが、所定の論理回路を経由した前記第1のフリップフロップの出力信号を入力される半導体集積回路において、
前記第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.
前記第1のフリップフロップに入力されるクロック信号が、前記第2のクロックゲーティング回路からの信号であり、且つ、前記第2のフリップフロップに入力されるクロック信号が、前記第1のクロックゲーティング回路からの信号である場合は、前記第2のクロックゲーティング回路を前記第1のクロックゲーティング回路に変更、もしくは、前記第1のクロックゲーティング回路を前記第2のクロックゲーティング回路に変更する
請求項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.
JP2010099581A 2010-04-23 2010-04-23 Designing device, designing method and program for semiconductor integrated circuit Pending JP2011232787A (en)

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)

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