(57)【要約】【課題】自動配置配線の後に効率的にグリッチを除去して消費電力を低減することのできる回路設計技術を提供する。【解決手段】回路設計支援装置で実行される回路設計方法において、配置配線後に得られるデータからグリッチ発生箇所を特定し、特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第１グリッチ発生箇所にグリッチ除去セルを付加し、前記閾値以上のグリッチ幅の第２グリッチ発生箇所で前記第２グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する。【選択図】図４
2018142235.tif 000002
【特許請求の範囲】
【請求項１】
回路設計支援装置で実行される回路設計方法であって、
配置配線後に得られるデータからグリッチ発生箇所を特定し、
特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第１グリッチ発生箇所にグリッチ除去セルを付加し、
前記閾値以上のグリッチ幅の第２グリッチ発生箇所で、前記第２グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する、
ことを特徴とする回路設計方法。
【請求項２】
前記配置配線後に得られるデータからグリッチ対策の対象となるセルを特定し、
特定されたセルのうち、セルの入力端子間に第１閾値よりも小さい遅延差を有する第１タイプのセルに前記グリッチ除去セルを付加し、
セルの入力端子間に前記第１閾値以上の遅延差を有する第２タイプのセルに対して、前記第１タイプのセルの入力端子に到達する遅延量を調整し、かつ前記グリッチ除去セルを付加する、
ことを特徴とする請求項１に記載の回路設計方法。
【請求項３】
前記特定されたセルの中から、後段の回路に対するグリッチ対策効果の大きいセルから順に処理対象のセルとして選択し、
選択されたセルが前記第１タイプのセルか前記第２タイプのセルかを決定することを特徴とする請求項２に記載の回路設計方法。
【請求項４】
前記特定されたセルの中から、出力先ゲート数またはスラック最小値が大きいセルから順に処理対象のセルとして選択し、
選択されたセルが前記第１タイプのセルか前記第２タイプのセルかを決定することを特徴とする請求項２に記載の回路設計方法。
【請求項５】
前記グリッチ除去セルを付加する前に、処理対象として選択されたセルに前記グリッチ除去セルの付加を許容するタイミング余裕があるか否かを判断することを特徴とする請求項３または４に記載の回路設計方法。
【請求項６】
前記タイミング余裕がある場合に、前記グリッチ除去セルの付加を決定し、
前記タイミング余裕がない場合に、配置配線後のレイアウトデータに微変更を加えてタイミング余裕を増加させた後に、前記グリッチ除去セルを付加することを特徴とする請求項５に記載の回路設計方法。
【請求項７】
前記配置配線後のレイアウトデータの微変更は、処理対象のセルのタイミング余裕に影響するパスに接続されている論理セルの複製を、前記処理対象のセルの近傍へ配置する工程を含むことを特徴とする請求項６に記載の回路設計方法。
【請求項８】
配置配線後に得られるデータからグリッチ発生箇所を特定する特定部と、
特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第１グリッチ発生箇所にグリッチ除去セルを付加し、前記閾値以上のグリッチ幅の第２グリッチ発生箇所にて、前記第２グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加するグリッチ対策決定部、
を有することを特徴とする回路設計支援装置。
【請求項９】
プロセッサによって実行される回路設計支援プログラムであって、前記プロセッサに、
配置配線後に得られるデータからグリッチ発生箇所を特定する手順と、
特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第１グリッチ発生箇所にグリッチ除去セルを付加する手順と、
前記閾値以上のグリッチ幅の第２グリッチ発生箇所で、前記第２グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する手順と、
を実行させる回路設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計技術に関し、特にグリッチの発生を抑制した回路設計技術に関する。
【背景技術】
【０００２】
スマートフォンをはじめとする電子／通信機器の機能の進化に対応するため、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：Field  Programmable  Gate  Array）やプログラマブルＬＳＩといった論理デバイスが活用されている。これらの論理デバイスでは自由な回路設計が可能であり、新しいプロトコルや機能に対応することができる。
【０００３】
ＦＰＧＡ、ＬＳＩ等の論理回路の設計では、グリッチの発生が問題となる。グリッチは論理セルに入力される信号の遅延差に起因して発生する意図しないパルスまたはスパイクである。グリッチの発生は消費電力の増大につながるので、グリッチ除去が求められる。論理回路の内部を伝搬する遅延には、トランジスタのばらつきによるセル遅延と、配線遅延がある。消費電力にも同じことが当てはまり、セルの消費電力と配線での消費電力がある。セルの遅延時間と消費電力はプロセステクノロジの進歩により小さくなっているが、配線では配線密度の向上にともなって寄生容量が増大し、消費電力が増えている。このため、伝搬遅延時間と消費電力に占める割合は、セルよりも配線の方が大きくなる傾向にある。
【０００４】
一般的なグリッチ対策は、グリッチの発生箇所にフリップフロップ（適宜「ＦＦ」と略称する）を挿入して、後段ロジックへのグリッチの伝搬を防止するものである。グリッチの発生箇所が多くなると挿入されるＦＦの数も多くなり、回路規模が増大し、結果的に消費電力が増加する。別の方法として、各セルの入力信号の遅延を完全に一致させることでグリッチを防止し得るが、これは現実的な解決策ではない。
【０００５】
レジスタ転送レベル（ＲＴＬ：Register  Transfer  Level）設計における電力消費を低減するため、回路の構成を変形することによって、回路内で生成され伝搬するグリッチを低減する手法が提案されている（たとえば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−７３３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
公知の提案手法は、ＲＴＬ設計段階で認識されるグリッチを低減するものであり、論理回路にゲートを追加する、あるいはマルチプレクサを再構成することでグリッチを低減している。しかし、この方法は自動配置配線後の遅延に起因するグリッチには対応できず、グリッチ抑制機能としては不十分である。
【０００８】
本発明は、自動配置配線の後に効率的にグリッチを除去して消費電力を低減することのできる回路設計技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様では、回路設計支援装置で実行される回路設計方法において、
配置配線後に得られるデータからグリッチ発生箇所を特定し、
特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第１グリッチ発生箇所にグリッチ除去セルを付加し、
前記閾値以上のグリッチ幅の第２グリッチ発生箇所で、前記第２グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する。
【発明の効果】
【００１０】
自動配置配線の後に効率的にグリッチを除去して消費電力を低減することのできる回路設計技術が実現される。
【図面の簡単な説明】
【００１１】
【図１】実施形態の回路設計技術が適用される論理回路を用いた通信機器の一例を示す図である。
【図２】論理回路で発生し得るグリッチを説明する図である。
【図３】実施形態の回路設計フローを一般的なフローと比較して示す図である。
【図４】図３のグリッチ対策ステップの詳細を示すフローチャートである。
【図５】実施形態の回路設計支援装置の構成例を示す図である。
【図６】第１実施形態の配置配線後の回路構成を示す図である。
【図７】配置配線後に得られる情報から抽出されたセルの情報を記憶するデータベースの一例を示す図である。
【図８】グリッチ対策により更新されたデータベースを示す図である。
【図９】グリッチ対策による最終的なデータベースを示す図である。
【図１０】グリッチ対策により更新された回路構成を示す図である。
【図１１】第２実施形態の配置配線後の回路構成を示す図である。
【図１２】配置配線後に得られる情報から抽出されたセルの情報を記憶するデータベースの一例を示す図である。
【図１３】グリッチ対策により更新されたデータベースを示す図である。
【図１４】グリッチ対策による最終的なデータベースを示す図である。
【図１５】グリッチ対策により更新された回路構成を示す図である。
【図１６】第３実施形態の配置配線後の回路構成を示す図である。
【図１７】配置配線後に得られる情報から抽出されたセルの情報を記憶するデータベースの一例を示す図である。
【図１８】配置配線後のレイアウトの微変更を説明する図である。
【図１９】レイアウトの微変更により更新されたデータベースを示す図である。
【図２０】グリッチ対策による最終的なデータベースを示す図である。
【図２１】グリッチ対策により更新された回路構成を示す図である。
【図２２】第３実施形態の回路設計方法のフローチャートである。
【発明を実施するための形態】
【００１２】
図１は、実施形態の回路設計技術が適用される論理集積回路（図中、「論理ＩＣ」と表記）４，５を用いた通信機器１を示す。通信機器１は、たとえばボード上に電源２、ＣＰＵ（Central  Processing  Unit：中央演算装置）３、論理集積回路４、５、及び光インタフェース６，７が搭載された通信ボードである。論理集積回路４，５は、たとえばＦＰＧＡ、ＬＳＩ等、多数の論理回路が集積されたプログラマブルロジックデバイスであり、回路のデジタル設計が可能である。論理集積回路４，５とＣＰＵ３は、制御バスで相互に接続され、制御データが入出力される。
【００１３】
論理集積回路４，５は、それぞれ光インタフェース６，７に接続されている。光インタフェース６、７は光トランシーバ等の光モジュールであり、電気信号を光信号に変換して高速光通信を行う。図１の例では、論理集積回路４と光インタフェース６の間、及び論理集積回路５と光インタフェース７の間は高速シリアルバス等で接続されているが、光インタフェース６，７は論理集積回路４，５の内部に組み込まれていてもよい。
【００１４】
論理集積回路４，５には、ＦＥＣ（Forward  Error  Correction：前方誤り訂正）回路やデジタルコヒーレント処理を行うフィルタ回路などが含まれる。これらの回路では、ＥＯＲ（Exclusive  OR：排他的論理和）ゲートが多段に組まれている場合が多く、多段回路部分でグリッチの影響が大きくなる。また、高速デジタル信号を並列処理するために多段ロジックが組まれており、ここでもグリッチの影響が大きくなる。
【００１５】
図２は、論理集積回路４、５の内部回路で発生するグリッチの例を説明する図である。図２（Ａ）の例では、ＡＮＤゲート１１のＡ端子に入力される信号と、Ｂ端子に入力される信号の間に遅延差がある。Ａ端子に入力される信号の立ち上がりのタイミングと、Ｂ端子に入力される信号の立下りのタイミングのずれにより、遅延量の差分に相当する時間幅のグリッチが発生する。このグリッチは、後段のロジックに伝搬する。
【００１６】
図２（Ｂ）の例では、ＡＮＤゲート１１のＡ端子には、ＦＦ＿１の出力が直接入力されるが、ＦＦ＿２の出力は多段（組合せ）回路１２を経てＢ端子に入力される。ＦＦ＿２の出力からＢ端子の入力までに時間がかかり、意図しないグリッチが発生する。このグリッチもまた後段のロジックに順次伝搬し、消費電力の増大につながる。
【００１７】
実施形態では、このようなグリッチを防止するため、配置配線後のデータからグリッチの発生箇所を特定し、グリッチ除去効果の大きい箇所から優先的にグリッチを解消する。配置配線後のデータを用いるため、グリッチ発生箇所と発生量を正確に特定することができる。グリッチ発生量によっては、配置配線後に適用可能な遅延調整技術を用いてあらかじめグリッチ幅を所定値未満に低減し、所定幅未満のグリッチを確実に消去する。以下で具体的な回路設計方法を詳細に説明する。
【００１８】
図３（Ａ）は、実施形態の回路設計方法のフローチャートである。説明を分かりやすくするために、比較例として図３（Ｂ）に一般的な回路設計フローを示す。実施形態の回路設計方法では、図３（Ｂ）の一般的な方法と異なり、配置配線後のタイミング検証に伴って、またはタイミング検証の後にグリッチ対策（Ｓ１７）が実施される。グリッチ対策工程では、グリッチの発生箇所を特定し、グリッチ除去効果の高いセルから優先的にグリッチ除去を行う。これにより、設計されたＦＰＧＡ等の集積回路デバイスの消費電力を低減することができる。
【００１９】
ステップＳ１１のＲＴＬ設計から、ステップＳ１６のタイミング検証までは従来の工程と同じであり、説明を簡略化する。ＲＴＬ設計（Ｓ１１）は、ＦＦやレジスタ等の記憶素子の接続関係を表現する工程であり、クロックに対するレジスタ（ＦＦ）の振る舞いを記述するものである。このＲＴＬ設計データは、論理合成されて（Ｓ１２）、ゲートレベルのネットリストに展開（コンパイル）される（Ｓ１３）。ネットリストには、セル等の部品情報や、それらの接続情報などが含まれており、ネットリストに基づいて配置配線（Place  and  Route）が行われる（Ｓ１４）。
【００２０】
配置配線は自動レイアウトとも呼ばれ、ネットリストに含まれるセルやそれらの接続情報は、ＦＰＧＡ内あるいはＬＳＩ内のトランジスタやネット（配線）に割り当てられる。配置配線により、ＲＴＬ設計や論理合成の段階で認識されなかった遅延が発生し得る。配置配線後に、リーク電流を最小にして回路を最適化する（Ｓ１５）。その後、タイミング検証を行って、論理回路が遅延条件を満たしているか、所定のクロックで正確に動作するか等を検証する（Ｓ１６）。
【００２１】
実施形態の特徴として、タイミング検証と同時に、またはタイミング検証の後に、グリッチ対策を施す（Ｓ１７）。グリッチ対策は、配置配線後の状態でのグリッチ発生箇所を特定し、グリッチ除去効果の高い回路部分で優先的にグリッチが除去される回路構成を論理回路に持たせる。また、セルの入力端子に到達する遅延値を制御することであらかじめグリッチ幅を所定幅以内に収めて、グリッチ除去が促進される回路構成を論理回路に持たせる。
【００２２】
グリッチ対策後に、タイミング条件が満たされるか否かを判断し（Ｓ１８）、条件が満たされる場合は処理を終了する。タイミング条件が満たされていない場合は（Ｓ１８でＮＯ）、タイミングエラーを部分的に修正するタイミングＥＣＯ（Engineering  Change  Order）を行って（Ｓ１９）、タイミングエラーがなくなるまでタイミング検証（Ｓ１６）とグリッチ対策（Ｓ１７）を繰り返す。
【００２３】
この方法により、配線遅延に起因して生じるグリッチを防止し、論理回路の消費電力を低減することができる。
【００２４】
図４は、図３（Ａ）のグリッチ対策ステップ（Ｓ１７）の詳細なフローである。まず、配置配線後に得られたデータから、回路内のグリッチ対策対象セルを特定する（Ｓ１７１）。たとえば、セルの入力端子間で遅延値の差が所定値以上のセルをグリッチ対策の対象セルとして特定する。グリッチ対策の対象セルを特定するにあたって、まず、配置配線後に得られるデータからセル情報を抽出する。セル情報には、一例として以下の情報が含まれる。
・セルインスタンス名
・入力端子遅延値
・後段ロジックへのグリッチの影響力（出力先ゲート数、出力先ゲートのスラック最小値など）
・タイミング余裕値
これらの情報は、配置配線後のタイミング解析結果を示すＳＴＡ（Static  Timing  Analysis：静的タイミング解析）情報、配置配線後の遅延情報を示すＳＤＦ（Standard  Delay  Format：遅延フォーマット）ファイル、配置配線後のゲートレベルシミュレーションで得られたＶＣＤ（Value  Change  Dump）ファイルなどから抽出することができる。
【００２５】
これらの抽出情報で得られるセルをすべてグリッチ対策対象セルとして特定してもよいし、セルの入力端子間の遅延量の差が所定の値以上、たとえば１ピコ秒（ｐｓ）以上のセルをグリッチ対策対象セルとして特定してもよい。
【００２６】
次に、グリッチ対策のために回路に付加されるセル（以下、「グリッチ除去セル」と称する）のパラメータを選択または設定する（Ｓ１７２）。グリッチ除去セルのパラメータとして、たとえば、（ａ）グリッチ除去セルを挿入することにより生じる遅延値、（ｂ）グリッチ除去セルの挿入のみで対処し得るセルの入力端子間の許容遅延差（閾値）、（ｃ）グリッチ除去セル自体のゲート数、などを設定することができる。これらのパラメータを設定することで、処理対象のセルにグリッチ除去セルを挿入することが可能かどうか、挿入した後の回路状態がどのように変更されるか、などを特定することができる。上述したパラメータ（ａ）〜（ｃ）の２つ以上を組み合わせて段階的にグリッチ対策の可否を判定してもよい。
【００２７】
次に、特定されたセルに対して、順次グリッチ対策の処理を施す。グリッチ対策は、以下の条件の少なくともひとつを考慮して、最適な手法で行う。
（Ａ）グリッチ対策による効果が大きいこと（グリッチが伝搬する後段パスにセルが多く配置されていること、グリッチ対策による速度低下を最小にできることなど）、
（Ｂ）グリッチ除去セルを挿入することでタイミングエラーが生じないこと、及び
（Ｃ）グリッチ除去セルを挿入することで消費電力が増加しないこと。
【００２８】
条件（Ａ）は、グリッチ対策の効果が大きいセルから対処して、効率的なグリッチ低減を実現するための条件である。条件（Ｂ）は、回路の適正動作を確保するための条件である。条件（Ｃ）は、グリッチ除去による消費電力の低減を達成するための条件である。
【００２９】
実施形態では、これらの条件にしたがって、個々のセルについてグリッチ対策を施すか否か、グリッチ対策を施す場合に、どのような手段を用いるか、を判断して、グリッチを解消する。
【００３０】
具体的には、グリッチ対策後の効果が大きいセルから順に処理を行う（Ｓ１７３）。グリッチ対策後の効果が大きいセルは、抽出されたセル情報の中の「後段ロジックへのグリッチの影響力」の度合いに基づいて決定することができる。たとえば、出力先ゲート数が最も多いセルから順に、あるいは、タイミングスラック最小値が最も大きいセルから順に選択する。抽出されたセルを出力先ゲート数、またはタイミングスラック最小値が大きい順に並べ替えて、順番に判断してもよいし、１以上の閾値を設けて出力先ゲート数またはスラック最小値が閾値を超えるか否かで判断してもよい。
【００３１】
次に、選択したセルにグリッチ対策を施してもタイミングエラーが発生しないかどうかを確認する（Ｓ１７４）。タイミングエラーが発生する場合は、グリッチ対策を施さずにステップＳ１８３に飛ぶ。タイミングエラーが発生しない場合は、グリッチ対策後に消費電力が増加しないかどうかを判断する（Ｓ１７５）。消費電力が増加する場合は、グリッチ対策を施さずにステップＳ１８３に飛ぶ。消費電力が増加しない場合は、グリッチ対策を行う手法を選択する（Ｓ１７６）。
【００３２】
グリッチ対策を行う手法として、グリッチ除去セルを挿入する方法と、グリッチ除去セルの挿入に加えて、セルの入力端子側で遅延調整を行う方法がある。処理対象のセルの遅延量が小さい場合は、グリッチ除去セルの挿入のみで対処可能である。処理対象のセルの遅延量が大きい場合は、グリッチ除去セルでグリッチが吸収できる状態にまで、あらかじめ遅延量（グリッチ幅）を小さくしておくことが望ましい。そこで、遅延調整（たとえば遅延セルの挿入）が必要か否かを判断する（Ｓ１７７）。遅延調整の要否は、たとえばセルの入力端子間での遅延量の差分が閾値以上か否かで判断することができる。セルの入力端子間の遅延値の差分が閾値未満のときは（Ｓ１７７でＮＯ）、そのセルの後段にグリッチ除去セルを挿入することで、グリッチを吸収することができる。この場合は、グリッチ除去セルの挿入を決定して（Ｓ１７８）、ステップＳ１８１に飛ぶ。
【００３３】
対象セルの入力端子間の遅延量の差分が閾値以上のときは（Ｓ１７７でＹＥＳ）、グリッチ除去セルの挿入に加えて、遅延調整を行う。そのため、セルの入力端子間の遅延値の差分に応じた遅延セルの挿入量を決定し（Ｓ１７９）、グリッチ除去セルと遅延セルの挿入の双方を決定する（Ｓ１８０）。
【００３４】
ここでは、Ｓ１７４の判断により、グリッチ除去セルを挿入できるだけのタイミング余裕があること（Ｓ１７８）、及びグリッチ除去セルと遅延セルの挿入ができるだけのタイミング余裕があること（Ｓ１８０）が前提となっている。本発明は、図４のフローに限定されず、ステップＳ１７８の前とステップＳ１８０の前に、個別にタイミング余裕の有無を判断してもよい。また、タイミングエラー発生の有無を確認するステップ１７４と、遅延セル挿入の要否を判断するステップ１７７を、ひとつの工程内で行ってもよい。
【００３５】
グリッチ除去セルの挿入のみ（Ｓ１７８）、またはグリッチ除去セルと遅延セルの挿入（Ｓ１８０）が決定されたなら、ネットリストにグリッチ除去セルのみ、またはグリッチ除去セルと遅延セルの組み合わせを追加する（Ｓ１８１）。さらに、Ｓ１７１で取得したセル情報を更新する（Ｓ１８２）。その後、他にグリッチ対策箇所があるか否かを判断し、グリッチ対応箇所が無くなるまでＳ１７３からＳ１８２を繰り返す。
【００３６】
この回路設計方法によると、配置配線後にグリッチ除去効果の大きいセルから優先的にグリッチ対策が施されるので、効率的にグリッチの除去、特に配線遅延に起因するグリッチの除去を行うことができる。また、グリッチ幅が大きいセルについては、遅延調整によりグリッチ幅をあらかじめ所定値未満に低減したうえで、グリッチ除去セルでグリッチを確実に吸収する。
【００３７】
図５は、実施形態の回路設計支援装置１００の機能構成図である。回路設計支援装置１００は、ネットリスト作成部１０１、自動レイアウト部１０２、グリッチ対策データベース１０３、グリッチ発生箇所特定部１０４、グリッチ対策決定部１０５、タイミング検証部１０６、及び入出力部１０７を有する。
【００３８】
ネットリスト作成部１０１は、回路設計支援装置１００の内部で生成された、あるいは外部から入力されたＲＴＬ設計データを論理合成してネットリストを作成する。自動レイアウト部１０２は、作成されたネットリストに基づいて、論理回路の自動配置と自動配線を行う。これにより、ゲートや接続関係が特定された回路図が作成される。タイミング検証部１０６は、配置配線された回路のタイミング解析を行い、必要に応じて配置配線の小さな変更を指定する。
【００３９】
グリッチ発生箇所特定部１０４は、自動レイアウト部１０２で得られるゲートシミュレーション情報や、タイミング検証部１０８で得られる解析情報から必要な情報を抽出し、グリッチ対策の対象となるセルを特定する。グリッチ対策データベース１０３は、抽出された情報、及び／又は特定されたセル情報を保存する。
【００４０】
グリッチ対策決定部１０５は、特定されたセルの中から、グリッチ除去の効果が大きいセルから優先的にグリッチ対策の可否を判断し、グリッチ対策を行う場合に採用する具体的な構成決定する。決定されたグリッチ対策により、グリッチ対策データベース１０３が更新される。また、ネットリスト作成部１０１によって作成されたネットリストが更新される。入出力部１０７は、グリッチ対策実施後の回路設計データを、ＬＳＩやＦＰＧＡ用のデータとして出力してもよい、ケーブルを介して直接ＦＰＧＡのルックアップテーブルに書き込んでもよい。あるいは、ＦＰＧＡの外部のメモリにコンフィギュレーション情報として格納してもよい。
【００４１】
回路設計支援装置１００のハードウエア構成としては、プロセッサ１１０と、メモリ１２０と、入出力インタフェース１３０を備えていればよい。入出力部１０７は入出力インタフェース１３０で実現される。グリッチ対策データベース１０３はメモリ１２０で実現される。ネットリスト作成部１０１、自動レイアウト部１０２、グリッチ発生箇所特定部１０４、グリッチ対策決定部１０５、及びタイミング検証部１０６は、プロセッサ１１０により実現される。
【００４２】
回路設計支援装置１００を用いて論理回路を設計することで、ＦＰＧＡ、ＬＳＩ等の集積回路デバイスでのグリッチ発生と消費電力の増大を防止することができる。
【００４３】
＜第１実施形態＞
図６〜図１０を参照して第１実施形態の回路設計におけるグリッチ制御を説明する。図６は、第１実施形態でグリッチ対策が施される前の回路構成をネットリスト２１で示す。ネットリスト２１について、配置配線後のゲートシミュレーションやタイミング解析は完了しているものとする。
【００４４】
（１）ネットリスト２１で示される回路について、ＳＴＡデータ、ＳＤＦファイル、ＶＣＤファイル等から以下の情報を抽出する。
・セルインスタンス名
・入力端子遅延値
・出力先ゲート数（後段ロジックへのグリッチの影響の度合いを示す指標の一例）
・タイミング余裕値
これらの情報を抽出し、グリッチ対策の対象となるセルを特定する。たとえば、セルの入力端子間で遅延量の差が１ｐｓ以上のセルを、グリッチ対策対象セルとして特定する（Ｓ１７１）。特定したセルについて、図７に示すグリッチ対策用データベース（以下、適宜「ＧＤＢ」と省略する）３１を作成する。グリッチ対策用データベース３１は、抽出された情報に基づいて、セル名、入力端子遅延Ａ（Ａ端子での遅延量）、入力端子遅延Ｂ（Ｂ端子での遅延量）、出力先ゲート数、余裕値Ａ（Ａ端子でのタイミング余裕値）、及び余裕値Ｂ（Ｂ端子でのタイミング余裕値）を含む。出力先ゲート数に替えて、出力先ゲートのタイミング最小余裕値（スラック最小値）を用いてもよい。
【００４５】
（２）次に、グリッチ吸収に用いるグリッチ除去セルのタイプを選択する（Ｓ１７２）。一例として、以下のパラメータを持つグリッチ除去セルを選択する。
・グリッチ除去セルを挿入することにより生じる遅延値：２ｐｓ
・グリッチ除去セルの挿入のみで対処し得る入力端子間の許容遅延差（閾値）：３ｐｓ
・グリッチ除去セル自体のゲート数：５
【００４６】
（３）次に、グリッチ対策の効果が大きいセル、たとえば出力ゲート数の多いセルから順に処理を進める（Ｓ１７３）。図７のＧＤＢ３１を例にとると、出力先ゲート数が最も大きいＡＮＤ１を対象に処理を進める。このとき、あらかじめ出力先ゲート数が所定数以下のセルを処理の対象外としてもよい。たとえば、出力先ゲート数の閾値を１００に設定してＡＮＤ４を対象外としてもよい。最初にグリッチ対象セルを特定する段階（Ｓ１７１）でセルの入力端子間の遅延量の差が所定値以上のセルを特定しているが、出力ゲート数（後段ロジックへのグリッチの影響力）にも閾値を設けて、対象セルをさらに絞り込んで処理を効率化してもよい。
【００４７】
（４）ＡＮＤ１について、グリッチ対策を施すことによりタイミングエラーが発生しないか否かを確認する（Ｓ１７４）。一例として、セルの入力端子間の遅延差が許容遅延差以下であるか否かを判断する。図７のＧＤＢ３１では、ＡＮＤ１の入力遅延値Ａが１９ｐｓ、入力遅延値Ｂが２０ｐｓであり、遅延値の差分は１ｐｓである。セルの入力端子間での１ｐｓの遅延量の差は、グリッチ発生の原因となる。後述するように、１ｐｓの遅延量の差は、許容遅延差３ｐｓよりも小さいので、グリッチ除去セルの挿入のみで対処可能である。そこで、グリッチ除去セルを挿入できるだけの余裕値が存在するか否かを確認する。ＡＮＤ１の余裕値Ａと余裕値Ｂは、ともに４ｐｓであり、グリッチ除去セル（２ｐｓの遅延値）を挿入しても、入力端子Ａ，Ｂともに２ｐｓ分の余裕がある。したがって、タイミングエラーは生じない。
【００４８】
（５）グリッチ対策後に消費電力が増加しないか否かを確認する（Ｓ１７５）。消費電力の増加の有無は、出力先のゲート数と、グリッチ除去セルの挿入により増加するゲート数の比較で判断することができる。ＡＮＤ１では、挿入されるグリッチ除去セルのゲート数が５であり、出力先ゲート数３００と比較して十分に小さい。すなわち、消費電力の増加の影響は小さい。消費電力の増加の有無を判断する閾値として、出力先ゲート数に対するゲート数増加の比率を用いてもよい。たとえば、ゲート数の増加比率が１／２０以下のセルをグリッチ対策が可能なセルと判断してもよい。
【００４９】
（６）次に、ＡＮＤ１について、グリッチ対策の構成を決定する（Ｓ１７６〜Ｓ１７８）。上述したように、ＡＮＤ１では、セルの入力端子間の遅延量の差が１ｐｓであり、許容遅延差３ｐｓよりも小さいので、グリッチ除去セルの挿入のみで対処が可能と判断される。
【００５０】
（７）次に、ネットリスト２１の更新（Ｓ１８１）と、ＧＤＢ３１の情報の更新（Ｓ１８２）を行う。ネットリスト２１で、ＡＮＤ１の後ろにグリッチ除去セルを挿入する。グリッチ除去セルを挿入したことで、ＡＮＤ１の余裕値Ａ，Ｂが変化するので、ＧＤＢ３１の情報を更新する。
図８は、更新後のＧＤＢ３２を示す。もともとの回路構成で、ＡＮＤ１の余裕値Ａと余裕値Ｂはともに４ｐｓであったが、遅延値２ｐｓのグリッチ除去セルを挿入したことで、余裕値Ａと余裕値Ｂはともに２ｐｓに変化する（４ｐｓ−２ｐｓ＝２ｐｓ）。そこで、ＡＮＤ１の余裕値Ａと余裕値Ｂの値を書き換える。
【００５１】
（８）その後、次のセルについて同じ処理を繰り返す（Ｓ１８３→Ｓ１７３）。ＧＤＢ３２を参照すると、次に出力先ゲート数の多いＡＮＤ２が処理対象として選択される（Ｓ１７３）ＡＮＤ２にグリッチ対策を施したときにタイミングエラーが生じないか否かを判断する（Ｓ１７４）。
【００５２】
ＡＮＤ２では、入力端子Ａと入力端子Ｂの間の遅延差が５ｐｓであり、許容遅延差（閾値）３ｐｓを超えるため、グリッチ除去セルの挿入と遅延調整（遅延セルの挿入）の双方が必要と判断される（Ｓ１７７でＹＥＳ）。そこで、ＡＮＤ２にグリッチ除去セルと遅延セルの両方を挿入できるだけの余裕値があるか否かを判断する（Ｓ１７４）。
【００５３】
ＡＮＤ２にグリッチ除去セルを挿入すると、２ｐｓの遅延が付加されることになる。また、セルの入力端子間での５ｐｓの遅延量の差分を解消するために、入力端子Ａに５ｐｓの遅延を挿入する。そうすると、入力端子Ａで合計７ｐｓ以上の余裕値が必要となり、入力端子Ｂで２ｐｓ以上の余裕値が必要になる。
【００５４】
ＧＤＢ３２によると、ＡＮＤ２の余裕値Ａは１０ｐｓ、余裕値Ｂは５ｐｓであり、余裕値Ａ，Ｂともに条件が満たされている。したがって、グリッチ対策対象セルとして有効と判断され、引き続き消費電力の増加の有無が判断される（Ｓ１７５）。ＡＮＤ２において、グリッチ除去セルを挿入しても出力先ゲート数に対する影響が小さい。したがって、消費電力の増加の影響は小さいと判断され、Ｓ１７６に進んで、グリッチ対策の構成を決定する（Ｓ１７６）。タイミングエラーの有無の判断（Ｓ１７４）で比較したように、ＡＮＤ２において、セルの入力端子間での遅延量の差（５ｐｓ）は閾値３ｐｓよりも大きいので、グリッチ除去セルの挿入に加えて、遅延セルを用いる（Ｓ１７７でＹＥＳ）。タイミング余裕も満たされているので、遅延セルの挿入量が５ｐｓと決定され（Ｓ１７９）、グリッチ除去セルの挿入と、遅延セルの挿入が確定される（Ｓ１８０）。ここでは、遅延セルの挿入量は、遅延値差分が０ｐｓになる値を決定しているが、遅延値差分は必ずしも０ｐｓでなくてもよい。遅延値差分を０ｐｓにできる遅延量以下であり、かつグリッチ除去セルの許容遅延差（閾値）以下になる遅延量より大きい遅延セルを挿入して確定してもよい。一例として、２ｐｓ＜挿入量≦５ｐｓの範囲内で、挿入量の値として３ｐｓ、４ｐｓ、５ｐｓのいずれかを選択してもよい。
【００５５】
ＡＮＤ２について、ネットリストの更新（Ｓ１８１）と、ＧＤＢの更新（Ｓ１８２）が行われる。すなわち、ネットリストでＡＮＤ２の後にグリッチ除去セルが挿入され、かつＡＮＤ２の入力端子Ａの前に５ｐｓの遅延セルが挿入される。
【００５６】
図９は、更新後のＧＤＢ３３を示す。ＡＮＤ２のもともとの余裕値Ａは１０ｐｓであったが、遅延値２ｐｓのグリッチ除去セルが挿入され、かつ入力端子Ａにおいて５ｐｓの遅延セルが挿入されるので、余裕値Ａは３ｐｓ（１０ｐｓ−２ｐｓ−５ｐｓ＝３ｐｓ）に書き換えられる。ＡＮＤ２のもともとの余裕値Ｂは５ｐｓであったが、遅延値２ｐｓのグリッチ除去セルが挿入されるので、余裕値Ａは３ｐｓ（５ｐｓ−２ｐｓ＝３ｐｓ）に書き換えられる。また、入力端子Ａに５ｐｓの遅延セルが挿入されたことで、入力端子Ａの遅延量は２０ｐｓに書き換えられる。その後、未処理のセルの有無が判断され（Ｓ１８３）、ＡＮＤ３についてＳ１７３以降の処理を繰り返す。
【００５７】
ステップＳ１７４で、ＡＮＤ３に対するタイミング余裕が判断される。ＡＮＤ３では、セルの入力端子間の遅延値の差が２ｐｓであり、許容遅延差３ｐｓより小さいので、グリッチ除去セルの挿入のみの対策となる。しかし、ＡＮＤ３の余裕値Ｂは１ｐｓであり、グリッチ除去セルの遅延値２ｐｓよりも小さいため、グリッチ対策を施すとタイミングエラーが発生する。そこで、ＡＮＤ３を処理対象外として、次のセルの処理を行う。
【００５８】
ＡＮＤ４について、グリッチ対策後の効果の判断において（Ｓ１７３）、出力先ゲート数に閾値を設定したときに、閾値以下（グリッチ対策の効果が少ない）と判断してＡＮＤ４を処理対象外としてもよい。あるいは、消費電力の増加の有無の判断（Ｓ１７５）で、グリッチ遅延セルの挿入により出力先ゲート数が１．５倍にも増えるので、消費電力の増大が著しいと判断してＡＮＤ４を処理対象外としてもよい。このようにして、ネットリスト２１の回路構成で特定されたセルについて順次グリッチ対策の処理を繰り返す。
【００５９】
図１０は、最終的に更新された回路構成２２を示す。ＡＮＤ１の後ろにグリッチ除去セル４０が挿入されている。ＡＮＤ２の入力端子Ａの前に遅延セル５０が挿入され、ＡＮＤ２の後ろにグリッチ除去セル４０が挿入されている。ＡＮＤ１とＡＮＤ２に対するグリッチ対策は、回路全体でのグリッチ低減効果が大きく、かつタイミングエラーや消費電力の著しい増大を発生させない最適な対策である。このように回路設計された論理回路（ＦＰＧＡ等）は、グリッチ抑制機能と省電力効果を備えた回路となる。
【００６０】
実際の回路では、グリッチ除去セル４０は、たとえばＲＣフィルタで実現可能であり、遅延セルはスルーバッファなどで実現可能である。第１実施形態では、２入力のＡＮＤゲートを例に挙げているが、ＮＡＮＤ、ＯＲ、ＮＯＲ、ＥＯＲなど、他のゲート回路に対しても同様のグリッチ対策を施すことができる。
【００６１】
＜第２実施形態＞
図１１〜図１５を参照して第２実施形態の回路設計におけるグリッチ制御を説明する。図１１は、第２実施形態でグリッチ対策が施される前の回路構成のネットリスト６１を示す。ネットリスト６１は３入力のＡＮＤゲート（ＡＮＤ１）と、３入力のＯＲゲート（ＯＲ１）を含む。この回路構成に対する配置配線後のゲートシミュレーションやタイミング解析は完了しているものとする。
【００６２】
（１）ネットリスト６１の回路構成について、ＳＴＡデータ、ＶＣＤファイル等から以下の情報を抽出する。
・セルインスタンス名
・入力端子遅延値
・出力先ゲート数（後段ロジックへのグリッチの影響の度合いを示す指標の一例）
・タイミング余裕値
これらの情報を抽出し、グリッチ対策の対象となるセルを特定する。たとえば、セルの入力端子間で遅延量の差が１ｐｓ以上のセルを、グリッチ対策対象セルとして特定する（Ｓ１７１）。特定したセルについて、図１２に示すグリッチ対策用データベース（ＧＤＢ）７１を作成する。ＧＤＢ７１は、抽出された情報に基づいて、セル名、入力端子遅延Ａ（Ａ端子での遅延量）、入力端子遅延Ｂ（Ｂ端子での遅延量）、入力端子遅延Ｃ（Ｃ端子での遅延量）、出力先ゲート数、余裕値Ａ（Ａ端子でのタイミング余裕値）、余裕値Ｂ（Ｂ端子でのタイミング余裕値）、及び余裕値Ｃ（Ｃ端子でのタイミング余裕値）を含む。出力先ゲート数に替えて、出力先ゲートのタイミング最小余裕値（スラック最小値）を用いてもよい。
【００６３】
（２）グリッチ吸収に用いるグリッチ除去セルのタイプとして、第１実施形態と同様に、以下のパラメータを選択する（Ｓ１７２）。
・グリッチ除去セルを挿入することにより生じる遅延値：２ｐｓ
・グリッチ除去セルの挿入のみで対処し得る入力端子間の許容遅延差（閾値）：３ｐｓ
・グリッチ除去セル自体のゲート数：５
【００６４】
（３）次に、グリッチ対策の効果が大きいセル、たとえば出力ゲート数の多いセルから順に処理を進める（Ｓ１７３）。図１２のＧＤＢ７１では、ＡＮＤ１とＯＲ１の出力先ゲート数は同じなので、順不同でＡＮＤ１に対して処理を行う。
【００６５】
（４）ＡＮＤ１について、グリッチ対策を施すことによりタイミングエラーが発生しないか否かを確認する（Ｓ１７４）。まず、セルの入力端子間での最大遅延差を求める。図１２のＧＤＢ７１では、入力遅延値Ａが１８ｐｓ、入力遅延値Ｂが２０ｐｓ、入力遅延値Ｃが２２ｐｓのため、遅延値の差分は最大で４ｐｓである。この最大遅延差４ｐｓは、許容遅延差（閾値）３ｐｓよりも大きいため、グリッチ除去セルと遅延セルの双方を挿入することになる。そこで、遅延セルとグリッチ除去セルを挿入できるだけの余裕値が存在するか否かを判断する。ＡＮＤ１の入力端子Ａに４ｐｓの遅延セル、入力端子Ｂに２ｐｓの遅延セルを付加し、さらにグリッチ除去セルの遅延２ｐｓを付加する。余裕値は、入力端子Ａで６ｐｓ以上、入力端子Ｂで４ｐｓ以上、入力端子Ｃで２ｐｓ以上が必要になる。ＧＤＢ７１によると、余裕値Ａは１０ｐｓ、余裕値Ｂは９ｐｓ、余裕値Ｃは８ｐｓであり、条件が満たされている。したがってグリッチ対策の対象セルとして引き続き処理が行われる。
【００６６】
（５）グリッチ対策後に消費電力が増加しないか否かを確認する（Ｓ１７５）。消費電力の増加の有無は、出力先のゲート数と、グリッチ除去セルの挿入により増加するゲート数の比較で判断することができる。ＡＮＤ１では、挿入されるグリッチ除去セルのゲート数が５であり、出力先ゲート数３００と比較して十分に小さく、消費電力の増加の影響は小さいので、グリッチ対策の対処セルとして処理を進める。
【００６７】
（６）次に、ＡＮＤ１についてグリッチ対策の構成を決定する（Ｓ１７６〜Ｓ１７７、Ｓ１７９〜Ｓ１８０）。ＡＮＤ１では、セルの入力端子間の遅延量の最大差分が４ｐｓであり、許容遅延差３ｐｓよりも大きいので、グリッチ除去セルの挿入と、遅延調整（遅延セルの挿入）の双方が必要である。ＡＮＤ１のための遅延セル挿入量は、入力端子Ａに４ｐｓ、入力端子Ｂに２ｐｓであり（Ｓ１７９）、グリッチ除去セルの挿入と遅延セルの挿入が確定される（Ｓ１８０）。
【００６８】
（７）次に、ネットリスト６１の更新（Ｓ１８１）と、ＧＤＢ７１の情報更新（Ｓ１８２）を行う。たとえば、ネットリスト６１で、ＡＮＤ１の後ろにグリッチ除去セルを挿入する。また、入力端子Ａに４ｐｓの遅延を付加し、入力端子Ｂに２ｐｓの遅延を付加する。
グリッチ除去セルと遅延を付加したことで、ＡＮＤ１の余裕値Ａ，Ｂ、Ｃが変化し、ＧＤＢ７１の情報を更新する。
【００６９】
図１３は、更新後のＧＤＢ７２を示す。もともとの回路構成で、ＡＮＤ１の余裕値Ａは１０ｐｓ、余裕値Ｂは９ｐｓ、余裕値Ｃは８ｐｓである。遅延値２ｐｓのグリッチ除去セルを挿入し、入力端子Ａに４ｐｓ、入力端子Ｂに２ｐｓの遅延セルを付加したことで、余裕値Ａは４ｐｓに変化する（１０ｐｓ−２ｐｓ−４ｐｓ＝４ｐｓ）。余裕値Ｂは５ｐｓに変化し（９ｐｓ−２ｐｓ−２ｐｓ＝５ｐｓ）、余裕値Ｃは６ｐｓに変化する（８ｐｓ−２ｐｓ＝６ｐｓ）。そこで、ＡＮＤ１の余裕値Ａ、余裕値Ｂ、及び余裕値Ｃの値を書き換える。また、入力端子Ａに４ｐｓの遅延セルが挿入され、入力端子Ｂに２ｐｓの遅延セルが挿入されたことで、入力端子Ａと入力端子Ｂの遅延量はともに２２ｐｓに書き換えられる。その後、未処理のセルの有無が判断されて（Ｓ１８３）、ＯＲ１についてＳ１７３以降の処理を繰り返す。
【００７０】
ＯＲ１も、セルの３つの入力端子間の最大遅延差はＡＮＤ１と同じ４ｐｓであり許容遅延差（閾値）の３ｐｓを超えるため、グリッチ除去セルの挿入と遅延セルの挿入の両方で対処する。求められる遅延が付加されたとしても余裕値Ａ、Ｂ、Ｃはすべてタイミング要求を満たす。入力端子Ｂに４ｐｓの遅延セルの付加と、入力端子Ｃに２ｐｓの遅延セルの付加が決定され、グリッチ除去セルの挿入と遅延セルの挿入が確定する。その後、ネットリストとＧＤＢが更新される。
【００７１】
図１４は、更新された最終的なＧＤＢ７３を示す。ＯＲ１を遅延調整したため、ＯＲ１の情報が書き換えられる。入力端子Ｂと入力端子Ｃの遅延量がそれぞれ２２ｐｓに書き換えられる。余裕値Ａが６ｐｓに（８ｐｓ−２ｐｓ＝６ｐｓ）、余裕値Ｂが５ｐｓに（９ｐｓ−２ｐｓ−２ｐｓ）に、余裕値Ｃが４ｐｓに（１０ｐｓ−４ｐｓ−２ｐｓ＝４ｐｓ）に書き換えられる。
【００７２】
図１５は、更新された最終的なネットリスト６２を示す。ＡＮＤ１の後ろにグリッチ除去セル４０が挿入され、入力端子Ａの前に２ｐｓの遅延セル５０が２つ（合計４ｐｓの遅延）、入力端子Ｂの前に２ｐｓの遅延セル５０が１つ付加されている。ＯＲ１の後ろにグリッチ除去セル４０が挿入され、入力端子Ｂの前に２ｐｓの遅延セル５０が１つ、入力端子Ｃの前に２ｐｓの遅延セル５０が２つ付加されている。
【００７３】
この遅延制御により、入力側での遅延が制御されてグリッチ幅が小さくなり、一定幅以下（この例では２ｐｓ）に低減されたグリッチが、グリッチ除去セル４０で確実に吸収される。ＡＮＤ１とＯＲ１は、いずれも出力先ゲート数が多いので、後段ロジックに対するグリッチ除去効果が高く、また、遅延制御用のセルを数個挿入しても、全体の消費電力に対する電力増加の影響は少ない。また、あらかじめグリッチ発生を見込んで電力値に過剰なマージンを計上する必要がないので、論理回路のスペックダウンを防止できる。
【００７４】
第２実施形態では、３入力のＡＮＤ１と３入力のＯＲ１を例にとって説明したが、この例に限定されない。本発明はセルの種類、入力端子数に関係なく適用可能であり、上述した効果が得られる。
【００７５】
＜第３実施形態＞
図１６〜図２０を参照して第３実施形態の回路設計におけるグリッチ制御を説明する。図１６は、第３実施形態でグリッチ対策が施される前の回路構成のネットリスト８１を示す。ネットリスト８１はＡＮＤ１を含む。ＡＮＤ１の入力端子Ａは、ＦＦ＿１の出力に接続され、入力端子Ｂは、ノード８６を介してＦＦ＿２の出力に接続されている。この回路構成に対する配置配線後のゲートシミュレーションやタイミング解析は完了しているものとする。
【００７６】
（１）ネットリスト８１の回路構成について、ＳＴＡデータ、ＶＣＤファイル等から以下の情報を抽出する。
・セルインスタンス名
・入力端子遅延値
・出力先ゲート数（後段ロジックへのグリッチの影響の度合いを示す指標の一例）
・タイミング余裕値
これらの情報を抽出し、グリッチ対策の対象となるセルを特定する。たとえば、セルの入力端子間で遅延量の差が１ｐｓ以上のセルを、グリッチ対策対象セルとして特定する（Ｓ１７１）。特定したセルについて、図１７に示すグリッチ対策用データベース（ＧＤＢ）９１を作成する。ＧＤＢ９１は、抽出された情報に基づいて、セル名、入力端子遅延Ａ（Ａ端子での遅延量）、入力端子遅延Ｂ（Ｂ端子での遅延量）、出力先ゲート数、余裕値Ａ（Ａ端子でのタイミング余裕値）、及び余裕値Ｂ（Ｂ端子でのタイミング余裕値）を含む。出力先ゲート数に替えて、出力先ゲートのタイミング最小余裕値（スラック最小値）を用いてもよい。
【００７７】
（２）グリッチ吸収に用いるグリッチ除去セルのタイプとして、第１実施形態及び第２実施形態と同様に、以下のパラメータを選択する（Ｓ１７２）。
・グリッチ除去セルを挿入することにより生じる遅延値：２ｐｓ
・グリッチ除去セルの挿入のみで対処し得る入力端子間の許容遅延差（閾値）：３ｐｓ
・グリッチ除去セル自体のゲート数：５
【００７８】
（３）次に、グリッチ対策の効果が大きいセル、たとえば出力ゲート数の多いセルから順に処理を進める（Ｓ１７３）。図１７のＧＤＢ９１では、ＡＮＤ１だけがグリッチ対策の対象セルとして特定されているので、ＡＮＤ１に対して処理を行う。
【００７９】
（４）ＡＮＤ１について、グリッチ対策を施すことによりタイミングエラーが発生しないか否かを確認する（Ｓ１７４）。まず、セルの入力端子間での遅延差を求めると、遅延差は１０ｐｓであり、許容遅延差（閾値）３ｐｓよりも大きいため、グリッチ除去セルと遅延セルの双方を挿入することになる。そこで、遅延セルとグリッチ除去セルを挿入できるだけの余裕値が存在するか否かを判断する。グリッチ除去セルの２ｐｓを付加し、入力端子Ａ側に１０ｐｓの遅延を挿入することになるので、入力端子Ａ側で１２ｐｓ以上の余裕値、入力端子Ｂ側で２ｐｓ以上の余裕値が必要になる。図１７のＧＤＢ９１によると、余裕値Ａは３０ｐｓであり遅延対策が可能であるが、余裕値Ｂは０ｐｓであり条件が満たされていない。
しかし、ＡＮＤ１の出力先ゲート数が３００と大きいので、後段ロジックに対するグリッチの影響力が大きい。この場合、ステップＳ１７４の条件が満たされない場合でも、再度、後段ロジックへの影響力を考慮してグリッチ対策の可否を判断することが望ましい。たとえば、出力先ゲート数あるいはスラック最小値が所定の閾値を超える場合は、タイミング条件が満たされない場合でも、グリッチ対策を施す。
【００８０】
（５’）具体的には、配置配線のレイアウトを確認して、配置位置の一部を微変更することでグリッチ対策が可能になるか否かを判断する。配置位置の微変更の例として、遅延の大きい入力端子Ｂに接続されているＦＦ＿２を複製（クローニング）して、入力端子Ｂの近傍に配置することが考えられる。この部分的な変更は、いったんグリッチ対策工程（Ｓ１７）を終了した後のタイミングＥＣＯ（Ｓ１９）で実施可能である。
図１８は、タイミングＥＣＯにより変更された回路構成に対応するネットリスト８２を示す。ノード８６がなくなり、ＦＦとＦＦ＿２の間のノード８８から配線が引き出されてＦＦ＿２の複製８７が、ＡＮＤ１の入力端子Ｂの近傍に配置されている。ゲート回路のタイミング余裕値は、前段の記憶素子（この例ではＦＦ）からセルの入力端子までの配線長に依存するので、ＦＦ＿２の複製８７を入力端子Ｂの近傍に配置することで余裕値を増やす。
【００８１】
（６’）タイミングＥＣＯが完了し、タイミング検証（Ｓ１６）を経て、再度グリッチ対策工程（Ｓ１７）に戻ったときに、図１８のネットリスト８２の回路からセル情報が抽出されグリッチ対策対象セルが特定されてＧＤＢが作成される（Ｓ１７１）。
【００８２】
図１９は、タイミングＥＣＯ（Ｓ１９）後に作成されたＧＤＢ９２を示す。タイミングＥＣＯでＦＦ＿２が入力端子Ｂの近傍にクローニングされたため、入力端子Ｂの遅延量が１５ｐｓになり、余裕値Ｂが５ｐｓになっている。
【００８３】
このデータをもとにタイミングエラーの発生の有無を判断すると（Ｓ１７４）、セルの入力端子間の遅延量は５ｐｓとなり、グリッチ除去セルと遅延セルの挿入が可能か否かを判断することになる。入力端子Ａ側でグリッチ除去セルの２ｐｓと、セルの入力端子間の遅延差解消のための５ｐｓの遅延を付加するために７ｐｓ以上の余裕値が必要であるところ、余裕値Ａは３０ｐｓであり条件を満たす。入力端子Ｂ側で、グリッチ除去セルの２ｐｓを付加するために２ｐｓ以上の余裕値が必要であるところ、余裕値Ｂは５ｐｓであり条件を満たす。そこで、グリッチ除去セルの挿入と遅延セルの挿入を確定し、ネットリストとＧＤＢを更新する。
【００８４】
図２０は、更新後のＧＤＢ９３を示す。グリッチ除去セルの２ｐｓの付加と、入力端子Ａへの５ｐｓの遅延の付加により、入力端子Ａと入力端子Ｂの遅延量はともに１５ｐｓとなる。余裕値Ａは２３ｐｓ（３０ｐｓ−５ｐｓ−２ｐｓ＝２３ｐｓ）となり、余裕値Ｂは３ｐｓ（５ｐｓ−２ｐｓ＝３ｐｓ）となる。
【００８５】
図２１は、更新後のネットリスト８３を示す。ＡＮＤ１の後ろにグリッチ除去セル４０が挿入され、入力端子Ａの前に５ｐｓの遅延セル５０が付加されている。当初作成されたネットリストではタイミング余裕が満たされない場合でも、後段ロジックへのグリッチの影響が大きい場合にレイアウトを部分的に変更してタイミング余裕を増やす。これにより、グリッチ対策を可能にして論理回路の消費電力を低減する。
【００８６】
図２２は、第３実施形態の回路設計方法のフローチャートである。ステップＳ１７１〜Ｓ１８３は、図４のフローと同じであり、重複する説明を省略する。ステップＳ１７４でタイミング余裕の条件が満たされない場合、すなわちグリッチ対策によりタイミングエラーが発生し得る場合に、配置配線の微変更によりグリッチ対策を可能にする余裕値が確保できるか否かを判断する（Ｓ２０１）。配置配線の微変更とは、タイミング余裕に影響するパス長の変更、ネットリスト内の論理セルの複製、移動、追加、削除等を含む。上述した例では論理セルＦＦ＿２を複製し、ノードを移動することで配置配線を微変更している。
【００８７】
配置配線の微変更でグリッチ対策が可能な余裕値が確保できる場合は（Ｓ２０１でＹＥＳ）、配置配線の微変更を決定し（Ｓ２０２）、変更後のネットリストとＧＤＢ（テーブル）を更新する（Ｓ２０３）。その後、ステップＳ１７４に戻ってグリッチ対策の構成を確定してグリッチ対策を施す（Ｓ１７４−Ｓ１８３）。
【００８８】
上述したように、配置配線の微変更は、図３のタイミングＥＣＯ（Ｓ１９）で行うことができるので、配置配線の微変更の決定（Ｓ２０３）をグリッチ対策データベースに記憶しておき、グリッチ対策の工程（Ｓ１７）の完了後のタイミングＥＣＯで、グリッチ対策データベースを参照して配置配線の微調整を行ってもよい。
【００８９】
ステップＳ１７４に先立つＳ１７３で、現在の処理対象のセルはグリッチ対策の効果が大きいことが前提となっているため、Ｓ１７４の条件が満たされない場合に無条件でＳ２０１に進んでもよい。あるいは、Ｓ１７３の判断に複数段階の閾値を設けて、グリッチ対策による効果の程度が上位の１つまたは複数の閾値を超える場合に、ステップＳ２０１に進む構成にしてもよい。
【００９０】
第３実施形態の方法は、自動配置配線後のタイミング解析でグリッチ対策のためのタイミング余裕が不十分な場合でも、配置配線の微調整によりグリッチ対策が可能な場合はグリッチ対策を実行する点で、グリッチ抑制効果が高い。
【００９１】
以上述べたように、第１実施形態〜第３実施形態では、配置配線後のデータから抽出した情報により、グリッチ発生箇所とグリッチ発生量を正確に見積もり、グリッチの影響の大きな箇所を優先してグリッチ対策を施す。配置配線された回路で生じる遅延の程度に応じて、
（１）グリッチを吸収する構成（グリッチ除去セルの付加）と、
（２）あらかじめグリッチ幅を低減する構成（遅延セルの付加）と、グリッチを吸収する構成の併用、
のいずれかを採用することができる。したがって、配置配線後のデータに基づいて効果的にグリッチの発生を防止し、論理回路の消費電力を低減することができる。
【００９２】
上述した実施形態は一例であり、種々の変形が可能である。図４のフローで、ステップＳ１７１とＳ１７２は、順不同または並列に行ってもよい。ステップＳ１７３〜Ｓ１７５の判断は順不同である。
【００９３】
回路設計支援装置１００は、メモリ１２０または外部の記憶装置に保存された回路設計支援プログラムをプロセッサ１１０で実行することによって実現されてもよい。プロセッサ１１０は、配置配線（Place  and  Route）後のデータからグリッチ発生箇所を特定する手順と、特定されたグリッチ発生箇所のうち所定の閾値未満のグリッチ幅の第１グリッチ発生箇所にグリッチ除去セルを付加する手順と、所定の閾値以上のグリッチ幅の第２グリッチ発生箇所で、この第２グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する手順とを実行する。これにより、配置配線後に効率的にグリッチを解消することができる。
【符号の説明】
【００９４】
１  通信機器
４、５  集積回路デバイス
２１、２２、６１、６２、８１、８２、８３  ネットリスト（配置配線後）
３１、３２、３３、７１、７２、７３、９１、９２、９３  グリッチ対策用データベース
４０  グリッチ除去セル
５０  遅延セル
８７  複製
１００  回路設計支援装置
１０１  ネットリスト作成部
１０２  自動レイアウト部
１０３  グリッチ対策データベース
１０４  グリッチ発生箇所特定部
１０５  グリッチ対策決定部
１０６  タイミング検証部
１０７  入出力部
１１０  プロセッサ
１２０  メモリ
１３０  入出力インタフェース
【図１】
2018142235.tif 000003
【図２】
2018142235.tif 000004
【図３】
2018142235.tif 000005
【図４】
2018142235.tif 000006
【図５】
2018142235.tif 000007
【図６】
2018142235.tif 000008
【図７】
2018142235.tif 000009
【図８】
2018142235.tif 000010
【図９】
2018142235.tif 000011
【図１０】
2018142235.tif 000012
【図１１】
2018142235.tif 000013
【図１２】
2018142235.tif 000014
【図１３】
2018142235.tif 000015
【図１４】
2018142235.tif 000016
【図１５】
2018142235.tif 000017
【図１６】
2018142235.tif 000018
【図１７】
2018142235.tif 000019
【図１８】
2018142235.tif 000020
【図１９】
2018142235.tif 000021
【図２０】
2018142235.tif 000022
【図２１】
2018142235.tif 000023
【図２２】
2018142235.tif 000024