JP2007110403A - 半導体集積回路およびその設計方法 - Google Patents

半導体集積回路およびその設計方法 Download PDF

Info

Publication number
JP2007110403A
JP2007110403A JP2005298911A JP2005298911A JP2007110403A JP 2007110403 A JP2007110403 A JP 2007110403A JP 2005298911 A JP2005298911 A JP 2005298911A JP 2005298911 A JP2005298911 A JP 2005298911A JP 2007110403 A JP2007110403 A JP 2007110403A
Authority
JP
Japan
Prior art keywords
flip
clock
flops
clock signal
semiconductor integrated
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.)
Withdrawn
Application number
JP2005298911A
Other languages
English (en)
Inventor
憲二 ▲濱▼田
Kenji Hamada
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.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
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 Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP2005298911A priority Critical patent/JP2007110403A/ja
Publication of JP2007110403A publication Critical patent/JP2007110403A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

【課題】クロック信号に同期して動作する同期回路において、簡単な構成の回路で、ノイズの発生やIRドロップ、ピーク消費電流の増大などを大幅に低減することができる半導体集積回路およびその設計方法を提供する。
【解決手段】本発明の半導体集積回路は、複数の組み合わせ回路間に挿入された複数のフリップフロップと、複数のフリップフロップにクロック信号を分配するクロックツリーとを有し、クロック信号により同期動作する。複数のフリップフロップは、クロックツリーからクロック信号が正相で分配され、この正相のクロック信号の立ち上がりエッジに同期して動作する複数の正エッジフリップフロップと、クロックツリーからクロック信号が逆相で分配され、この逆相のクロック信号の立ち下がりエッジに同期して動作する複数の負エッジフリップフロップとを含む。
【選択図】図1

Description

