(57)【要約】【課題】クロックスキューを原因とする誤動作を防止することができると共に容易に実現可能なレイアウト設計方法を提供する。【解決手段】このレイアウト設計方法は、フリップフロップに対してクロック信号を入力するための第１の端子とクロック信号を出力するための第２の端子が定義されたセルライブラリを用いて、データ出力側のフリップフロップの第２の端子からデータ入力側のフリップフロップの第１の端子に向けてクロック信号が供給されるようにクロック信号配線の接続状態を設定することによりネットリストを作成するステップ（ａ）と、セルライブラリ及びネットリストに基づいてレイアウトを自動的に作成するステップ（ｂ）と、各フリップフロップの第１及び第２の端子を１つのクロック信号入力端子に置き換えることにより、ステップ（ｂ）において作成されたレイアウトを修正するステップ（ｃ）とを具備する。【選択図】図２
2007156674.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路ブロックをそれぞれ実現するための複数のセルが定義されたセルライブラリを用いて半導体集積回路のレイアウトを設計する方法であって、
フリップフロップに対して、該フリップフロップにクロック信号を入力するための第１の端子及び該フリップフロップからクロック信号を出力するための第２の端子が定義されたセルライブラリを用いて、データ出力側のフリップフロップの第２の端子からデータ入力側のフリップフロップの第１の端子に向けてクロック信号が供給されるようにクロック信号配線の接続状態を設定することにより、複数のフリップフロップを含む回路のネットリストを作成するステップ（ａ）と、
前記セルライブラリ及び前記ネットリストに基づいて、前記複数のフリップフロップを含む回路のレイアウトを自動的に作成するステップ（ｂ）と、
ステップ（ｂ）において作成されたレイアウトに含まれている各フリップフロップの第１及び第２の端子を１つのクロック信号入力端子に置き換えることにより、ステップ（ｂ）において作成されたレイアウトを修正するステップ（ｃ）と、
を具備する半導体集積回路のレイアウト設計方法。
【請求項２】
前記複数のフリップフロップを含む回路が、複数のフリップフロップの間に接続された組合せ論理回路をさらに含む、請求項１記載の半導体集積回路のレイアウト設計方法。
【請求項３】
１つのフリップフロップからクロック信号が供給される他のフリップフロップの数が所定の値以上である場合に、ステップ（ａ）が、前記１つのフリップフロップの第２の端子と前記他の複数のフリップフロップの第１の端子との間にバッファ回路を挿入することを含む、請求項１又は２記載の半導体集積回路のレイアウト設計方法。
【請求項４】
複数の回路ブロックをそれぞれ実現するための複数のセルが定義されたセルライブラリを用いて半導体集積回路のレイアウトを設計する装置であって、
フリップフロップに対して、該フリップフロップにクロック信号を入力するための第１の端子及び該フリップフロップからクロック信号を出力するための第２の端子が定義されたセルライブラリを記録した記録媒体と、
前記セルライブラリを用いて、フリップフロップの第１及び第２の端子に対して個別の配線を許容しながら、入力される回路情報に基づいてネットリストを作成するネットリスト作成処理部と、
前記セルライブラリ及び前記ネットリストに基づいて、前記複数のフリップフロップを含む回路のレイアウトを自動的に作成し、ユーザの指示に従って、該レイアウトに含まれている各フリップフロップの第１及び第２の端子を１つのクロック信号入力端子に置き換えることにより該レイアウトを修正するレイアウト処理部と、
を具備する半導体集積回路のレイアウト設計装置。
【請求項５】
複数の回路ブロックをそれぞれ実現するための複数のセルが定義されたセルライブラリを用いて半導体集積回路のレイアウトを設計するためのプログラムであって、
フリップフロップに対して、該フリップフロップにクロック信号を入力するための第１の端子及び該フリップフロップからクロック信号を出力するための第２の端子が定義されたセルライブラリを用いて、フリップフロップの第１及び第２の端子に対して個別の配線を許容しながら、入力される回路情報に基づいてネットリストを作成する手順（ａ）と、
前記セルライブラリ及び前記ネットリストに基づいて、前記複数のフリップフロップを含む回路のレイアウトを自動的に作成する手順（ｂ）と、
手順（ｂ）において作成されたレイアウトに含まれている各フリップフロップの第１及び第２の端子を１つのクロック信号入力端子に置き換えることにより、手順（ｂ）において作成されたレイアウトを修正する手順（ｃ）と、
をコンピュータに実行させる半導体集積回路のレイアウト設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のセルを用いてＡＳＩＣ（Application Specific IC）等の半導体集積回路のレイアウトを設計する方法に関し、さらに、半導体集積回路のレイアウト設計装置、及び、半導体集積回路のレイアウト設計プログラムに関する。
【背景技術】
【０００２】
ＡＳＩＣ等の半導体集積回路においては、フリップフロップやＡＮＤ回路等の複数の回路ブロックをそれぞれ実現するための複数のセルを組み合わせてレイアウト領域内に配置し、これらのセル間を配線することによりレイアウト設計が行われている。
【０００３】
また、一般に、半導体集積回路において、複数のフリップフロップが直列に接続された多段回路（例えば、シフトレジスタ等）が広く用いられている。そのような多段回路においては、クロックスキューを原因とする誤動作が生じることがあり、このような誤動作を防止するための技術が多数知られている。
【０００４】
例えば、下記の特許文献１には、それぞれのクロック端子に供給される同期式１相クロック信号の前縁によりセットされる複数のフリップフロップを多段に接続してなるシフトレジスタにおいて、後段のフリップフロップへのクロック供給をそれぞれすぐ前段のフリップフロップへのクロック供給より遅延しないように接続する手段を備えることを特徴とするクロック供給方式が開示されている。特許文献１によれば、クロックスキューを原因とする誤動作を防止することができるが、この技術は、半導体集積回路のレイアウト設計に関するものではない。
【０００５】
また、下記の特許文献２には、複数段のデータ入出力回路が縦続接続されて構成され、複数段のデータ入出力回路のデータ入力段からデータ出力段までが所定の段数ごとの複数のグループに区分されたデータ転送回路にクロック信号を供給するクロック供給回路において、複数のグループの内で、データ入力段により近いグループに属するデータ入出力回路に、より位相の遅れたクロック信号を供給することが開示されている。しかしながら、クロック信号の位相を遅らせるためにバッファ回路等を挿入すると、クロック信号の最終段における遅延時間が大きくなると共に、回路規模や消費電力が増加してしまう。
【０００６】
また、下記の特許文献３には、複数段のレジスタ回路で構成されたシフトレジスタ回路であって、それぞれのレジスタ回路に対応してタイミング調整回路が設けられ、後段のレジスタ回路のクロック信号に対して前段のレジスタ回路のクロック信号を遅延させるタイミング調整を行うことを特徴とするシフトレジスタ回路が開示されている。しかしながら、クロック信号を遅延させるためにアンド回路等を挿入すると、クロック信号の最終段における遅延時間が大きくなると共に、回路規模や消費電力が増加してしまう。
【０００７】
また、下記の特許文献４には、複数のフリップフロップが直列接続されてなるシフトレジスタ回路におけるクロック信号の配線方法において、最初に、クロック信号源の出力端からシフトレジスタ回路の最終段のフリップフロップのクロック入力端に至る配線路を形成し、次に、直列接続された後段のフリップフロップのクロック入力端からそれぞれ前段のフリップフロップのクロック入力端に至る配線路を順次形成する工程を繰返すことにより、シフトレジスタ回路の最終段のフリップフロップのクロック入力端から先頭のフリップフロップのクロック入力端に至る配線路を形成することを特徴とするシフトレジスタのクロック信号配線方法が開示されている。しかしながら、コンピュータを用いた自動配置配線においては、シフトレジスタ回路における複数のフリップフロップの接続状態に応じて選択的に配線路を形成することは事実上不可能である。
【０００８】
上記の点に鑑み、本出願人は、上位ビットからのクロック信号が接続されるクロック信号入力端子と、１つ前の下位側ビットのクロック信号入力端子に接続されるクロック信号出力端子とを有するフリップフロップを用いたシフトレジスタ回路を提案した（下記の特許文献５参照）。これによれば、上位ビットのフリップフロップのクロック信号出力端子から１つ前の下位側ビットのフリップフロップのクロック信号入力端子に至る配線を行えば良い。そのような自動配置配線をコンピュータプログラムによって実現することは、比較的容易である。しかしながら、このシフトレジスタ回路においては、クロック信号入力端子とクロック信号出力端子とを有する特殊なフリップフロップを用いる必要があった。
【０００９】
なお、クロックスキューを原因とする誤動作を防止するために、クロック信号を使用しない非同期回路で半導体集積回路を構成することも考えられる（例えば、下記の非特許文献１参照）。しかしながら、非同期回路に対するニーズは未だ低く、通常は、同期回路で半導体集積回路を構成することが行われている。
【特許文献１】特開昭５９−１６５２９７号公報（第１頁、図１）
【特許文献２】特開平１１−２７２３５３号公報（第１頁、図１）
【特許文献３】特開平１０−４０６９２号公報（第１頁、図１）
【特許文献４】特開平７−３１２０９４号公報（第１頁、図１）
【特許文献５】特開平７−２９３８９号公報（第１頁、図１）
【非特許文献１】唐木信雄、"「非同期プロセッサ」の事例研究  ディジタルＬＳＩが抱えるノイズ＆消費電力問題の根治療法"、Ｄｅｓｉｇｎ  Ｗａｖｅ  Ｍａｇａｚｉｎｅ、ＣＱ出版社、２００５年７月、ｐ．６４−８４
【発明の開示】
【発明が解決しようとする課題】
【００１０】
そこで、上記の点に鑑み、本発明は、クロックスキューを原因とする誤動作を防止することができると共に容易に実現可能な半導体集積回路のレイアウト設計方法、装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
以上の課題を解決するため、本発明の１つの観点に係る半導体集積回路のレイアウト設計方法は、複数の回路ブロックをそれぞれ実現するための複数のセルが定義されたセルライブラリを用いて半導体集積回路のレイアウトを設計する方法であって、フリップフロップに対して、該フリップフロップにクロック信号を入力するための第１の端子及び該フリップフロップからクロック信号を出力するための第２の端子が定義されたセルライブラリを用いて、データ出力側のフリップフロップの第２の端子からデータ入力側のフリップフロップの第１の端子に向けてクロック信号が供給されるようにクロック信号配線の接続状態を設定することにより、複数のフリップフロップを含む回路のネットリストを作成するステップ（ａ）と、セルライブラリ及びネットリストに基づいて、複数のフリップフロップを含む回路のレイアウトを自動的に作成するステップ（ｂ）と、ステップ（ｂ）において作成されたレイアウトに含まれている各フリップフロップの第１及び第２の端子を１つのクロック信号入力端子に置き換えることにより、ステップ（ｂ）において作成されたレイアウトを修正するステップ（ｃ）とを具備する。
【００１２】
ここで、複数のフリップフロップを含む回路が、複数のフリップフロップの間に接続された組合せ論理回路をさらに含むようにしても良い。また、１つのフリップフロップからクロック信号が供給される他のフリップフロップの数が所定の値以上である場合に、ステップ（ａ）において、１つのフリップフロップの第２の端子と他の複数のフリップフロップの第１の端子との間にバッファ回路を挿入するようにしても良い。
【００１３】
また、本発明の１つの観点に係る半導体集積回路のレイアウト設計装置は、複数の回路ブロックをそれぞれ実現するための複数のセルが定義されたセルライブラリを用いて半導体集積回路のレイアウトを設計する装置であって、フリップフロップに対して、該フリップフロップにクロック信号を入力するための第１の端子及び該フリップフロップからクロック信号を出力するための第２の端子が定義されたセルライブラリを記録した記録媒体と、セルライブラリを用いて、フリップフロップの第１及び第２の端子に対して個別の配線を許容しながら、入力される回路情報に基づいてネットリストを作成するネットリスト作成処理部と、セルライブラリ及びネットリストに基づいて、複数のフリップフロップを含む回路のレイアウトを自動的に作成し、ユーザの指示に従って、該レイアウトに含まれている各フリップフロップの第１及び第２の端子を１つのクロック信号入力端子に置き換えることにより該レイアウトを修正するレイアウト処理部とを具備する。
【００１４】
また、本発明の１つの観点に係る半導体集積回路のレイアウト設計プログラムは、複数の回路ブロックをそれぞれ実現するための複数のセルが定義されたセルライブラリを用いて半導体集積回路のレイアウトを設計するためのプログラムであって、フリップフロップに対して、該フリップフロップにクロック信号を入力するための第１の端子及び該フリップフロップからクロック信号を出力するための第２の端子が定義されたセルライブラリを用いて、フリップフロップの第１及び第２の端子に対して個別の配線を許容しながら、入力される回路情報に基づいてネットリストを作成する手順（ａ）と、セルライブラリ及びネットリストに基づいて、複数のフリップフロップを含む回路のレイアウトを自動的に作成する手順（ｂ）と、手順（ｂ）において作成されたレイアウトに含まれている各フリップフロップの第１及び第２の端子を１つのクロック信号入力端子に置き換えることにより、手順（ｂ）において作成されたレイアウトを修正する手順（ｃ）とをコンピュータに実行させる。
【発明の効果】
【００１５】
本発明によれば、フリップフロップに対して２つの端子が定義されたセルライブラリを用いてレイアウトを作成し、その後、２つの端子を１つに置き換えてレイアウトを修正することにより、クロックスキューを原因とする誤動作を防止することができると共に容易に実現可能な半導体集積回路のレイアウト設計方法、装置及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら、本発明の実施の形態について説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図１は、本発明の一実施形態に係る半導体集積回路のレイアウト設計装置の構成を示すブロック図である。図１に示すように、このレイアウト設計装置１は、入力部２と、表示部３と、セルライブラリ記録部４と、ネットリスト作成処理部５と、レイアウト処理部６と、検証処理部７とを有している。
【００１７】
入力部２は、ユーザ（半導体集積回路の設計技術者）が所望の回路に関する情報を入力して、ＨＤＬ（hardware description language：ハードウェア記述言語）によって回路情報が記述されたＨＤＬファイルを作成するためのキーボード等であり、表示部３は、半導体集積回路の設計結果等を表示するためのＣＲＴ又はＬＣＤ等である。
【００１８】
セルライブラリ記録部４は、半導体集積回路の設計に用いられる各種のセル（Ｄ型フリップフロップセル、ＡＮＤゲートセル、ＯＲゲートセル、ＲＡＭマクロセル等）を含むセルライブラリを記録している。本実施形態において、このセルライブラリに含まれているＤ型フリップフロップセルは、２つのクロック信号用端子、即ち、該フリップフロップにクロック信号を入力するための第１の端子、及び、該フリップフロップからクロック信号を出力するための第２の端子を有するものとして定義されており、これら２つのクロック信号用端子は、１つの物理的なクロック信号入力端子に対応している。これにより、半導体集積回路のレイアウト設計において、Ｄ型フリップフロップが、クロック信号を入力するための端子とクロック信号を出力するための端子とを有するものとして取り扱うことが可能となっている。
【００１９】
ネットリスト作成処理部５は、セルライブラリ記録部４に記録されているセルライブラリを用いて、フリップフロップの第１及び第２の端子に対して個別の配線を許容しながら、入力される回路情報に基づいてネットリスト（セルとセルとの間の接続に関する情報）を作成する。
【００２０】
レイアウト処理部６は、セルライブラリ及びネットリストに基づいて、複数のフリップフロップを含む回路のレイアウト（セルの配置及び配線）を自動的に作成し、回路シミュレーションの後、該レイアウトに含まれている各フリップフロップの第１及び第２の端子を１つのクロック信号入力端子に置き換えることにより該レイアウトを修正する。
検証処理部７は、レイアウト処理部６によって行われるレイアウト設計の結果に基づいて、回路動作の検証（回路シミュレーション）を行う。
【００２１】
図１に示すネットリスト作成処理部５、レイアウト処理部６、及び、検証処理部７は、ＣＰＵとソフトウェア（プログラム）で構成することができる。そのプログラムと、ＨＤＬファイル、ネットリスト、及び、セルライブラリは、ハードディスク、フレキシブルディスク、ＭＯ、ＭＴ、ＲＡＭ、ＣＤ−ＲＯＭ、又は、ＤＶＤ−ＲＯＭ等の記録媒体に記録することができる。
【００２２】
次に、図１〜図５を参照しながら、本実施形態に係るレイアウト設計装置が実行する処理について説明する。
図２は、図１に示すレイアウト設計装置が実行する処理を示すフローチャートである。図２に示すように、まず、ユーザが、入力部２を操作することにより、例えば、図３に示す回路に関する情報を入力する。
【００２３】
図３は、ユーザが入力しようとする回路を示す回路図である。図３に示すように、この回路は、３個のＤ型フリップフロップＦＦ１〜ＦＦ３と、２個の組合せ論理回路Ｃ１〜Ｃ２とを含んでいる。フリップフロップＦＦ１のデータ入力端子（Ｄ端子）には、外部回路から供給されるデータが入力される。フリップフロップＦＦ１のデータ出力端子（Ｑ端子）から出力されるデータは、組合せ論理回路Ｃ１に入力される。また、組合せ論理回路Ｃ１から出力されるデータは、フリップフロップＦＦ２のデータ入力端子に入力される。フリップフロップＦＦ２のデータ出力端子から出力されるデータは、組合せ論理回路Ｃ２に入力される。さらに、組合せ論理回路Ｃ２から出力されるデータは、フリップフロップＦＦ３のデータ入力端子に入力される。フリップフロップＦＦ３のデータ出力端子から出力されるデータは、外部回路に供給される。
【００２４】
本実施形態においては、セルライブラリ記録部４に記録されているセルライブラリを用いることにより、フリップフロップが、クロック信号を入力するための第１の端子とクロック信号を出力するための第２の端子とを有するものとして扱うことができる。従って、ユーザは、データ出力側のフリップフロップの第２の端子からデータ入力側のフリップフロップの第１の端子に向けてクロック信号が供給されるように、クロック信号配線の接続状態を設定することができる。そのようにすれば、データ入力側のフリップフロップの出力が変化する前に、データ出力側のフリップフロップがデータをホールドすることができるので、各フリップフロップにおいてセットアップ時間及びホールド時間を確実に確保することが可能となる。
【００２５】
再び図２を参照すると、ステップＳ１において、ネットリスト作成処理部５が、セルライブラリ記録部４に記録されているセルライブラリを用いて、各フリップフロップの第１の端子及び第２の端子に対して個別の配線を許容しながら、入力される回路情報に基づいてネットリスト（セルとセルとの間の接続に関する情報）の作成を行う。
【００２６】
図４は、ネットリスト作成処理部によって作成されるネットリストで表される回路を視覚的に示す図である。ネットリスト作成処理部５は、フリップフロップＦＦ１〜ＦＦ３の各々が有する１つの物理的なクロック信号入力端子を、仮想的に、クロック信号を入力するための第１の端子ＣＬＫＩＮ、及び、クロック信号を出力するための第２の端子ＣＬＫＯＵＴとして扱う。
【００２７】
図４に示すように、外部回路から供給されるクロック信号がフリップフロップＦＦ３の第１の端子ＣＬＫＩＮに入力され、フリップフロップＦＦ３の第２の端子ＣＬＫＯＵＴから出力されるクロック信号がフリップフロップＦＦ２の第１の端子ＣＬＫＩＮに入力され、フリップフロップＦＦ２の第２の端子ＣＬＫＯＵＴから出力されるクロック信号がフリップフロップＦＦ１の第１の端子ＣＬＫＩＮに入力される。
【００２８】
再び図２を参照すると、ステップＳ２において、レイアウト処理部６が、セルライブラリ及びネットリストに基づいて、図４に示す回路に含まれているセルの配置・配線を行うことによりレイアウトを自動的に作成し、レイアウトデータを作成する。なお、ネットリストは、セルとセルとの間の接続情報を有してはいるが、セルやセルの端子や配線等の座標情報は有していない。一方、レイアウトデータは、セルやセルの端子や配線等の座標情報をも有している。
【００２９】
ステップＳ３において、検証処理部７が、レイアウトデータに基づいて検証（回路シミュレーション）を行い、ステップＳ４において、回路シミュレーションの結果を判定する。ここで、タイミングエラー等の問題があれば、処理がステップＳ２に戻り、問題がなければ、処理がステップＳ５に移行する。
【００３０】
ステップＳ５において、レイアウト処理部６が、ユーザの指示に従って、ステップＳ２において作成されたレイアウトに含まれている各フリップフロップの第１の端子及び第２の端子を、１つのクロック信号入力端子（１つの物理的なクロック信号入力端子に対応する）に置き換えることにより、ステップＳ２において作成されたレイアウトを修正する。
【００３１】
例えば、ユーザが、各フリップフロップセルの第１の端子ＣＬＫＩＮと第２の端子ＣＬＫＯＵＴとが同一の位置にあり同一の信号を扱うように定義し直すことにより、レイアウト処理部６は、これらの端子の配置及びその周辺の配線パターンを修正して、最終的なレイアウトデータを作成する。
【００３２】
図５は、レイアウト処理部によって作成された最終的なレイアウトデータで表される回路を視覚的に示す図である。図５においては、各フリップフロップが１つのクロック信号入力端子しか有していないが、図４に示すレイアウトとほぼ同じレイアウトが実現されている。このように、本実施形態によれば、クロックスキューを原因とする誤動作を防止することができる多段回路の設計を容易にすることが可能である。
【００３３】
なお、以上においては、フリップフロップＦＦ１〜ＦＦ３が組合せ論理回路Ｃ１及びＣ２を介して直列に接続された多段回路を例にとって説明したが、例えば、図６に示すように、第１段としてフリップフロップＦＦ４〜ＦＦ６が並列に配され、第２段としてフリップフロップＦＦ７が配され、第３段としてフリップフロップＦＦ８が配されるような多段回路もあり得る。そのような場合には、第２段のフリップフロップＦＦ７からクロック信号が供給される第１段のフリップフロップＦＦ４〜ＦＦ６の数が大きくなってしまう。
【００３４】
そこで、１つのフリップフロップからクロック信号が供給される他のフリップフロップの数が所定の値（例えば、３個）以上である場合には、ネットリスト作成処理部５が、１つのフリップフロップの第２の端子と他の複数のフリップフロップの第１の端子との間に、クロック信号を電力増幅するバッファ回路を挿入するようにしても良い。図６においては、第２段のフリップフロップＦＦ７の第２の端子ＣＬＫＯＵＴと第１段のフリップフロップＦＦ４〜ＦＦ６の第１の端子ＣＬＫＩＮとの間にバッファ回路８が挿入されている。
【００３５】
図７は、図１のセルライブラリ記録部４に記録されているセルライブラリに含まれているＤ型フリップフロップセルの内部回路を示す回路図である。図７に示すように、このフリップフロップセルは、インバータＩＮＶ１〜ＩＮＶ６と、アナログスイッチＳＷ１〜ＳＷ４とを有している。
【００３６】
各アナログスイッチは、ソース〜ドレイン経路が並列に接続されたＰチャネルＭＯＳトランジスタ及びＮチャネルＭＯＳトランジスタによって構成される。これらのトランジスタのソース又はドレインが入力端子又は出力端子となり、ゲートが制御端子となる。
【００３７】
先に説明したように、外部回路からクロック信号を入力するための第１の端子（ＣＬＫＩＮ端子）とクロック信号を外部回路に出力するための第２の端子（ＣＬＫＯＵＴ端子）とは、１つの物理的なクロック信号入力端子に対応している。これは、図７に示すように、第１の端子（ＣＬＫＩＮ端子）と第２の端子（ＣＬＫＯＵＴ端子）とをフリップフロップ内部において接続することにより実現可能である。
【００３８】
外部回路から第１の端子ＣＬＫＩＮに入力されるクロック信号は、インバータＩＮＶ１によって反転される。インバータＩＮＶ１によって反転されたクロック信号を、ＣＫバー信号とする。さらに、ＣＫバー信号は、インバータＩＮＶ２によって再度反転される。インバータＩＮＶ２によって反転されたクロック信号を、ＣＫ信号とする。
【００３９】
アナログスイッチＳＷ１の入出力端子は、フリップフロップのデータ入力端子（Ｄ端子）とインバータＩＮＶ３の入力との間に接続されている。また、アナログスイッチＳＷ１の制御端子であるＮチャネルＭＯＳトランジスタＱＮ１のゲートにはＣＫ信号が入力され、ＰチャネルＭＯＳトランジスタＱＰ１のゲートにはＣＫバー信号が入力される。トランジスタＱＮ１及びＱＰ１は、ＣＫ信号がハイレベル且つＣＫバー信号がローレベルの場合にオン状態になり、ＣＫ信号がローレベル且つＣＫバー信号がハイレベルの場合にオフ状態になる。従って、外部回路からフリップフロップのデータ入力端子（Ｄ端子）に入力されるデータは、ＣＫ信号がハイレベル且つＣＫバー信号がローレベルの場合に、アナログスイッチＳＷ１を介してインバータＩＮＶ３に入力される。
【００４０】
インバータＩＮＶ３の出力は、インバータＩＮＶ４の入力に接続されている。アナログスイッチＳＷ２の入出力端子は、インバータＩＮＶ４の出力とインバータＩＮＶ３の入力との間に接続されている。アナログスイッチＳＷ２の制御端子であるＮチャネルＭＯＳトランジスタＱＮ２のゲートにはＣＫバー信号が入力され、ＰチャネルＭＯＳトランジスタＱＰ２のゲートにはＣＫ信号が入力される。トランジスタＱＮ２及びＱＰ２は、ＣＫバー信号がハイレベル且つＣＫ信号がローレベルの場合にオン状態になり、ＣＫバー信号がローレベル且つＣＫ信号がハイレベルの場合にオフ状態になる。従って、インバータＩＮＶ４の出力信号は、ＣＫバー信号がハイレベル且つＣＫ信号がローレベルの場合に、アナログスイッチＳＷ２を介してインバータＩＮＶ３に入力され、インバータＩＮＶ３〜インバータＩＮＶ４〜アナログスイッチＳＷ２のループにおいてデータがホールドされる。
【００４１】
アナログスイッチＳＷ３の入出力端子は、インバータＩＮＶ３の出力とインバータＩＮＶ５の入力との間に接続されている。また、アナログスイッチＳＷ３の制御端子であるＮチャネルＭＯＳトランジスタＱＮ３のゲートにはＣＫバー信号が入力され、ＰチャネルＭＯＳトランジスタＱＰ３のゲートにはＣＫ信号が入力される。トランジスタＱＮ３及びＱＰ３は、ＣＫバー信号がハイレベル且つＣＫ信号がローレベルの場合にオン状態になり、ＣＫバー信号がローレベル且つＣＫ信号がハイレベルの場合にオフ状態になる。従って、インバータＩＮＶ３の出力信号は、ＣＫバー信号がハイレベル且つＣＫ信号がローレベルの場合に、アナログスイッチＳＷ３を介してインバータＩＮＶ５に入力される。
【００４２】
インバータＩＮＶ５の出力は、インバータＩＮＶ６の入力に接続されている。アナログスイッチＳＷ４の入出力端子は、インバータＩＮＶ６の出力とインバータＩＮＶ５の入力との間に接続されている。アナログスイッチＳＷ４の制御端子であるＮチャネルＭＯＳトランジスタＱＮ４のゲートにはＣＫ信号が入力され、ＰチャネルＭＯＳトランジスタＱＰ４のゲートにはＣＫバー信号が入力される。トランジスタＱＮ４及びＱＰ４は、ＣＫ信号がハイレベル且つＣＫバー信号がローレベルの場合にオン状態になり、ＣＫ信号がローレベル且つＣＫバー信号がハイレベルの場合にオフ状態になる。従って、インバータＩＮＶ６の出力信号は、ＣＫ信号がハイレベル且つＣＫバー信号がローレベルの場合に、アナログスイッチＳＷ４を介してインバータＩＮＶ５に入力され、インバータＩＮＶ５〜インバータＩＮＶ６〜アナログスイッチＳＷ４のループにおいてデータがホールドされる。
【００４３】
インバータＩＮＶ５の出力信号は、フリップフロップのデータ出力端子（Ｑ端子）を介して外部回路に出力される。また、インバータＩＮＶ６の出力信号は、フリップフロップのデータ反転出力端子（Ｑバー端子）を介して外部回路に出力される。
【産業上の利用可能性】
【００４４】
本発明は、複数のセルを用いてレイアウトが設計されるＡＳＩＣ等の半導体集積回路において利用可能である。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施形態に係るレイアウト設計装置の構成を示すブロック図。
【図２】図１に示すレイアウト設計装置が実行する処理を示すフローチャート。
【図３】ユーザが入力しようとする回路を示す回路図。
【図４】ネットリストで表される回路を視覚的に示す図。
【図５】レイアウトデータで表される回路を視覚的に示す図。
【図６】別のネットリストで表される回路を視覚的に示す図。
【図７】セルライブラリに含まれているＤ型フリップフロップセルを示す回路図。
【符号の説明】
【００４６】
１  半導体集積回路のレイアウト設計装置、  ２  入力部  ３  表示部、  ４  セルライブラリ記録部、  ５  ネットリスト作成処理部、  ６  レイアウト処理部、  ７  検証処理部、  ＦＦ１〜ＦＦ８  フリップフロップ、  Ｃ１〜Ｃ４  組合せ論理回路、  ＩＮＶ１〜ＩＮＶ６  インバータ、  ＳＷ１〜ＳＷ４  アナログスイッチ、  ＱＰ１〜ＱＰ４  ＰチャネルＭＯＳトランジスタ、  ＱＮ１〜ＱＮ４  ＮチャネルＭＯＳトランジスタ
【図１】
2007156674.tif 000003
【図２】
2007156674.tif 000004
【図３】
2007156674.tif 000005
【図４】
2007156674.tif 000006
【図５】
2007156674.tif 000007
【図６】
2007156674.tif 000008
【図７】
2007156674.tif 000009