(57)【要約】  従来の半導体装置は、回路修正に伴う後戻り工程に膨大な時間が必要になる問題があった。本発明にかかる半導体装置は、トリガ信号に同期して動作する複数のトリガ信号駆動素子(ＦＦａ、ＦＦｂ)と、トリガ信号を複数のトリガ信号駆動素子に分配するトリガ配線(ＣＷ０〜ＣＷ３)と、トリガ配線(ＣＷ０〜ＣＷ３)から分岐して設けられる追加トリガ配線(ＣＷｂ)と、追加トリガ配線(ＣＷｂ)を介してトリガ信号が供給され、複数のトリガ信号駆動素子から分離して設けられる追加供給素子(３０）と、を有する。
2010100830.tif 000002
【特許請求の範囲】
【請求項１】
トリガ信号に同期して動作する複数のトリガ信号駆動素子と、
前記トリガ信号を前記複数のトリガ信号駆動素子に分配するトリガ配線と、
前記トリガ配線から分岐して設けられる追加トリガ配線と、
前記追加トリガ配線を介して前記トリガ信号が供給され、前記複数のトリガ信号駆動素子から分離して設けられる追加供給素子と、
を有する半導体装置。
【請求項２】
前記追加供給素子は、出力端子が他の素子に接続されないバッファ回路である請求項１に記載の半導体装置。
【請求項３】
前記追加供給素子は、出力端子と入力端子とがループ接続され、トリガ信号入力端子に前記追加クロック配線を介して前記クロック信号が入力されるフリップフロップ回路である請求項１に記載の半導体装置。
【請求項４】
前記追加供給素子は、出力端子と入力端子とがループ接続されるフリップフロップ回路と、前記追加クロック配線を介して入力される前記クロック信号を前記フリップフロップ回路のトリガ信号入力端子に供給するバッファ回路と、を有する請求項１に記載の半導体装置。
【請求項５】
トリガ信号を伝達するトリガ配線と、前記トリガ信号に基づき動作する複数のトリガ信号駆動素子と、を有する半導体装置の回路修正方法であって、
前記トリガ配線に追加トリガ配線を介して接続され、かつ、前記複数のトリガ駆動素子のいずれとも接続されない追加供給素子を予め設け、
前記複数のトリガ信号駆動素子のうち修正対象とする修正対象素子を検索し、
前記修正対象素子と前記追加供給素子とを接続する
回路修正方法。
【請求項６】
前記追加供給素子は、予め設定された制約条件に応じて前記トリガ配線のいずれの位置に接続されるか決定される請求項５に記載の回路修正方法。
【請求項７】
前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項５又は６に記載の回路修正方法。
【請求項８】
前記制約条件は、トリガ信号のスキュー値である請求項５乃至７のいずれか１項に記載の回路修正方法。
【請求項９】
この設計支援装置は、
半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する、
ここで、前記設計支援装置は、
前記追加供給素子の個数と、前記追加供給素子の制約条件と、に基づき前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を生成する追加供給素子条件設定手段と、
複数の前記トリガ駆動素子を含む回路の接続情報を記述した第１のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を出力する分岐位置決定手段と、
前記分岐位置情報に基づき前記第１のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第２のネットリストを生成するトリガ配線修正手段と、を有する。
【請求項１０】
前記分岐位置決定手段は、前記統計情報に含まれる前記制約条件を満たす前記トリガ配線の前記分岐段数を検索し、検索された前記分岐段数に該当する前記トリガ配線の位置を前記追加供給素子及び前記追加トリガ配線として決定する請求項９に記載の設計支援装置。
【請求項１１】
前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項９又は１０に記載の設計支援装置。
【請求項１２】
前記制約条件は、トリガ信号のスキュー値である請求項９乃至１１のいずれか１項に記載の設計支援装置。
【請求項１３】
この設計支援装置は、レイアウト完了後に生成される第１のネットリストに含まれるトリガ信号に基づき動作するトリガ信号駆動素子と、前記トリガ信号を伝達するトリガ配線と追加トリガ配線を介して接続され、かつ、前記トリガ信号駆動素子と接続されない追加供給素子と、を接続する、
ここで、前記設計支援装置は、
前記第１のネットリストから修正対象とする素子追加ノードの両端に位置する前記トリガ信号駆動素子を検索し、検索した前記トリガ信号駆動素子を修正対象素子として登録する修正対象素子検索手段と、
前記修正対象素子に接続される前記トリガ配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報を出力するクロック供給元解析手段と、
前記クロック供給元解析情報に基づき前記修正対象素子に前記トリガ信号を供給する前記トリガ配線と一致する又は近似する前記分岐段数を有するトリガ配線に接続された前記追加供給素子を検索し、検索した前記追加供給素子を追加対象の追加供給素子として決定する追加先決定手段と、
前記追加先決定手段において決定された前記追加供給素子と前記トリガ信号駆動素子とを接続した第２のネットリストを生成する回路修正手段と、を有する。
【請求項１４】
前記追加先決定手段は、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線に近い前記分岐段数を有するトリガ配線に接続された前記追加供給素子を優先的に追加先として選択する請求項１３に記載の設計支援装置。
【請求項１５】
前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項１３又は１４に記載の設計支援装置。
【請求項１６】
前記制約条件は、トリガ信号のスキュー値である請求項１３乃至１５のいずれか１項に記載の設計支援装置。
【請求項１７】
この記録媒体は、演算装置で実行され、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援プログラムが格納されている、
ここで、前記設計支援プログラムは、
メモリから前記追加供給素子の個数を示す追加供給素子個数情報と、前記追加供給素子の制約条件を示す追加供給素子制約情報と、を読み出して前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を前記メモリに格納する追加供給素子条件設定手段と、
複数の前記トリガ駆動素子を含む回路の接続情報を記述した第１のネットリストを前記メモリから読み出して前記第１のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を前記メモリに格納する分岐位置決定手段と、
前記メモリから読み出した前記分岐位置情報に基づき前記第１のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第２のネットリストを生成し、前記メモリに第２のネットリストを格納するトリガ配線修正手段と、を有する。
【請求項１８】
前記分岐位置決定手段は、前記統計情報に含まれる前記制約条件を満たす前記トリガ配線の前記分岐段数を検索し、検索された前記分岐段数に該当する前記トリガ配線の位置を前記追加供給素子及び前記追加トリガ配線として決定する請求項１７に記載の設計支援プログラムが格納された記録媒体。
【請求項１９】
前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項１７又は１８に記載の設計支援プログラムが格納された記録媒体。
【請求項２０】
前記制約条件は、トリガ信号のスキュー値である請求項１７乃至１９のいずれか１項に記載の設計支援プログラムが格納された記録媒体。
【請求項２１】
この記録媒体は、設計支援プログラム演算装置で実行され、レイアウト完了後に生成される第１のネットリストに含まれるトリガ信号に基づき動作するトリガ信号駆動素子と、前記トリガ信号を伝達するトリガ配線と追加トリガ配線を介して接続され、かつ、前記トリガ信号駆動素子と接続されない追加供給素子と、を接続する設計支援プログラムが格納されている、
ここで、前記設計支援プログラムは、
メモリから前記第１のネットリストを読み出し、前記第１のネットリストから修正対象とする素子追加ノードの両端に位置する前記トリガ信号駆動素子を検索し、検索した前記トリガ信号駆動素子を示す修正対象素子解析情報を前記メモリに格納する修正対象素子検索手段と、
前記メモリから前記第１のネットリスト及び前記修正対象素子解析情報を読み出し、前記修正対象素子に接続される前記トリガ配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報を前記メモリに格納するクロック供給元解析手段と、
前記メモリから前記クロック供給元解析情報を読み出し、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線と一致する又は近似する前記分岐段数を有するトリガ配線に接続された前記追加供給素子を検索し、検索した前記追加供給素子を追加対象の追加供給素子として決定する追加先決定手段と、
前記追加先決定手段が決定した前記追加供給素子と前記トリガ信号駆動素子とを接続した第２のネットリストを生成し、前記第２のネットリストを前記メモリに格納する回路修正手段と、を有する。
【請求項２２】
前記追加先決定手段は、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線に近い前記分岐段数を有するトリガ配線に接続された前記追加供給素子を優先的に追加先として選択する請求項２１に記載の設計支援プログラムが格納された記録媒体。
【請求項２３】
前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項２１又は２２に記載の設計支援プログラムが格納された記録媒体。
【請求項２４】
前記制約条件は、トリガ信号のスキュー値である請求項２１乃至２３のいずれか１項に記載の設計支援プログラムが格納された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、回路修正方法、設計支援装置及び設計支援プログラムに関し、特にトリガ信号駆動素子にクロック信号を分配するクロック配線を有する半導体装置と、半導体装置の回路修正方法、設計支援装置及び設計支援プログラムに関する。
【背景技術】
【０００２】
半導体装置の設計においては、回路の不具合や改良のために、機能上又は性能上の回路修正が発生する場合がある。これらの回路修正が設計前期に発生する場合は特に問題はないが、半導体装置の設計が進んだ段階（例えば、レイアウト設計が完了した段階）で回路修正が発生すると修正のために設計工程に大きな戻り工程が発生する。すなわち、レイアウトが完了した回路に対して修正を行う場合、既存のレイアウトを維持したままでは不具合を改善できず、再レイアウトを必要とすることが多い。そこで、特許文献１において、設計の後戻り工程にかかる時間を削減する設計手法の例が開示されている。【０００３】
特許文献１では、予め回路に切れ目を入れて分割しておき、分割単位で回路修正を行う。これにより、修正が必要のない分割単位を現在の設計情報（例えばレイアウト情報）を維持したまま、回路修正が必要になった分割単位に対してのみ修正処理を行うことができる。つまり、特許文献１では再レイアウトを行う領域を最小限とすることで戻り工程にかかる時間を削減する。【０００４】
また、近年の半導体装置では、クロック信号に応じて駆動されるフリップフロップ等を用いた論理回路が多く用いられている。半導体装置では、クロック信号を伝達するクロック配線の寄生容量により、複数のフリップフロップ間でクロック信号の到達時間に誤差が生じる。そこで、論理回路の設計では、クロック信号の到着時刻の遅延量や、互いに接続されるトリガ信号駆動素子間のトリガ信号の到着時刻差を事前に見積もり、クロック信号の伝搬遅延に起因する不具合を回避するタイミング設計が行われる。このタイミング設計によって、論理回路では、トリガ信号の伝搬遅延に起因する不具合を回避している。なお、クロック信号は、広くはトリガ信号に含まれ、トリガ信号はクロック信号以外にも、セット信号、リセット信号、非同期通信におけるリクエスト信号、アクノリッジ信号等が含まれる。また、フリップフロップは、広くはトリガ信号駆動素子に含まれ、トリガ信号駆動素子には、フリップフロップ以外にもラッチ、メモリ等が含まれる。さらに、タイミング設計は、複数のフリップフロップの間で送受信されるデータ信号についても行われる。【０００５】
このような論理回路を用いた半導体装置では、レイアウト終了後にフリップフロップを追加すると、クロック信号のタイミング設計を再度行う必要がなる。これは、追加したフリップフロップ（例えば、追加フリップフロップ）及び追加フリップフロップにクロック信号を供給する追加クロック配線を既存のクロック配線に追加することで、既存のクロック配線の寄生容量が変化し、この変化に伴いクロック信号の遅延量が変化するためである。そこで、特許文献２では、既存のクロック配線の寄生容量の変化をクロック配線の調整のみにより対応し、後戻り作業を極力削減する方法が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−２５０１２１号公報
【特許文献２】特開平８−５０６０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、レイアウト又はクロック配線の設計が完了した後に、フリップフロップ等を追加場合、追加のタイミング設計及びレイアウトのやり直しのための戻り工程が発生する。この戻り工程にかかる時間は非常に膨大であり、設計期間が大幅に増大する問題が発生する。しかし、特許文献１、２に記載の設計手法ではこの設計期間の増大する問題に対処することができない。【０００８】
より具体的には、特許文献１に記載の設計手法であっても、フリップフロップを追加した場合、該当分割単位に対してタイミング設計及びレイアウトのやり直しを行わなければならないためである。戻り工程においてチップの一部のみを修正する場合であってもこの戻り工程は、多くの時間を必要とする。そのため、特許文献１に記載の設計手法では、戻り工程の時間を十分に削減できない問題がある。【０００９】
また、特許文献２に記載の設計手法を用いてフリップフロップを追加した場合、クロック配線の調整だけでは追加フリップフロップに対するクロック信号の到達時刻を適切に設定することができず、不具合を十分に解決できない問題がある。このような問題が発生した場合、特許文献２においても、適切なタイミング設計及びレイアウトのために初期段階から設計をやり直す必要があり、戻り工程に多くの時間を必要とする。つまり、特許文献２に記載の設計手法においても、戻り工程の時間を十分に削減できない問題がある。
【課題を解決するための手段】
【００１０】
本発明にかかる半導体装置の一態様は、トリガ信号に基づき動作する複数のトリガ信号駆動素子と、前記トリガ信号を前記複数のトリガ信号駆動素子に分配するトリガ配線と、前記クロック配線から分岐して設けられる追加トリガ配線と、前記追加トリガ配線を介して前記クロック信号が供給され、前記複数のトリガ信号駆動素子から分離して設けられる追加供給素子と、を有する。【００１１】
本発明にかかる半導体装置の回路修正方法は、トリガ信号を伝達するトリガ配線と、前記トリガ信号に基づき動作する複数のトリガ信号駆動素子と、を有する半導体装置の回路修正方法であって、前記トリガ配線に追加トリガ配線を介して接続され、かつ、前記複数のトリガ駆動素子のいずれとも接続されない追加供給素子を予め設け、前記複数のトリガ信号駆動素子のうち修正対象とする修正対象素子を検索し、前記修正対象素子と前記追加供給素子とを接続する。【００１２】
本発明にかかる設計支援装置の一態様は、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援装置であって、前記追加供給素子の個数と、前記追加供給素子の制約条件と、に基づき前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を生成する追加供給素子条件設定部と、複数の前記トリガ駆動素子を含む回路の接続情報を記述した第１のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を出力する分岐位置決定部と、前記分岐位置情報に基づき前記第１のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第２のネットリストを生成するトリガ配線修正部と、を有する。【００１３】
本発明にかかる設計支援装置の一態様は、レイアウト完了後に生成される第１のネットリストに含まれるトリガ信号に基づき動作するトリガ信号駆動素子と、前記トリガ信号を伝達するトリガ配線と追加トリガ配線を介して接続され、かつ、前記トリガ信号駆動素子と接続されない追加供給素子と、を接続する設計支援装置であって、前記第１のネットリストから修正対象とする素子追加ノードの両端に位置する前記トリガ信号駆動素子を検索し、検索した前記トリガ信号駆動素子を修正対象素子として登録する修正対象素子検索部と、前記修正対象素子に接続される前記トリガ配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報を出力するクロック供給元解析部と、前記クロック供給元解析情報に基づき前記修正対象素子に前記トリガ信号を供給する前記トリガ配線と一致する又は近似する前記分岐段数を有するトリガ配線に接続された前記追加供給素子を検索し、検索した前記追加供給素子を追加対象の追加供給素子として決定する追加先決定部と、前記追加先決定部において決定された前記追加供給素子と前記トリガ信号駆動素子とを接続した第２のネットリストを生成する回路修正部と、を有する。【００１４】
本発明にかかる設計支援プログラムの一態様は、演算装置で実行され、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援装置プログラムであって、メモリから前記追加供給素子の個数を示す追加供給素子個数情報と、前記追加供給素子の制約条件を示す追加供給素子制約情報と、を読み出して前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を前記メモリに格納する追加供給素子条件設定部と、複数の前記トリガ駆動素子を含む回路の接続情報を記述した第１のネットリストを前記メモリから読み出して前記第１のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を前記メモリに格納する分岐位置決定部と、前記メモリから読み出した前記分岐位置情報に基づき前記第１のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第２のネットリストを生成し、前記メモリに第２のネットリストを格納するトリガ配線修正部と、を有する。【００１５】
本発明にかかる設計支援プログラムの一態様は、演算装置で実行され、レイアウト完了後に生成される第１のネットリストに含まれるトリガ信号に基づき動作するトリガ信号駆動素子と、前記トリガ信号を伝達するトリガ配線と追加トリガ配線を介して接続され、かつ、前記トリガ信号駆動素子と接続されない追加供給素子と、を接続する設計支援プログラムであって、メモリから前記第１のネットリストを読み出し、前記第１のネットリストから修正対象とする素子追加ノードの両端に位置する前記トリガ信号駆動素子を検索し、検索した前記トリガ信号駆動素子を示す修正対象素子解析情報を前記メモリに格納する修正対象素子検索部と、前記メモリから前記第１のネットリスト及び前記修正対象素子解析情報を読み出し、前記修正対象素子に接続される前記トリガ配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報を前記メモリに格納するクロック供給元解析部と、前記メモリから前記クロック供給元解析情報を読み出し、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線と一致する又は近似する前記分岐段数を有するトリガ配線に接続された前記追加供給素子を検索し、検索した前記追加供給素子を追加対象の追加供給素子として決定する追加先決定部と、前記追加先決定部が決定した前記追加供給素子と前記トリガ信号駆動素子とを接続した第２のネットリストを生成し、前記第２のネットリストを前記メモリに格納する回路修正部と、を有する。
【発明の効果】
【００１６】
本発明にかかる半導体装置、回路修正方法、設計支援装置及び設計支援プログラムによれば、回路修正に伴う戻り工程の時間を短縮することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１にかかる半導体装置のブロック図である。
【図２Ａ】実施の形態１にかかる追加供給素子の回路例である。
【図２Ｂ】実施の形態１にかかる追加供給素子の他の回路例である。
【図２Ｃ】実施の形態１にかかる追加供給素子の他の回路例である。
【図３】図１に示す半導体装置に対して回路修正を行った半導体装置のブロック図である。
【図４】実施の形態２にかかる半導体装置の回路設計手順を示すフローチャートである。
【図５】実施の形態２にかかる半導体装置の設計支援装置のブロック図である。
【図６】実施の形態２にかかる設計支援装置の動作手順を示すフローチャートである。
【図７】実施の形態３にかかる半導体装置の回路修正手順を示すフローチャートである。
【図８】実施の形態３にかかる半導体装置の設計支援装置のブロック図である。
【図９】実施の形態３にかかる設計支援装置の動作手順を示すフローチャートである。
【図１０】実施の形態３にかかる設計支援装置による回路修正が行われた半導体装置の一例を示すブロック図である。
【図１１】実施の形態３にかかる設計支援装置による回路修正が行われた半導体装置の別の例を示すブロック図である。
【発明を実施するための形態】
【００１８】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。まず、実施の形態１にかかる半導体装置１のブロック図を図１に示す。図１に示すように半導体装置１は、クロック生成回路１０、論理回路２０、追加供給素子３０、トリガ配線ＣＷ０〜ＣＷ３及び追加トリガ配線ＣＷｂを有する。を有する。また、半導体装置１では、論理回路２０を複数有する。
【００１９】
クロック生成回路１０は、トリガ配線（例えば、クロック配線）ＣＷ０〜ＣＷ３を介して論理回路２０にトリガ信号（例えば、クロック信号）を分配する。論理回路２０は、トリガ配線を介して供給されるトリガ信号に基づき動作する複数のトリガ信号駆動素子を有する。図１では、論理回路２０の１つがフリップフロップ回路ＦＦａ、ＦＦｂを有する。ここで、本実施の形態では、トリガ信号駆動素子の一例としてフリップフロップ回路を用いる。また、トリガ信号としては、クロック信号を用い、トリガ配線をクロック配線と称す。しかし、トリガ信号駆動素子は、トリガ信号に基づき動作する回路素子であれば良く、フリップフロップ回路の他にもラッチ回路、メモリ回路などがある。また、トリガ信号には、クロック信号の他にセット信号、リセット信号、非同期通信におけるリクエスト信号、アクノリッジ信号等が含まれる。
【００２０】
また、図１においては、クロック配線には符号ＣＷの後ろに数字が付されている。この数字は、クロック配線の分岐段数を示すものであり、本実施の形態では、クロック生成回路１０の出力端子に接続されるクロック配線ＣＷ０を基準とした。なお、クロック配線の分岐段数の始点は任意に設定することができる。
【００２１】
また、図１においては、クロック配線の分岐点にＮＤ０〜ＮＤ３を付した。分岐点は、符号ＮＤの後ろに数字が付されているが、この数字はクロック配線の分岐段数を示すものである。本実施の形態では、クロック生成回路１０の出力端子を分岐点の始点とした。なお、分岐点の段数の始点は任意に設定することができる。
【００２２】
また、本実施の形態にかかる半導体装置１では、クロック配線ＣＷ０〜ＣＷ３毎に制約条件（例えば、スキュー値）が設定される。つまり、クロック配線ＣＷ１は、クロック配線ＣＷ０に対して一定のスキュー値が設定される。クロック配線ＣＷ２のスキュー値は、クロック配線ＣＷ０に対して一定であって、クロック配線ＣＷ１とは異なる値で設定される。クロック配線ＣＷ３のスキュー値は、クロック配線ＣＷ０に対して一定であって、クロック配線ＣＷ１、ＣＷ２とは異なる値で設定される。
【００２３】
追加供給素子３０は、追加トリガ配線（例えば、追加クロック配線）を介してクロック信号が供給され、複数のフリップフロップ回路から分離して設けられる。そして、回路修正において複数のフリップフロップ回路と接続される。この追加供給素子３０の例を図２Ａ乃至Ｃに示す。追加トリガ配線ＣＷｂは、クロック配線から分岐して設けられる配線であって、分岐元のクロック配線と同一の制約条件（例えば、スキュー値）が設定される。また、追加供給素子３０は、後の利用状態を考慮した制約条件（例えば、スキュー値）が予め設定されており、この制約条件に基づき配置される。つまり、追加供給素子３０は、追加供給素子の制約条件とクロック配線ＣＷ０〜ＣＷ３の制約条件が一致する場所に配置される。
【００２４】
図２Ａに示す例は、追加供給素子としてバッファＢＵＦを用いたものである。バッファＢＵＦは、入力端子が追加クロック配線ＣＷｂを介してクロック配線に接続され、出力端子は回路修正に用いられないときに開放端となる。図２Ｂに示す例は、追加供給素子としてバッファＢＵＦとフリップフロップ回路ＦＦを用いたものである。バッファＢＵＦは、入力端子が追加クロック配線ＣＷｂを介してクロック配線に接続され、出力端子はフリップフロップ回路ＦＦのクロック入力端子に接続される。フリップフロップ回路ＦＦは、回路修正に用いられない状態において入力端子と出力端子が互いに接続される。図２Ｃに示す例は、追加供給素子としてフリップフロップ回路ＦＦを用いたものである。フリップフロップ回路ＦＦは、回路修正に用いられない状態において入力端子と出力端子が互いに接続され、クロック入力端子が追加クロック配線ＣＷｂを介してクロック配線に接続される。
【００２５】
本実施の形態にかかる半導体装置１は、回路修正を行う場合に追加供給素子３０を用いる。そこで、図１に示す半導体装置１を本実施の形にかかる回路修正方法を用いて修正した半導体装置１ａのブロック図を図３に示す。図３に示すように、本実施の形にかかる回路修正方法では、論理回路２０において元々利用されていたフリップフロップ回路ＦＦａ、ＦＦｂとの間に追加供給素子３０に含まれるフリップフロップ回路ＦＦｃが接続される。このフリップフロップ回路ＦＦｃには、クロック配線ＣＷ１から分岐して設けられる追加クロック配線ＣＷｂと、バッファＢＵＦを介してクロック信号が供給される。
【００２６】
このように、本実施の形態にかかる半導体装置の回路修正は、クロック信号を伝達するクロック配線と、クロック信号に基づき動作する複数のフリップフロップ回路と、を有する半導体装置の回路修正方法であって、クロック配線ＣＷ０〜ＣＷ３に追加クロック配線を介して接続され、かつ、複数のフリップフロップ回路のいずれとも接続されない追加供給素子３０を予め設け、複数のフリップフロップ回路うち修正対象とする修正対象素子（図３に示す例では、フリップフロップ回路ＦＦａ、ＦＦｂ）を検索し、フリップフロップ回路ＦＦａ、ＦＦｂと追加供給素子３０とを接続するものである。
【００２７】
このように、本実施の形態にかかる半導体装置では、予め追加クロック配線及び追加供給素子３０を組み込んでおき、その後の回路修正においてこの追加供給素子３０を用いる。このとき、半導体装置１では、追加供給素子３０及び追加クロック配線ＣＷｂに起因する寄生容量を含めてクロック配線ＣＷ０〜ＣＷ３のスキュー値を設計の初期段階で設定する。これにより、回路修正に伴い、クロック配線ＣＷ０〜ＣＷ３からクロック信号の供給を受ける回路素子が追加され場合においても、追加供給素子を用いることでクロック配線ＣＷ０〜ＣＷ３の寄生容量の値を一定に保つことができる。言い換えれば、クロック配線ＣＷ０〜ＣＷ３のスキュー値は、追加供給素子を用いている限り、回路修正により変動することがない。従って、本実施の形態にかかる半導体装置では、追加供給素子３０及び追加クロック配線ＣＷｂを回路修正工程で用いたとしても、再度クロック信号のスキュー値の計算（タイミング設計）を行う必要がない。つまり、本実施の形態にかかる半導体装置では、回路修正に伴う戻り工程にかかる時間を短縮することができる。
【００２８】
また、一般的には、半導体装置に利用しない素子を追加することはチップ面積の増大を招くため行われない。しかし、本実施の形態にかかる追加供給素子３０は、バッファ回路又はフリップフロップ回路ＦＦａ等を１つ又は２つ程度の小さな回路であり、追加供給素子３０を追加してもチップ面積の増大はほとんどない。近年の微細化されたプロセスでは、このような小さなチップ面積の増大によるデメリットよりも回路修正に伴う戻り工程によるコスト及び時間の増大によるデメリットの方が大きい傾向がある。例えば、半導体装置に元々なかった回路素子を後に追加する場合、ウェハの下層（回路形成層）に対応するレチクルを修正しなければならならず、この場合全てのレチクルを製造し直す必要がある。近年の微細化された半導体素子では、全てのレチクルを製造し直すためには莫大な時間とコストが必要になる。しかし、本実施の形態にかかる半導体装置では、回路配線層に対応するレチクルのみを製造し直せば良い。そのため、本実施の形態にかかる半導体装置では、回路修正に伴うレチクル製造のコストの抑制及び時間の抑制が可能になる。つまり、近年の微細化されたプロセスでは、本発明による設計時間の短縮及びコスト抑制の効果はより顕著なものとなる。
【００２９】
追加供給素子３０及び追加クロック配線ＣＷｂは、設計者が任意に配置することができる。しかし、近年の半導体装置の設計では、コンピュータ等の設計支援装置を用いて、複雑な処理を自動化することが一般的である。そこで、以下の実施の形態２では、設計支援装置を用いた半導体装置１の設計手順を説明し、実施の形態３において設計支援装置を用いた回路修正方法を説明する。
【００３０】
実施の形態２
実施の形態２では、実施の形態１において説明した半導体装置１の設計手順について説明する。そこで、半導体装置１の設定手順のフローチャートを図３に示す。図３に示すように、半導体装置１の設計では、まず、回路設計が行われる（ステップＳ１）。この回路設計では、半導体装置１の機能及び仕様に基づき回路の設計が行われる。ステップＳ１の設計では、Ｖｅｌｉｒｏｇ等のＨＤＬ（Hardware Description Language）を用いた設計（この設計をＲＴＬ（Register Transfer Level）設計と称す）が行われる。続いて、ステップＳ１で設計した回路の論理合成を行い第１の設計検証用ネットリストＭ１を生成する（ステップＳ２）。論理合成処理は、ステップＳ１で行った設計により作成された記述に基づき具体的な回路構成（素子間の接続を含む）を記述した第１の設計検証用ネットリストＭ１を生成する。
【００３１】
続いて、第１の設計検証用ネットリストＭ１に追加クロック配線ＣＷｂ及び追加供給素子３０を追加し、第２の設計検証用ネットリストＭ２を生成する（ステップＳ３）。このステップＳ３により、半導体装置１の追加供給素子３０及び追加クロック配線ＣＷｂが回路に追加されるが、ステップＳ３の詳細な処理手順については後述する。また、本実施の形態では、ステップＳ３において追加クロック配線ＣＷｂ及び追加供給素子３０を追加したが、追加クロック配線ＣＷｂ及び追加供給素子３０を追加する処理は、半導体装置１のレチクル用ネットリスト（製造工程において用いられるレチクルの基準となるネットリスト）が生成される前の段階であれば、いずれの工程において行われても良い。例えば、追加供給素子３０は、ステップＳ１の回路設計において追加することも可能であるし、後に行われるレイアウト処理後の回路に対して追加することも可能である。
【００３２】
次いで、ステップＳ３において生成された第２の設計検証用ネットリストＭ２に対してＣＴＳ（Clock Tree Synthesis）バッファを挿入する（ステップＳ４）。ＣＴＳバッファは、クロック配線ＣＷ０〜ＣＷ３に挿入されるバッファであって、クロック配線ＣＷ０〜ＣＷ３のスキュー値を調節する。そして、ステップＳ４において挿入されたＣＴＳバッファによるスキュー値の調節が適切に行われているかを検証する（ステップＳ５、Ｓ６）。この検証は、タイミング検証と１つであって、クロック信号のスキュー値に対して行われる検証を特にクロックスキュー検証と称す。
【００３３】
ステップＳ６において、タイミング検証結果が妥当でなければ（ステップＳ６のＮＯの枝）、第２の設計検証用ネットリストを修正し（ステップＳ７）、再度ステップＳ５及びステップＳ６の検証作業を行う。一方、ステップＳ６において、タイミング検証結果が妥当なものであれば（ステップＳ６のＹＥＳの枝）、第２の設計検証用ネットリストにＣＴＳバッファの情報を加えたレイアウト用ネットリストＭ３を生成する。
【００３４】
レイアウト工程では、レイアウト用ネットリストに基づき半導体装置のレイアウトパターンを生成する（ステップＳ８）。このステップＳ８により回路配置及び回路素子間を接続する配線長及び配線幅が決定する。続いて、ステップＳ８のレイアウトパターンから抽出される配線の寄生抵抗及び寄生容量を加味した信号遅延検証（バックアノテーション）を行う（ステップＳ９）。このバックアノテーションでは主にフリップフロップ回路等のセットアップタイム及びホールドタイムが基準を満たしているかを検証する。バックアノテーションの検証結果が妥当でない場合（ステップＳ１０のＮＯの枝）、レイアウト用ネットリストを修正し（ステップＳ１１）、再度レイアウト（ステップＳ８）及びバックアノテーション（ステップＳ９）を行う。一方、バックアノテーションの検証結果が妥当であった場合（ステップＳ１０のＹＥＳの枝）、レイアウト用ネットリストに基づきレチクル用ネットリストＭ４を生成する。そして、レチクル用ネットリストに基づき半導体装置１が製造される。
【００３５】
上記のように、実施の形態２では、ステップＳ３において追加供給素子３０及び追加クロック配線ＣＷｂを追加する。このとき、実施の形態２では、ステップＳ３の処理を設計支援装置１００を用いて行う。そこで、設計支援装置１００のブロック図を図５に示す。なお、設計支援装置１００は、コンピュータ等にステップＳ３の処理を実行するための設計支援プログラムを実装したものでも良く、ステップＳ３の処理を行う専用の装置であっても良い。以下では、設計支援装置１００の例としてコンピュータ等にステップＳ３の処理を実行するための設計支援プログラムを実装したもの説明する。
【００３６】
図５に示すように、設計支援装置１００は、演算装置（例えば、ＣＰＵ：Central Processing Unit）４０、入力装置４１、表示装置４２、プログラムメモリ５０、データベースメモリ６０を有する。演算装置４０は、プログラムメモリ５０から読み出した各種プログラム及びデータベースメモリ６０から読み出した各種情報に基づきプログラムに応じた処理を行うと共に、処理により生成された情報をデータベースメモリ６０に格納する。演算装置４０は、プログラムメモリ５０及びデータベースメモリ６０とバス配線を介して接続される。入力装置４１は、演算装置４０に動作の指示を与えるものである。表示装置４２は、演算装置４０において実行されるプログラムのインタフェース画面を表示するものである。
【００３７】
プログラムメモリ５０には、半導体装置の設計工程（例えば、上記ステップＳ３）において、フリップフロップ回路にクロック信号を分配するクロック配線に追加供給素子３０及び追加供給素子３０とクロック配線とを接続する追加クロック配線を配置する設計支援プログラムが格納される。設計支援プログラムは、追加供給素子条件設定部５１、分岐位置決定部５２、トリガ配線修正部５３を有する。設計支援プログラムは、これら３つの部分が１つのプログラムとして実装されていても良く、個別のプログラムとして実装されていても構わない。
【００３８】
また、データベースメモリ６０には、追加供給素子個数情報６１、追加供給素子制約情報６２、追加供給素子統計情報６３、分岐位置情報６４、第１の設計検証用ネットリスト６５、第２の設計検証用ネットリスト６６が格納される。追加供給素子個数情報６１、及び、追加供給素子制約情報６２は、入力装置４１及び演算装置４０を介して設計者が入力する情報である。追加供給素子統計情報６３は、追加供給素子条件設定部５１が生成する情報である。分岐位置情報６４は、分岐位置決定部５２が生成する情報である。第１の設計検証用ネットリスト６５は、図４のステップＳ２において生成されるネットリストであって、設計支援装置１００及び設計支援装置１００で実行される設計支援プログラムの説明では場合に応じて第１のネットストと称す。第２の設計検証用ネットリスト６６は、トリガ配線修正部５３が生成するネットリストであって、設計支援装置１００及び設計支援装置１００で実行される設計支援プログラムの説明では場合に応じて第２のネットリストと称す。
【００３９】
追加供給素子条件設定部５１は、データベースメモリ６０から追加供給素子の個数を示す追加供給素子個数情報６１と、追加供給素子の制約条件を示す追加供給素子制約情報６２と、を読み出して制約条件毎の追加供給素子の個数を示す追加供給素子統計情報６３を生成する。この追加供給素子統計情報６３はメモリに格納される。
【００４０】
分岐位置決定部５２は、複数のフリップフロップ回路を含む回路の接続情報を記述した第１のネットリスト（例えば、第１の設計検証用ネットリスト６５）をデータベースメモリ６０から読み出して第１の設計検証用ネットリスト６５からクロック配線の情報を抽出する。そして、分岐位置決定部５２は、抽出したクロック配線の分岐段数に基づき追加供給素子統計情報に含まれる追加供給素子を配置する位置を決定する。より具体的には、分岐位置決定部５２は、統計情報に含まれる制約条件を満たすクロック配線の分岐段数を検索し、検索された分岐段数に該当するクロック配線の位置を追加供給素子及び追加トリガ配線として決定する。その後、分岐位置決定部５２は、追加供給素子３０の位置情報を記述した分岐位置情報６４をデータベースメモリに格納する。本実施の形態では、クロック配線は分岐段数毎に制約条件が設定される。そこで、分岐位置決定部５２は、クロック配線に設定された制約条件と追加供給素子３０に設定された制約条件との整合性に基づき追加供給素子３０を追加する位置を決定する。この決定処理の詳細は後述する。
【００４１】
トリガ配線修正部５１は、データベースメモリ６０から読み出した分岐位置情報６４に基づき第１の設計検証用ネットリスト６５に追加供給素子３０及び追加クロック配線ＣＷｂの接続情報を追加して第２のネットリスト（例えば、第２の設計検証用ネットリスト６６）を生成する。そしてトリガ配線修正部５１は第２の設計検証用ネットリストをデータベースメモリ６０に格納する。
【００４２】
続いて、設計支援装置１００による処理手順について説明する。設計支援装置１００による処理手順のフローチャートを図６に示す。設計支援装置１００では、まず、演算装置４０において追加供給素子条件設定部５１が実行される。追加供給素子条件設定部５１は、追加供給素子個数情報６１と追加供給素子制約情報６２とを読み込み追加供給素子統計情報６３を生成する（ステップＳ２１）。追加供給素子統計情報６３には、制約条件（例えば、スキュー値）が１００ｐｓの追加供給素子３０が３０個、スキュー値が５０ｐｓの追加供給素子が１００個などの情報を含む。つまり、追加供給素子統計情報６３には、同一の制約条件を有する追加供給素子の統計情報が含まれる。
【００４３】
続いて、設計支援装置１００では、演算装置４０において分岐位置決定部５２を実行する。分岐位置決定部５２は、まず、追加供給素子統計情報６３及び第１の設計検証用ネットリスト６５を読み込む。そして、分岐位置決定部５２は、第１の設計検証用ネットリスト６５から既存のクロック配線の分岐段数を解析する（ステップＳ２２）。より具体的には、本実施の形態の例では、クロック配線ＣＷ０を基準として、計算対象のクロック配線がクロック配線ＣＷ０から何段の分岐点ＮＤを経由しているかを計算する。
【００４４】
次いで、分岐位置決定部５２は、追加供給素子の分布を決定する（ステップＳ２３）。具体的には、追加供給素子統計情報６３に含まれる情報に基づき、分岐段数毎にクロック配線に設定された制約条件により許容できる制約条件を有する追加供給素子を当該クロック配線に分配する。ここで、分配方法の一例を以下において説明する。
【００４５】
まず、追加供給素子の制約条件には、最大クロックスキュー値Ｓｋｅｗ＿ｍａｘと最小クロックスキュー値Ｓｋｅｗ＿ｍｉｎが含まれる。そこで、係数δを式（１）により定める。
δ＝（Ｓｋｅｗ＿ｍａｘ−Ｓｋｅｗ＿ｍｉｎ）  ・・・（１）
また、式（２）において係数θを求める。なお、式（２）においてＢＲＣＨは、クロック配線の分岐段数のうち最も大きな値（つまり、クロック配線の総分岐段数）である。
θ＝δ／ＢＲＣＨ  ・・・（２）
【００４６】
そして、追加供給素子を追加供給素子の制約条件に応じて式（３１）〜（３ｎ）を用いて分類する。なお、式（３１）〜（３ｎ）においてｎはクロック配線の分岐段数を示す整数である。また、λはクロック配線に設定されたスキュー値であって、クロック配線の段数毎に異なる値となる（例えば、ｎ段の分岐数を有するクロック配線のクロックスキュー値はλｎで表される）。
Ｓｋｅｗ＿ｍｉｎ≦λ１≦Ｓｋｅｗ＿ｍｉｎ＋θ  ・・・（３１）
Ｓｋｅｗ＿ｍｉｎ≦λ２≦Ｓｋｅｗ＿ｍｉｎ＋２θ  ・・・（３２）
Ｓｋｅｗ＿ｍｉｎ≦λ３≦Ｓｋｅｗ＿ｍｉｎ＋３θ  ・・・（３３）
・・・・・
Ｓｋｅｗ＿ｍｉｎ≦λｎ≦Ｓｋｅｗ＿ｍｉｎ＋ｎθ  ・・・（３ｎ）
【００４７】
上記式（１）〜（３）を用いて、例えば、最大クロックスキュー値Ｓｋｅｗ＿ｍａｘとして１００ｐｓ、最小クロックスキュー値Ｓｋｅｗ＿ｍｉｎとして４０ｐｓが設定される追加供給素子３０を３段の分岐段数を有するクロック配線に供給する場合について説明する。この場合、δ＝６０ｐｓとなり、かつ、θ＝２０ｐｓとなる。このとき、λ１〜λ３が、それぞれ３０ｐｓ、６０ｐｓ、９０ｐｓと設定されていた場合、式（３２）が最も少ない段数であって、かつ、式で表される条件を満たすものとなる。そこで、２段の分岐段数を有するクロック配線ＣＷ２がこの追加供給素子の分岐先として決定される。
【００４８】
そして、分岐位置決定部５２は、ステップＳ２３の処理により決定された追加クロック配線ＣＷｂの位置及び追加供給素子の情報を分岐位置情報６４として出力する（ステップＳ２４）。続いて、トリガ配線修正部５３は、分岐位置情報６４に基づき第１の設計検証用ネットリスト６５に追加供給素子３０と追加クロック配線ＣＷｂの素子情報及び接続情報を追加して第２の設計検証用ネットリスト６６を生成する（ステップＳ２５）。
【００４９】
上記説明より、実施の形態２にかかる設計支援装置１００では、追加したい追加供給素子３０の制約条件を追加供給素子毎に入力することで、複数の追加供給素子とクロック配線とを適切（制約条件を満たす状態）に挿入することができる。この設計支援装置１００は、追加する追加供給素子の個数が増加するほどに設計時間を短縮することができる。つまり、設計者が自ら追加するクロック配線を探し、そこに追加供給素子を設ける場合、追加対象とするクロック配線が膨大になるとその探索に時間がかかる。一方、本実施の形態にかかる設計支援装置１００では、追加したい追加供給素子３０の制約条件を追加供給素子毎に入力ことで、追加供給素子の制約条件を満たす制約条件を有するクロック配線を計算により瞬時に判断し、該当クロック配線に追加供給素子を自動で設けることができる。つまり、設計支援装置１００を用いることで、追加供給素子の挿入処理にかかる時間（図４のステップＳ３にかかる時間）を短縮することが可能になる。
【００５０】
実施の形態３
実施の形態３では、実施の形態１において説明した半導体装置１の回路修正手順について説明する。そこで、半導体装置１の回路修正手順のフローチャートを図７に示す。図７に示すように、半導体装置１の回路修正では、まず、半導体装置１の製造において用いられたレチクル用ネットリストＭ４が読み込まれる。そして、レチクル用ネットリストＭ４に対して追加クロック配線ＣＷｂ及び追加供給素子３０を用いた回路修正が行われる（ステップＳ１２）。ステップＳ１２の回路修正により修正済みレイアウト用ネットリストＭ５が生成される。
【００５１】
そして、回路修正工程では、修正済みレイアウト用ネットリストに基づきレイアウト及びバックアノテーション処理（ステップＳ１３〜Ｓ１６の処理）が行われ、修正済みレチクル用ネットリストＭ６が生成される。ステップＳ１３〜Ｓ１６の処理は、それぞれ図４において説明したステップＳ８〜Ｓ１１の処理に対応するものである。回路修正工程を経て、修正済みレチクル用ネットリストに基づき、例えば、図３において示した半導体装置１ａが製造される。
【００５２】
上記のように、実施の形態３では、ステップＳ１２において追加供給素子３０及び追加クロック配線ＣＷｂを用いた回路修正を行う。このとき、実施の形態３では、ステップＳ１２の処理を設計支援装置２００を用いて行う。そこで、設計支援装置２００のブロック図を図８に示す。なお、設計支援装置２００は、コンピュータ等にステップＳ１２の処理を実行するための設計支援プログラムを実装したものでも良く、ステップＳ１２の処理を行う専用の装置であっても良い。以下では、設計支援装置２００の例としてコンピュータ等にステップＳ１２の処理を実行するための設計支援プログラムを実装したもの説明する。
【００５３】
図８に示すように、設計支援装置２００は、演算装置（例えば、ＣＰＵ：Central Processing Unit）４０、入力装置４１、表示装置４２、プログラムメモリ７０、データベースメモリ８０を有する。演算装置４０は、プログラムメモリ７０から読み出した各種プログラム及びデータベースメモリ８０から読み出した各種情報に基づきプログラムに応じた処理を行うと共に、処理により生成された情報をデータベースメモリ８０に格納する。演算装置４０は、プログラムメモリ７０及びデータベースメモリ８０とバス配線を介して接続される。入力装置４１は、演算装置４０に動作の指示を与えるものである。表示装置４２は、演算装置４０において実行されるプログラムのインタフェース画面を表示するものである。
【００５４】
プログラムメモリ７０には、レイアウト完了後に生成される第１のネットリスト（例えば、レチクル用ネットリストＭ４）に含まれるクロック信号に基づき動作するフリップフロップ回路と、クロック信号を伝達するクロック配線と追加クロック配線を介して接続され、かつ、フリップフロップ回路と接続されない追加供給素子３０と、を接続する設計支援プログラムが格納される。設計支援プログラムは、修正対象素子検索部７１、クロック供給元解析部７２、追加先決定部７３、回路修正部７４を有する。設計支援プログラムは、これら４つの部分が１つのプログラムとして実装されていても良く、個別のプログラムとして実装されていても構わない。
【００５５】
また、データベースメモリ８０には、レチクル用ネットリスト８１、修正済みレイアウト用ネットリスト８２、修正対象素子解析情報８３、クロック供給元解析情報８４が格納される。レチクル用ネットリスト８１は、図４において説明した設計フローに従って生成されるものである。修正済みレイアウト用ネットリストは、設計支援装置２００が最終的に出力するネットリストであって、回路修正後の半導体装置の基礎となるものである。修正対象素子解析情報８３は、修正対象素子検索部７１が生成する情報である。クロック供給元解析情報８４は、クロック供給元解析部７２が生成する情報である。なお、設計支援装置２００及び設計支援装置２００で実行される設計支援プログラムの説明では場合に応じてレチクル用ネットリスト８１を第１のネットストと称す。また、設計支援装置２００及び設計支援装置２００で実行される設計支援プログラムの説明では場合に応じて修正済みレイアウト用ネットリスト８２を第２のネットリストと称す。
【００５６】
修正対象素子検索部７１は、データベースメモリ８０からレチクル用ネットリスト８１を読み出す。そして、修正対象素子検索部７１は、修正対象とする追加対象ノードの両端に位置するフリップフロップ回路（以下、このフリップフロップ回路を修正対象素子と称す）を検索し、検索したフリッププロップ回路の位置を示す修正対象素子解析情報８３をデータベースメモリ８０に格納する。
【００５７】
クロック供給元解析部７２は、データベースメモリ８０から第１のネットリスト（例えば、レチクル用ネットリスト８１）及び修正対象素子解析情報８３を読み出す。そしてクロック供給元解析部７２は、修正対象素子に接続されるクロック配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報８４をデータベースメモリ８０に格納する。
【００５８】
追加先決定部７３は、データベースメモリ８０からクロック供給元解析情報８４を読み出し、修正対象素子にクロック信号を供給するクロック配線と一致する又は近似する分岐段数を有するクロック配線に接続された追加供給素子を検索し、検索した追加供給素子を追加対象の追加供給素子として決定する。
【００５９】
回路修正部７４は、追加先決定部７３が決定した追加供給素子とフリップフロップ回路とを接続した第２のネットリスト（例えば、修正済みレイアウト用ネットリスト）を生成し、前記第２のネットリストを前記メモリに格納する。
【００６０】
続いて、設計支援装置２００による処理手順について説明する。設計支援装置２００による処理手順のフローチャートを図９に示す。設計支援装置２００では、まず、演算装置４０において修正対象素子検索部７１が実行される。修正対象素子検索部７１は、レチクル用ネットリスト８１を読み込む。そして、修正対象素子検索部７１は、レチクル用ネットリスト８１に記述された回路情報に基づき追加供給素子を挿入する素子追加ノードの両端に配置されたフリップフロップ回路（このフリップフロップ回路を修正対象素子と称す）を特定する（ステップＳ３１）。つまり、修正対象素子は、少なくとも２つのフリップフロップ回路を含む。そして、修正対象素子検索部７１は、特定された修正対象素子の情報を含む修正対象素子解析情報８３を出力する。
【００６１】
続いて、設計支援装置２００は、クロック供給元解析部７２を実行する。クロック供給元解析部７２は、修正対象素子解析情報８３とレチクル用ネットリスト８１とに基づき修正対象素子にクロック信号を供給するクロック配線の分岐段数を解析する（ステップＳ３２）。ステップＳ３２では、例えば、修正対象素子に２つのフリップフロップ回路が含まれている場合に、一方のフリップフロップ回路にクロック信号を供給するクロック配線の分岐段数と、他方のフリップフロップ回路にクロック信号を供給するクロック配線の分岐段数とを解析する。そして、クロック供給元解析部７２は、解析によって得られた修正対象素子にクロック信号を供給するクロック配線の分岐段数情報を含むクロック供給元解析情報８４を生成する。
【００６２】
続いて、設計支援装置２００は、追加先決定部７３を実行する。追加先決定部７３は、まず、クロック供給元解析情報８４を読み込む。そして、修正対象素子に含まれる複数のフリップフロップ回路にクロック信号を供給するクロック配線の分岐段数が、複数のフリップフロップ回路で同じか否かを判断する（ステップＳ３３）。このステップＳ３３において修正対象素子に含まれる複数のフリップフロップ回路に同じ分岐段数を有するクロック配線からクロック信号が供給されていると判断された場合（ステップＳ３３のＹＥＳの枝）、この修正対象素子に接続されるクロック配線と第１の選択クロック配線として設定する（ステップＳ３４）。そして、第１のクロック配線に追加クロック配線があるか否かを判断する（ステップＳ３５）。ステップＳ３５において第１のクロック配線に追加クロック配線があった場合（ステップＳ３５のＹＥＳの枝）、第１の選択クロック配線に設けられた追加クロック配線に接続された追加供給素子を追加する素子として決定する。そして、追加先決定部７３の決定を受けて、回路修正部７４は、追加対象として決定された追加供給素子と既存のフリップフロップ回路との接続情報を含む第２のネットリスト（例えば、修正済みレイアウト用ネットリスト８２）を生成する（ステップＳ３６）。
【００６３】
一方、ステップＳ３３において修正対象素子に含まれる複数のフリップフロップ回路に異なる分岐段数を有するクロック配線からクロック信号が供給されていると判断された場合（ステップＳ３３のＮＯの枝）及びステップＳ３５において第１のクロック配線に追加クロック配線がなかった場合（ステップＳ３５のＮＯの枝）、ステップＳ３４において選択される第１の選択クロック配線に次いで最適と考えられるクロック配線を検索する（ステップＳ３７）。このステップＳ３７の処理では、追加先決定部７３は、修正対象素子にクロック信号を供給するクロック配線の分岐段数に近い分岐段数を有するクロック配線を順に検索し、追加クロック配線を有するクロック配線を検出する。そして、追加先決定部７３は、検出されたクロック配線を第２の選択クロック配線として選択する。そして、追加先決定部７３は、第２の選択クロック配線に接続される追加供給素子のうち修正対象素子に最も近いものを追加する追加供給素子として決定する。つまり、追加先決定部７３は、修正対象素子にクロック信号を供給するクロック配線に近い分岐段数を有するクロック配線に接続された追加供給素子を優先的に追加先として選択する。回路修正部７４は、追加先決定部７３の決定に基づき決定された追加供給素子と修正対象素子との接続情報を追加した第２のネットリスト（例えば、修正済みレイアウト用ネットリスト８２）を生成する（ステップＳ３８）。
【００６４】
ここで、上記ステップＳ３３〜Ｓ３６の処理を経て追加供給素子が決定された半導体装置１ｂのブロック図の例を図１０に示す。図１０に示すように、論理回路２０に含まれるフリップフロップ回路ＦＦａ、ＦＦｂが同じ分岐段数を有するクロック配線ＣＷ１からクロック信号の供給を受けており、かつ、クロック配線ＣＷ１に追加供給素子３０が接続されている場合、当該追加供給素子３０に含まれるフリップフロップ回路ＦＦｃを既存のフリップフロップ回路ＦＦａ、ＦＦｂの間に挿入する。
【００６５】
また、上記ステップＳ３３〜Ｓ３８の処理を経て追加供給素子が決定された半導体装置１ｃのブロック図の例を図１１に示す。図１１に示すように、論理回路２０に含まれるフリップフロップ回路ＦＦａ、ＦＦｂが異なる分岐段数を有するクロック配線ＣＷ１、ＣＷ３からそれぞれクロック信号の供給を受けており、かつ、クロック配線ＣＷ１及びクロック配線ＣＷ３に追加供給素子３０が接続されてない場合、クロック配線ＣＷ１とクロック配線ＣＷ３とは異なるクロック配線が検索される。このとき、図１１に示す例では、クロック配線ＣＷ２に追加供給素子３０が設けられているため、クロック配線ＣＷ２に接続される追加供給素子３０に含まれるフリップフロップ回路ＦＦｃを既存のフリップフロップ回路ＦＦａ、ＦＦｂの間に挿入する。
【００６６】
上記説明より、実施の形態３にかかる設計支援装置２００では、追加供給素子３０を用いた回路修正を行う場合に、修正対象素子を特定した後の追加供給素子の決定を計算により行うことができる。これにより、設計者は利用する追加供給素子を検索する必要がなくなるため設計期間を短縮することができる。また、設計支援装置２００では、回路修正に利用する追加供給素子を修正対象素子にクロック信号を供給するクロック配線に近い分岐段数を有するクロック配線に接続されたものから順に選択する。そのため、回路修正に用いられる追加供給素子より回路動作が不安定になる可能性を低くすることができる。
【００６７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、追加供給素子３０を回路修正においてどのように利用するかは設計者の選択により可能である。また、図９に示した回路修正手順のステップＳ３７において、第２の選択クロック配線が複数検出された場合には、設計者が複数の選択候補の中から選択しても良い。
【００６８】
また実施の形態１乃至３において説明した回路修正方法は、コンピュータに実行させるプログラムとして提供することもできる。このプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の通信媒体を介して伝送することにより提供することも可能である。また、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭカートリッジ、バッテリバックアップ付きＲＡＭメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
【００６９】
この出願は、２００９年３月５日に出願された日本出願特願２００９−０５１８８０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００７０】
本発明は、半導体装置、回路修正方法、設計支援装置及び設計支援プログラムに関し、特にトリガ信号駆動素子にクロック信号を分配するクロック配線を有する半導体装置と、半導体装置の回路修正方法、設計支援装置及び設計支援プログラムに利用することができる。
【符号の説明】
【００７１】
１、１ａ〜１ｃ    半導体装置
１０    クロック生成回路
２０    論理回路
３０    追加供給素子
４０    演算装置
４１    入力装置
４２    表示装置
５０    プログラムメモリ
５１    追加供給素子条件設定部
５１    追加供給素子条件設定部
５２    分岐位置決定部
５３    トリガ配線修正部
６０    データベースメモリ
６１    追加供給素子個数情報
６２    追加供給素子制約情報
６３    追加供給素子統計情報
６４    分岐位置情報
６５    第１の設計検証用ネットリスト
６６    第２の設計検証用ネットリスト
７０    プログラムメモリ
７１    修正対象素子検索部
７２    クロック供給元解析部
７３    追加先決定部
７４    回路修正部
８０    データベースメモリ
８１    レチクル用ネットリスト
８２    修正済みレイアウト用ネットリスト
８３    修正対象素子解析情報
８４    クロック供給元解析情報
１００    設計支援装置
２００    設計支援装置
ＢＵＦ    バッファ
ＣＷ０〜ＣＷ３    クロック配線
ＣＷｂ    追加クロック配線
ＦＦ、ＦＦａ〜ＦＦｃ    フリップフロップ回路
【図１】
2010100830.tif 000003
【図２Ａ】
2010100830.tif 000004
【図２Ｂ】
2010100830.tif 000005
【図２Ｃ】
2010100830.tif 000006
【図３】
2010100830.tif 000007
【図４】
2010100830.tif 000008
【図５】
2010100830.tif 000009
【図６】
2010100830.tif 000010
【図７】
2010100830.tif 000011
【図８】
2010100830.tif 000012
【図９】
2010100830.tif 000013
【図１０】
2010100830.tif 000014
【図１１】
2010100830.tif 000015
【手続補正書】
【提出日】平成23年8月9日(2011.8.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
トリガ信号に同期して動作する複数のトリガ信号駆動素子と、
前記トリガ信号を前記複数のトリガ信号駆動素子に分配するトリガ配線と、
前記トリガ配線から分岐して設けられる追加トリガ配線と、
前記追加トリガ配線を介して前記トリガ信号が供給され、前記複数のトリガ信号駆動素子から分離して設けられる追加供給素子と、
を有する半導体装置。
【請求項２】
前記追加供給素子は、出力端子が他の素子に接続されないバッファ回路である請求項１に記載の半導体装置。
【請求項３】
前記追加供給素子は、出力端子と入力端子とがループ接続され、トリガ信号入力端子に前記追加クロック配線を介して前記クロック信号が入力されるフリップフロップ回路である請求項１に記載の半導体装置。
【請求項４】
前記追加供給素子は、出力端子と入力端子とがループ接続されるフリップフロップ回路と、前記追加クロック配線を介して入力される前記クロック信号を前記フリップフロップ回路のトリガ信号入力端子に供給するバッファ回路と、を有する請求項１に記載の半導体装置。
【請求項５】
トリガ信号を伝達するトリガ配線と、前記トリガ信号に基づき動作する複数のトリガ信号駆動素子と、を有する半導体装置の回路修正方法であって、
前記トリガ配線に追加トリガ配線を介して接続され、かつ、前記複数のトリガ信号駆動素子のいずれとも接続されない追加供給素子を予め設け、
前記複数のトリガ信号駆動素子のうち修正対象とする修正対象素子を検索し、
前記修正対象素子と前記追加供給素子とを接続する
回路修正方法。
【請求項６】
前記追加供給素子は、予め設定された制約条件に応じて前記トリガ配線のいずれの位置に接続されるか決定される請求項５に記載の回路修正方法。
【請求項７】
前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項５又は６に記載の回路修正方法。
【請求項８】
前記制約条件は、トリガ信号のスキュー値である請求項５乃至７のいずれか１項に記載の回路修正方法。
【請求項９】
この設計支援装置は、
半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する、
ここで、前記設計支援装置は、
前記追加供給素子の個数と、前記追加供給素子の制約条件と、に基づき前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を生成する追加供給素子条件設定手段と、
複数の前記トリガ信号駆動素子を含む回路の接続情報を記述した第１のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を出力する分岐位置決定手段と、
前記分岐位置情報に基づき前記第１のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第２のネットリストを生成するトリガ配線修正手段と、を有する。
【請求項１０】
前記分岐位置決定手段は、前記統計情報に含まれる前記制約条件を満たす前記トリガ配線の前記分岐段数を検索し、検索された前記分岐段数に該当する前記トリガ配線の位置を前記追加供給素子及び前記追加トリガ配線として決定する請求項９に記載の設計支援装置。
【請求項１１】
前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項９又は１０に記載の設計支援装置。
【請求項１２】
前記制約条件は、トリガ信号のスキュー値である請求項９乃至１１のいずれか１項に記載の設計支援装置。
【請求項１３】
この設計支援装置は、レイアウト完了後に生成される第１のネットリストに含まれるトリガ信号に基づき動作するトリガ信号駆動素子と、前記トリガ信号を伝達するトリガ配線と追加トリガ配線を介して接続され、かつ、前記トリガ信号駆動素子と接続されない追加供給素子と、を接続する、
ここで、前記設計支援装置は、
前記第１のネットリストから修正対象とする素子追加ノードの両端に位置する前記トリガ信号駆動素子を検索し、検索した前記トリガ信号駆動素子を修正対象素子として登録する修正対象素子検索手段と、
前記修正対象素子に接続される前記トリガ配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報を出力するクロック供給元解析手段と、
前記クロック供給元解析情報に基づき前記修正対象素子に前記トリガ信号を供給する前記トリガ配線と一致する又は近似する前記分岐段数を有するトリガ配線に接続された前記追加供給素子を検索し、検索した前記追加供給素子を追加対象の追加供給素子として決定する追加先決定手段と、
前記追加先決定手段において決定された前記追加供給素子と前記トリガ信号駆動素子とを接続した第２のネットリストを生成する回路修正手段と、を有する。
【請求項１４】
前記追加先決定手段は、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線に近い前記分岐段数を有するトリガ配線に接続された前記追加供給素子を優先的に追加先として選択する請求項１３に記載の設計支援装置。
【請求項１５】
前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項１３又は１４に記載の設計支援装置。
【請求項１６】
前記制約条件は、トリガ信号のスキュー値である請求項１３乃至１５のいずれか１項に記載の設計支援装置。
【請求項１７】
演算装置で実行され、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援プログラムであって、
メモリから前記追加供給素子の個数を示す追加供給素子個数情報と、前記追加供給素子の制約条件を示す追加供給素子制約情報と、を読み出して前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を前記メモリに格納する追加供給素子条件設定手段と、
複数の前記トリガ信号駆動素子を含む回路の接続情報を記述した第１のネットリストを前記メモリから読み出して前記第１のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を前記メモリに格納する分岐位置決定手段と、
前記メモリから読み出した前記分岐位置情報に基づき前記第１のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第２のネットリストを生成し、前記メモリに第２のネットリストを格納するトリガ配線修正手段と、を有する設計支援プログラム。
【請求項１８】
前記分岐位置決定手段は、前記統計情報に含まれる前記制約条件を満たす前記トリガ配線の前記分岐段数を検索し、検索された前記分岐段数に該当する前記トリガ配線の位置を前記追加供給素子及び前記追加トリガ配線として決定する請求項１７に記載の設計支援プログラム。
【請求項１９】
前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項１７又は１８に記載の設計支援プログラム。
【請求項２０】
前記制約条件は、トリガ信号のスキュー値である請求項１７乃至１９のいずれか１項に記載の設計支援プログラム。
【請求項２１】
演算装置で実行され、レイアウト完了後に生成される第１のネットリストに含まれるトリガ信号に基づき動作するトリガ信号駆動素子と、前記トリガ信号を伝達するトリガ配線と追加トリガ配線を介して接続され、かつ、前記トリガ信号駆動素子と接続されない追加供給素子と、を接続する設計支援プログラムであって、
メモリから前記第１のネットリストを読み出し、前記第１のネットリストから修正対象とする素子追加ノードの両端に位置する前記トリガ信号駆動素子を検索し、検索した前記トリガ信号駆動素子を示す修正対象素子解析情報を前記メモリに格納する修正対象素子検索手段と、
前記メモリから前記第１のネットリスト及び前記修正対象素子解析情報を読み出し、前記修正対象素子に接続される前記トリガ配線の分岐段数を解析し、解析した分岐段数を示すクロック供給元解析情報を前記メモリに格納するクロック供給元解析手段と、
前記メモリから前記クロック供給元解析情報を読み出し、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線と一致する又は近似する前記分岐段数を有するトリガ配線に接続された前記追加供給素子を検索し、検索した前記追加供給素子を追加対象の追加供給素子として決定する追加先決定手段と、
前記追加先決定手段が決定した前記追加供給素子と前記トリガ信号駆動素子とを接続した第２のネットリストを生成し、前記第２のネットリストを前記メモリに格納する回路修正手段と、を有する設計支援プログラム。
【請求項２２】
前記追加先決定手段は、前記修正対象素子に前記トリガ信号を供給する前記トリガ配線に近い前記分岐段数を有するトリガ配線に接続された前記追加供給素子を優先的に追加先として選択する請求項２１に記載の設計支援プログラム。
【請求項２３】
前記トリガ配線は、複数の分岐配線を有し、前記分岐配線毎に制約条件が設定される請求項２１又は２２に記載の設計支援プログラム。
【請求項２４】
前記制約条件は、トリガ信号のスキュー値である請求項２１乃至２３のいずれか１項に記載の設計支援プログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明にかかる半導体装置の回路修正方法は、トリガ信号を伝達するトリガ配線と、前記トリガ信号に基づき動作する複数のトリガ信号駆動素子と、を有する半導体装置の回路修正方法であって、前記トリガ配線に追加トリガ配線を介して接続され、かつ、前記複数のトリガ信号駆動素子のいずれとも接続されない追加供給素子を予め設け、前記複数のトリガ信号駆動素子のうち修正対象とする修正対象素子を検索し、前記修正対象素子と前記追加供給素子とを接続する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明にかかる設計支援装置の一態様は、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援装置であって、前記追加供給素子の個数と、前記追加供給素子の制約条件と、に基づき前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を生成する追加供給素子条件設定部と、複数の前記トリガ信号駆動素子を含む回路の接続情報を記述した第１のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を出力する分岐位置決定部と、前記分岐位置情報に基づき前記第１のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第２のネットリストを生成するトリガ配線修正部と、を有する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
本発明にかかる設計支援プログラムの一態様は、演算装置で実行され、半導体装置の設計工程において、トリガ信号駆動素子にトリガ信号を分配するトリガ配線に追加供給素子及び前記追加供給素子と前記トリガ配線とを接続する追加トリガ配線を配置する設計支援装置プログラムであって、メモリから前記追加供給素子の個数を示す追加供給素子個数情報と、前記追加供給素子の制約条件を示す追加供給素子制約情報と、を読み出して前記制約条件毎の前記追加供給素子の個数を示す追加供給素子統計情報を前記メモリに格納する追加供給素子条件設定部と、複数の前記トリガ信号駆動素子を含む回路の接続情報を記述した第１のネットリストを前記メモリから読み出して前記第１のネットリストから前記トリガ配線の情報を抽出し、抽出した前記トリガ配線の分岐段数に基づき前記追加供給素子統計情報に含まれる前記追加供給素子を配置する位置を決定し、前記追加供給素子の位置情報を記述した分岐位置情報を前記メモリに格納する分岐位置決定部と、前記メモリから読み出した前記分岐位置情報に基づき前記第１のネットリストに前記追加供給素子及び前記追加トリガ配線の接続情報を追加して第２のネットリストを生成し、前記メモリに第２のネットリストを格納するトリガ配線修正部と、を有する。
【国際調査報告】
2010100830.tif 000016
2010100830.tif 000017
2010100830.tif 000018
2010100830.tif 000019
2010100830.tif 000020
2010100830.tif 000021