本発明は、クロック信号に同期して動作する同期回路を搭載する半導体集積回路およびその設計方法に関するものである。
例えば、図3に示す同期回路を搭載する半導体集積回路20では、外部から入力されるデータDATA_INが、同じく外部から入力されるクロック信号CLOCKの立ち上がりに同期して前段のフリップフロップ24aに保持され、その出力信号が組み合わせ回路26で処理される。また、組み合わせ回路26の出力信号は、同じクロック信号の次の立ち上がりに同期して後段のフリップフロップ24bに保持され、その出力信号DATA_OUTが外部に出力される。
図3に示す同期回路は、説明を簡単にするために簡略化したものであるが、現在では、半導体集積回路20のチップ上に数百万以上のトランジスタを集積することが可能であるため、図3に示すようなフリップフロップと組み合わせ回路とが、交互に、多数、接続された、大規模の同期回路が多数搭載される場合がある。
この場合、図4の半導体集積回路30に示すように、多数のフリップフロップにクロック信号を分配するクロックツリー34が構成される。このクロックツリー34は、非反転バッファ(ないしは、インバータ(反転バッファ)を2つ直列に接続したもの)をツリー状に順次接続していくことによって構成される。そして、クロックツリー34の最終段の各々の非反転バッファから出力されるクロック信号に同期して、各々のフリップフロップ(FF)32にデータが保持される。
ここで、例えば図3に示す同期回路において、前段のフリップフロップ24aに入力されるクロック信号Aが立ち上がるタイミングよりも、後段のフリップフロップ24bに入力されるクロック信号Bが立ち上がるタイミングの方が、組み合わせ回路26における遅延時間以上に遅くなると、後段のフリップフロップ24bには、1クロック前の組み合わせ回路26の出力信号が保持されることになり、データがスルーする(突き抜ける)状態となる。
これを防止するために、上記クロックツリー34では、各々のフリップフロップ32に供給されるクロック信号のドライブ能力やスキューが全て同じになるように、クロックツリー34を構成する非反転バッファの段数や配置位置などが調整される。このため、図4に示すクロックツリー34では、全ての非反転バッファがほぼ同時に、同じ方向(ハイレベルからローレベル、もしくはローレベルからハイレベル)にスイッチングする。
半導体集積回路30の動作が開始されると、クロック信号は停止しないので、上記の動作が100%の動作率でずっと続く。このため、回路規模が増大するにつれて、その影響によるノイズやIRドロップ、消費電力の増大などの問題が無視できなくなる。
これに対し、従来は、例えばSSCG(スプレッド・スペクトラム・クロック・ジェネレーション)の技術や特許文献1,2に開示の技術などを使用することによって、各々のフリップフロップに供給されるクロック信号のタイミングをずらすことにより、ノイズを低減することが提案されている。また、上記クロックツリーの設計方法としては、例えば特許文献3の技術などが知られている。
特開2000−29562号公報 特開2000−91887号公報 特開2001−175699号公報
本発明の目的は、前記従来技術に基づく問題点を解消し、クロック信号に同期して動作する同期回路において、簡単な構成の回路で、ノイズの発生やIRドロップ、消費電力の増大などを大幅に低減することができる半導体集積回路およびその設計方法を提供することにある。
上記目的を達成するために、本発明は、複数の組み合わせ回路間に挿入された複数のフリップフロップと、該複数のフリップフロップにクロック信号を分配するクロックツリーとを有し、該クロック信号により同期動作する半導体集積回路であって、
前記複数のフリップフロップが、前記クロックツリーから前記クロック信号が正相で分配され、該クロック信号の立ち上がりエッジに同期して動作する複数の正エッジフリップフロップと、前記クロックツリーから前記クロック信号が逆相で分配され、該クロック信号の立ち下がりエッジに同期して動作する複数の負エッジフリップフロップとを含むことを特徴とする半導体集積回路を提供するものである。
ここで、前記半導体集積回路が複数の回路ブロックを含み、該複数の回路ブロックのそれぞれが、前記正エッジフリップフロップと負エッジフリップフロップとの両方を含むことが好ましい。
また、前記クロックツリーは、クロック源に非反転バッファを介して接続され、前記複数の正エッジフリップフロップに前記クロック信号を供給する第1の枝と、同一のクロック源に反転バッファを介して接続され、前記複数の負エッジフリップフロップに前記クロック信号を供給する第2の枝とを含むことが好ましい。
また、本発明は、複数の組み合わせ回路間に挿入された複数のフリップフロップと、該複数のフリップフロップにクロック信号を分配するクロックツリーとを有し、該クロック信号により同期動作する半導体集積回路の設計方法であって、
前記複数のフリップフロップとして、前記クロックツリーから前記クロック信号が正相で分配され、該クロック信号の立ち上がりエッジに同期して動作する正エッジフリップフロップと、前記クロックツリーから前記クロック信号が逆相で分配され、該クロック信号の立ち下がりエッジに同期して動作する負エッジフリップフロップとを混在させることを特徴とする半導体集積回路の設計方法を提供する。
ここで、論理仕様決定後、RTLデータ生成の際に、前記正エッジフリップフロップと負エッジフリップフロップとを混在させて生成することが好ましい。
また、論理合成において、前記複数のフリップフロップとして正エッジフリップフロップのみを配置し、
その後、前記正エッジフリップフロップの一部を負エッジフリップフロップに置き換えることが好ましい。
本発明によれば、クロックツリーによって生成される正相のクロック信号と逆相のクロック信号とが同じタイミングで逆方向にスイッチングする。このため、正相のクロック信号を生成するための全てのバッファと逆相のクロック信号を生成するための全てのバッファとが同時にスイッチングする時のピーク電流を低減することができ、ノイズの発生やIRドロップを大幅に低減することができ、消費電力を削減することができる。
また、本発明の半導体集積回路は、逆相のクロック信号を生成するために、非反転バッファの一部を反転バッファに変更し、かつ、正エッジフリップフロップの一部を負エッジフリップフロップに変更するだけという簡単な構成で実現できるという利点もある。
以下に、添付の図面に示す好適実施形態に基づいて、本発明の半導体集積回路およびその設計方法を詳細に説明する。
図1は、本発明の半導体集積回路の構成を表す一実施形態の回路図である。同図に示す半導体集積回路10は、図4に示す従来の半導体集積回路30との対比が容易となるように、従来の半導体集積回路30に対して本発明を適用したものである。すなわち、本実施形態の半導体集積回路10は、図1に示すように、8個のフリップフロップ(FF)12と、クロックツリー14とを備えている。
フリップフロップ12は、クロックツリー14から供給されるクロック信号に同期して動作するもので、複数の組み合わせ回路(図示省略)間に挿入される。ここで、複数の組み合わせ回路間とは、例えば内部回路内の組み合わせ回路同士の間はもちろん、IO(入出力)領域内の入力バッファと内部回路内の組み合わせ回路間、内部回路内の組み合わせ回路とIO領域内の出力バッファ間なども含まれるものとする。
8個のフリップフロップ12のうち、図1中上側4個のフリップフロップは、クロックツリー14からクロック信号が正相で分配され、この正相のクロック信号の立ち上がりエッジに同期して動作する正エッジフリップフロップ12aである。これに対し、下側4個のフリップフロップは、クロックツリー14からクロック信号が逆相で分配され、この逆相のクロック信号の立ち下がりエッジに同期して動作する負エッジフリップフロップ12bである。
正エッジフリップフロップ12aは、正相のクロック信号の立ち上がりエッジに同期して動作し、そのデータ入力端子(図示省略)に入力される入力データを保持するとともに、そのデータ出力端子(図示省略)から出力する。これとは逆に、負エッジフリップフロップ12bは、逆相のクロック信号の立ち下がりエッジに同期して動作し、そのデータ入力端子に入力されるデータを保持するとともに、そのデータ出力端子(図示省略)から出力する。
次に、クロックツリー14は、4個の正エッジフリップフロップ12aに正相のクロック信号を分配し、4個の負エッジフリップフロップ12bに逆相のクロック信号を分配するものである。クロックツリー14は、クロック源に非反転バッファを介して接続され、4個の正エッジフリップフロップ12aに正相のクロック信号を供給する第1の枝14aと、同一のクロック源に反転バッファを介して接続され、4個の負エッジフリップフロップ12bに逆相のクロック信号を供給する第2の枝14bとを備えている。
ここで、第1の枝14aは、7個の非反転バッファによって構成されている。初段の非反転バッファの入力は、ルートバッファ16を介してクロック源に接続され、その出力は、2段目の2つの非反転バッファの入力に各々接続されている。また、2段目の2つの非反転バッファの出力は、それぞれ3段目の2つの非反転バッファの入力に接続され、3段目の4個の非反転バッファの出力が、それぞれ4個の正エッジフリップフロップ12aのクロック入力端子に接続されている。
一方、第2の枝14bは、1つの反転バッファと、6個の非反転バッファとによって構成されている。初段の反転バッファの入力は、同じくルートバッファ16を介してクロック源に接続され、その出力は、2段目の2つの非反転バッファの入力に各々接続されている。また、2段目の2つの非反転バッファの出力は、それぞれ3段目の2つの非反転バッファの入力に接続され、3段目の非反転バッファの出力が、それぞれ4個の負エッジフリップフロップ12bの反転クロック入力端子に接続されている。
なお、半導体集積回路10では、フリップフロップ12とクロックツリー14以外にも、メモリ回路や組み合わせ回路等を含む、各種の回路を搭載することが可能である。また、フリップフロップ12の個数も限定されない。クロックツリー14の段数は、クロック信号が分配されるフリップフロップ12の個数に応じて数段〜数十段になる場合もあるので、その段数や、どのようにクロック信号を分配するかは適宜決定すれば良い。
次に、半導体集積回路10の動作を説明する。
クロックツリー14の第1の枝14a側では、ルートバッファ16を介してクロック源から供給されるクロック信号が各々の非反転バッファによって4つの正相のクロック信号に分配され、ほぼ同じ立ち上がりタイミングの4つの正相のクロック信号が、4個の正エッジフリップフロップ12aのそれぞれのクロック入力端子に供給される。4個の正エッジフリップフロップ12aは、正相のクロック信号の立ち上がりエッジのタイミングでデータを保持する。
一方、第2の枝14b側では、同じくルートバッファ16を介してクロック源から供給されるクロック信号が初段の反転バッファによって反転され、さらに2段目および3段目の非反転バッファによって4つの逆相のクロック信号に分配されて、ほぼ同じ立ち下がりタイミングの4つの逆相のクロック信号が、4個の負エッジフリップフロップ12bのそれぞれのクロック入力端子に供給される。4個の負エッジフリップフロップ12bは、逆相のクロック信号の立ち下がりエッジのタイミングでデータを保持する。
なお、正相のクロック信号の立ち上がりエッジのタイミングと逆相のクロック信号の立ち下がりエッジのタイミングはほぼ同じである。その結果、全てのフリップフロップ12は、同じタイミングでデータを保持する。すなわち、本実施形態の半導体集積回路10は、図4に示す従来の半導体集積回路30と同様に動作する。
また、本実施形態の半導体集積回路10では、クロックツリー14の第1の枝14aを構成する全ての非反転バッファがほぼ同時に、同じ方向(すなわち、ハイレベルからローレベル、もしくはローレベルからハイレベル)にスイッチングする。これに対し、第2の枝14bを構成する全ての非反転バッファはほぼ同時に、第1の枝14aの非反転バッファとは逆の方向にスイッチングする。
上記のように、本実施形態の半導体集積回路10では、第1の枝14aを構成する全ての非反転バッファと、第2の枝14bを構成する全ての非反転バッファとが逆方向にスイッチングする。このため、第1の枝14aと第2の枝14bとの間で、全てのバッファが同時にスイッチングする時に電源およびグランドのそれぞれに流れるピーク電流を低減することができる。これによって、ノイズの発生やIRドロップを大幅に低減することができ、ピーク時消費電流を大幅に削減することができる。
なお、正エッジフリップフロップ12aと負エッジフリップフロップ12bを同数にした場合に最も高い効果を得ることができるのは当然である。しかし、これに限定されず、両者を混在させることによって、その混在の割合に応じて、クロックツリー14における全てのバッファが同時にスイッチングする時のピーク電流を低減することができるので、効果の違いはあっても、ノイズの発生やIRドロップを確実に低減することができる。
また、半導体集積回路10は、逆相のクロック信号を生成するために、非反転バッファの一部を反転バッファに変更し、かつ、正エッジフリップフロップ12aの一部を負エッジフリップフロップ12bに変更するだけという簡単な構成で実現できるので、回路設計時の負担も少ないという利点もある。
また、半導体集積回路10が複数の回路ブロックを含む場合、複数の回路ブロックのそれぞれが、正エッジフリップフロップ12aと負エッジフリップフロップ12bとの両方を含むのが好ましい。しかし、ある特定の回路ブロックの中だけに、正エッジフリップフロップ12aと負エッジフリップフロップ12bの両方を含めるようにしても良いし、ある回路ブロックには正エッジフリップフロップ12aだけを含め、別の回路ブロックには負エッジフリップフロップ12bだけを含めるように構成しても良い。
また、図2に示すように、例えば同じ回路ブロック内であれば、クロックツリー14によって生成される正相のクロック信号の配線と逆相のクロック信号の配線とを並走させる方が好ましい。このように、正相のクロック信号の配線と逆相のクロック信号の配線とを並走させることによって、例えば特開平8−236704号公報等にも開示されているように、信号配線を流れる電流によって発生する磁界を相殺することができ、クロストークノイズの発生を低減させることができる。
次に、本発明の半導体集積回路の設計方法について説明する。
本発明の半導体集積回路の設計方法は、同期回路を有する半導体集積回路の設計方法であって、同期回路が有する複数のフリップフロップとして、クロックツリーからクロック信号が正相で分配され、この正相のクロック信号の立ち上がりエッジに同期して動作する正エッジフリップフロップと、クロックツリーからクロック信号が逆相で分配され、この逆相のクロック信号の立ち下がりエッジに同期して動作する負エッジフリップフロップとを混在させることを特徴とするものである。
この場合、上記のように、両者を混在させるための具体的な手法として、例えば下記(1)〜(3)の手法を挙げることが出来る。
(1)論理仕様決定後、RTL(レジスタ・トランスファ・レベル:Register Transfer Level)データ生成の際に、正エッジフリップフロップ12aと負エッジフリップフロップ12bとを混在させて生成する。
例えば、下記example 1の記述のRTLデータに基づいて論理合成をすると、図4に示す従来の半導体集積回路30のように、8個全てのフリップフロップが、クロック信号の立ち上がりエッジでデータを保持する回路が合成される。
(Example 1)

