(57)【要約】【課題】本発明によれば、複数の電源領域に電源分離された半導体集積回路の消費電力を低減する。【解決手段】本発明による半導体集積回路９９は、電源供給が制御される電源領域３０と、電源領域３０に接続される他の電源領域１０、２０とを具備する。電源領域３０は、電源領域３０への電源供給の停止に同期して、電源領域３０から他の電源領域１０、２０への出力電圧を接地電圧ＶＳＳに固定するフローティング防止回路３１１、３１２を備える。【選択図】図３
2009187354.tif 000002
【特許請求の範囲】
【請求項１】
電源供給が制御される電源領域と、
前記電源領域に接続される他の電源領域と、
を具備し、
前記電源領域は、前記電源領域への電源供給の停止に同期して、前記電源領域から前記他の電源領域への出力電圧を接地電圧に固定するフローティング防止回路を備える
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
第１制御信号を出力する制御回路と、
前記第１制御信号に応じて前記電源領域への電源供給を制御するスイッチ回路と、
を更に具備し、
前記フローティング防止回路は、前記第１制御信号に応じて前記電源領域から前記他の電源領域への出力電圧を接地電圧に固定する
半導体集積回路。
【請求項３】
請求項２に記載の半導体集積回路において、
前記電源領域は、前記他の電源領域に設けられた他の回路ブロックと第１端子を介して接続される回路ブロックを備え、
前記フローティング防止回路は、前記回路ブロックと前記他の回路ブロックとの間に設けられ、前記第１制御信号に応じて接地電圧が供給される電源端子と前記第１端子とを接続する
半導体集積回路。
【請求項４】
請求項３に記載の半導体集積回路において、
前記フローティング防止回路は、前記第１制御信号が入力される第２端子にゲートが接続され、前記第１端子にドレインが接続され、前記電源端子にソースが接続されるトランジスタを備える
半導体集積回路。
【請求項５】
請求項２から４のいずれか１項に記載の半導体集積回路において、
前記制御回路は、常時電源電圧が供給される電源領域内に設けられる
半導体集積回路。
【請求項６】
請求項３から５のいずれか１項に記載の半導体集積回路において、
前記フローティング防止回路は、前記回路ブロックの出力信号が入力される第３端子と、前記第１端子との間に接続されるトライステートバッファを更に備え、
前記トライステートバッファは、前記第１制御信号に応じて、前記第１端子と前記第３端子との間の接続を制御する
半導体集積回路。
【請求項７】
請求項１から６のいずれか１項に記載の半導体集積回路において、
前記制御回路は前記他の電源領域への電源供給を制御する第２制御信号を出力し、
前記フローティング防止回路は、前記第２制御信号に応じて、前記電源領域と前記他の電源領域との間における信号の伝搬を制御する
半導体集積回路。
【請求項８】
請求項７に記載の半導体集積回路において、
前記フローティング防止回路は、他の電源領域への電源供給を制御するための第２制御信号に応じて、前記電源領域における回路ブロックと前記他の電源領域における他の回路ブロックとの間における信号の伝搬を制御する双方向トライステートバッファを更に備える
半導体集積回路。
【請求項９】
コンピュータによって実行される半導体集積回路の設計方法であって、
記憶装置に格納された機能ブロック情報及び接続情報を用いて、設計対象回路を複数の電源領域に区分するステップと、
前記複数の電源領域のうち、電源供給が制御される電源領域に接続される他の電源領域が存在する場合、前記電源領域内にフローティング防止回路を挿入するように、前記機能ブロック情報及び前記接続情報を更新するステップと、
を具備し、
前記フローティング防止回路は、前記電源領域への電源供給の停止に同期して、前記電源領域から他の電源領域への出力電圧を接地電圧に固定する
半導体集積回路の設計方法。
【請求項１０】
請求項９に記載の半導体集積回路の設計方法において、
前記機能ブロック情報及び前記接続情報を更新するステップは、
回路ブロックを選択するステップと、
前記選択された回路ブロックに接続する他の回路ブロックが、前記選択された回路ブロックが所属する電源領域と異なる他の電源領域に所属するかどうかを検証するステップと、
前記選択された回路ブロックの接続先となる他の回路ブロックが、前記他の電源領域に設けられている場合、前記回路ブロックと前記他の回路ブロックとの間に、前記フローティング防止回路を挿入するステップと、
を備える半導体集積回路の設計方法。
【請求項１１】
請求項１０に記載の半導体集積回路の設計方法において、
前記複数の電源領域に区分するステップは、前記機能ブロック情報及び前記接続情報に基づいて、前記設計対象回路を電源領域毎の木構造として表した木構造情報を生成するステップを備え、
前記機能ブロック情報及び前記接続情報を更新するステップは、前記木構造情報を用いて回路ブロックの所属する電源領域を特定するステップを備える
半導体集積回路の設計方法。
【請求項１２】
請求項９から１１のいずれか１項に記載の半導体集積回路の設計方法をコンピュータに実行させる
半導体集積回路設計プログラム。
【請求項１３】
機能ブロック情報及び接続情報を格納する記憶装置と、
前記機能ブロック情報及び前記接続情報を用いて、設計対象回路を複数の電源領域に区分する電源領域区分部と、
前記複数の電源領域のうち、電源供給が制御される電源領域に接続される他の電源領域が存在する場合、前記電源領域内にフローティング防止回路を挿入するように、前記機能ブロック情報及び前記接続情報を更新するフローティング防止回路挿入部と、
を具備し、
前記フローティング防止回路は、前記電源領域への電源供給の停止に同期して、前記電源領域から他の電源領域への出力電圧を接地電圧に固定する
半導体集積回路設計支援装置。
【請求項１４】
請求項１３に記載の半導体集積回路設計支援装置において、
回路ブロックに接続する他の回路ブロックが、前記回路ブロックが所属する電源領域と異なる他の電源領域に所属するかどうかを検証する接続判定部を更に具備し、
前記フローティング防止回路挿入部は、前記選択された回路ブロックの接続先となる他の回路ブロックが、前記他の電源領域に設けられていると判定された場合、前記回路ブロックと前記他の回路ブロックとの間に、前記フローティング防止回路を挿入する
半導体集積回路設計支援装置。
【請求項１５】
請求項１４に記載の半導体集積回路設計支援装置において、
前記電源領域区分部は、前記機能ブロック情報及び前記接続情報に基づいて、前記設計対象回路を電源領域毎の木構造として表した木構造情報を生成し、
前記接続判定部は、前記木構造情報を用いて回路ブロックの所属する電源領域を特定する
半導体集積回路設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の電源領域を有する半導体集積回路、その設計方法、半導体集積回路設計プログラム、及び半導体集積回路設計装置に関する。
【背景技術】
【０００２】
近年、半導体製造プロセスの微細化により、回路停止時の消費電流が増加し、回路動作時のそれと比較しても無視できなくなってきている。そこで、半導体集積回路を複数の電源領域に分け、使用していない回路ブロック領域（電源領域）に対する電源供給をスイッチ等により遮断することで、半導体集積回路全体の消費電流を低減する手法がある。
【０００３】
しかし、電源供給が断たれた電源領域が他の電源領域に接続されている場合、電源供給が断たれた電源領域から他の電源領域に対する出力信号の値は、不定値（フローティング）を示す。このため、電源が供給されている電源領域の回路に不定な信号が入力されてしまう。このような不定信号は、回路に予期せぬ動作を引き起こす不具合の原因となる。又、不定信号による貫通電流が電源領域間に流れることにより、消費電流が増加してしまう可能性がある。
【０００４】
これらの問題はプルダウン、プルアップ抵抗を置いて回避することができるが、この回避策では抵抗に定常的に電流が流れてしまう。このため、特開２００４−２４８１４３には、フローティング防止回路を用いることで、回路ブロック間の不定信号を防止する技術が記載されている（特許文献１参照）。
【０００５】
図１及び図２を参照して、特許文献１に記載の半導体集積回路を説明する。図１は特許文献１に記載の半導体集積回路の構成を示すブロック図である。図１を参照して、特許文献１に記載の半導体集積回路は、回路ブロック１、３、フローティング防止回路２、及びスイッチ４を具備する。スイッチ４（ｐＭＯＳ（Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）トランジスタ）は、スリープ信号ＳＬＥＥＰに応じて電源線ＶＤＤ１（高レベル）と電源線ＶＤＤ２との接続を制御する。回路ブロック１は、電源線ＶＤＤ２及び電源線ＶＳＳ（低レベル）に接続される。回路ブロック３は、電源線ＶＤＤ１及び電源線ＶＳＳに接続される。フローティング防止回路２は、回路ブロック１と回路ブロック２との間に接続され、スリープ信号ＳＬＥＥＰが入力される。回路ブロック１の出力ＯＵＴ１は、フローティング防止回路２を介して回路ブロック３の入力ＩＮ２に接続される。
【０００６】
図２は、フローティング防止回路２の構成の詳細を示す回路図である。フローティング防止回路２はクロックトインバータ５とゲートにスリープ信号ＳＬＥＥＰが入力され、ドレインがクロックトインバータ５の出力端子に接続され、ソースが電源線ＶＳＳに接続されたｎＭＯＳトランジスタ６と、ＣＭＯＳインバータ７とを備える。
【０００７】
クロックトインバータ５は、スリープ信号ＳＬＥＥＰの活性化（低レベル）を受けてオンし、回路ブロック１の出力ＯＵＴ１を、インバータ７を介して回路ブロック３の入力ＩＮ２に接続する。又、クロックトインバータ５は、スリープ信号ＳＬＥＥＰの非活性化（高レベル）を受けてオフし、回路ブロック１の出力ＯＵＴ１と回路ブロック３の入力ＩＮ２との接続を遮断する。
【０００８】
ｎＭＯＳトランジスタ６は、スリープ信号ＳＬＥＥＰの活性化（低レベル）をゲートで受けたときにオフし、ＣＭＯＳインバータ７の入力ノードと電源線ＶＳＳとの接続を解除する（通常動作モード）。又、ｎＭＯＳトランジスタ６は、スリープ信号ＳＬＥＥＰの非活性化（高レベル）をゲートで受けたときにオンし、ＣＭＯＳインバータ７の入力を低レベルに固定する（スリープモード）。この際、スイッチ４によって、電源線ＶＤＤ１と電源線ＶＤＤ２の接続は遮断される。このため、回路ブロック１に電源線から電圧電圧ＶＤＤ１（高レベル）が供給されない間、ＣＭＯＳインバータ７の入力は電源電圧ＶＳＳ（低レベル）に固定される。従って、特許文献１に記載のフローティング防止回路は、通常動作モードからスリープモードへの切り替え制御に同期して、回路ブロック３への入力ＩＮ２を高レベルに固定することができる。
【０００９】
以上のように、回路ブロック１に電源電圧が供給されなくても、回路ブロック３の入力ＩＮ２はフローティングにならない。このため、回路ブロック３に貫通電流が流れることを防止することができる。又、上述のように不定の入力レベルを受けて誤動作することが防止されるため、スリープモードにおいて、消費電力の増加を抑制することができる。
【００１０】
【特許文献１】特開２００４−２４８１４３
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、特許文献１に記載の技術では、スリープモードにおいて、回路ブロック３への入力ＩＮ２を高レベルに固定しているため、フローティング防止回路２のＣＭＯＳインバータ７に、常時、高レベルの電源電圧を供給する必要がある。このため、ＣＭＯＳインバータ７に、常時オンしている電源線を接続しなければならない。この場合、電源線をＣＭＯＳインバータ７が設けられた領域まで引き回さなくてはならない。電源配線の引き回しは、信頼性の低下や電圧降下等の問題を引き起こす原因となる。
【課題を解決するための手段】
【００１２】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を括弧付きで用いて、［課題を解決するための手段］を説明する。この番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１３】
本発明による半導体集積回路（９９）は、電源供給が制御される電源領域（３０）と、電源領域（３０）に接続される他の電源領域（１０、２０）とを具備する。電源領域（３０）は、電源領域（３０）への電源供給の停止に同期して、電源領域（３０）から他の電源領域（１０、２０）への出力電圧を接地電圧（ＶＳＳ）に固定するフローティング防止回路（３１１、３１２）を備える。本発明では、他の電源電圧への出力電圧を接地電圧に固定するため、出力電圧を固定する際、フローティング防止回路（３１１、３１２）に高レベルの電源電圧を供給する必要がない。このため、消費電力を低減することができる。又、従来技術のように、常時、高レベルの高電圧をフローティング防止回路（３１１、３１２）に供給する必要がないため、電源線の引き回しの必要がなくなる。更に、フローティング防止回路（３１１、３１２）は、電源領域（３０）への電源供給の停止に同期して電源領域（３０）からの出力電圧を接地電圧（ＶＳＳ）に固定するため、フローティング防止回路（３１１、３１２）を電源領域３０内に設けることができる。
【００１４】
本発明による半導体集積回路の設計方法は、記憶装置（９３）に格納された機能ブロック情報（９１１）及び接続情報（９１２）を用いて、設計対象回路を複数の電源領域（１０、２０、３０）に区分するステップと、複数の電源領域（１０、２０、３０）のうち、電源供給が制御される電源領域（３０）に接続される他の電源領域（１０、２０）が存在する場合、電源領域（３０）内にフローティング防止回路（３１１、３１２）を挿入するように、機能ブロック情報（９１１）及び接続情報（９１２）を更新するステップとを具備する。ここで、フローティング防止回路（３１１、３１２）は、電源領域（３０）への電源供給の停止に同期して、電源領域（３０）から他の電源領域（１０、２０）への出力電圧を接地電圧（ＶＳＳ）に固定する。
【００１５】
本発明による半導体集積回路の設計方法は、コンピュータに実行させる半導体集積回路設計プログラム（９００）によって実現されることが好ましい。
【００１６】
本発明による半導体集積回路の設計支援装置（９０）は、機能ブロック情報（９１１）及び接続情報（９１２を格納する記憶装置（９３）と、電源領域区分部（９０１）と、フローティング防止回路挿入部（９０３）とを具備する。電源領域区分部（９０１）は、機能ブロック情報（９１１）及び接続情報（９１２）を用いて、設計対象回路を複数の電源領域（１０、２０、３０）に区分する。フローティング防止回路挿入部（９０３）は、複数の電源領域（１０、２０、３０）のうち、電源供給が制御される電源領域（３０）に接続される他の電源領域（１０、２０）が存在する場合、電源領域（３０）内にフローティング防止回路（３１１、３１２）を挿入するように、機能ブロック情報（９１１）及び接続情報（９１２を更新する。ここで、フローティング防止回路（３１１、３１２）は、電源領域（３０）への電源供給の停止に同期して、電源領域（３０）から他の電源領域（１０、２０）への出力電圧を接地電圧（ＶＳＳ）に固定する。
【発明の効果】
【００１７】
本発明による半導体集積回路、その設計方法、半導体集積回路設計プログラム、及び半導体集積回路設計装置によれば、複数の電源領域に電源分離された半導体集積回路の消費電力を低減できる。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面を参照して、本発明による半導体集積回路、その設計方法、半導体集積回路設計プログラム、及び半導体集積回路設計装置の実施の形態を説明する。
【００１９】
１．第１の実施の形態
（半導体集積回路）
図３及び図４を参照して、本発明による半導体集積回路の第１の実施の形態を説明する。図３は、第１の実施の形態における半導体集積回路９９の構成を示すブロック図である。図３を参照して、半導体集積回路９９は、３つの電源領域１０、２０、３０に区分され、消費電力を制御するための動作モードを切り替えるスイッチ１１、１２を具備する。
【００２０】
電源領域１０は、電源電圧ＶＤＤ１（高レベル）が供給される電源端子ＶＤＤ１、及び電源電圧ＶＳＳ（低レベル）が供給される電源端子ＶＳＳに接続される回路ブロック（例えば制御回路１００、回路ブロック１０１）を有する領域である。電源領域１０内の回路ブロックは、電源電圧ＶＤＤ１によって駆動する。ここで、電源端子ＶＤＤ１には常に電源電圧ＶＤＤ１が供給される。このため、電源領域１０内の回路ブロックは、省電力モード時でも、通常動作モード時と同様に動作を行う。制御回路１００は、制御回路１００は、スイッチ１１、１２のオン、オフを制御する制御信号Ｃ２、Ｃ３（イネーブル信号）を出力する。制御回路１００は、常時、電源電圧ＶＤＤ１が供給されている電源領域１０に設けられることが好ましい。この場合、制御回路１００は、常時、スイッチ１１、１２を制御して、電源領域２０、３０の動作モードを切り替えることができる。
【００２１】
電源領域２０は、電源端子ＶＤＤ２及び電源端子ＶＳＳに接続される回路ブロック（例えば回路ブロック２０１）を有する領域である。電源端子ＶＤＤ２は、スイッチ１１を介して電源端子ＶＤＤ１に接続され、スイッチ１１がオンのとき電源電圧ＶＤＤ１が供給される。スイッチ１１は、低レベルの制御信号Ｃ２に応じてオンとなり、電源領域２０内の回路ブロックは、電源電圧ＶＤＤ１によって駆動する（通常モード）。一方、スイッチ１１は、高レベルの制御信号Ｃ２に応じてオフとなり、電源領域２０内の回路ブロックは停止する（省電力モード）。
【００２２】
電源領域３０は、電源端子ＶＤＤ３及び電源端子ＶＳＳに接続される回路ブロック（例えば回路ブロック３０１、３０２、フローティング防止回路３１１、３１２）を有する領域である。電源端子ＶＤＤ３は、スイッチ１２を介して電源端子ＶＤＤ１に接続され、スイッチ１２がオンのとき電源電圧ＶＤＤ１が供給される。スイッチ１２は、例えば低レベルの制御信号Ｃ３に応じてオンとなり、電源領域３０内の回路ブロックは、電源電圧ＶＤＤ１によって駆動する（通常モード）。一方、スイッチ１２は、例えば高レベルの制御信号Ｃ３に応じてオフとなり、電源領域３０内の回路ブロックは停止する（省電力モード）。
【００２３】
制御信号Ｃ２、Ｃ３は別々の制御信号であるため、電源領域２０、３０はそれぞれ、任意の時期に動作モードが変更され得る。又、スイッチ１１、１２は、それぞれ、電源電圧ＶＤＤ１と異なる電源電圧が供給される電源端子に接続されても構わない。
【００２４】
スイッチ１２によって電源供給が制御される電源領域３０内の回路ブロック３０１、３０２のそれぞれは、フローティング防止回路３１１、３１２を介して他の電源領域内の回路ブロック２０１、１０１に接続される。フローティング防止回路３１１は、回路ブロック３０１（端子３２１）から出力される信号を、回路ブロック２０１（端子２３１）に出力する。フローティング防止回路３１２は、回路ブロック３０２（端子３２２）から出力される信号を、回路ブロック１０１（端子１３１）に出力する。
【００２５】
又、制御信号Ｃ３は端子３００を介してフローティング防止回路３１１、３１２に入力される。フローティング防止回路３１１、３１２のそれぞれは、スイッチ１２をオフ状態にする制御信号Ｃ３（ここでは、高レベルの制御信号Ｃ３）に応じて、回路ブロック２０１（端子２３１）、回路ブロック１０１（端子１３１）への出力電圧を低レベル（例えば接地電圧）の電源電圧ＶＳＳに固定する。
【００２６】
図４を参照して、第１の実施の形態におけるフローティング防止回路３１１の構成の詳細を説明する。尚、フローティング防止回路３１２の構成は、フローティング防止回路３１１と同様であるので、その説明は省略する。
【００２７】
フローティング防止回路３１１は、トライステートバッファ３１と、ｎＭＯＳトランジスタ３２（スイッチ回路）とを備える。トライステートバッファ３２の入力は、端子３２２を介して電源領域３０内の回路ブロック３０１の出力に接続され、その出力は、他の電源領域２０内の回路ブロック２０１（端子２３１）に接続される。又、トライステートバッファ３１は、所属する電源領域回路３０の電源端子ＶＳＳ３に接続され、スイッチ１１がオンのとき電源電圧ＶＤＤ１が供給される。ｎＭＯＳトランジスタ３２のゲートは端子３００に接続され、ドレインはトライステートバッファの出力（端子２３１）に接続され、ソースは電源端子ＶＳＳに接続される。
【００２８】
次に、図３及び図４を参照して第１の実施の形態における半導体集積回路９９の動作の詳細を説明する。
【００２９】
制御回路１００から高レベルの制御信号Ｃ３が出力されると、スイッチ１２は開放状態となり、電源領域３０への電源供給は停止する（省電力モード）。これにより、電源領域３０は不活性状態となり、トライステートバッファ３１の出力電圧は不定値となる。一方、高レベルの制御信号Ｃ３によってｎＭＯＳトランジスタ３２はオン状態となり、端子２３１と電源端子ＶＳＳは接続される。このため、端子２３１の電圧は低レベルの電源電圧ＶＳＳに固定される。
【００３０】
すなわち、電源領域３０を不活性とする省電力モードの場合、フローティング防止回路３１１によって、電源領域３０内の回路ブロック３０１から電源領域２０内の回路ブロック２０１（端子２３１）への出力電圧は低レベルの電源電圧ＶＳＳに固定される。同様に、省電力モードの際、フローティング防止回路３１２によって、電源領域３０内の回路ブロック３０２から電源領域１０内の回路ブロック１０１（端子１３１）への出力電圧は低レベルの電源電圧ＶＳＳに固定される。
【００３１】
以上のように、本実施の形態におけるフローティング防止回路３１１、３１２は、電源供給が断たれても他の電源領域２０、１０への出力電圧を低レベルの電源電圧ＶＳＳに固定することができる。このため、フローティング防止回路３１１、３１２に対し、常時、電源電圧を供給する必要がない。又、フローティング防止回路３１１、３１２は、電源領域３０への電源供給の停止に同期して他の電源領域への出力電圧を低レベルの電源電圧ＶＳＳに固定する。このため、フローティング防止回路３１１、３１２を、制御信号Ｃ３によって電源供給が制御される電源領域３０に組み込むことができる。
【００３２】
又、本実施の形態におけるフローティング防止回路は、接続先の電源領域が、電源供給が制御される電源領域２０である場合や、常時、電源供給される電源領域１０である場合に関わらず、接続先の電源領域への出力電圧を電源電圧ＶＳＳに固定することができる。更に、フローティング防止に電源電圧ＶＳＳ（低レベル）に落とすために、ｎＭＯＳトランジスタを使用するため、常時オン状態の電源線をフローティング防止回路の領域まで引き回しす必要がなくなる。
【００３３】
一方、制御回路１００から低レベルの制御信号Ｃ３が出力されると、スイッチ１２は短絡状態となり、電源領域３０（電源端子ＶＤＤ３）に対し電源電圧ＶＤＤ１が供給され、電源領域３は活性状態となる（通常モード）。この際、低レベルの制御信号Ｃ３によってｎＭＯＳトランジスタ３２はオフ状態となり、電源端子ＶＳＳとトライステートバッファ３１の出力との接続を解除する。トライステートバッファ３１は、イネーブル信号として入力される制御信号Ｃ３に応じて、端子３２１（回路ブロック３０１）から入力される信号を端子２３２（回路ブロック２０１）に出力する。
【００３４】
同様に、通常モードの際、フローティング防止回路３１２は、端子３２２（回路ブロック３０２）から入力される出力信号を端子１３１（回路ブロック１０１）に出力する。
【００３５】
以上のように、通常モードの場合、フローティング防止回路３１１、３１２は、異なる電源領域への出力電圧をスルーする。すなわち、通常モードにおいて、電源領域３０内の回路ブロック３０１、３０２は、他の電源領域２０、１０内における回路ブロックに対して出力信号を出力することができる。
【００３６】
本発明による半導体集積回路によれば、省電力モードにおいて電源供給が断たれた電源領域から他の電源領域への出力電圧を低レベルの電源電圧ＶＳＳ（例えば接地電圧）に固定するため、消費電力を更に低減することができる。
【００３７】
（半導体集積回路設計支援装置）
図５から図８を参照して、本発明による半導体集積回路の設計を支援する半導体集積回路設計支援装置について説明する。図５は、本発明による半導体集積回路設計支援装置９０の実施の形態における構成図である。図５を参照して、半導体集積回路設計支援装置９０は、バス９６を介して相互に接続されるＣＰＵ９１と、ＲＡＭ９２と、記憶装置９３と、入力装置９４と、出力装置９５とを具備する。記憶装置９３はハードディスクやメモリ等の外部記憶装置である。又、入力装置９４は、キーボードやマウス等のユーザによって操作されることで、各種データをＣＰＵ９１や記憶装置９３に出力する。出力装置９５は、モニタやプリンタに例示され、ＣＰＵ９１から出力される回路設計結果をユーザに対し視認可能に出力する。
【００３８】
ＣＰＵ９１は、入力装置９４からの入力に応答して、記憶装置９３内の半導体設計プログラム９００を実行し、回路設計処理（ここでは、フローティング防止回路挿入処理）を行う。この際、記憶装置９３からの各種データやプログラムはＲＡＭ１２に一時格納され、ＣＰＵ１１は、ＲＡＭ１２内のデータを用いて各種処理を実行する。
【００３９】
記憶装置９３は、半導体設計プログラム９００、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）記述群９１０を格納している。半導体設計プログラム９００は、機能設計ツールや論理合成ツールを含む。ＨＤＬ記述群９１０は、機能設計によって生成されたＨＤＬ記述による機能ブロック情報９１１や設計対象回路内の接続情報９１２を有する。
【００４０】
図６は、フローティング防止回路挿入時における半導体集積回路設計支援装置９０のブロック図である。図６を参照して、半導体設計プログラム９００は、ＣＰＵ９１によって実行されることで、電源領域区分部９０１、接続判定部９０２、フローティング防止回路挿入部９０３の各機能を実現する。
【００４１】
電源領域区分部９０１は、設計対象回路の機能ブロック情報９１１と接続情報９１２とを用いて、電源領域毎に区分した木構造情報９１３を生成する。詳細には、電源領域区分部９０１は、機能設計後の半導体集積回路を電源領域毎に区分し、それぞれの電源領域内の回路ブロックを階層化する。図７に木構造情報９１３の一例を示す。図７に示すように、電源領域区分部９０１は、機能設計後の半導体集積回路９９を３つの電源領域１０、２０、３０に区分し、それぞれの電源領域内に設けられる回路ブロックを階層化する。この際、半導体集積回路９９を第１階層、電源領域１０、２０、３０を第２階層とする。そして、電源領域１０に含まれる複数の回路ブロックのそれぞれが、更に複数の回路要素に細分化され第３〜第Ｘ階層として階層化される。これにより木構造情報９１３では、下層になるにつれて回路要素の回路規模が細分化される。例えば、第３階層における回路ブロック１０１、・・・は、第Ｘ階層においてゲートレベルの回路要素１１Ｘ、・・・まで細分化される。電源領域２０、３０も同様に第３〜第Ｘ階層に階層化される。
【００４２】
又、電源領域区分部９０１は、接続情報９１２に基づいて回路ブロック間の接続関係を木構造情報９１３に挿入する。図７に示す一例では、半導体集積回路９９は、第３階層において、回路ブロック３０１と回路ブロック２０１が接続され、回路ブロック３０２と回路ブロック１０１が接続されている。詳細には、回路ブロック３０１に属する第Ｘ階層の回路要素３１Ｘと、回路ブロック２０１に族する第ｎ階層の回路要素２１ｎが接続されている。又、回路ブロック３０２に属する第ｎ階層の回路要素３２ｎと、回路ブロック１０１に族する第Ｘ階層の回路要素１１ｎが接続されている。
【００４３】
接続判定部９０２は、ＨＤＬ記述群９１０から回路ブロック（回路要素）を選択し、木構造情報９１３を用いて、当該回路要素が属する電源領域を特定する。例えば、図７を参照して、回路要素３１Ｘの属する電源領域を特定する場合、接続判定部９０２は、木構造情報９１３を参照して、回路要素３１Ｘを上層に遡り、第３階層において回路ブロック３０１内の回路要素であることを特定する。又、接続判定部９０２は、更に上層に遡り、第２階層において回路要素３１Ｘが電源領域３０に設けられることを特定する。尚、接続判定部９０２は、論理合成ツールで実現されることが好ましい。
【００４４】
又、接続判定部９０２は、選択した回路要素の接続先の回路ブロックを検出し、その回路ブロックが属する電源領域を特定する。例えば、図７を参照して、回路要素３１Ｘの接続先が回路要素２１ｎである場合、接続判定部９０２は、上述と同様に、回路要素２１ｎが電源領域２０に属することを特定する。特定結果は、フローティング防止回路挿入部９０３に通知される。この場合、回路要素３１Ｘが、異なる電源領域２０に属する回路要素２１ｎと接続されていることがフローティング防止回路挿入部９０３に通知される。
【００４５】
フローティング防止回路挿入部９０３は、接続判定部９０２から通知された特定結果に基づいて、異なる電源領域間で接続している回路ブロック（回路要素）間にフローティング防止回路を挿入するようにＨＤＬ記述群９１０を更新する。例えば、回路要素３１Ｘと回路要素２１ｎとが接続されている場合、回路要素３１Ｘと回路要素２１ｎとの間にフローティング防止回路を接続する。回路要素３１Ｘの出力と回路要素２１ｎの入力とが接続されている場合、フローティング防止回路は、回路要素３１Ｘが属する電源領域３０に設けられることが好ましい。電源系が回路要素３１Ｘ（回路ブロック３０１）と共通するフローティング防止回路によって、回路要素３１Ｘ（回路ブロック３０１）から回路要素２１ｎ（回路ブロック２０１）への出力電圧を低レベルに固定することができる。又、フローティング防止回路挿入部９０３は、ＨＤＬ記述による回路ブロックとして用意されたフローティング防止回路を用いて、ＨＤＬ記述群９１０を更新することが好ましい。フローティング防止回路を１つの回路ブロックとして用意することで、後述する方法によって容易にフローティング防止回路を備える半導体集積回路を設計することができる。
【００４６】
図８は、半導体集積回路設計支援装置９０によるフローティング防止回路挿入処理の第１の実施の形態における動作を示すフロー図である。図３、図７、及び図８を参照して、本実施の形態におけるフローティング防止回路挿入動作の詳細を説明する。
【００４７】
先ず、設計対象回路を電源領域毎に区分した木構造によって設計する（ステップＳ１０）。この際、ＨＤＬ記述群９１０によって、設計対象回路の木構造情報９１３が生成される。
【００４８】
接続判定部９０２は、ＨＤＬ記述群９１０を読み込む（ステップＳ１１）。接続判定部９０２は、読み込んだＨＤＬ記述群９１０を解析して木構造情報９１３における下層から順に回路要素（回路ブロック）を検出する（ステップＳ１２）。ここでは、回路要素３１Ｘが検出されたものとする。接続判定部９０２は、検出した回路要素３１Ｘがどの電源領域に属しているかを、木構造情報９１３を用いて第２階層まで遡って調査する（ステップＳ１３）。ここでは、回路要素３１Ｘは、電源領域３０における回路ブロック３０１に設けられていることが判明する。
【００４９】
接続判定部９０２は、検出した回路ブロックを解析して出力端子を検出する（ステップＳ１４）。ここでは、端子３２１が、回路要素３１Ｘ（回路ブロック３０１）の出力端子として検出される。次に、検出した出力端子に接続される入力端子を検出する（ステップＳ１５）。ここでは、端子３２１に接続された入力端子として端子２３１が検出される。接続判定部９０２は、検出した入力端子のある回路ブロックがどの電源領域にあるのかを調査する（ステップＳ１６）。接続判定部９０２は、木構造情報９１３を参照して、入力端子２３１を有する回路要素２１ｎが電源領域２０に属することを特定する。
【００５０】
入力端子を有する回路ブロックが属する電源領域が、出力端子を有する回路ブロックと異なる電源領域に属している場合、当該回路ブロック間にフローティング防止回路が挿入される（ステップＳ１７Ｙｅｓ、Ｓ１８）。ここでは、回路要素２１ｎ（回路ブロック２０１）の属する電源領域２０と回路要素３１Ｘ（回路ブロック３０１）が属する電源領域３０とは異なるため、図３に示すように回路ブロック２０１（端子２３１）と回路ブロック３０１（端子２３１）との間にフローティング防止回路３１１が挿入される。この際、フローティング防止回路３１１が、端子２３１と端子３２１との間に接続され、電源領域３０に設けられるようにＨＤＬ記述群９１０が更新され、ステップＳ１９に移行する。又、入力端子を有する回路ブロックが属する電源領域が、出力端子を有する回路ブロックと同じ電源領域に属している場合、あるいは、当該端子間にフローティング防止回路が挿入されている場合、ステップＳ１９に移行する（ステップＳ１７Ｎｏ）。
【００５１】
ステップＳ１９において、接続先の電源領域が特定されていない出力端子の有無が調査される。ここで、回路ブロック内の全ての出力端子を調査していない場合、ステップＳ１４からステップＳ１９を繰り返し、回路ブロック内の全ての出力端子について、その接続先の電源領域の特定、及びフローティング防止回路の挿入が行われる（ステップＳ１９Ｎｏ）。回路ブロック内の全ての出力端子が調査された場合、ステップＳ１２に移行し、他の回路ブロックについて接続先の電源領域の特定、及びフローティング防止回路の挿入が行われる（ステップＳ１９Ｙｅｓ、Ｓ２０Ｎｏ）。
【００５２】
上述のフローは、木構造情報９１３における低階層から順に行われる。例えば、第ｎ階層における回路要素３２ｎが回路要素１１Ｘに接続されていることが検出された場合、上述と同様に回路要素３２ｎが属する電源領域３０と、回路要素１１Ｘの属する電源領域１０とは異なるため、回路要素３２ｎと回路要素１１Ｘとの間にフローティング防止回路が挿入される。ここでは、図３に示すように、回路要素３２ｎが設けられる回路ブロック３０２の端子３２２と、回路要素１１Ｘが設けられる回路ブロック１０１の端子１３１との間にフローティング防止回路３１２が挿入される。
【００５３】
ステップＳ２０において、ＨＤＬ記述群９１０に基づいて検出される全ての回路ブロックについて上述の検証が終了すると、半導体集積回路設計支援装置９０は、フローティング防止回路挿入処理を終了する。以上のような動作によって、半導体集積回路９９に関するＨＤＬ記述群９１０は更新される。
【００５４】
以上のように、本発明によれば、異なる電源領域間における接続端子間にフローティング防止回路を自動的に挿入し、図３に示す半導体集積回路９９を設計することができる。すなわち、電源分離をする場合の設計において、従来技術における不定信号伝播の問題を解決し、その設計を自動化できる。この際、論理合成ソフトウェアで制約を与えながらフローティング防止回路を自動的に挿入するため、設計時間が短縮される。
【００５５】
２．第２の実施の形態
（半導体集積回路）
図９及び図１０を参照して、本発明による半導体集積回路の第２の実施の形態を説明する。図９は、第２の実施の形態における半導体集積回路９９の構成を示すブロック図である。第１の実施の形態では、電源供給が断たれた電源領域から他の電源領域への出力電圧を低レベルの電源電圧ＶＳＳに固定する半導体集積回路を説明したが、第２の実施の形態では、異なる電源領域間における双方向信号を低レベルの電源電圧ＶＳＳに固定する半導体集積回路について説明する。第２の実施の形態におけるフローティング防止回路は、互いに接続された異なる電源領域のそれぞれに設けられ、自身が属する電源領域が省電力モードの際、他の電源領域に対する出力電圧を電源電圧ＶＳＳに固定する。又、第２の実施の形態におけるフローティング防止回路は、自身が属する電源領域が通常モードであっても、接続先の電源領域が省電力モードである場合、接続先の電源領域への出力を遮断する。以下の説明では、第１の実施の形態と異なる構成及び動作のみを説明する。
【００５６】
電源領域１０、２０にはそれぞれ、フローティング防止回路１１１、２１１が設けられる。フローティング防止回路１１１は、回路ブロック１０１（端子１２１）と、他の電源領域３０におけるフローティング防止回路３１２（端子３３２）との間に接続される。フローティング防止回路２１１は、回路ブロック２０１（端子２２１）と、他の電源領域３０におけるフローティング防止回路３１１（端子３３１）との間に接続される。又、フローティング防止回路２１１には、自身が属する電源領域２０への電源供給を制御する制御信号Ｃ２と、接続先の電源領域３０への電源供給を制御する制御信号Ｃ３とが入力される。
【００５７】
電源領域３０に設けられるフローティング防止回路３１１は、回路ブロック３０１（端子３２１）と、他の電源領域２０におけるフローティング防止回路２１１（端子２３１）との間に接続される。フローティング防止回路３１１には、自身が属する電源領域３０への電源供給を制御する制御信号Ｃ３と、接続先の電源領域２０への電源供給を制御する制御信号Ｃ２とが入力される。又、フローティング防止回路３１２は、回路ブロック３０２（端子３２２）と、他の電源領域１０におけるフローティング防止回路１１１（端子１３１）との間に接続される。フローティング防止回路３１１には、自身が属する電源領域３０への電源供給を制御する制御信号Ｃ３と、接続先の電源領域１０への電源供給を制御する制御信号Ｃ１とが入力される。
【００５８】
制御回路１００は、第１の実施の形態と同様に、スイッチ１１、１２を制御して、電源領域２０、３０への電源供給を制御する制御信号Ｃ２、Ｃ３を出力すると共に、フローティング防止回路１１１、３１２に対し制御信号Ｃ１を出力する。制御信号Ｃ１は、電源供給の制御を行う制御信号Ｃ２、Ｃ３に対応するダミー信号である。フローティング防止回路１１１は、常時電源が供給される電源領域１０に設けられているため、常に低レベルの制御信号Ｃ１が入力される。尚、端子１３１と端子３３２間、端子２３１と端子３３１間はそれぞれ双方向信号線で接続される。
【００５９】
図１０を参照して、第２の実施の形態におけるフローティング防止回路３１１の構成の詳細を説明する。尚、フローティング防止回路１１１、２１１、３１２の構成は、フローティング防止回路３１１と同様であるので、その説明は省略する。
【００６０】
フローティング防止回路３１１は、インバータ３３、２入力セレクタ３４、トライステートバッファ３５、３６、ｎＭＯＳトランジスタ３７（スイッチ回路）を備える。フローティング防止回路３１１には、制御信号Ｃ２、Ｃ３及び方向制御信号Ｇが入力される。インバータ３３は、入力される方向制御信号Ｇの反転信号を２入力セレクタ３５に出力する。２入力セレクタ３５は、端子２００から入力される制御信号Ｃ２に応じて入力される方向制御信号とその反転信号の一方を選択し、トライステートバッファ３５のイネーブル信号として出力する。トライステートバッファ３５は、端子３２１と端子３１１との間に接続され、入力されるイネーブル信号に応じて端子３２１から端子３１１への出力信号の伝達を制御する。トライステートバッファ３６には、方向制御信号Ｇがイネーブル信号として入力される。トライステートバッファ３６は、端子３３１と端子３２１との間に接続され、入力されるイネーブル信号に応じて端子３３１端子３２１への出力信号の伝達を制御する。尚、トライステートバッファ３５のイネーブルとトライステートバッファ３６のイネーブルはの逆相である。ｎＭＯＳトランジスタ３７のゲートは端子３００に接続され、ドレインはトライステートバッファの出力（端子２３１）に接続され、ソースは電源端子ＶＳＳに接続される。
【００６１】
次に、図９及び図１０を参照して第２の実施の形態における半導体集積回路９９の動作の詳細を説明する。
【００６２】
制御回路１００から高レベルの制御信号Ｃ３が出力されると、スイッチ１２は開放状態となり、電源領域３０への電源供給は停止する（省電力モード）。これにより、電源領域３０は不活性状態となり、トライステートバッファ３５の出力電圧は不定値となる。一方、高レベルの制御信号Ｃ３によってｎＭＯＳトランジスタ３７はオン状態となり、端子３３１と電源端子ＶＳＳは接続される。このため、端子３３１の電圧（出力電圧Ｃ２３）は低レベルの電源電圧ＶＳＳに固定される。
【００６３】
すなわち、電源領域３０を不活性とする省電力モードの場合、フローティング防止回路３１１によって、電源領域３０内の回路ブロック３０１から電源領域２０内の回路ブロック２０１（端子２３１）への出力電圧は低レベルの電源電圧ＶＳＳに固定される。同様に、省電力モードの際、フローティング防止回路３１２によって、電源領域３０内の回路ブロック３０２から電源領域１０内の回路ブロック１０１（端子１３１）への出力電圧は低レベルの電源電圧ＶＳＳに固定される。
【００６４】
同様に、電源領域２０を不活性とする省電力モードの場合、フローティング防止回路２１１によって、電源領域２０内の回路ブロック２０１から電源領域３０内の回路ブロック３０１（端子３３１）への出力電圧は低レベルの電源電圧ＶＳＳに固定される。
【００６５】
以上のように、本実施の形態におけるフローティング防止回路３１１、３１２は、電源供給が断たれても他の電源領域２０、１０への出力電圧を低レベルの電源電圧ＶＳＳに固定することができる。このため、フローティング防止回路３１１、３１２に対し、常時、電源電圧を供給する必要がない。又、フローティング防止回路３１１、３１２は、電源領域３０への電源供給の停止に同期して出力電圧を低レベルの電源電圧ＶＳＳに固定する。このため、フローティング防止回路３１１、３１２を、制御信号Ｃ３によって電源供給が制御される電源領域３０に組み込むことができる。同様に、フローティング防止回路２１１は、電源供給が断たれても他の電源領域３０への出力電圧を低レベルの電源電圧ＶＳＳに固定することができる。このため、フローティング防止回路２１１に対し、常時、電源電圧を供給する必要がない。又、フローティング防止回路２１１は、電源領域２０への電源供給の停止に同期して出力電圧を低レベルの電源電圧ＶＳＳに固定する。このため、フローティング防止回路３１１、３１２を、制御信号Ｃ２によって電源供給が制御される電源領域２０に組み込むことができる。
【００６６】
又、本実施の形態におけるフローティング防止回路は、接続先の電源領域が、電源供給が制御される電源領域２０、３０である場合や、常時、電源供給される電源領域１０である場合に関わらず、接続先の電源領域への出力電圧を電源電圧ＶＳＳに固定することができる。更に、フローティング防止に電源電圧ＶＳＳ（低レベル）に落とすために、ｎＭＯＳトランジスタを使用するため、常時オン状態の電源線をフローティング防止回路の領域まで引き回しす必要がなくなる。
【００６７】
一方、制御回路１００から低レベルの制御信号Ｃ３が出力されると、スイッチ１２は短絡状態となり、電源領域３０（電源端子ＶＤＤ３）に対し電源電圧ＶＤＤ１が供給され、電源領域３は活性状態となる（通常モード）。この際、低レベルの制御信号Ｃ３によってｎＭＯＳトランジスタ３７はオフ状態となり、電源端子ＶＳＳとトライステートバッファ３５の出力との接続は解除される。ここで、接続先の電源領域２０が通常モードである場合（低レベルの制御信号Ｃ２が入力される場合）、低レベルの方向制御信号Ｇが入力されると、トライステートバッファ３５は導通状態、トライステートバッファ３６は高インピーダンス状態となり、フローティング防止回路３１１は、回路ブロック３０１の出力回路として動作する。又、高レベルの方向制御信号Ｇが入力されると、トライステートバッファ３６は導通状態、トライステートバッファ３５は高インピーダンス状態となり、フローティング防止回路３１１は回路ブロック３０１の入力回路として動作する。
【００６８】
更に、接続先の電源領域２０が省電力モードとなった場合（高レベルの制御信号Ｃ２が出力された場合）、低レベルの方向制御信号が入力されても、トライステートバッファ３５は高インピーダンス状態となるため、フローティング防止回路３１１は電源領域２０（回路ブロック２０１）に対し出力しない。従って、電源が活性状態にある電源領域から高レベル信号を受信した場合でも、ｎＭＯＳトランジスタ３７は活性状態とならず、電源線から接地線への電流パスの形成を防止し、ｎＭＯＳトランジスタ３７に流れる貫通電流を防止することができる。
【００６９】
同様に、フローティング防止回路２１１は、電源領域２０が省電力モードの場合、端子２２１（回路ブロック２０１）からの出力電圧を低レベルの電源電圧ＶＳＳに固定する。又、電源領域２０が省電力モードの場合、フローティング防止回路３１２は、方向制御信号Ｇに応じて、回路ブロック２０１の入力回路又は出力回路として動作する。このとき、接続先の電源領域３０が省電力モードである場合、フローティング防止回路２１１は、電源領域３０（回路ブロック３０２）に出力しない。
【００７０】
又、フローティング防止回路３１２は、電源領域３０が省電力モードの場合、端子３２２（回路ブロック３０２）からの出力電圧を低レベルの電源電圧ＶＳＳに固定する。又、電源領域３０が省電力モードの場合、フローティング防止回路３１２は、方向制御信号Ｇに応じて、回路ブロック３０２の入力回路又は出力回路として動作する。
【００７１】
電源領域１０は常に通常モードであるため、フローティング防止回路１１１は、端子１２１（回路ブロック１０１）の入力回路又は出力回路として動作する。このとき、接続先の電源領域３０が省電力モードである場合、フローティング防止回路１１１は、電源領域３０（回路ブロック３０１）に対して出力しない。
【００７２】
以上のように、第２の実施の形態における半導体集積回路９９では、省電力モードにおいて異なる電源領域間の双方向信号を低レベルの電源電圧ＶＳＳに固定することができる。
【００７３】
第２の実施の形態におけるフローティング防止回路は、１つの回路ブロックとして用意され、上述の半導体集積回路設計支援装置９０によって半導体集積回路の設計に利用される。
【００７４】
図１１は、上述の半導体集積回路設計支援装置９０によるフローティング防止回路挿入処理の第２の実施の形態における動作を示すフロー図である。図７、図９、及び図１１を参照して、本実施の形態におけるフローティング防止回路挿入動作の詳細を説明する。
【００７５】
先ず、設計対象回路を電源領域毎に区分した木構造によって設計する（ステップＳ２１）。この際、ＨＤＬ記述群９１０によって、設計対象回路の木構造情報９１３が生成される。
【００７６】
接続判定部９０２は、ＨＤＬ記述群９１０を読み込む（ステップＳ２２）。接続判定部９０２は、読み込んだＨＤＬ記述群９１０を解析して木構造情報９１３における下層から順に回路要素（回路ブロック）を検出する（ステップＳ２３）。ここでは、回路要素３１Ｘが検出されたものとする。接続判定部９０２は、検出した回路要素３１Ｘがどの電源領域に属しているかを、木構造情報９１３を用いて第２階層まで遡って調査する（ステップＳ２４）。ここでは、回路要素３１Ｘは、電源領域３０における回路ブロック３０１に設けられていることが判明する。
【００７７】
接続判定部９０２は、検出した回路ブロックを解析して入出力端子を検出する（ステップＳ２５）。ここでは、端子３２１が、回路要素３１Ｘ（回路ブロック３０１）の入出力端子として検出される。次に、検出した入出力端子に接続される入出力端子を検出する（ステップＳ２６）。ここでは、端子３２１に接続された入出力端子として端子２３１が検出される。接続判定部９０２は、検出した入力端子のある回路ブロックがどの電源領域にあるのかを調査する（ステップＳ２７）。接続判定部９０２は、木構造情報９１３を参照して、端子２３１を有する回路要素２１ｎが電源領域２０に属することを特定する。
【００７８】
接続先の回路ブロックが属する電源領域が、検出された回路ブロックと異なる電源領域に属している場合、当該回路ブロック間にフローティング防止回路が挿入される（ステップＳ２８Ｙｅｓ、Ｓ２９）。ここでは、回路要素２１ｎ（回路ブロック２０１）の属する電源領域２０と回路要素３１Ｘ（回路ブロック３０１）が属する電源領域３０とは異なるため、回路ブロック２０１（端子２３１）と回路ブロック３０１（端子２３１）との間にフローティング防止回路３１１が挿入される。この際、フローティング防止回路３１１が端子２３１と端子３２１との間に接続され、電源領域３０に設けられるようにＨＤＬ記述群９１０が更新され、ステップＳ３０に移行する。又、接続先の回路ブロックが属する電源領域が、検出された回路ブロックと同じ電源領域に属している場合、あるいは、検出された回路ブロックが属する電源領域における当該端子間にフローティング防止回路が挿入されている場合、ステップＳ３０に移行する（ステップＳ２８Ｎｏ）。
【００７９】
ステップＳ３０において、接続先の電源領域が特定されていない入出力端子の有無が調査される。ここで、回路ブロック内の全ての入出力端子を調査していない場合、ステップＳ２５からステップＳ３０を繰り返し、回路ブロック内の全ての入出力端子について、その接続先の電源領域の特定、及びフローティング防止回路の挿入が行われる（ステップＳ３０Ｎｏ）。回路ブロック内の全ての出力端子が調査された場合、ステップＳ２３に移行し、他の回路ブロックについて接続先の電源領域の特定、及びフローティング防止回路の挿入が行われる（ステップＳ３０Ｙｅｓ、Ｓ３１Ｎｏ）。
【００８０】
上述のフローは、木構造情報９１３における低階層から順に行われる。例えば、第ｎ階層における回路要素３２ｎが回路要素１１Ｘに接続されていることが検出された場合、上述と同様にして、図９に示すように、回路要素２１ｎが設けられる回路ブロック２０１と、回路要素３１Ｘが設けられる回路ブロック３０１との間にフローティング防止回路２１１、３１１が挿入される。又、回路要素３２ｎが設けられる回路ブロック３０２と、回路要素１１Ｘが設けられる回路ブロック１０１との間にフローティング防止回路１１１、３１２が挿入される。
【００８１】
ステップＳ３１において、ＨＤＬ記述群９１０に基づいて検出される全ての回路ブロックについて上述の検証が終了すると、半導体集積回路設計支援装置９０は、フローティング防止回路挿入処理を終了する。
【００８２】
以上のように、本発明によれば、異なる電源領域間における入出力端子間にフローティング防止回路を自動的に挿入し、図９に示す半導体集積回路９９を設計することができる。すなわち、電源分離をする場合の設計において、従来技術における不定信号伝播の問題を解決し、その設計を自動化できる。この際、論理合成ソフトウェアで制約を与えながらフローティング防止回路を自動的に挿入するため、設計時間が短縮される。
【００８３】
本発明による半導体集積回路、その設計方法、半導体集積回路設計プログラム、及び半導体集積回路設計装置によれば、複数の電源領域に電源分離された半導体集積回路の消費電力を低減できる。又、双方向の信号線を介して接続された複数の電源領域を有する半導体集積回路の消費電力を低減できる。更に、フローティング防止回路を含む半導体集積回路への修正を容易に行うことができる。
【００８４】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。第１の実施の形態と第２の実施の形態は、要旨を逸脱しない範囲で組み合せて実施することができる。
【図面の簡単な説明】
【００８５】
【図１】図１は、従来技術による半導体集積回路の構成を示すブロック図である。
【図２】図２は、従来技術によるフローティング防止回路の構成を示す回路図である。
【図３】図３は、本発明による半導体集積回路の第１の実施の形態における構成を示すブロック図である。
【図４】図４は、本発明によるフローティング防止回路の第１の実施の形態における構成を示す回路図である。
【図５】図５は、本発明による半導体集積回路設計支援装置の構成を示す図である。
【図６】図６は、本発明による半導体集積回路設計支援装置のフローティング防止回路挿入動作時の構成を示すブロック図である。
【図７】図７は、本発明によって生成された木構造情報の一例を示す図である。
【図８】図８は、本発明によるフローティング防止回路挿入処理の第１の実施の形態における動作を示すフロー図である。
【図９】図９は、本発明による半導体集積回路の第２の実施の形態における構成を示すブロック図である。
【図１０】図１０は、本発明によるフローティング防止回路の第２の実施の形態における構成を示す回路図である。
【図１１】図１１は、本発明によるフローティング防止回路挿入処理の第２の実施の形態における動作を示すフロー図である。
【符号の説明】
【００８６】
１０、２０、３０：電源領域
１１、１２：スイッチ
１００：制御回路
１０１、２０１、３０１、３０２：回路ブロック
１１１、２１１、３１１、３１２：フローティング防止回路
３１、３５、３６：トライステートバッファ
３２、３７：ｎＭＯＳトランジスタ
３３：インバータ
３４：２入力セレクタ
９０：半導体集積回路設計支援装置
９１：ＣＰＵ
９２：ＲＡＭ
９３：記憶装置
９４：入力装置
９５：出力装置
９００：半導体設計プログラム
９０１：電源領域区分部
９０２：接続判定部
９０３：フローティング防止回路挿入部
９１０：ＨＤＬ記述群
９１１：機能ブロック情報
９１２：接続情報
９１３：木構造情報
Ｃ１、Ｃ２、Ｃ３：制御信号
Ｇ：方向制御信号
【図１】
2009187354.tif 000003
【図２】
2009187354.tif 000004
【図３】
2009187354.tif 000005
【図４】
2009187354.tif 000006
【図５】
2009187354.tif 000007
【図６】
2009187354.tif 000008
【図７】
2009187354.tif 000009
【図８】
2009187354.tif 000010
【図９】
2009187354.tif 000011
【図１０】
2009187354.tif 000012
【図１１】
2009187354.tif 000013