(57)【要約】【課題】スキャン試験時の瞬間的な電圧降下を抑制する。【解決手段】複数の電源配線ｖｓｓ１〜ｖｓｓ３，ｖｄｄ１，ｖｄｄ２及び複数のスキャンフリップフロップ１〜９に関する配置配線を行い、配置配線により得られる配置情報に基づき、複数の電源配線ｖｓｓ１〜ｖｓｓ３，ｖｄｄ１，ｖｄｄ２に含まれる第１電源配線に接続されるスキャンフリップフロップの数を検出し、検出されたスキャンフリップフロップの数に基づいて位相の異なる複数のクロック信号を生成し、位相の異なる複数のクロック信号を、複数のスキャンフリップフロップ１〜９に割り当てる。【選択図】図１
2014137608.tif 000002
【特許請求の範囲】
【請求項１】
複数の電源配線及び複数のスキャンフリップフロップに関する配置配線を行う工程と、
前記配置配線により得られる配置情報に基づき、前記複数の電源配線に含まれる第１電源配線に接続されるスキャンフリップフロップの数を検出する工程と、
前記検出する工程において得られた前記スキャンフリップフロップの数に基づいて位相の異なる複数のクロック信号を生成する工程と、
前記位相の異なる複数のクロック信号を、前記複数のスキャンフリップフロップに割り当てる工程と、
を有することを特徴とする半導体装置の設計方法。
【請求項２】
前記複数の電源配線に含まれる第２電源配線に接続される前記スキャンフリップフロップの数を検出する工程を更に有し、
前記位相の異なる複数のクロック信号を生成する工程は、前記第１電源配線に接続されるスキャンフリップフロップの数と前記第２電源配線に接続されるスキャンフリップフロップの数のうちの最大数に相当する位相の異なる複数のクロック信号を生成する、ことを特徴とする請求項１に記載の半導体装置の設計方法。
【請求項３】
前記複数の電源配線に電源電圧を供給する複数の電源幹線に挟まれた領域において、前記第１電源配線に接続される全てのスキャンフロップに対して、前記位相の異なる複数のクロック信号を割り当てる、ことを特徴とする請求項１または２に記載の半導体装置の設計方法。
【請求項４】
前記複数の電源幹線は、前記複数の電源配線よりも配線幅が広い配線であることを特徴とする請求項３に記載の半導体装置の設計方法。
【請求項５】
複数の電源配線及び複数のスキャンフリップフロップに関する配置配線を行い、
前記配置配線により得られる配置情報に基づき、前記複数の電源配線に含まれる第１電源配線に接続されるスキャンフリップフロップの数を検出し、
検出された前記スキャンフリップフロップの数に基づいて位相の異なる複数のクロック信号を生成し、
前記位相の異なる複数のクロック信号を、前記複数のスキャンフリップフロップに割り当てる、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の設計方法及びプログラムに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integrated circuit）の消費電力が増大する主な要因は、クロックバッファやフリップフロップ（以下ＦＦと略す）の動作である。そのため、使用されていない回路部へのクロック信号の供給を停止する技術（クロックゲーティング）により、低消費電力化が図られる。そして、この技術を用いたときの消費電力をもとに、電源設計などが行われる。
【０００３】
ところで、スキャン試験時に、各スキャンチェーンに属する全てのＦＦ（スキャンＦＦ）が同じタイミングで動作すると、電源設計時の想定以上の電流が流れる。これにより、瞬間的に大きな電圧降下（Dynamic voltage drop）が発生し、所望の試験が実施できなくなったり、省電力設計がなされている回路を破壊してしまったりする懸念がある。
【０００４】
そこで、スキャンチェーンのグループごとにクロック信号を発生することで、全てのＦＦを同時に動作させず、スキャン試験時の消費電力を削減する方法がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１９７６０３号公報
【特許文献２】特開平１１−１６６９５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来の技術では、スキャン試験時の瞬間的な電圧降下を適切に抑制できない場合があった。スキャンチェーンのグループごとにクロック信号を発生させても、たとえば、グループ内で同じ電源配線を共有しているＦＦの数が多いような場合には、瞬間的に大きな電圧降下が発生してしまう可能性があるからである。
【課題を解決するための手段】
【０００７】
発明の一観点によれば、複数の電源配線及び複数のスキャンフリップフロップに関する配置配線を行う工程と、前記配置配線により得られる配置情報に基づき、前記複数の電源配線に含まれる第１電源配線に接続されるスキャンフリップフロップの数を検出する工程と、前記検出する工程において得られた前記スキャンフリップフロップの数に基づいて位相の異なる複数のクロック信号を生成する工程と、前記位相の異なる複数のクロック信号を、前記複数のスキャンフリップフロップに割り当てる工程と、を有する半導体装置の設計方法が提供される。
【発明の効果】
【０００８】
開示の半導体装置の設計方法及びプログラムによれば、スキャン試験時の電圧降下を抑制できる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態の半導体装置の一例を示す図である。
【図２】第１の実施の形態の半導体装置の設計方法の一例の流れを示すフローチャートである。
【図３】本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。
【図４】第２の実施の形態の半導体装置の設計方法の一例の流れを示すフローチャートである。
【図５】スキャンチェーンの一例を示す図である。
【図６】クロック分配処理の一例の流れを示すフローチャートである。
【図７】電源幹線、電源配線及びＦＦの配置例を示す図である。
【図８】ＦＦの一例を示す図である。
【図９】クロック生成部の一例を示す図である。
【図１０】番号ｓｎの割り当て結果の一例を示す図である。
【図１１】実際の配置配線例を示す図である（その１）。
【図１２】実際の配置配線例を示す図である（その２）。
【図１３】実際の配置配線例を示す図である（その３）。
【図１４】スキャン試験時のＦＦ＿１〜ＦＦ＿９の動作例を示すタイミングチャートである。
【図１５】半導体装置の変形例を示す図である。
【発明を実施するための形態】
【００１０】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の半導体装置の一例を示す図である。
【００１１】
半導体装置１００は、たとえば、チップ（ＬＳＩ）またはチップを含んだ装置である。
半導体装置１００は、電源幹線（メイン電源線）ＶＤＤ１，ＶＳＳ１，ＶＤＤ２，ＶＳＳ２と、電源配線（枝配線またはパワーレールと呼ばれる場合もある）ｖｓｓ１，ｖｄｄ１，ｖｓｓ２，ｖｄｄ２，ｖｓｓ３を有している。
【００１２】
この例においては、電源幹線は紙面縦方向に延在し、電源幹線から枝分かれして配置される電源配線は紙面横方向に延在する。電源幹線は、電源配線よりも配線幅が広く断面積が大きいため、より多くの電流を供給する能力を有している。多層配線構造を有する半導体集積回路においては、電源幹線は、電源配線よりも上層配線として形成される。
【００１３】
電源幹線ＶＤＤ１，ＶＤＤ２には、電源電圧が印加され、電源幹線ＶＳＳ１，ＶＳＳ２は、基準電位（たとえば、接地電位）となっている。電源配線ｖｄｄ１，ｖｄｄ２は、電源幹線ＶＤＤ１及び電源幹線ＶＤＤ２に接続されており、電源幹線ＶＤＤ１，ＶＤＤ２から電源電圧が供給（印加）される。電源配線ｖｓｓ１，ｖｓｓ２，ｖｓｓ３は、電源幹線ＶＳＳ１及び電源幹線ＶＳＳ２に接続されており、基準電位となっている。なお、この例において、電源幹線ＶＤＤ１と電源幹線ＶＤＤ２は同じ電源電位が印加される。
【００１４】
半導体装置１００は、さらに、電源配線ｖｓｓ１，ｖｄｄ１に接続されたＦＦ１，２、電源配線ｖｄｄ１，ｖｓｓ２に接続されたＦＦ３，４，５を有している。また、半導体装置１００は、電源配線ｖｓｓ２，ｖｄｄ２に接続されたＦＦ６，７、電源配線ｖｄｄ２，ｖｓｓ３に接続されたＦＦ８，９を有している。
【００１５】
ＦＦ１〜９は、スキャンＦＦであり、１または複数のグループのスキャンチェーンに含まれる（詳細は後述する）。ＦＦ１〜９は、図示を省略しているが、回路部（組み合わせ回路など）に接続されるデータ入出力端子の他、同一のスキャンチェーンに含まれるＦＦと接続されるスキャン入出力端子を備えている。
【００１６】
半導体装置１００は、さらに、ＦＦ１〜９に供給する複数のクロック信号を生成するクロック生成部１０を有している。クロック生成部１０は、遅延回路（たとえば、バッファ）１１−１，１１−２，１１−３，１１−４を有している。そして、クロック生成部１０は、初段の遅延回路１１−１に入力されたクロック発生部１２からのクロック信号を遅延させ、異なるタイミングでＨ（High）またはＬ（Low）になる複数のクロック信号を生成する。また、半導体装置１００は、クロック生成部１０で生成された複数のクロック信号を保持するクロックバッファ１３−１，１３−２，１３−３，１３−４，１３−５と、クロック配線１４，１５，１６，１７，１８を有している。クロック配線１４〜１８は、クロックバッファ１３−１〜１３−５に接続されており、同一電源配線に接続された複数のＦＦに対して、位相の異なるクロック信号を供給する。
【００１７】
図１の半導体装置１００の例では、電源配線ｖｓｓ１，ｖｄｄ１に接続されているＦＦ１，２は、クロック配線１４，１５により、異なるクロックバッファ１３−１，１３−２に接続されている。すなわち、ＦＦ１はクロックバッファ１３−１に接続され、ＦＦ２はクロックバッファ１３−２に接続されている。同様に、電源配線ｖｄｄ１，ｖｓｓ２に接続されているＦＦ３〜５は、クロック配線１６〜１８により、異なるクロックバッファ１３−３〜１３−５に接続されている。また、電源配線ｖｓｓ２，ｖｄｄ２に接続されているＦＦ６，７は、クロック配線１４，１５により、異なるクロックバッファ１３−１，１３−２に接続されている。さらに、電源配線ｖｄｄ２，ｖｓｓ３に接続されているＦＦ８，９は、クロック配線１６，１７により、異なるクロックバッファ１３−３〜１３−４に接続されている。
【００１８】
このように、同じ電源配線に接続されたＦＦには、位相の異なるクロック信号が供給されるようになっている。
図２は、第１の実施の形態の半導体装置の設計方法の一例の流れを示すフローチャートである。図２に示される各処理は、たとえば、後述する設計装置（コンピュータ）で実施される。
【００１９】
まず、ネットリストなどに基づき、配置配線（初期配線）が行われる（ステップＳ１）。ステップＳ１の処理では、図１に示したような電源幹線ＶＤＤ１，ＶＳＳ１，ＶＤＤ２，ＶＳＳ２、電源配線ｖｓｓ１，ｖｄｄ１，ｖｓｓ２，ｖｄｄ２，ｖｓｓ３、ＦＦ１〜９、スキャンチェーンやクロック配線などの配置配線が行われる。
【００２０】
次に、クロック信号の割り当てが行われる（ステップＳ２）。ステップＳ２の処理では、同一電源配線に接続される複数のＦＦに対して、位相の異なるクロック信号が割り当てられる。このとき、図１に示したようなクロック生成部１０が作成される。設計装置は、同一電源配線に接続される複数のＦＦの最大数を検出し、その数のクロック信号を生成するクロック生成部１０を作成する。これにより、同一電源配線に接続される複数のＦＦに対して、位相の異なるクロック信号を供給できるようになる。
【００２１】
ここで、同一配線とは、一本の電源配線（枝配線）のうち、電源幹線間に位置する部分のことを意味する。図１においては、たとえば、電源配線ｖｓｓ１のうち、一つの電源幹線対（ＶＤＤ１とＶＳＳ１）と他の電源幹線対（ＶＤＤ２とＶＳＳ２）との間にある部分を同一電源配線と呼び、同じｖｓｓ１であっても、電源幹線ＶＤＤ１とＶＳＳ１より紙面左側に位置する部分と、電源幹線ＶＤＤ２とＶＳＳ２より紙面右側に位置する部分は、別電源配線となる。
【００２２】
たとえば、図１に示した半導体装置１００の例では、電源配線ｖｄｄ１に接続されるＦＦの数及び電源配線ｖｓｓ２に接続されるＦＦの数が、５つとなり最も多い。したがって、設計装置は、５つの位相の異なるクロック信号を生成する図１に示したようなクロック生成部１０を作成する。なお、このときクロックバッファ１３−１〜１３−５も生成される。
【００２３】
その後、ＦＦ１〜９と、クロックバッファ１３−１〜１３−５などクロック配線（クロックツリー）の再配線（ステップＳ３）、などが行われる。
以上のような半導体装置及びその設計方法によれば、スキャン試験時には、同じ電源配線に接続されたＦＦが異なるタイミングで動作するようになるので、瞬間的に大きな電圧降下（電源電圧などの低下）が発生することを抑制できる。このため、所望の試験ができなくなるという問題や、瞬間的に大きな電流が流れることによる回路の破壊を防止することができる。
【００２４】
なお、瞬間的な大きな電圧降下を抑えるために、ＦＦの配置後に、ＦＦの近傍にデカップリング容量をもつ素子（セル）を配置して、ＦＦの動作時に瞬間的に電荷をＦＦに供給することも考えられる。しかし、デカップリング容量をもつセルは面積が比較的大きく、ＦＦなどの配置密度が高い場所には、配置しづらい。そのため、配置密度の比較的低い場所に配置することが考えられるが、瞬間的な電圧降下の抑制効果が小さくなる。また、配置効率が悪化する懸念もある。
【００２５】
また、同一スキャンチェーンに含まれるＦＦが、同一電源配線に接続されないように配置をしなおすことも考えられるが、その場合、ＦＦ間の配線効率などが悪化する。
これに対し、本実施の形態の半導体装置１００では、上記のように同じ電源配線に接続されるＦＦが位相の異なるクロックで動作するようにしたので、より効率的に瞬間的な電圧降下を抑制できる。また、デカップリング容量を用いた場合やＦＦを配置しなおす場合のような配置配線効率の悪化を抑制できる。
【００２６】
（第２の実施の形態）
本実施の形態の半導体装置の設計方法は、以下のような設計装置（コンピュータ）により実現される。
【００２７】
図３は、本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。コンピュータ２０は、プロセッサ２１によって装置全体が制御されている。プロセッサ２１には、バス２９を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２８】
ＲＡＭ２２は、コンピュータ２０の主記憶装置として使用される。ＲＡＭ２２には、プロセッサ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、プロセッサ２１による処理に必要な各種データが格納される。
【００２９】
バス２９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６、機器接続インタフェース２７及びネットワークインタフェース２８がある。
【００３０】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、コンピュータ２０の補助記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３１】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、プロセッサ２１からの命令に従って、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３２】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をプロセッサ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３３】
光学ドライブ装置２６は、レーザ光などを利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３４】
機器接続インタフェース２７は、コンピュータ２０に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース２７には、メモリ装置２７ａやメモリリーダライタ２７ｂを接続することができる。メモリ装置２７ａは、機器接続インタフェース２７との通信機能を搭載した記録媒体である。メモリリーダライタ２７ｂは、メモリカード２７ｃへのデータの書き込み、またはメモリカード２７ｃからのデータの読み出しを行う装置である。メモリカード２７ｃは、カード型の記録媒体である。
【００３５】
ネットワークインタフェース２８は、ネットワーク２８ａに接続されている。ネットワークインタフェース２８は、ネットワーク２８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３６】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した半導体装置の設計方法についても、図３に示したコンピュータ２０と同様のハードウェアにより実現することができる。
【００３７】
コンピュータ２０は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。コンピュータ２０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ２０に実行させるプログラムをＨＤＤ２３に格納しておくことができる。プロセッサ２１は、ＨＤＤ２３内のプログラムの少なくとも一部をＲＡＭ２２にロードし、プログラムを実行する。またコンピュータ２０に実行させるプログラムを、光ディスク２６ａ、メモリ装置２７ａ、メモリカード２７ｃなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ２１からの制御により、ＨＤＤ２３にインストールされた後、実行可能となる。またプロセッサ２１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３８】
図４は、第２の実施の形態の半導体装置の設計方法の一例の流れを示すフローチャートである。
たとえば、ＨＤＤ２３に格納されている設計プログラムがプロセッサ２１の制御のもと読み出されて実行されると、ＨＤＤ２３に格納されているネットリストなどのデータやユーザからのデータの入力が行われる（ステップＳ１０）。
【００３９】
その後、フロアプランニングにより、マクロ（回路部）の配置や電源の配線が決定され（ステップＳ１１）、それらの初期配置が行われる（ステップＳ１２）。その後、初期配置に基づいて、スキャンＦＦ間のスキャンチェーンのリオーダー（再配線）が行われる（ステップ１３）。
【００４０】
図５は、スキャンチェーンの一例を示す図である。
図５に示されている例では、チップのスキャン入力端子ＳＩＮ１からＦＦ１、ＦＦ３、ＦＦ４、ＦＦ５、ＦＦ２を介してチップのスキャン出力端子ＳＯＵＴ１に至るスキャンチェーンＳＣ１が示されている。また、チップのスキャン入力端子ＳＩＮ２からＦＦ６、ＦＦ８、ＦＦ９、ＦＦ７を介してチップのスキャン出力端子ＳＯＵＴ２に至るスキャンチェーンＳＣ２が示されている。
【００４１】
なお、図５に示されている例では、２つのスキャンチェーンＳＣ１，ＳＣ２がある場合を示したが、１つでも、３つ以上であってもよい。
ところで、スキャンチェーンＳＣ１においては、同一の電源配線ｖｄｄ１に対して５つのＦＦ１〜５が接続されており、これらを１つのクロック信号で同じタイミングで動作させると、瞬間的に大きな電圧降下が起こる可能性がある。そこで、本実施の形態の半導体装置の設計方法では、ステップＳ１３の後、クロック分配処理が行われる（ステップＳ１４）。
【００４２】
クロック分配処理では、同一電源配線に接続される複数のスキャンＦＦに対して、位相の異なるクロック信号を供給するクロック生成部が作成され、クロック配線の再接続などが行われる。クロック分配処理の例については後述する。
【００４３】
その後、タイミング最適化（ステップＳ１５）、クロック信号の合成（ステップＳ１６）、信号配線やタイミング最適化（ステップＳ１７）、電源網解析（消費電力や電圧降下などの解析）が行われ、本実施の形態の処理が終わる。
【００４４】
以下、ステップＳ１４のクロック分配処理の一例を説明する。
図６は、クロック分配処理の一例の流れを示すフローチャートである。
まず、スキャンチェーンリオーダー後に生成される、電源幹線や電源配線及びＦＦの配置情報をもとに、各電源幹線に挟まれた領域において、電源配線を共有するＦＦの最大数ＭＡＸが検出され、取得される（ステップＳ２０）。
【００４５】
図７は、電源幹線、電源配線及びＦＦの配置例を示す図である。図７に示されている配置例は、図１に示した半導体装置１００の配置と同じである。電源幹線ＶＤＤ１，ＶＳＳ１，ＶＤＤ２，ＶＳＳ２、電源配線ｖｓｓ１，ｖｄｄ１，ｖｓｓ２，ｖｄｄ２，ｖｓｓ３、ＦＦ１〜ＦＦ９とも図１の半導体装置１００と同じ符号が付されている。なお、図５に示したスキャンチェーンや、予めネットリストで設定されているクロック信号に基づいて配線されたクロック配線については図示を省略している。
【００４６】
ＦＦ１〜ＦＦ９は、たとえば、以下のようなスキャンＦＦである。
図８は、ＦＦの一例を示す図である。
ＦＦ１は、データ入力端子ＤＩＮ、データ出力端子ＤＯＵＴ、スキャン入力端子ＳＩＮ、スキャン出力端子ＳＯＵＴ、スキャンモード端子ＳＭＤ、クロック端子ＣＫを有している。
【００４７】
データ入力端子ＤＩＮまたはデータ出力端子ＤＯＵＴは、たとえば、図示しない回路部に接続されている。そして、ＦＦ１は、スキャンモード端子ＳＭＤに入力される信号が無効のとき（たとえば、Ｌレベルのとき）、クロック端子ＣＫに入力されるクロック信号に同期して、データ入力端子ＤＩＮに入力されるデータを取り込み、データ出力端子ＯＵＴから出力する。
【００４８】
スキャン入力端子ＳＩＮは、他のＦＦ２〜ＦＦ９のスキャン出力端子またはチップのスキャン入力端子に接続される。スキャン出力端子ＳＯＵＴは、他のＦＦ２〜ＦＦ９のスキャン入力端子またはチップのスキャン出力端子に接続される。そして、ＦＦ１は、スキャンモード端子ＳＭＤに入力される信号が有効のとき（たとえば、Ｈレベルのとき）、クロック端子ＣＫに入力されるクロック信号に同期して、スキャン入力端子ＳＩＮに入力されるデータを取り込み、スキャン出力端子ＳＯＵＴから出力する。
【００４９】
なお、他のＦＦ２〜９についても同様である。
図７に示したような配置例では、電源幹線ＶＤＤ１，ＶＳＳ１と電源幹線ＶＤＤ２，ＶＳＳ２に挟まれた領域では、電源配線ｖｄｄ１に接続されるＦＦの数及び電源配線ｖｓｓ２に接続されるＦＦの数が５つとなり最も多い。そのため、電源配線を共有するＦＦの最大数ＭＡＸは、５となる。
【００５０】
続いて、ＭＡＸと、元のクロック数（初めに設定されているクロック数）との比較が行われる（ステップＳ２１）。ここで、ＭＡＸ≧元のクロック数であれば、ステップＳ２２の処理が行われ、ＭＡＸ＜元のクロック数であれば、ステップＳ２３の処理が行われる。
【００５１】
ステップＳ２２の処理では、ＭＡＸのクロック信号を生成するクロック生成部が作成される。図７に示したような配置例では、ＭＡＸ＝５であるので、５つのクロック信号を生成するクロック生成部が生成される。
【００５２】
図９は、クロック生成部の一例を示す図である。図９（Ａ）は、クロック生成部１０がチップ３０ａ内に設けられている場合を示し、図９（Ｂ）は、クロック生成部１０がチップ３０ｂの外に設けられている場合を示している。
【００５３】
クロック生成部１０は、図１に示したものと同じであり、各要素には同じ符号が付されている。クロック生成部１０が、チップ３０ｂの外に設けられている場合には、生成されるクロック信号の数に対応したクロック端子（図示せず）がチップ３０ｂに設けられる。ステップＳ２２の処理では、ＭＡＸの数のクロックバッファ１３−１〜１３−５も生成される。
【００５４】
ステップＳ２３の処理では、各同一Ｒｏｗ領域のＦＦの情報の取得が行われる（ステップＳ２３）。たとえば、図７に示した配置例の場合、ＦＦ１，２、ＦＦ３〜５、ＦＦ６，７、ＦＦ８，９がそれぞれ同一のＲｏｗ領域に配置されている。そして、たとえば、図７に示した配置例では、ＦＦ１，２が配置されているＲｏｗ領域から以下の処理が行われる。
【００５５】
まず、各電源配線上のＦＦに１から順番に番号（ｓｎ）が割り当てられる（ステップＳ２４）。
次に、番号ｓｎとＭＡＸの比較が行われる（ステップＳ２５）。ｓｎ＞ＭＡＸであれば、ステップＳ２４の処理で割り当てられた番号ｓｎが１にリセットされて（ステップＳ２６）、ステップＳ２４からの処理が繰り返される。ｓｎ≦ＭＡＸである場合には、同一電源配線上の全ＦＦに番号ｓｎの割り当てが終わったか否かが判定される（ステップＳ２７）。
【００５６】
同一電源配線上の全ＦＦに番号ｓｎの割り当てが終わっていない場合には、ステップＳ２４からの処理が繰り返される。図７に示した配置例では、ＦＦ１にｓｎ＝１が割り当てられた後、同じ電源配線ｖｓｓ１，ｖｄｄ１に接続されるＦＦ２にｓｎ＝２が割り当てられる。
【００５７】
同一電源配線上の全ＦＦに割り当てが終わった場合には、全てのＲｏｗ領域で番号ｓｎの割り当てが終了したか否かが判定される（ステップＳ２８）。
全てのＲｏｗ領域で番号ｓｎの割り当てが終わっていない場合、次のＲｏｗ領域に対する処理に進み（ステップＳ２９）、ステップＳ２４からの処理が繰り返される。
【００５８】
図７に示した配置例では、ＦＦ１，２への番号ｓｎの割り当て後、次のＲｏｗ領域において、電源配線ｖｄｄ１，ｖｓｓ２に接続されたＦＦ３〜５に対して、番号ｓｎ＝３〜５が割り当てられる。さらに、次のＲｏｗ領域のＦＦ６に番号ｓｎ＝６が割り当てられるが、番号ｓｎ（＝６）がＭＡＸ（＝５）を超えるので、割り当てられる番号ｓｎは１となる。その後、ＦＦ６と同じ電源配線ｖｓｓ２，ｖｄｄ２に接続されたＦＦ７に対して、番号ｓｎ＝２が割り当てられ、次のＲｏｗ領域において、同じ電源配線ｖｄｄ２，ｖｓｓ３に接続されたＦＦ８，９に対して、番号ｓｎ＝３，４が割り当てられる。
【００５９】
ＦＦ１〜９に対する番号ｓｎの割り当ての結果は、たとえば、ＲＡＭ２２またはＨＤＤ２３に格納される。
図１０は、番号ｓｎの割り当て結果の一例を示す図である。
【００６０】
図１０に示されている例では、ＦＦ１，６にはｓｎ＝１が割り当てられ、ＦＦ２，７にはｓｎ＝２が割り当てられ、ＦＦ３，８にはｓｎ＝３が割り当てられ、ＦＦ４，９にはｓｎ＝４が割り当てられ、ＦＦ５にはｓｎ＝５が割り当てられている。
【００６１】
全てのＲｏｗ領域で番号ｓｎの割り当てが終わった場合には、番号ｓｎの順に、ＭＡＸ個のクロック信号の割り当てが行われる（ステップＳ３０）。その後、クロック配線の再接続が行われ（ステップＳ３１）、クロック分配処理が終了する。
【００６２】
たとえば、図１０に示されている例のようにＦＦ１〜９に番号ｓｎが割り当てられた場合、ＦＦ１，６のクロック端子にクロックバッファ１３−１が接続される（途中に他のクロックバッファを有していてもよい）。また、ＦＦ２，７のクロック端子には、クロックバッファ１３−２が接続され、ＦＦ３，８にはクロックバッファ１３−３が接続され、ＦＦ４，９にはクロックバッファ１３−４が接続され、ＦＦ５にはクロックバッファ１３−５が接続される。
【００６３】
以上のような処理により、図１に示したようにＦＦ１〜９とクロックバッファ１３−１〜１３−５がクロック配線１４〜１８により接続される。
なお、上記の説明では、電源幹線ＶＤＤ１，ＶＳＳ１と電源幹線ＶＤＤ２，ＶＳＳ２に挟まれた領域において、図７中の左下のＦＦ１から順に番号ｓｎを割り当てるものとしたが、これに限定されない。たとえば、ＦＦ２からＦＦ１、ＦＦ５、ＦＦ４、…の順で番号ｓｎを１から順に割り当ててもよいし、ＦＦ９からＦＦ８、ＦＦ７、ＦＦ６、…の順で番号ｓｎを１から順に割り当ててもよい。
【００６４】
図１１〜図１３は、実際の配置配線例を示す図である。ＦＦ＿１，ＦＦ＿２，ＦＦ＿３，ＦＦ＿４，ＦＦ＿５，ＦＦ＿６，ＦＦ＿７，ＦＦ＿８，ＦＦ＿９は、図７などに示したＦＦ１〜９に対応している。電源幹線については図示が省略されている。
【００６５】
図１１では、チップのスキャン入力端子ＳＩＮ１からＦＦ＿１，ＦＦ＿３，ＦＦ＿４，ＦＦ＿５，ＦＦ＿２を介してチップのスキャン出力端子ＳＯＵＴ１に至るスキャンチェーンＳＣ１が示されている。図１１中の黒丸は、ＦＦ＿１〜ＦＦ＿５のスキャン入力端子またはスキャン出力端子を示している。
【００６６】
図１２では、チップのスキャン入力端子ＳＩＮ２からＦＦ＿６，ＦＦ＿８，ＦＦ＿９，ＦＦ＿７を介してチップのスキャン出力端子ＳＯＵＴ２に至るスキャンチェーンＳＣ２が示されている。図１２中の黒丸は、ＦＦ＿６〜ＦＦ＿９のスキャン入力端子またはスキャン出力端子を示している。
【００６７】
なお、図１１、図１２に示されている例では、２つのスキャンチェーンＳＣ１，ＳＣ２がある場合を示したが、１つでも、３つ以上であってもよい。
図１３では、クロック配線の例が示されている。図１３中の黒丸は、ＦＦ＿１〜ＦＦ＿９のクロック端子を示している。
【００６８】
クロック配線４０は、ＦＦ＿１，ＦＦ＿６のクロック端子に接続されており、たとえば、図９（Ａ），（Ｂ）に示したクロックバッファ１３−１からのクロック信号をＦＦ＿１，ＦＦ＿６に供給する。
【００６９】
クロック配線４１は、ＦＦ＿２，ＦＦ＿７のクロック端子に接続されており、たとえば、図９（Ａ），（Ｂ）に示したクロックバッファ１３−２からのクロック信号をＦＦ＿２，ＦＦ＿７に供給する。
【００７０】
クロック配線４２は、ＦＦ＿３，ＦＦ＿８のクロック端子に接続されており、たとえば、図９（Ａ），（Ｂ）に示したクロックバッファ１３−３からのクロック信号をＦＦ＿３，ＦＦ＿８に供給する。
【００７１】
クロック配線４３は、ＦＦ＿４，ＦＦ＿９のクロック端子に接続されており、たとえば、図９（Ａ），（Ｂ）に示したクロックバッファ１３−４からのクロック信号をＦＦ＿４，ＦＦ＿９に供給する。
【００７２】
クロック配線４４は、ＦＦ＿５のクロック端子に接続されており、たとえば、図９（Ａ），（Ｂ）に示したクロックバッファ１３−５からのクロック信号をＦＦ＿５に伝搬する。
【００７３】
以下にＦＦ＿１〜ＦＦ＿９の動作例を示す。
図１４は、スキャン試験時のＦＦ＿１〜ＦＦ＿９の動作例を示すタイミングチャートである。
【００７４】
図９（Ａ），（Ｂ）に示したクロックバッファ１３−１〜１３−５から図１３に示したクロック配線４０〜４４に伝搬されるクロック信号ＣＫ１，ＣＫ２，ＣＫ３，ＣＫ４，ＣＫ５の様子が示されている。また、図１１、図１２に示したスキャンチェーンＳＣ１，ＳＣ２に含まれるＦＦ＿１〜ＦＦ＿９におけるデータのシフトの様子が示されている。
【００７５】
クロック信号ＣＫ１〜ＣＫ５のパルス幅は、たとえば、スキャンチェーンＳＣ１のＦＦ１〜５またはスキャンチェーンＳＣ２のＦＦ６〜９を同じタイミングで動作させるような場合に用いられるパルス幅よりも短く、試験時間の増加が抑制される。
【００７６】
クロック信号ＣＫ１が立ち上がると（タイミングｔ１）、クロック信号ＣＫ１が供給されるＦＦ＿１，ＦＦ＿６は、チップのスキャン入力端子ＳＩＮ１，ＳＩＮ２から入力されるデータＤ１，Ｄ２を取り込む。
【００７７】
スキャンチェーンＳＣ１，ＳＣ２において、ＦＦ＿１，ＦＦ＿６のスキャン出力端子に接続されるＦＦ＿３，ＦＦ＿８は、クロック信号ＣＫ３が供給されるので、クロック信号ＣＫ３が立ち上がると（タイミングｔ２）、データＤ１，Ｄ２を取り込む。
【００７８】
スキャンチェーンＳＣ１，ＳＣ２において、ＦＦ＿３，ＦＦ＿８のスキャン出力端子に接続されるＦＦ＿４，ＦＦ＿９は、クロック信号ＣＫ４が供給されるので、クロック信号ＣＫ４が立ち上がると（タイミングｔ３）、データＤ１，Ｄ２を取り込む。
【００７９】
スキャンチェーンＳＣ１において、ＦＦ＿４のスキャン出力端子に接続されるＦＦ＿５は、クロック信号ＣＫ５が供給されるので、クロック信号ＣＫ５が立ち上がると（タイミングｔ４）、データＤ１を取り込む。
【００８０】
スキャンチェーンＳＣ１，ＳＣ２において、ＦＦ＿５，ＦＦ＿９のスキャン出力端子に接続されるＦＦ＿２，ＦＦ＿７は、クロック信号ＣＫ２が供給されるので、クロック信号ＣＫ２が立ち上がると（タイミングｔ５）、データＤ１，Ｄ２を取り込む。これにより、ＦＦ＿２，ＦＦ＿７に接続されたチップのスキャン出力端子ＳＯＵＴ１，ＳＯＵＴ２からデータＤ１，Ｄ２が出力される。
【００８１】
図１１〜図１３に示したように、ＦＦ＿１，ＦＦ＿２は、同じ電源配線ｖｓｓ１に接続されているが、図１４に示したように、位相の異なるクロック信号ＣＫ１，ＣＫ２により、異なるタイミングで動作する。また、ＦＦ＿１〜ＦＦ＿５は、同じ電源配線ｖｄｄ１に接続されているが、図１４に示したように、位相の異なるクロック信号ＣＫ１〜ＣＫ５により、異なるタイミングで動作する。
【００８２】
また、ＦＦ＿３〜ＦＦ＿７は、同じ電源配線ｖｓｓ２に接続されているが、図１４に示したように、位相の異なるクロック信号ＣＫ１〜ＣＫ５により、異なるタイミングで動作する。また、ＦＦ＿６〜ＦＦ＿９は、同じ電源配線ｖｄｄ２に接続されているが、図１４に示したように、位相の異なるクロック信号ＣＫ１〜ＣＫ４により、異なるタイミングで動作する。また、ＦＦ＿８，ＦＦ＿９は、同じ電源配線ｖｓｓ３に接続されているが、図１４に示したように、位相の異なるクロック信号ＣＫ３，４により、異なるタイミングで動作する。
【００８３】
このように、同じ電源配線に接続される複数のＦＦが同じタイミングで動作されることが抑制されるため、瞬間的に大きな電圧降下が発生することを抑制できる。このため、所望の試験ができなくなるという問題や、瞬間的に大きな電流が流れることによる回路の破壊を防止することができるなど、第１の実施の形態の半導体装置及びその設計方法と同様の効果が得られる。
【００８４】
（変形例）
図１５は、半導体装置の変形例を示す図である。
図１５に示されている半導体装置１００ａの例では、図１などに示した各要素の他に、電源幹線ＶＤＤ３，ＶＳＳ３が追加されている。電源幹線ＶＤＤ３には、電源電圧が印加され、電源幹線ＶＳＳ３は、基準電位（たとえば、接地電位）となっている。電源幹線ＶＤＤ３には、電源配線ｖｄｄ１，ｖｄｄ２が接続され、電源幹線ＶＳＳ３には、電源配線ｖｓｓ１，ｖｓｓ２，ｖｓｓ３が接続される。そして、電源幹線ＶＤＤ２，ＶＳＳ２と、電源幹線ＶＤＤ３，ＶＳＳ３の間に、スキャンＦＦであるＦＦ５１，５２，５３，５４，５５，５６，５７，５８，５９，６０が配置されている。
【００８５】
ここで、ＦＦ５１〜５３は電源配線ｖｓｓ１，ｖｄｄ１に接続されており、ＦＦ５４，５５は電源配線ｖｄｄ１，ｖｓｓ２に接続されている。また、ＦＦ５６，５７は電源配線ｖｓｓ２，ｖｄｄ２に接続されており、ＦＦ５８〜６０は電源配線ｖｄｄ２，ｖｓｓ３に接続されている。
【００８６】
ＦＦ５１〜６０に対しても、図６に示したクロック分配処理が適用可能である。
前述したＦＦ１〜９に対するクロック分配処理において、ＦＦ８，９を含むＲｏｗ領域で、ＦＦ８，９に、番号ｓｎの割り当てが終わると、ＦＦ５１〜５３を含むＲｏｗ領域で、ＦＦ５１〜５３に番号ｓｎの割り当てが行われる。図１０に示したように、ＦＦ９に番号ｓｎ＝４が割り当てられているので、ＦＦ５１には次の番号ｓｎ＝５が割り当てられ、ＦＦ５２，５３には、番号ｓｎ＝１，２が割り当てられる。その後、ＦＦ５４，５５を含むＲｏｗ領域、ＦＦ５６，５７を含むＲｏｗ領域、ＦＦ５８〜６０を含むＲｏｗ領域において、ＦＦ５４〜６０に対する番号ｓｎの割り当てが行われる。そして、ＦＦ１〜９、ＦＦ５１〜６０に割り当てられた番号ｓｎに応じてクロック信号の割り当てが行われ、クロック配線の接続が行われる。
【００８７】
図１５に示されている例では、ＦＦ５１，５６がクロックバッファ１３−５と接続され、ＦＦ５２，５７がクロックバッファ１３−１と接続され、ＦＦ５３，５８がクロックバッファ１３−２と接続される。また、ＦＦ５４，５９がクロックバッファ１３−３と接続され、ＦＦ５５，６０がクロックバッファ１３−４と接続される。
【００８８】
これにより、電源幹線ＶＤＤ２，ＶＳＳ２と電源幹線ＶＤＤ３，ＶＳＳ３に挟まれた領域では、同じ電源配線に接続される複数のＦＦが同じタイミングで動作されることが抑制されるため、瞬間的に大きな電圧降下が発生することを抑制できる。このため、所望の試験ができなくなるという問題や、瞬間的に大きな電流が流れることによる回路の破壊を防止することができる。
【００８９】
なお、たとえば、同じクロック信号で動作するＦＦ１とＦＦ５２は、同じ電源配線ｖｄｄ１に接続されているが、ＦＦ１とＦＦ５２は、違う電源幹線に挟まれた領域に属するため、電圧降下による影響は少ない。
【００９０】
以上、実施の形態に基づき、本発明の半導体装置の設計方法及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【００９１】
１〜９  ＦＦ
１０  クロック生成部
１１−１〜１１−４  遅延回路
１２  クロック発生部
１３−１〜１３−５  クロックバッファ
１４〜１８  クロック配線
ＶＤＤ１，ＶＤＤ２，ＶＳＳ１，ＶＳＳ２  電源幹線
ｖｄｄ１，ｖｄｄ２，ｖｓｓ１，ｖｓｓ２，ｖｓｓ３  電源配線
【図１】
2014137608.tif 000003
【図２】
2014137608.tif 000004
【図３】
2014137608.tif 000005
【図４】
2014137608.tif 000006
【図５】
2014137608.tif 000007
【図６】
2014137608.tif 000008
【図７】
2014137608.tif 000009
【図８】
2014137608.tif 000010
【図９】
2014137608.tif 000011
【図１０】
2014137608.tif 000012
【図１１】
2014137608.tif 000013
【図１２】
2014137608.tif 000014
【図１３】
2014137608.tif 000015
【図１４】
2014137608.tif 000016
【図１５】
2014137608.tif 000017