module example1 (RESET_N, CLOCK, DATA_IN, DATA_OUT);

input RESET_N, CLOCK;
input [7:0]DATA_IN;
output [7:0]DATA_OUT;

reg [7:0]DATA_OUT;

always @ (negedge RESET_N or posedge CLOCK)
if (!RESET_N)
DATA_OUT <= 8'h00;
else
DATA_OUT <= DATA_IN;

endmodule
これに対し、下記example 2のように記述を変更したRTLデータに基づいて論理合成をすると、図1に示す本実施形態の半導体集積回路10のように、8個のフリップフロップのうち、4個のフリップフロップ[3:0]が、クロック信号の立ち上がりエッジでデータを保持し、残りの4個のフリップフロップ[7:4]が、クロック信号の立ち下がりエッジでデータを保持する回路を合成することができる。
(Example 2)

module example2 (RESET_N, CLOCK, DATA_IN, DATA_OUT);

input RESET_N, CLOCK;
input [7:0]DATA_IN;
output [7:0]DATA_OUT;

reg [7:0]DATA_OUT;

assign CLOCK_N = ~CLOCK;

always @ (negedge RESET_N or posedge CLOCK)
if (!RESET_N)
DATA_OUT[3:0] <= 8'h00;
else
DATA_OUT[3:0] <= DATA_IN[3:0];

