JP2018142235A - 回路設計方法、及び回路設計支援装置 - Google Patents
回路設計方法、及び回路設計支援装置 Download PDFInfo
- Publication number
- JP2018142235A JP2018142235A JP2017036894A JP2017036894A JP2018142235A JP 2018142235 A JP2018142235 A JP 2018142235A JP 2017036894 A JP2017036894 A JP 2017036894A JP 2017036894 A JP2017036894 A JP 2017036894A JP 2018142235 A JP2018142235 A JP 2018142235A
- Authority
- JP
- Japan
- Prior art keywords
- glitch
- cell
- delay
- circuit design
- placement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】自動配置配線の後に効率的にグリッチを除去して消費電力を低減することのできる回路設計技術を提供する。【解決手段】回路設計支援装置で実行される回路設計方法において、配置配線後に得られるデータからグリッチ発生箇所を特定し、特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第1グリッチ発生箇所にグリッチ除去セルを付加し、前記閾値以上のグリッチ幅の第2グリッチ発生箇所で前記第2グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する。【選択図】図4
Description
本発明は、回路設計技術に関し、特にグリッチの発生を抑制した回路設計技術に関する。
スマートフォンをはじめとする電子/通信機器の機能の進化に対応するため、フィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Array)やプログラマブルLSIといった論理デバイスが活用されている。これらの論理デバイスでは自由な回路設計が可能であり、新しいプロトコルや機能に対応することができる。
FPGA、LSI等の論理回路の設計では、グリッチの発生が問題となる。グリッチは論理セルに入力される信号の遅延差に起因して発生する意図しないパルスまたはスパイクである。グリッチの発生は消費電力の増大につながるので、グリッチ除去が求められる。論理回路の内部を伝搬する遅延には、トランジスタのばらつきによるセル遅延と、配線遅延がある。消費電力にも同じことが当てはまり、セルの消費電力と配線での消費電力がある。セルの遅延時間と消費電力はプロセステクノロジの進歩により小さくなっているが、配線では配線密度の向上にともなって寄生容量が増大し、消費電力が増えている。このため、伝搬遅延時間と消費電力に占める割合は、セルよりも配線の方が大きくなる傾向にある。
一般的なグリッチ対策は、グリッチの発生箇所にフリップフロップ(適宜「FF」と略称する)を挿入して、後段ロジックへのグリッチの伝搬を防止するものである。グリッチの発生箇所が多くなると挿入されるFFの数も多くなり、回路規模が増大し、結果的に消費電力が増加する。別の方法として、各セルの入力信号の遅延を完全に一致させることでグリッチを防止し得るが、これは現実的な解決策ではない。
レジスタ転送レベル(RTL:Register Transfer Level)設計における電力消費を低減するため、回路の構成を変形することによって、回路内で生成され伝搬するグリッチを低減する手法が提案されている(たとえば、特許文献1参照)。
公知の提案手法は、RTL設計段階で認識されるグリッチを低減するものであり、論理回路にゲートを追加する、あるいはマルチプレクサを再構成することでグリッチを低減している。しかし、この方法は自動配置配線後の遅延に起因するグリッチには対応できず、グリッチ抑制機能としては不十分である。
本発明は、自動配置配線の後に効率的にグリッチを除去して消費電力を低減することのできる回路設計技術を提供することを目的とする。
一つの態様では、回路設計支援装置で実行される回路設計方法において、
配置配線後に得られるデータからグリッチ発生箇所を特定し、
特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第1グリッチ発生箇所にグリッチ除去セルを付加し、
前記閾値以上のグリッチ幅の第2グリッチ発生箇所で、前記第2グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する。
配置配線後に得られるデータからグリッチ発生箇所を特定し、
特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第1グリッチ発生箇所にグリッチ除去セルを付加し、
前記閾値以上のグリッチ幅の第2グリッチ発生箇所で、前記第2グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する。
自動配置配線の後に効率的にグリッチを除去して消費電力を低減することのできる回路設計技術が実現される。
図1は、実施形態の回路設計技術が適用される論理集積回路(図中、「論理IC」と表記)4,5を用いた通信機器1を示す。通信機器1は、たとえばボード上に電源2、CPU(Central Processing Unit:中央演算装置)3、論理集積回路4、5、及び光インタフェース6,7が搭載された通信ボードである。論理集積回路4,5は、たとえばFPGA、LSI等、多数の論理回路が集積されたプログラマブルロジックデバイスであり、回路のデジタル設計が可能である。論理集積回路4,5とCPU3は、制御バスで相互に接続され、制御データが入出力される。
論理集積回路4,5は、それぞれ光インタフェース6,7に接続されている。光インタフェース6、7は光トランシーバ等の光モジュールであり、電気信号を光信号に変換して高速光通信を行う。図1の例では、論理集積回路4と光インタフェース6の間、及び論理集積回路5と光インタフェース7の間は高速シリアルバス等で接続されているが、光インタフェース6,7は論理集積回路4,5の内部に組み込まれていてもよい。
論理集積回路4,5には、FEC(Forward Error Correction:前方誤り訂正)回路やデジタルコヒーレント処理を行うフィルタ回路などが含まれる。これらの回路では、EOR(Exclusive OR:排他的論理和)ゲートが多段に組まれている場合が多く、多段回路部分でグリッチの影響が大きくなる。また、高速デジタル信号を並列処理するために多段ロジックが組まれており、ここでもグリッチの影響が大きくなる。
図2は、論理集積回路4、5の内部回路で発生するグリッチの例を説明する図である。図2(A)の例では、ANDゲート11のA端子に入力される信号と、B端子に入力される信号の間に遅延差がある。A端子に入力される信号の立ち上がりのタイミングと、B端子に入力される信号の立下りのタイミングのずれにより、遅延量の差分に相当する時間幅のグリッチが発生する。このグリッチは、後段のロジックに伝搬する。
図2(B)の例では、ANDゲート11のA端子には、FF_1の出力が直接入力されるが、FF_2の出力は多段(組合せ)回路12を経てB端子に入力される。FF_2の出力からB端子の入力までに時間がかかり、意図しないグリッチが発生する。このグリッチもまた後段のロジックに順次伝搬し、消費電力の増大につながる。
実施形態では、このようなグリッチを防止するため、配置配線後のデータからグリッチの発生箇所を特定し、グリッチ除去効果の大きい箇所から優先的にグリッチを解消する。配置配線後のデータを用いるため、グリッチ発生箇所と発生量を正確に特定することができる。グリッチ発生量によっては、配置配線後に適用可能な遅延調整技術を用いてあらかじめグリッチ幅を所定値未満に低減し、所定幅未満のグリッチを確実に消去する。以下で具体的な回路設計方法を詳細に説明する。
図3(A)は、実施形態の回路設計方法のフローチャートである。説明を分かりやすくするために、比較例として図3(B)に一般的な回路設計フローを示す。実施形態の回路設計方法では、図3(B)の一般的な方法と異なり、配置配線後のタイミング検証に伴って、またはタイミング検証の後にグリッチ対策(S17)が実施される。グリッチ対策工程では、グリッチの発生箇所を特定し、グリッチ除去効果の高いセルから優先的にグリッチ除去を行う。これにより、設計されたFPGA等の集積回路デバイスの消費電力を低減することができる。
ステップS11のRTL設計から、ステップS16のタイミング検証までは従来の工程と同じであり、説明を簡略化する。RTL設計(S11)は、FFやレジスタ等の記憶素子の接続関係を表現する工程であり、クロックに対するレジスタ(FF)の振る舞いを記述するものである。このRTL設計データは、論理合成されて(S12)、ゲートレベルのネットリストに展開(コンパイル)される(S13)。ネットリストには、セル等の部品情報や、それらの接続情報などが含まれており、ネットリストに基づいて配置配線(Place and Route)が行われる(S14)。
配置配線は自動レイアウトとも呼ばれ、ネットリストに含まれるセルやそれらの接続情報は、FPGA内あるいはLSI内のトランジスタやネット(配線)に割り当てられる。配置配線により、RTL設計や論理合成の段階で認識されなかった遅延が発生し得る。配置配線後に、リーク電流を最小にして回路を最適化する(S15)。その後、タイミング検証を行って、論理回路が遅延条件を満たしているか、所定のクロックで正確に動作するか等を検証する(S16)。
実施形態の特徴として、タイミング検証と同時に、またはタイミング検証の後に、グリッチ対策を施す(S17)。グリッチ対策は、配置配線後の状態でのグリッチ発生箇所を特定し、グリッチ除去効果の高い回路部分で優先的にグリッチが除去される回路構成を論理回路に持たせる。また、セルの入力端子に到達する遅延値を制御することであらかじめグリッチ幅を所定幅以内に収めて、グリッチ除去が促進される回路構成を論理回路に持たせる。
グリッチ対策後に、タイミング条件が満たされるか否かを判断し(S18)、条件が満たされる場合は処理を終了する。タイミング条件が満たされていない場合は(S18でNO)、タイミングエラーを部分的に修正するタイミングECO(Engineering Change Order)を行って(S19)、タイミングエラーがなくなるまでタイミング検証(S16)とグリッチ対策(S17)を繰り返す。
この方法により、配線遅延に起因して生じるグリッチを防止し、論理回路の消費電力を低減することができる。
図4は、図3(A)のグリッチ対策ステップ(S17)の詳細なフローである。まず、配置配線後に得られたデータから、回路内のグリッチ対策対象セルを特定する(S171)。たとえば、セルの入力端子間で遅延値の差が所定値以上のセルをグリッチ対策の対象セルとして特定する。グリッチ対策の対象セルを特定するにあたって、まず、配置配線後に得られるデータからセル情報を抽出する。セル情報には、一例として以下の情報が含まれる。
・セルインスタンス名
・入力端子遅延値
・後段ロジックへのグリッチの影響力(出力先ゲート数、出力先ゲートのスラック最小値など)
・タイミング余裕値
これらの情報は、配置配線後のタイミング解析結果を示すSTA(Static Timing Analysis:静的タイミング解析)情報、配置配線後の遅延情報を示すSDF(Standard Delay Format:遅延フォーマット)ファイル、配置配線後のゲートレベルシミュレーションで得られたVCD(Value Change Dump)ファイルなどから抽出することができる。
・セルインスタンス名
・入力端子遅延値
・後段ロジックへのグリッチの影響力(出力先ゲート数、出力先ゲートのスラック最小値など)
・タイミング余裕値
これらの情報は、配置配線後のタイミング解析結果を示すSTA(Static Timing Analysis:静的タイミング解析)情報、配置配線後の遅延情報を示すSDF(Standard Delay Format:遅延フォーマット)ファイル、配置配線後のゲートレベルシミュレーションで得られたVCD(Value Change Dump)ファイルなどから抽出することができる。
これらの抽出情報で得られるセルをすべてグリッチ対策対象セルとして特定してもよいし、セルの入力端子間の遅延量の差が所定の値以上、たとえば1ピコ秒(ps)以上のセルをグリッチ対策対象セルとして特定してもよい。
次に、グリッチ対策のために回路に付加されるセル(以下、「グリッチ除去セル」と称する)のパラメータを選択または設定する(S172)。グリッチ除去セルのパラメータとして、たとえば、(a)グリッチ除去セルを挿入することにより生じる遅延値、(b)グリッチ除去セルの挿入のみで対処し得るセルの入力端子間の許容遅延差(閾値)、(c)グリッチ除去セル自体のゲート数、などを設定することができる。これらのパラメータを設定することで、処理対象のセルにグリッチ除去セルを挿入することが可能かどうか、挿入した後の回路状態がどのように変更されるか、などを特定することができる。上述したパラメータ(a)〜(c)の2つ以上を組み合わせて段階的にグリッチ対策の可否を判定してもよい。
次に、特定されたセルに対して、順次グリッチ対策の処理を施す。グリッチ対策は、以下の条件の少なくともひとつを考慮して、最適な手法で行う。
(A)グリッチ対策による効果が大きいこと(グリッチが伝搬する後段パスにセルが多く配置されていること、グリッチ対策による速度低下を最小にできることなど)、
(B)グリッチ除去セルを挿入することでタイミングエラーが生じないこと、及び
(C)グリッチ除去セルを挿入することで消費電力が増加しないこと。
(A)グリッチ対策による効果が大きいこと(グリッチが伝搬する後段パスにセルが多く配置されていること、グリッチ対策による速度低下を最小にできることなど)、
(B)グリッチ除去セルを挿入することでタイミングエラーが生じないこと、及び
(C)グリッチ除去セルを挿入することで消費電力が増加しないこと。
条件(A)は、グリッチ対策の効果が大きいセルから対処して、効率的なグリッチ低減を実現するための条件である。条件(B)は、回路の適正動作を確保するための条件である。条件(C)は、グリッチ除去による消費電力の低減を達成するための条件である。
実施形態では、これらの条件にしたがって、個々のセルについてグリッチ対策を施すか否か、グリッチ対策を施す場合に、どのような手段を用いるか、を判断して、グリッチを解消する。
具体的には、グリッチ対策後の効果が大きいセルから順に処理を行う(S173)。グリッチ対策後の効果が大きいセルは、抽出されたセル情報の中の「後段ロジックへのグリッチの影響力」の度合いに基づいて決定することができる。たとえば、出力先ゲート数が最も多いセルから順に、あるいは、タイミングスラック最小値が最も大きいセルから順に選択する。抽出されたセルを出力先ゲート数、またはタイミングスラック最小値が大きい順に並べ替えて、順番に判断してもよいし、1以上の閾値を設けて出力先ゲート数またはスラック最小値が閾値を超えるか否かで判断してもよい。
次に、選択したセルにグリッチ対策を施してもタイミングエラーが発生しないかどうかを確認する(S174)。タイミングエラーが発生する場合は、グリッチ対策を施さずにステップS183に飛ぶ。タイミングエラーが発生しない場合は、グリッチ対策後に消費電力が増加しないかどうかを判断する(S175)。消費電力が増加する場合は、グリッチ対策を施さずにステップS183に飛ぶ。消費電力が増加しない場合は、グリッチ対策を行う手法を選択する(S176)。
グリッチ対策を行う手法として、グリッチ除去セルを挿入する方法と、グリッチ除去セルの挿入に加えて、セルの入力端子側で遅延調整を行う方法がある。処理対象のセルの遅延量が小さい場合は、グリッチ除去セルの挿入のみで対処可能である。処理対象のセルの遅延量が大きい場合は、グリッチ除去セルでグリッチが吸収できる状態にまで、あらかじめ遅延量(グリッチ幅)を小さくしておくことが望ましい。そこで、遅延調整(たとえば遅延セルの挿入)が必要か否かを判断する(S177)。遅延調整の要否は、たとえばセルの入力端子間での遅延量の差分が閾値以上か否かで判断することができる。セルの入力端子間の遅延値の差分が閾値未満のときは(S177でNO)、そのセルの後段にグリッチ除去セルを挿入することで、グリッチを吸収することができる。この場合は、グリッチ除去セルの挿入を決定して(S178)、ステップS181に飛ぶ。
対象セルの入力端子間の遅延量の差分が閾値以上のときは(S177でYES)、グリッチ除去セルの挿入に加えて、遅延調整を行う。そのため、セルの入力端子間の遅延値の差分に応じた遅延セルの挿入量を決定し(S179)、グリッチ除去セルと遅延セルの挿入の双方を決定する(S180)。
ここでは、S174の判断により、グリッチ除去セルを挿入できるだけのタイミング余裕があること(S178)、及びグリッチ除去セルと遅延セルの挿入ができるだけのタイミング余裕があること(S180)が前提となっている。本発明は、図4のフローに限定されず、ステップS178の前とステップS180の前に、個別にタイミング余裕の有無を判断してもよい。また、タイミングエラー発生の有無を確認するステップ174と、遅延セル挿入の要否を判断するステップ177を、ひとつの工程内で行ってもよい。
グリッチ除去セルの挿入のみ(S178)、またはグリッチ除去セルと遅延セルの挿入(S180)が決定されたなら、ネットリストにグリッチ除去セルのみ、またはグリッチ除去セルと遅延セルの組み合わせを追加する(S181)。さらに、S171で取得したセル情報を更新する(S182)。その後、他にグリッチ対策箇所があるか否かを判断し、グリッチ対応箇所が無くなるまでS173からS182を繰り返す。
この回路設計方法によると、配置配線後にグリッチ除去効果の大きいセルから優先的にグリッチ対策が施されるので、効率的にグリッチの除去、特に配線遅延に起因するグリッチの除去を行うことができる。また、グリッチ幅が大きいセルについては、遅延調整によりグリッチ幅をあらかじめ所定値未満に低減したうえで、グリッチ除去セルでグリッチを確実に吸収する。
図5は、実施形態の回路設計支援装置100の機能構成図である。回路設計支援装置100は、ネットリスト作成部101、自動レイアウト部102、グリッチ対策データベース103、グリッチ発生箇所特定部104、グリッチ対策決定部105、タイミング検証部106、及び入出力部107を有する。
ネットリスト作成部101は、回路設計支援装置100の内部で生成された、あるいは外部から入力されたRTL設計データを論理合成してネットリストを作成する。自動レイアウト部102は、作成されたネットリストに基づいて、論理回路の自動配置と自動配線を行う。これにより、ゲートや接続関係が特定された回路図が作成される。タイミング検証部106は、配置配線された回路のタイミング解析を行い、必要に応じて配置配線の小さな変更を指定する。
グリッチ発生箇所特定部104は、自動レイアウト部102で得られるゲートシミュレーション情報や、タイミング検証部108で得られる解析情報から必要な情報を抽出し、グリッチ対策の対象となるセルを特定する。グリッチ対策データベース103は、抽出された情報、及び/又は特定されたセル情報を保存する。
グリッチ対策決定部105は、特定されたセルの中から、グリッチ除去の効果が大きいセルから優先的にグリッチ対策の可否を判断し、グリッチ対策を行う場合に採用する具体的な構成決定する。決定されたグリッチ対策により、グリッチ対策データベース103が更新される。また、ネットリスト作成部101によって作成されたネットリストが更新される。入出力部107は、グリッチ対策実施後の回路設計データを、LSIやFPGA用のデータとして出力してもよい、ケーブルを介して直接FPGAのルックアップテーブルに書き込んでもよい。あるいは、FPGAの外部のメモリにコンフィギュレーション情報として格納してもよい。
回路設計支援装置100のハードウエア構成としては、プロセッサ110と、メモリ120と、入出力インタフェース130を備えていればよい。入出力部107は入出力インタフェース130で実現される。グリッチ対策データベース103はメモリ120で実現される。ネットリスト作成部101、自動レイアウト部102、グリッチ発生箇所特定部104、グリッチ対策決定部105、及びタイミング検証部106は、プロセッサ110により実現される。
回路設計支援装置100を用いて論理回路を設計することで、FPGA、LSI等の集積回路デバイスでのグリッチ発生と消費電力の増大を防止することができる。
<第1実施形態>
図6〜図10を参照して第1実施形態の回路設計におけるグリッチ制御を説明する。図6は、第1実施形態でグリッチ対策が施される前の回路構成をネットリスト21で示す。ネットリスト21について、配置配線後のゲートシミュレーションやタイミング解析は完了しているものとする。
図6〜図10を参照して第1実施形態の回路設計におけるグリッチ制御を説明する。図6は、第1実施形態でグリッチ対策が施される前の回路構成をネットリスト21で示す。ネットリスト21について、配置配線後のゲートシミュレーションやタイミング解析は完了しているものとする。
(1)ネットリスト21で示される回路について、STAデータ、SDFファイル、VCDファイル等から以下の情報を抽出する。
・セルインスタンス名
・入力端子遅延値
・出力先ゲート数(後段ロジックへのグリッチの影響の度合いを示す指標の一例)
・タイミング余裕値
これらの情報を抽出し、グリッチ対策の対象となるセルを特定する。たとえば、セルの入力端子間で遅延量の差が1ps以上のセルを、グリッチ対策対象セルとして特定する(S171)。特定したセルについて、図7に示すグリッチ対策用データベース(以下、適宜「GDB」と省略する)31を作成する。グリッチ対策用データベース31は、抽出された情報に基づいて、セル名、入力端子遅延A(A端子での遅延量)、入力端子遅延B(B端子での遅延量)、出力先ゲート数、余裕値A(A端子でのタイミング余裕値)、及び余裕値B(B端子でのタイミング余裕値)を含む。出力先ゲート数に替えて、出力先ゲートのタイミング最小余裕値(スラック最小値)を用いてもよい。
・セルインスタンス名
・入力端子遅延値
・出力先ゲート数(後段ロジックへのグリッチの影響の度合いを示す指標の一例)
・タイミング余裕値
これらの情報を抽出し、グリッチ対策の対象となるセルを特定する。たとえば、セルの入力端子間で遅延量の差が1ps以上のセルを、グリッチ対策対象セルとして特定する(S171)。特定したセルについて、図7に示すグリッチ対策用データベース(以下、適宜「GDB」と省略する)31を作成する。グリッチ対策用データベース31は、抽出された情報に基づいて、セル名、入力端子遅延A(A端子での遅延量)、入力端子遅延B(B端子での遅延量)、出力先ゲート数、余裕値A(A端子でのタイミング余裕値)、及び余裕値B(B端子でのタイミング余裕値)を含む。出力先ゲート数に替えて、出力先ゲートのタイミング最小余裕値(スラック最小値)を用いてもよい。
(2)次に、グリッチ吸収に用いるグリッチ除去セルのタイプを選択する(S172)。一例として、以下のパラメータを持つグリッチ除去セルを選択する。
・グリッチ除去セルを挿入することにより生じる遅延値:2ps
・グリッチ除去セルの挿入のみで対処し得る入力端子間の許容遅延差(閾値):3ps
・グリッチ除去セル自体のゲート数:5
・グリッチ除去セルを挿入することにより生じる遅延値:2ps
・グリッチ除去セルの挿入のみで対処し得る入力端子間の許容遅延差(閾値):3ps
・グリッチ除去セル自体のゲート数:5
(3)次に、グリッチ対策の効果が大きいセル、たとえば出力ゲート数の多いセルから順に処理を進める(S173)。図7のGDB31を例にとると、出力先ゲート数が最も大きいAND1を対象に処理を進める。このとき、あらかじめ出力先ゲート数が所定数以下のセルを処理の対象外としてもよい。たとえば、出力先ゲート数の閾値を100に設定してAND4を対象外としてもよい。最初にグリッチ対象セルを特定する段階(S171)でセルの入力端子間の遅延量の差が所定値以上のセルを特定しているが、出力ゲート数(後段ロジックへのグリッチの影響力)にも閾値を設けて、対象セルをさらに絞り込んで処理を効率化してもよい。
(4)AND1について、グリッチ対策を施すことによりタイミングエラーが発生しないか否かを確認する(S174)。一例として、セルの入力端子間の遅延差が許容遅延差以下であるか否かを判断する。図7のGDB31では、AND1の入力遅延値Aが19ps、入力遅延値Bが20psであり、遅延値の差分は1psである。セルの入力端子間での1psの遅延量の差は、グリッチ発生の原因となる。後述するように、1psの遅延量の差は、許容遅延差3psよりも小さいので、グリッチ除去セルの挿入のみで対処可能である。そこで、グリッチ除去セルを挿入できるだけの余裕値が存在するか否かを確認する。AND1の余裕値Aと余裕値Bは、ともに4psであり、グリッチ除去セル(2psの遅延値)を挿入しても、入力端子A,Bともに2ps分の余裕がある。したがって、タイミングエラーは生じない。
(5)グリッチ対策後に消費電力が増加しないか否かを確認する(S175)。消費電力の増加の有無は、出力先のゲート数と、グリッチ除去セルの挿入により増加するゲート数の比較で判断することができる。AND1では、挿入されるグリッチ除去セルのゲート数が5であり、出力先ゲート数300と比較して十分に小さい。すなわち、消費電力の増加の影響は小さい。消費電力の増加の有無を判断する閾値として、出力先ゲート数に対するゲート数増加の比率を用いてもよい。たとえば、ゲート数の増加比率が1/20以下のセルをグリッチ対策が可能なセルと判断してもよい。
(6)次に、AND1について、グリッチ対策の構成を決定する(S176〜S178)。上述したように、AND1では、セルの入力端子間の遅延量の差が1psであり、許容遅延差3psよりも小さいので、グリッチ除去セルの挿入のみで対処が可能と判断される。
(7)次に、ネットリスト21の更新(S181)と、GDB31の情報の更新(S182)を行う。ネットリスト21で、AND1の後ろにグリッチ除去セルを挿入する。グリッチ除去セルを挿入したことで、AND1の余裕値A,Bが変化するので、GDB31の情報を更新する。
図8は、更新後のGDB32を示す。もともとの回路構成で、AND1の余裕値Aと余裕値Bはともに4psであったが、遅延値2psのグリッチ除去セルを挿入したことで、余裕値Aと余裕値Bはともに2psに変化する(4ps−2ps=2ps)。そこで、AND1の余裕値Aと余裕値Bの値を書き換える。
図8は、更新後のGDB32を示す。もともとの回路構成で、AND1の余裕値Aと余裕値Bはともに4psであったが、遅延値2psのグリッチ除去セルを挿入したことで、余裕値Aと余裕値Bはともに2psに変化する(4ps−2ps=2ps)。そこで、AND1の余裕値Aと余裕値Bの値を書き換える。
(8)その後、次のセルについて同じ処理を繰り返す(S183→S173)。GDB32を参照すると、次に出力先ゲート数の多いAND2が処理対象として選択される(S173)AND2にグリッチ対策を施したときにタイミングエラーが生じないか否かを判断する(S174)。
AND2では、入力端子Aと入力端子Bの間の遅延差が5psであり、許容遅延差(閾値)3psを超えるため、グリッチ除去セルの挿入と遅延調整(遅延セルの挿入)の双方が必要と判断される(S177でYES)。そこで、AND2にグリッチ除去セルと遅延セルの両方を挿入できるだけの余裕値があるか否かを判断する(S174)。
AND2にグリッチ除去セルを挿入すると、2psの遅延が付加されることになる。また、セルの入力端子間での5psの遅延量の差分を解消するために、入力端子Aに5psの遅延を挿入する。そうすると、入力端子Aで合計7ps以上の余裕値が必要となり、入力端子Bで2ps以上の余裕値が必要になる。
GDB32によると、AND2の余裕値Aは10ps、余裕値Bは5psであり、余裕値A,Bともに条件が満たされている。したがって、グリッチ対策対象セルとして有効と判断され、引き続き消費電力の増加の有無が判断される(S175)。AND2において、グリッチ除去セルを挿入しても出力先ゲート数に対する影響が小さい。したがって、消費電力の増加の影響は小さいと判断され、S176に進んで、グリッチ対策の構成を決定する(S176)。タイミングエラーの有無の判断(S174)で比較したように、AND2において、セルの入力端子間での遅延量の差(5ps)は閾値3psよりも大きいので、グリッチ除去セルの挿入に加えて、遅延セルを用いる(S177でYES)。タイミング余裕も満たされているので、遅延セルの挿入量が5psと決定され(S179)、グリッチ除去セルの挿入と、遅延セルの挿入が確定される(S180)。ここでは、遅延セルの挿入量は、遅延値差分が0psになる値を決定しているが、遅延値差分は必ずしも0psでなくてもよい。遅延値差分を0psにできる遅延量以下であり、かつグリッチ除去セルの許容遅延差(閾値)以下になる遅延量より大きい遅延セルを挿入して確定してもよい。一例として、2ps<挿入量≦5psの範囲内で、挿入量の値として3ps、4ps、5psのいずれかを選択してもよい。
AND2について、ネットリストの更新(S181)と、GDBの更新(S182)が行われる。すなわち、ネットリストでAND2の後にグリッチ除去セルが挿入され、かつAND2の入力端子Aの前に5psの遅延セルが挿入される。
図9は、更新後のGDB33を示す。AND2のもともとの余裕値Aは10psであったが、遅延値2psのグリッチ除去セルが挿入され、かつ入力端子Aにおいて5psの遅延セルが挿入されるので、余裕値Aは3ps(10ps−2ps−5ps=3ps)に書き換えられる。AND2のもともとの余裕値Bは5psであったが、遅延値2psのグリッチ除去セルが挿入されるので、余裕値Aは3ps(5ps−2ps=3ps)に書き換えられる。また、入力端子Aに5psの遅延セルが挿入されたことで、入力端子Aの遅延量は20psに書き換えられる。その後、未処理のセルの有無が判断され(S183)、AND3についてS173以降の処理を繰り返す。
ステップS174で、AND3に対するタイミング余裕が判断される。AND3では、セルの入力端子間の遅延値の差が2psであり、許容遅延差3psより小さいので、グリッチ除去セルの挿入のみの対策となる。しかし、AND3の余裕値Bは1psであり、グリッチ除去セルの遅延値2psよりも小さいため、グリッチ対策を施すとタイミングエラーが発生する。そこで、AND3を処理対象外として、次のセルの処理を行う。
AND4について、グリッチ対策後の効果の判断において(S173)、出力先ゲート数に閾値を設定したときに、閾値以下(グリッチ対策の効果が少ない)と判断してAND4を処理対象外としてもよい。あるいは、消費電力の増加の有無の判断(S175)で、グリッチ遅延セルの挿入により出力先ゲート数が1.5倍にも増えるので、消費電力の増大が著しいと判断してAND4を処理対象外としてもよい。このようにして、ネットリスト21の回路構成で特定されたセルについて順次グリッチ対策の処理を繰り返す。
図10は、最終的に更新された回路構成22を示す。AND1の後ろにグリッチ除去セル40が挿入されている。AND2の入力端子Aの前に遅延セル50が挿入され、AND2の後ろにグリッチ除去セル40が挿入されている。AND1とAND2に対するグリッチ対策は、回路全体でのグリッチ低減効果が大きく、かつタイミングエラーや消費電力の著しい増大を発生させない最適な対策である。このように回路設計された論理回路(FPGA等)は、グリッチ抑制機能と省電力効果を備えた回路となる。
実際の回路では、グリッチ除去セル40は、たとえばRCフィルタで実現可能であり、遅延セルはスルーバッファなどで実現可能である。第1実施形態では、2入力のANDゲートを例に挙げているが、NAND、OR、NOR、EORなど、他のゲート回路に対しても同様のグリッチ対策を施すことができる。
<第2実施形態>
図11〜図15を参照して第2実施形態の回路設計におけるグリッチ制御を説明する。図11は、第2実施形態でグリッチ対策が施される前の回路構成のネットリスト61を示す。ネットリスト61は3入力のANDゲート(AND1)と、3入力のORゲート(OR1)を含む。この回路構成に対する配置配線後のゲートシミュレーションやタイミング解析は完了しているものとする。
図11〜図15を参照して第2実施形態の回路設計におけるグリッチ制御を説明する。図11は、第2実施形態でグリッチ対策が施される前の回路構成のネットリスト61を示す。ネットリスト61は3入力のANDゲート(AND1)と、3入力のORゲート(OR1)を含む。この回路構成に対する配置配線後のゲートシミュレーションやタイミング解析は完了しているものとする。
(1)ネットリスト61の回路構成について、STAデータ、VCDファイル等から以下の情報を抽出する。
・セルインスタンス名
・入力端子遅延値
・出力先ゲート数(後段ロジックへのグリッチの影響の度合いを示す指標の一例)
・タイミング余裕値
これらの情報を抽出し、グリッチ対策の対象となるセルを特定する。たとえば、セルの入力端子間で遅延量の差が1ps以上のセルを、グリッチ対策対象セルとして特定する(S171)。特定したセルについて、図12に示すグリッチ対策用データベース(GDB)71を作成する。GDB71は、抽出された情報に基づいて、セル名、入力端子遅延A(A端子での遅延量)、入力端子遅延B(B端子での遅延量)、入力端子遅延C(C端子での遅延量)、出力先ゲート数、余裕値A(A端子でのタイミング余裕値)、余裕値B(B端子でのタイミング余裕値)、及び余裕値C(C端子でのタイミング余裕値)を含む。出力先ゲート数に替えて、出力先ゲートのタイミング最小余裕値(スラック最小値)を用いてもよい。
・セルインスタンス名
・入力端子遅延値
・出力先ゲート数(後段ロジックへのグリッチの影響の度合いを示す指標の一例)
・タイミング余裕値
これらの情報を抽出し、グリッチ対策の対象となるセルを特定する。たとえば、セルの入力端子間で遅延量の差が1ps以上のセルを、グリッチ対策対象セルとして特定する(S171)。特定したセルについて、図12に示すグリッチ対策用データベース(GDB)71を作成する。GDB71は、抽出された情報に基づいて、セル名、入力端子遅延A(A端子での遅延量)、入力端子遅延B(B端子での遅延量)、入力端子遅延C(C端子での遅延量)、出力先ゲート数、余裕値A(A端子でのタイミング余裕値)、余裕値B(B端子でのタイミング余裕値)、及び余裕値C(C端子でのタイミング余裕値)を含む。出力先ゲート数に替えて、出力先ゲートのタイミング最小余裕値(スラック最小値)を用いてもよい。
(2)グリッチ吸収に用いるグリッチ除去セルのタイプとして、第1実施形態と同様に、以下のパラメータを選択する(S172)。
・グリッチ除去セルを挿入することにより生じる遅延値:2ps
・グリッチ除去セルの挿入のみで対処し得る入力端子間の許容遅延差(閾値):3ps
・グリッチ除去セル自体のゲート数:5
・グリッチ除去セルを挿入することにより生じる遅延値:2ps
・グリッチ除去セルの挿入のみで対処し得る入力端子間の許容遅延差(閾値):3ps
・グリッチ除去セル自体のゲート数:5
(3)次に、グリッチ対策の効果が大きいセル、たとえば出力ゲート数の多いセルから順に処理を進める(S173)。図12のGDB71では、AND1とOR1の出力先ゲート数は同じなので、順不同でAND1に対して処理を行う。
(4)AND1について、グリッチ対策を施すことによりタイミングエラーが発生しないか否かを確認する(S174)。まず、セルの入力端子間での最大遅延差を求める。図12のGDB71では、入力遅延値Aが18ps、入力遅延値Bが20ps、入力遅延値Cが22psのため、遅延値の差分は最大で4psである。この最大遅延差4psは、許容遅延差(閾値)3psよりも大きいため、グリッチ除去セルと遅延セルの双方を挿入することになる。そこで、遅延セルとグリッチ除去セルを挿入できるだけの余裕値が存在するか否かを判断する。AND1の入力端子Aに4psの遅延セル、入力端子Bに2psの遅延セルを付加し、さらにグリッチ除去セルの遅延2psを付加する。余裕値は、入力端子Aで6ps以上、入力端子Bで4ps以上、入力端子Cで2ps以上が必要になる。GDB71によると、余裕値Aは10ps、余裕値Bは9ps、余裕値Cは8psであり、条件が満たされている。したがってグリッチ対策の対象セルとして引き続き処理が行われる。
(5)グリッチ対策後に消費電力が増加しないか否かを確認する(S175)。消費電力の増加の有無は、出力先のゲート数と、グリッチ除去セルの挿入により増加するゲート数の比較で判断することができる。AND1では、挿入されるグリッチ除去セルのゲート数が5であり、出力先ゲート数300と比較して十分に小さく、消費電力の増加の影響は小さいので、グリッチ対策の対処セルとして処理を進める。
(6)次に、AND1についてグリッチ対策の構成を決定する(S176〜S177、S179〜S180)。AND1では、セルの入力端子間の遅延量の最大差分が4psであり、許容遅延差3psよりも大きいので、グリッチ除去セルの挿入と、遅延調整(遅延セルの挿入)の双方が必要である。AND1のための遅延セル挿入量は、入力端子Aに4ps、入力端子Bに2psであり(S179)、グリッチ除去セルの挿入と遅延セルの挿入が確定される(S180)。
(7)次に、ネットリスト61の更新(S181)と、GDB71の情報更新(S182)を行う。たとえば、ネットリスト61で、AND1の後ろにグリッチ除去セルを挿入する。また、入力端子Aに4psの遅延を付加し、入力端子Bに2psの遅延を付加する。
グリッチ除去セルと遅延を付加したことで、AND1の余裕値A,B、Cが変化し、GDB71の情報を更新する。
グリッチ除去セルと遅延を付加したことで、AND1の余裕値A,B、Cが変化し、GDB71の情報を更新する。
図13は、更新後のGDB72を示す。もともとの回路構成で、AND1の余裕値Aは10ps、余裕値Bは9ps、余裕値Cは8psである。遅延値2psのグリッチ除去セルを挿入し、入力端子Aに4ps、入力端子Bに2psの遅延セルを付加したことで、余裕値Aは4psに変化する(10ps−2ps−4ps=4ps)。余裕値Bは5psに変化し(9ps−2ps−2ps=5ps)、余裕値Cは6psに変化する(8ps−2ps=6ps)。そこで、AND1の余裕値A、余裕値B、及び余裕値Cの値を書き換える。また、入力端子Aに4psの遅延セルが挿入され、入力端子Bに2psの遅延セルが挿入されたことで、入力端子Aと入力端子Bの遅延量はともに22psに書き換えられる。その後、未処理のセルの有無が判断されて(S183)、OR1についてS173以降の処理を繰り返す。
OR1も、セルの3つの入力端子間の最大遅延差はAND1と同じ4psであり許容遅延差(閾値)の3psを超えるため、グリッチ除去セルの挿入と遅延セルの挿入の両方で対処する。求められる遅延が付加されたとしても余裕値A、B、Cはすべてタイミング要求を満たす。入力端子Bに4psの遅延セルの付加と、入力端子Cに2psの遅延セルの付加が決定され、グリッチ除去セルの挿入と遅延セルの挿入が確定する。その後、ネットリストとGDBが更新される。
図14は、更新された最終的なGDB73を示す。OR1を遅延調整したため、OR1の情報が書き換えられる。入力端子Bと入力端子Cの遅延量がそれぞれ22psに書き換えられる。余裕値Aが6psに(8ps−2ps=6ps)、余裕値Bが5psに(9ps−2ps−2ps)に、余裕値Cが4psに(10ps−4ps−2ps=4ps)に書き換えられる。
図15は、更新された最終的なネットリスト62を示す。AND1の後ろにグリッチ除去セル40が挿入され、入力端子Aの前に2psの遅延セル50が2つ(合計4psの遅延)、入力端子Bの前に2psの遅延セル50が1つ付加されている。OR1の後ろにグリッチ除去セル40が挿入され、入力端子Bの前に2psの遅延セル50が1つ、入力端子Cの前に2psの遅延セル50が2つ付加されている。
この遅延制御により、入力側での遅延が制御されてグリッチ幅が小さくなり、一定幅以下(この例では2ps)に低減されたグリッチが、グリッチ除去セル40で確実に吸収される。AND1とOR1は、いずれも出力先ゲート数が多いので、後段ロジックに対するグリッチ除去効果が高く、また、遅延制御用のセルを数個挿入しても、全体の消費電力に対する電力増加の影響は少ない。また、あらかじめグリッチ発生を見込んで電力値に過剰なマージンを計上する必要がないので、論理回路のスペックダウンを防止できる。
第2実施形態では、3入力のAND1と3入力のOR1を例にとって説明したが、この例に限定されない。本発明はセルの種類、入力端子数に関係なく適用可能であり、上述した効果が得られる。
<第3実施形態>
図16〜図20を参照して第3実施形態の回路設計におけるグリッチ制御を説明する。図16は、第3実施形態でグリッチ対策が施される前の回路構成のネットリスト81を示す。ネットリスト81はAND1を含む。AND1の入力端子Aは、FF_1の出力に接続され、入力端子Bは、ノード86を介してFF_2の出力に接続されている。この回路構成に対する配置配線後のゲートシミュレーションやタイミング解析は完了しているものとする。
図16〜図20を参照して第3実施形態の回路設計におけるグリッチ制御を説明する。図16は、第3実施形態でグリッチ対策が施される前の回路構成のネットリスト81を示す。ネットリスト81はAND1を含む。AND1の入力端子Aは、FF_1の出力に接続され、入力端子Bは、ノード86を介してFF_2の出力に接続されている。この回路構成に対する配置配線後のゲートシミュレーションやタイミング解析は完了しているものとする。
(1)ネットリスト81の回路構成について、STAデータ、VCDファイル等から以下の情報を抽出する。
・セルインスタンス名
・入力端子遅延値
・出力先ゲート数(後段ロジックへのグリッチの影響の度合いを示す指標の一例)
・タイミング余裕値
これらの情報を抽出し、グリッチ対策の対象となるセルを特定する。たとえば、セルの入力端子間で遅延量の差が1ps以上のセルを、グリッチ対策対象セルとして特定する(S171)。特定したセルについて、図17に示すグリッチ対策用データベース(GDB)91を作成する。GDB91は、抽出された情報に基づいて、セル名、入力端子遅延A(A端子での遅延量)、入力端子遅延B(B端子での遅延量)、出力先ゲート数、余裕値A(A端子でのタイミング余裕値)、及び余裕値B(B端子でのタイミング余裕値)を含む。出力先ゲート数に替えて、出力先ゲートのタイミング最小余裕値(スラック最小値)を用いてもよい。
・セルインスタンス名
・入力端子遅延値
・出力先ゲート数(後段ロジックへのグリッチの影響の度合いを示す指標の一例)
・タイミング余裕値
これらの情報を抽出し、グリッチ対策の対象となるセルを特定する。たとえば、セルの入力端子間で遅延量の差が1ps以上のセルを、グリッチ対策対象セルとして特定する(S171)。特定したセルについて、図17に示すグリッチ対策用データベース(GDB)91を作成する。GDB91は、抽出された情報に基づいて、セル名、入力端子遅延A(A端子での遅延量)、入力端子遅延B(B端子での遅延量)、出力先ゲート数、余裕値A(A端子でのタイミング余裕値)、及び余裕値B(B端子でのタイミング余裕値)を含む。出力先ゲート数に替えて、出力先ゲートのタイミング最小余裕値(スラック最小値)を用いてもよい。
(2)グリッチ吸収に用いるグリッチ除去セルのタイプとして、第1実施形態及び第2実施形態と同様に、以下のパラメータを選択する(S172)。
・グリッチ除去セルを挿入することにより生じる遅延値:2ps
・グリッチ除去セルの挿入のみで対処し得る入力端子間の許容遅延差(閾値):3ps
・グリッチ除去セル自体のゲート数:5
・グリッチ除去セルを挿入することにより生じる遅延値:2ps
・グリッチ除去セルの挿入のみで対処し得る入力端子間の許容遅延差(閾値):3ps
・グリッチ除去セル自体のゲート数:5
(3)次に、グリッチ対策の効果が大きいセル、たとえば出力ゲート数の多いセルから順に処理を進める(S173)。図17のGDB91では、AND1だけがグリッチ対策の対象セルとして特定されているので、AND1に対して処理を行う。
(4)AND1について、グリッチ対策を施すことによりタイミングエラーが発生しないか否かを確認する(S174)。まず、セルの入力端子間での遅延差を求めると、遅延差は10psであり、許容遅延差(閾値)3psよりも大きいため、グリッチ除去セルと遅延セルの双方を挿入することになる。そこで、遅延セルとグリッチ除去セルを挿入できるだけの余裕値が存在するか否かを判断する。グリッチ除去セルの2psを付加し、入力端子A側に10psの遅延を挿入することになるので、入力端子A側で12ps以上の余裕値、入力端子B側で2ps以上の余裕値が必要になる。図17のGDB91によると、余裕値Aは30psであり遅延対策が可能であるが、余裕値Bは0psであり条件が満たされていない。
しかし、AND1の出力先ゲート数が300と大きいので、後段ロジックに対するグリッチの影響力が大きい。この場合、ステップS174の条件が満たされない場合でも、再度、後段ロジックへの影響力を考慮してグリッチ対策の可否を判断することが望ましい。たとえば、出力先ゲート数あるいはスラック最小値が所定の閾値を超える場合は、タイミング条件が満たされない場合でも、グリッチ対策を施す。
しかし、AND1の出力先ゲート数が300と大きいので、後段ロジックに対するグリッチの影響力が大きい。この場合、ステップS174の条件が満たされない場合でも、再度、後段ロジックへの影響力を考慮してグリッチ対策の可否を判断することが望ましい。たとえば、出力先ゲート数あるいはスラック最小値が所定の閾値を超える場合は、タイミング条件が満たされない場合でも、グリッチ対策を施す。
(5’)具体的には、配置配線のレイアウトを確認して、配置位置の一部を微変更することでグリッチ対策が可能になるか否かを判断する。配置位置の微変更の例として、遅延の大きい入力端子Bに接続されているFF_2を複製(クローニング)して、入力端子Bの近傍に配置することが考えられる。この部分的な変更は、いったんグリッチ対策工程(S17)を終了した後のタイミングECO(S19)で実施可能である。
図18は、タイミングECOにより変更された回路構成に対応するネットリスト82を示す。ノード86がなくなり、FFとFF_2の間のノード88から配線が引き出されてFF_2の複製87が、AND1の入力端子Bの近傍に配置されている。ゲート回路のタイミング余裕値は、前段の記憶素子(この例ではFF)からセルの入力端子までの配線長に依存するので、FF_2の複製87を入力端子Bの近傍に配置することで余裕値を増やす。
図18は、タイミングECOにより変更された回路構成に対応するネットリスト82を示す。ノード86がなくなり、FFとFF_2の間のノード88から配線が引き出されてFF_2の複製87が、AND1の入力端子Bの近傍に配置されている。ゲート回路のタイミング余裕値は、前段の記憶素子(この例ではFF)からセルの入力端子までの配線長に依存するので、FF_2の複製87を入力端子Bの近傍に配置することで余裕値を増やす。
(6’)タイミングECOが完了し、タイミング検証(S16)を経て、再度グリッチ対策工程(S17)に戻ったときに、図18のネットリスト82の回路からセル情報が抽出されグリッチ対策対象セルが特定されてGDBが作成される(S171)。
図19は、タイミングECO(S19)後に作成されたGDB92を示す。タイミングECOでFF_2が入力端子Bの近傍にクローニングされたため、入力端子Bの遅延量が15psになり、余裕値Bが5psになっている。
このデータをもとにタイミングエラーの発生の有無を判断すると(S174)、セルの入力端子間の遅延量は5psとなり、グリッチ除去セルと遅延セルの挿入が可能か否かを判断することになる。入力端子A側でグリッチ除去セルの2psと、セルの入力端子間の遅延差解消のための5psの遅延を付加するために7ps以上の余裕値が必要であるところ、余裕値Aは30psであり条件を満たす。入力端子B側で、グリッチ除去セルの2psを付加するために2ps以上の余裕値が必要であるところ、余裕値Bは5psであり条件を満たす。そこで、グリッチ除去セルの挿入と遅延セルの挿入を確定し、ネットリストとGDBを更新する。
図20は、更新後のGDB93を示す。グリッチ除去セルの2psの付加と、入力端子Aへの5psの遅延の付加により、入力端子Aと入力端子Bの遅延量はともに15psとなる。余裕値Aは23ps(30ps−5ps−2ps=23ps)となり、余裕値Bは3ps(5ps−2ps=3ps)となる。
図21は、更新後のネットリスト83を示す。AND1の後ろにグリッチ除去セル40が挿入され、入力端子Aの前に5psの遅延セル50が付加されている。当初作成されたネットリストではタイミング余裕が満たされない場合でも、後段ロジックへのグリッチの影響が大きい場合にレイアウトを部分的に変更してタイミング余裕を増やす。これにより、グリッチ対策を可能にして論理回路の消費電力を低減する。
図22は、第3実施形態の回路設計方法のフローチャートである。ステップS171〜S183は、図4のフローと同じであり、重複する説明を省略する。ステップS174でタイミング余裕の条件が満たされない場合、すなわちグリッチ対策によりタイミングエラーが発生し得る場合に、配置配線の微変更によりグリッチ対策を可能にする余裕値が確保できるか否かを判断する(S201)。配置配線の微変更とは、タイミング余裕に影響するパス長の変更、ネットリスト内の論理セルの複製、移動、追加、削除等を含む。上述した例では論理セルFF_2を複製し、ノードを移動することで配置配線を微変更している。
配置配線の微変更でグリッチ対策が可能な余裕値が確保できる場合は(S201でYES)、配置配線の微変更を決定し(S202)、変更後のネットリストとGDB(テーブル)を更新する(S203)。その後、ステップS174に戻ってグリッチ対策の構成を確定してグリッチ対策を施す(S174−S183)。
上述したように、配置配線の微変更は、図3のタイミングECO(S19)で行うことができるので、配置配線の微変更の決定(S203)をグリッチ対策データベースに記憶しておき、グリッチ対策の工程(S17)の完了後のタイミングECOで、グリッチ対策データベースを参照して配置配線の微調整を行ってもよい。
ステップS174に先立つS173で、現在の処理対象のセルはグリッチ対策の効果が大きいことが前提となっているため、S174の条件が満たされない場合に無条件でS201に進んでもよい。あるいは、S173の判断に複数段階の閾値を設けて、グリッチ対策による効果の程度が上位の1つまたは複数の閾値を超える場合に、ステップS201に進む構成にしてもよい。
第3実施形態の方法は、自動配置配線後のタイミング解析でグリッチ対策のためのタイミング余裕が不十分な場合でも、配置配線の微調整によりグリッチ対策が可能な場合はグリッチ対策を実行する点で、グリッチ抑制効果が高い。
以上述べたように、第1実施形態〜第3実施形態では、配置配線後のデータから抽出した情報により、グリッチ発生箇所とグリッチ発生量を正確に見積もり、グリッチの影響の大きな箇所を優先してグリッチ対策を施す。配置配線された回路で生じる遅延の程度に応じて、
(1)グリッチを吸収する構成(グリッチ除去セルの付加)と、
(2)あらかじめグリッチ幅を低減する構成(遅延セルの付加)と、グリッチを吸収する構成の併用、
のいずれかを採用することができる。したがって、配置配線後のデータに基づいて効果的にグリッチの発生を防止し、論理回路の消費電力を低減することができる。
(1)グリッチを吸収する構成(グリッチ除去セルの付加)と、
(2)あらかじめグリッチ幅を低減する構成(遅延セルの付加)と、グリッチを吸収する構成の併用、
のいずれかを採用することができる。したがって、配置配線後のデータに基づいて効果的にグリッチの発生を防止し、論理回路の消費電力を低減することができる。
上述した実施形態は一例であり、種々の変形が可能である。図4のフローで、ステップS171とS172は、順不同または並列に行ってもよい。ステップS173〜S175の判断は順不同である。
回路設計支援装置100は、メモリ120または外部の記憶装置に保存された回路設計支援プログラムをプロセッサ110で実行することによって実現されてもよい。プロセッサ110は、配置配線(Place and Route)後のデータからグリッチ発生箇所を特定する手順と、特定されたグリッチ発生箇所のうち所定の閾値未満のグリッチ幅の第1グリッチ発生箇所にグリッチ除去セルを付加する手順と、所定の閾値以上のグリッチ幅の第2グリッチ発生箇所で、この第2グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する手順とを実行する。これにより、配置配線後に効率的にグリッチを解消することができる。
1 通信機器
4、5 集積回路デバイス
21、22、61、62、81、82、83 ネットリスト(配置配線後)
31、32、33、71、72、73、91、92、93 グリッチ対策用データベース
40 グリッチ除去セル
50 遅延セル
87 複製
100 回路設計支援装置
101 ネットリスト作成部
102 自動レイアウト部
103 グリッチ対策データベース
104 グリッチ発生箇所特定部
105 グリッチ対策決定部
106 タイミング検証部
107 入出力部
110 プロセッサ
120 メモリ
130 入出力インタフェース
4、5 集積回路デバイス
21、22、61、62、81、82、83 ネットリスト(配置配線後)
31、32、33、71、72、73、91、92、93 グリッチ対策用データベース
40 グリッチ除去セル
50 遅延セル
87 複製
100 回路設計支援装置
101 ネットリスト作成部
102 自動レイアウト部
103 グリッチ対策データベース
104 グリッチ発生箇所特定部
105 グリッチ対策決定部
106 タイミング検証部
107 入出力部
110 プロセッサ
120 メモリ
130 入出力インタフェース
Claims (9)
- 回路設計支援装置で実行される回路設計方法であって、
配置配線後に得られるデータからグリッチ発生箇所を特定し、
特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第1グリッチ発生箇所にグリッチ除去セルを付加し、
前記閾値以上のグリッチ幅の第2グリッチ発生箇所で、前記第2グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する、
ことを特徴とする回路設計方法。 - 前記配置配線後に得られるデータからグリッチ対策の対象となるセルを特定し、
特定されたセルのうち、セルの入力端子間に第1閾値よりも小さい遅延差を有する第1タイプのセルに前記グリッチ除去セルを付加し、
セルの入力端子間に前記第1閾値以上の遅延差を有する第2タイプのセルに対して、前記第1タイプのセルの入力端子に到達する遅延量を調整し、かつ前記グリッチ除去セルを付加する、
ことを特徴とする請求項1に記載の回路設計方法。 - 前記特定されたセルの中から、後段の回路に対するグリッチ対策効果の大きいセルから順に処理対象のセルとして選択し、
選択されたセルが前記第1タイプのセルか前記第2タイプのセルかを決定することを特徴とする請求項2に記載の回路設計方法。 - 前記特定されたセルの中から、出力先ゲート数またはスラック最小値が大きいセルから順に処理対象のセルとして選択し、
選択されたセルが前記第1タイプのセルか前記第2タイプのセルかを決定することを特徴とする請求項2に記載の回路設計方法。 - 前記グリッチ除去セルを付加する前に、処理対象として選択されたセルに前記グリッチ除去セルの付加を許容するタイミング余裕があるか否かを判断することを特徴とする請求項3または4に記載の回路設計方法。
- 前記タイミング余裕がある場合に、前記グリッチ除去セルの付加を決定し、
前記タイミング余裕がない場合に、配置配線後のレイアウトデータに微変更を加えてタイミング余裕を増加させた後に、前記グリッチ除去セルを付加することを特徴とする請求項5に記載の回路設計方法。 - 前記配置配線後のレイアウトデータの微変更は、処理対象のセルのタイミング余裕に影響するパスに接続されている論理セルの複製を、前記処理対象のセルの近傍へ配置する工程を含むことを特徴とする請求項6に記載の回路設計方法。
- 配置配線後に得られるデータからグリッチ発生箇所を特定する特定部と、
特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第1グリッチ発生箇所にグリッチ除去セルを付加し、前記閾値以上のグリッチ幅の第2グリッチ発生箇所にて、前記第2グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加するグリッチ対策決定部、
を有することを特徴とする回路設計支援装置。 - プロセッサによって実行される回路設計支援プログラムであって、前記プロセッサに、
配置配線後に得られるデータからグリッチ発生箇所を特定する手順と、
特定されたグリッチ発生箇所のうち、所定の閾値未満のグリッチ幅の第1グリッチ発生箇所にグリッチ除去セルを付加する手順と、
前記閾値以上のグリッチ幅の第2グリッチ発生箇所で、前記第2グリッチ発生箇所に到達する遅延量を調整し、かつグリッチ除去セルを付加する手順と、
を実行させる回路設計支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017036894A JP2018142235A (ja) | 2017-02-28 | 2017-02-28 | 回路設計方法、及び回路設計支援装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017036894A JP2018142235A (ja) | 2017-02-28 | 2017-02-28 | 回路設計方法、及び回路設計支援装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018142235A true JP2018142235A (ja) | 2018-09-13 |
Family
ID=63528171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017036894A Pending JP2018142235A (ja) | 2017-02-28 | 2017-02-28 | 回路設計方法、及び回路設計支援装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018142235A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020129119A1 (ja) * | 2018-12-17 | 2020-06-25 | 三菱電機株式会社 | 回路設計支援システムおよび回路設計支援プログラム |
WO2023157491A1 (ja) * | 2022-02-17 | 2023-08-24 | ソニーセミコンダクタソリューションズ株式会社 | 回路変換方法、ラッチ回路、およびc素子回路 |
-
2017
- 2017-02-28 JP JP2017036894A patent/JP2018142235A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020129119A1 (ja) * | 2018-12-17 | 2020-06-25 | 三菱電機株式会社 | 回路設計支援システムおよび回路設計支援プログラム |
JPWO2020129119A1 (ja) * | 2018-12-17 | 2021-03-11 | 三菱電機株式会社 | 回路設計支援システムおよび回路設計支援プログラム |
US11550978B2 (en) | 2018-12-17 | 2023-01-10 | Mitsubishi Electric Corporation | Circuit design assistance system and computer readable medium |
WO2023157491A1 (ja) * | 2022-02-17 | 2023-08-24 | ソニーセミコンダクタソリューションズ株式会社 | 回路変換方法、ラッチ回路、およびc素子回路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6427226B1 (en) | Selectively reducing transistor channel length in a semiconductor device | |
CN108073762B (zh) | 用于利用经延迟的初始化来验证经重定时的电路的方法 | |
US9009645B2 (en) | Automatic clock tree routing rule generation | |
EP3239865A1 (en) | Method for analyzing ir drop and electromigration of ic | |
US8977998B1 (en) | Timing analysis with end-of-life pessimism removal | |
EP3089059A1 (en) | Implementing integrated circuit designs using depopulation and repopulation operations | |
US20090293033A1 (en) | System and method for layout design of integrated circuit | |
US9792400B2 (en) | Determination of flip-flop count in physical design | |
US9600620B2 (en) | Repeater insertions providing reduced routing perturbation caused by flip-flop insertions | |
JP2018142235A (ja) | 回路設計方法、及び回路設計支援装置 | |
US8776003B2 (en) | System and method for employing side transition times from signoff-quality timing analysis information to reduce leakage power in an electronic circuit and an electronic design automation tool incorporating the same | |
US7590957B2 (en) | Method and apparatus for fixing best case hold time violations in an integrated circuit design | |
US20130055187A1 (en) | Floorplan creation information generating method, floorplan creation information generating program, floorplan creation information generating device, floorplan optimizing method, floorplan optimizing program, and floorplan optimizing device | |
US10169518B1 (en) | Methods for delaying register reset for retimed circuits | |
US7036102B2 (en) | Process and apparatus for placement of cells in an IC during floorplan creation | |
US9600614B2 (en) | Automated flip-flop insertions in physical design without perturbation of routing | |
US20030159121A1 (en) | Variable stage ratio buffer insertion for noise optimization in a logic network | |
US20150269304A1 (en) | System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce total power within a circuit design | |
US10354038B1 (en) | Methods for bounding the number of delayed reset clock cycles for retimed circuits | |
US9547733B2 (en) | Identifying inversion error in logic equivalence check | |
CN112016263B (zh) | 一种实现数据延时均衡的方法 | |
JP3033763B1 (ja) | 半導体集積回路の遅延低減配置処理装置および遅延低減配置処理方法 | |
JP5531479B2 (ja) | 回路設計方法、及び回路設計プログラム | |
WO2022130230A1 (en) | Path-based timing driven placement using iterative pseudo netlist changes | |
CN117083615A (zh) | 用于估计pld设计中的信号相关延迟的方法和装置 |