always @ (negedge RESET_N or negedge CLOCK_N)
if (!RESET_N)
DATA_OUT[7:4] <= 8'h00;
else
DATA_OUT[7:4] <= DATA_IN[7:4];

endmodule
(2)論理合成において、複数のフリップフロップとして正エッジフリップフロップのみを配置し、その後、正エッジフリップフロップの一部を負エッジフリップフロップに置き換える。
上記(1)のexample 1の記述のRTLデータを用いて論理合成された回路は、例えば下記example 3の記述のように、8個の正エッジフリップフロップDFFP[7:0]のみが配置された記述の回路構成となる。
(Example 3)

module example3 (RESET_N, CLOCK, DATA_IN, DATA_OUT);

input [7:0]DATA_IN;
output [7:0]DATA_OUT;
input RESET_N, CLOCK;

DFFP DATA_OUT_reg_7A (.Q(DATA_OUT[7]), .CK(CLOCK), .D(DATA_IN[7]), .RB(RESET_N));
DFFP DATA_OUT_reg_6A (.Q(DATA_OUT[6]), .CK(CLOCK), .D(DATA_IN[6]), .RB(RESET_N));
DFFP DATA_OUT_reg_5A (.Q(DATA_OUT[5]), .CK(CLOCK), .D(DATA_IN[5]), .RB(RESET_N));
DFFP DATA_OUT_reg_4A (.Q(DATA_OUT[4]), .CK(CLOCK), .D(DATA_IN[4]), .RB(RESET_N));
DFFP DATA_OUT_reg_3A (.Q(DATA_OUT[3]), .CK(CLOCK), .D(DATA_IN[3]), .RB(RESET_N));
DFFP DATA_OUT_reg_2A (.Q(DATA_OUT[2]), .CK(CLOCK), .D(DATA_IN[2]), .RB(RESET_N));
DFFP DATA_OUT_reg_1A (.Q(DATA_OUT[1]), .CK(CLOCK), .D(DATA_IN[1]), .RB(RESET_N));
DFFP DATA_OUT_reg_0A (.Q(DATA_OUT[0]), .CK(CLOCK), .D(DATA_IN[0]), .RB(RESET_N));

endmodule
これに対し、下記example 4のように記述を書き換えると、図1に示す本実施形態の半導体集積回路10のように、8個のフリップフロップのうち、4個のフリップフロップDFFP[3:0]が、クロック信号の立ち上がりエッジでデータを保持し、残りの4個のフリップフロップDFFN[7:4]が、クロック信号の立ち下がりエッジでデータを保持する回路を合成することができる。
(Example 4)

module example4 (RESET_N, CLOCK, DATA_IN, DATA_OUT);

input [7:0]DATA_IN;
output [7:0]DATA_OUT;
input RESET_N, CLOCK;

INV X3X (.Z(CLOCK_N), .A(CLOCK));
DFFN DATA_OUT_reg_7A (.Q(DATA_OUT[7]), .CK(CLOCK_N), .D(DATA_IN[7]), .RB(RESET_N));
DFFN DATA_OUT_reg_6A (.Q(DATA_OUT[6]), .CK(CLOCK_N), .D(DATA_IN[6]), .RB(RESET_N));
DFFN DATA_OUT_reg_5A (.Q(DATA_OUT[5]), .CK(CLOCK_N), .D(DATA_IN[5]), .RB(RESET_N));
DFFN DATA_OUT_reg_4A (.Q(DATA_OUT[4]), .CK(CLOCK_N), .D(DATA_IN[4]), .RB(RESET_N));
DFFP DATA_OUT_reg_3A (.Q(DATA_OUT[3]), .CK(CLOCK), .D(DATA_IN[3]), .RB(RESET_N));
DFFP DATA_OUT_reg_2A (.Q(DATA_OUT[2]), .CK(CLOCK), .D(DATA_IN[2]), .RB(RESET_N));
DFFP DATA_OUT_reg_1A (.Q(DATA_OUT[1]), .CK(CLOCK), .D(DATA_IN[1]), .RB(RESET_N));
DFFP DATA_OUT_reg_0A (.Q(DATA_OUT[0]), .CK(CLOCK), .D(DATA_IN[0]), .RB(RESET_N));

endmodule
なお、上記example 3, example 4の記述において、それぞれDFFPは正エッジフリップフロップ、DFFNは負エッジフリップフロップ、INVはインバータのセル名を表す。(2)の手法は、(1)の手法と比べて、正エッジフリップフロップを必要数だけ1つずつ負エッジフリップフロップに書き換える必要があるので、その分だけ設計の手間が増えるが、例えばソフトウェアで変換プログラムを作成して一括変換させることも可能である。
また、上記(1)および(2)のexample 1〜example 4の記述では、クロックツリーは構成されない。図1に示すクロックツリー14に相当する部分の記述は存在していない。クロックツリーは、前述のように、半導体集積回路10に搭載されるトランジスタ数が数百万以上になる場合もあるため、通常、次に述べるクロックツリー合成ツールを利用して生成されるのが一般的である。
(3)スキャンパス挿入ツール(Scan Insertion Tool)もしくはクロックツリー合成ツール(CTS:Clock Tree Synthesis Tool)のアルゴリズムを変えて、正エッジフリップフロップと負エッジフリップフロップとを混在させる。
前述の通り、クロックツリーは、クロックツリー合成ツールを使用して自動生成するのが一般的である。また、スキャンパステストを行う場合、スキャンパス挿入ツールを使用して、フリップフロップをスキャンテスト用のスキャンフリップフロップに自動置換するのが一般的である。これらのクロックツリー合成ツールやスキャンパス挿入ツールは、一般的にEDA(Electronic Design Automation)ツールと呼ばれている。
従来のEDAツールでは、クロック信号の極性が変更されることはなかったが、例えばクロックツリー合成ツールでクロックツリーを合成する時に、図1に示すようなクロックツリー14を合成し、なおかつ8個のフリップフロップ12のうち、4個のフリップフロップを負エッジフリップフロップ12bに変更するようにツールのアルゴリズムを変更することで図1に示す半導体集積回路10を実現できる。
また、例えばスキャンパス挿入ツールを使用してフリップフロップをスキャンフリップフロップに置換する時に、8個のフリップフロップ12のうち、4個のフリップフロップを正エッジのスキャンフリップフロップに置換し、残りの4個のフリップフロップを負エッジのスキャンフリップフロップに置換するようにツールのアルゴリズムを変更することで、フリップフロップ12の一部を負エッジのスキャンフリップフロップに変更できる。
なお、本発明の半導体集積回路の設計方法は、上記(1)〜(3)の具体例に限定されず、正エッジフリップフロップと負エッジフリップフロップとを混在させることができるどのような具体的な手法を用いても良い。
本発明は、基本的に以上のようなものである。
以上、本発明の半導体集積回路およびその設計方法について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
本発明の半導体集積回路の構成を表す一実施形態の回路図である。 正相のクロック信号の配線と逆相のクロック信号の配線とを並走させた状態を表す回路図である。 組み合わせ回路を有する半導体集積回路の構成を表す概念図である。 従来の半導体集積回路の構成を表す一例の回路図である。
符号の説明
10,20,30 半導体集積回路
12,24a,24b,32 フリップフロップ
14,34 クロックツリー
12a 正エッジフリップフロップ
12b 負エッジフリップフロップ
14a 第1の枝
14b 第2の枝
16 ルートバッファ
26 組み合わせ回路

Claims (6)

  1. 複数の組み合わせ回路間に挿入された複数のフリップフロップと、該複数のフリップフロップにクロック信号を分配するクロックツリーとを有し、該クロック信号により同期動作する半導体集積回路であって、
    前記複数のフリップフロップが、前記クロックツリーから前記クロック信号が正相で分配され、該クロック信号の立ち上がりエッジに同期して動作する複数の正エッジフリップフロップと、前記クロックツリーから前記クロック信号が逆相で分配され、該クロック信号の立ち下がりエッジに同期して動作する複数の負エッジフリップフロップとを含むことを特徴とする半導体集積回路。
  2. 前記半導体集積回路が複数の回路ブロックを含み、該複数の回路ブロックのそれぞれが、前記正エッジフリップフロップと負エッジフリップフロップとの両方を含むことを特徴とする請求項1記載の半導体集積回路。
  3. 前記クロックツリーは、クロック源に非反転バッファを介して接続され、前記複数の正エッジフリップフロップに前記クロック信号を供給する第1の枝と、同一のクロック源に反転バッファを介して接続され、前記複数の負エッジフリップフロップに前記クロック信号を供給する第2の枝とを含むことを特徴とする請求項1記載の半導体集積回路。
  4. 複数の組み合わせ回路間に挿入された複数のフリップフロップと、該複数のフリップフロップにクロック信号を分配するクロックツリーとを有し、該クロック信号により同期動作する半導体集積回路の設計方法であって、
    前記複数のフリップフロップとして、前記クロックツリーから前記クロック信号が正相で分配され、該クロック信号の立ち上がりエッジに同期して動作する正エッジフリップフロップと、前記クロックツリーから前記クロック信号が逆相で分配され、該クロック信号の立ち下がりエッジに同期して動作する負エッジフリップフロップとを混在させることを特徴とする半導体集積回路の設計方法。
  5. 論理仕様決定後、RTLデータ生成の際に、前記正エッジフリップフロップと負エッジフリップフロップとを混在させて生成することを特徴とする請求項4記載の半導体集積回路の設計方法。
  6. 論理合成において、前記複数のフリップフロップとして正エッジフリップフロップのみを配置し、
    その後、前記正エッジフリップフロップの一部を負エッジフリップフロップに置き換えることを特徴とする請求項4記載の半導体集積回路の設計方法。
JP2005298911A 2005-10-13 2005-10-13 半導体集積回路およびその設計方法 Withdrawn JP2007110403A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005298911A JP2007110403A (ja) 2005-10-13 2005-10-13 半導体集積回路およびその設計方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005298911A JP2007110403A (ja) 2005-10-13 2005-10-13 半導体集積回路およびその設計方法

Publications (1)

Publication Number Publication Date
JP2007110403A true JP2007110403A (ja) 2007-04-26

Family

ID=38035901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005298911A Withdrawn JP2007110403A (ja) 2005-10-13 2005-10-13 半導体集積回路およびその設計方法

Country Status (1)

Country Link
JP (1) JP2007110403A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8365121B2 (en) 2009-06-02 2013-01-29 Fujitsu Semiconductor Limited Supporting method, design supporting device, computer product, and semiconductor integrated circuit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8365121B2 (en) 2009-06-02 2013-01-29 Fujitsu Semiconductor Limited Supporting method, design supporting device, computer product, and semiconductor integrated circuit
JP5263393B2 (ja) * 2009-06-02 2013-08-14 富士通セミコンダクター株式会社 設計支援方法、設計支援装置、および設計支援プログラム

Similar Documents

Publication Publication Date Title
US7904874B2 (en) Opposite-phase scheme for peak current reduction
JP2004336558A (ja) データ形式変換回路
KR20030011697A (ko) 탑재되는 메모리 장치들의 수에 제한없는 레지스터 및이를 갖는 메모리 모듈
JP2003218687A5 (ja)
JP2005252348A (ja) 半導体装置
JP2005303464A (ja) フリップフロップ
JP2000341093A (ja) 低消費電力ディジタル論理回路
JP2007110403A (ja) 半導体集積回路およびその設計方法
US20040019830A1 (en) Test apparatus of semiconductor integrated circuit with hold error preventing function
JP2002245778A (ja) 半導体装置
JPH10133768A (ja) クロックシステム、半導体装置、半導体装置のテスト方法、及びcad装置
JP3595310B2 (ja) 半導体集積回路
JP2009169981A (ja) 半導体装置およびクロック伝送方法
US7612595B2 (en) Sequence independent non-overlapping digital signal generator with programmable delay
JP2004127012A (ja) 同期式回路およびその設計方法
JP2008219535A (ja) 同期回路
JP3614758B2 (ja) クロック位相調整システム及びクロックツリー設計方法
JP2006339521A (ja) 半導体集積回路
JP2007109773A (ja) 大規模半導体集積回路装置
JP2005326918A (ja) 半導体集積回路
JP2007155611A (ja) 半導体集積回路
JP2007251603A (ja) 半導体集積回路
JP2004094776A (ja) 半導体集積回路
JP2004335589A (ja) 半導体集積回路及びそのレイアウト設計方法
JP2000353939A (ja) クロック信号同期式フリップフロップ回路

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090106