JP2011164740A - 回路設計装置及び回路設計方法 - Google Patents
回路設計装置及び回路設計方法 Download PDFInfo
- Publication number
- JP2011164740A JP2011164740A JP2010024009A JP2010024009A JP2011164740A JP 2011164740 A JP2011164740 A JP 2011164740A JP 2010024009 A JP2010024009 A JP 2010024009A JP 2010024009 A JP2010024009 A JP 2010024009A JP 2011164740 A JP2011164740 A JP 2011164740A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- information
- logic
- delay
- timing constraint
- 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
【課題】特にタイミング制約違反を解消するために挿入する遅延素子の数を抑制できる回路設計装置及び回路設計方法を提供する。
【解決手段】回路設計装置は、回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間の情報を有する回路情報に基づき、論理素子を配置・配線してレイアウトを生成するレイアウト部10と、回路情報14と、レイアウト情報18を参照して、レイアウトにおけるタイミング制約違反の有無を検出するタイミング解析部11と、検出したタイミング制約違反パスの終点から始点に遡りながら、回路情報を参照して配置する追加遅延素子を選択する選択部12と、タイミング制約違反が発生している複数のパスにおいて共通に前記選択した追加遅延素子が使用できると判断した場合に、複数のパスを統合して当該選択した追加遅延素子を配置する論理素子修正部13とを有する。
【選択図】図2
【解決手段】回路設計装置は、回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間の情報を有する回路情報に基づき、論理素子を配置・配線してレイアウトを生成するレイアウト部10と、回路情報14と、レイアウト情報18を参照して、レイアウトにおけるタイミング制約違反の有無を検出するタイミング解析部11と、検出したタイミング制約違反パスの終点から始点に遡りながら、回路情報を参照して配置する追加遅延素子を選択する選択部12と、タイミング制約違反が発生している複数のパスにおいて共通に前記選択した追加遅延素子が使用できると判断した場合に、複数のパスを統合して当該選択した追加遅延素子を配置する論理素子修正部13とを有する。
【選択図】図2
Description
本発明は半導体集積回路およびその設計方法に関し、特にタイミング制約違反を修正する回路設計装置及び回路設計方法に関する。
近年の半導体集積回路のタイミング設計分野においては、回路規模の増大や、動作周波数の高速化、および回路の複雑化により、複雑なタイミング制約を満足させることが要求されている。このタイミング制約を満足させるために追加する遅延素子の増加に伴う面積増加およびタイミング収束期間の増加が問題になってきており、面積削減とタイミング収束期間の短縮要求(必要性)が高まってきた。
上述した背景を鑑み、タイミング制約違反を回路設計段階の解析でブール式の分配法則を使用して論理構成を変換する技術が特許文献1に記載されている。特許文献1には、共通項を論理構造に変換して因数として括り出す技術が記載されている。
図22は、従来技術にかかる論理ICの最適化装置および方法のフローチャートを示す図である。
要因解析部1001は、タイミング制約違反パス指定データ1015およびタイミング制約データ1016を算出する。また、要因解析部1001は、初期レイアウト結果の論理ゲート配置データ1017、初期レイアウト結果の論理ゲート配線データ1018および論理ゲートの論理、形状および特性を表す論理ゲートライブラリ情報1019を入力として、パス毎の全体遅延における配線遅延および論理ゲート遅延の比率、始点−終点フリップフロップ(以下、FFと表記する)間の最短長(図23の配置・配線禁止領域165の迂回を考慮した長さ)および実際の配線長の比率を算出する。
要因解析部1001は、この算出結果に基づき、タイミング制約違反の要因のうち論理ゲート段数に起因している要因と配線長に起因している要因との比率を判定する。この判定結果に基づき、論理合成における論理平坦化、論理構造化、中継バッファ挿入の強度を表すタイミング修正アルゴリズムを立案する。
ここで、タイミング修正アルゴリズムに従った論理ゲート修正部1003の動作について図23を参照して説明する。図23は、修正前のIC600の構成を示す図である。IC600は、FF150〜158および163と、ANDの論理ゲート(以下ANDという)159〜162と、バッファ164とを有している。FF150〜158の論理値をそれぞれ[FF155]〜[FF158]、AND159〜161の論理値を[AND159]〜[AND161]、FF163のデータ入力の論理値を[FF163din]とすると、[FF163din]の論理値は、下記の(1)式で与えられる。
[FF163din]=[FF158][AND161][AND160][FF157]
=[FF158]([AND159][FF151][FF154])([FF152][FF153][FF155])[FF157]
=[FF158]([FF150][FF156])[FF151][FF154])([FF152][FF153][FF155])[FF157]…(1)
次に、論理平坦化部1004では、論理構造を除去し、ブール式の分配法則を使用して論理式の括弧を除去する。この際、FF150〜158の初期レイアウト座標を考慮し、近接した論理ゲート毎に並べ替える。この時、タイミング制約違反の要因が、配線遅延が支配的な場合には、タイミング修正アルゴリズムでの論理平坦化の強度を高くして、下記の(2)式の如く全ての括弧を除去する。一方、配線遅延が支配的でない場合には、論理平坦化の強度を低くする(尚、(2)式は、配線遅延が支配的な場合である)。
=[FF158]([AND159][FF151][FF154])([FF152][FF153][FF155])[FF157]
=[FF158]([FF150][FF156])[FF151][FF154])([FF152][FF153][FF155])[FF157]…(1)
次に、論理平坦化部1004では、論理構造を除去し、ブール式の分配法則を使用して論理式の括弧を除去する。この際、FF150〜158の初期レイアウト座標を考慮し、近接した論理ゲート毎に並べ替える。この時、タイミング制約違反の要因が、配線遅延が支配的な場合には、タイミング修正アルゴリズムでの論理平坦化の強度を高くして、下記の(2)式の如く全ての括弧を除去する。一方、配線遅延が支配的でない場合には、論理平坦化の強度を低くする(尚、(2)式は、配線遅延が支配的な場合である)。
FF[163din]
=[FF158]([FF150][FF156])[FF151][FF154])([FF152][FF153][FF155])[FF157]
=[FF150][FF151][FF152][FF153][FF154][FF155][FF156][FF157][FF158]…(2)
ここで、配線遅延が支配的であるか否かは、下記の(3)式で与えられるXの大小による。
=[FF158]([FF150][FF156])[FF151][FF154])([FF152][FF153][FF155])[FF157]
=[FF150][FF151][FF152][FF153][FF154][FF155][FF156][FF157][FF158]…(2)
ここで、配線遅延が支配的であるか否かは、下記の(3)式で与えられるXの大小による。
X={delay(wire)/(α×delay(gate))}…(3)
αはデバイス依存係数、delay(wire)は配線遅延およびdelay(gate)は論理ゲート遅延である。また、タイミング制約違反の要因が、配線遅延がやや支配的である場合には、タイミング修正アルゴリズムは、論理平坦化の強度を(3)式の場合より低く設定して、下記の(4)式の如く初期レイアウト結果の回路構造の一部を維持する。
αはデバイス依存係数、delay(wire)は配線遅延およびdelay(gate)は論理ゲート遅延である。また、タイミング制約違反の要因が、配線遅延がやや支配的である場合には、タイミング修正アルゴリズムは、論理平坦化の強度を(3)式の場合より低く設定して、下記の(4)式の如く初期レイアウト結果の回路構造の一部を維持する。
[FF163din]
=[FF158]([FF150][FF156])[FF151][FF154])([FF152][FF153][FF155])[FF157]
=[FF158]([FF150][FF151][FF152][FF153][FF154][FF155][FF156])[FF157]…(4)
論理構造化部1005では、論理平坦化部1004で平坦化された論理に対して因数として括れる共通項を検索し、回路の縮小および遅延最小に最も効果的な共通項を論理構造に変換して、因数として括り出す。このとき、タイミング制約違反の要因が、配線遅延が支配的な場合には、タイミング修正アルゴリズムでの論理構造化の強度を低く設定する。反対に、論理ゲート遅延が支配的な場合には、タイミング修正アルゴリズムでの論理構造化の強度を高く設定する。論理構造化強度が低い場合を下記の(5)式に、論理構造化強度が高い場合を(6)式に示す。
=[FF158]([FF150][FF156])[FF151][FF154])([FF152][FF153][FF155])[FF157]
=[FF158]([FF150][FF151][FF152][FF153][FF154][FF155][FF156])[FF157]…(4)
論理構造化部1005では、論理平坦化部1004で平坦化された論理に対して因数として括れる共通項を検索し、回路の縮小および遅延最小に最も効果的な共通項を論理構造に変換して、因数として括り出す。このとき、タイミング制約違反の要因が、配線遅延が支配的な場合には、タイミング修正アルゴリズムでの論理構造化の強度を低く設定する。反対に、論理ゲート遅延が支配的な場合には、タイミング修正アルゴリズムでの論理構造化の強度を高く設定する。論理構造化強度が低い場合を下記の(5)式に、論理構造化強度が高い場合を(6)式に示す。
[FF163din]
=[FF150][FF151][FF152][FF153][FF154][FF155][FF156][FF157][FF158]
=([FF150][FF151][FF152][FF153])([FF154][FF155][FF156][FF157][FF158])…(5)
[FF163din]
=[FF150][FF151][FF152][FF153][FF154][FF155][FF156][FF157][FF158]
=(([FF150][FF151])([FF152][FF153]))([FF154][FF155])([FF156][FF157])[FF158]…(6)
更に、図24のAND170〜172、174、178および179の論理値をそれぞれ[AND170]〜[AND172]、[AND174]、[AND178]、[AND179]とすると、下記の(7)式で与えられる。
=[FF150][FF151][FF152][FF153][FF154][FF155][FF156][FF157][FF158]
=([FF150][FF151][FF152][FF153])([FF154][FF155][FF156][FF157][FF158])…(5)
[FF163din]
=[FF150][FF151][FF152][FF153][FF154][FF155][FF156][FF157][FF158]
=(([FF150][FF151])([FF152][FF153]))([FF154][FF155])([FF156][FF157])[FF158]…(6)
更に、図24のAND170〜172、174、178および179の論理値をそれぞれ[AND170]〜[AND172]、[AND174]、[AND178]、[AND179]とすると、下記の(7)式で与えられる。
[FF163din]
=(([FF150][FF151])([FF152][FF153]))([FF154][FF155])([FF156][FF157])[FF158]
=([AND170][AND171])[AND174][AND178][FF158]
=[AND172][AND174][AND178][FF158]…(7)
次に、中継バッファ挿入部1006では、上記(7)式で示される論理ゲート間の配線を分割するよう、多段にバッファ/インバータを挿入して配線遅延を補正する。このとき、タイミング制約違反の要因が、配線遅延が支配的な場合には、中継バッファ挿入強度を高く設定し、反対に論理ゲート遅延が支配的な場合には、中継バッファ挿入強度を低く設定する。そして、変更された論理ゲートのみ配置・概略配線1007で予測レイアウトを行い、その配置・配線から遅延を見積もりタイミング制約判定部1008でタイミング制約を満足したか否かを判定する。満足していない場合には、要因解析部1001で修正タイミング修正アルゴリズムを立案し、再度論理構造の変更を行う。
=(([FF150][FF151])([FF152][FF153]))([FF154][FF155])([FF156][FF157])[FF158]
=([AND170][AND171])[AND174][AND178][FF158]
=[AND172][AND174][AND178][FF158]…(7)
次に、中継バッファ挿入部1006では、上記(7)式で示される論理ゲート間の配線を分割するよう、多段にバッファ/インバータを挿入して配線遅延を補正する。このとき、タイミング制約違反の要因が、配線遅延が支配的な場合には、中継バッファ挿入強度を高く設定し、反対に論理ゲート遅延が支配的な場合には、中継バッファ挿入強度を低く設定する。そして、変更された論理ゲートのみ配置・概略配線1007で予測レイアウトを行い、その配置・配線から遅延を見積もりタイミング制約判定部1008でタイミング制約を満足したか否かを判定する。満足していない場合には、要因解析部1001で修正タイミング修正アルゴリズムを立案し、再度論理構造の変更を行う。
タイミング制約を満足している場合には、修正結果出力部1009へ進む。図24は、論理ゲート修正部1003によるタイミング制約違反修正後のICの構成を示す図である。図24は、修正前の図23に比べて、FF152および153を始点とするパスの論理構造が変更され、終点のFF163の間に細かく配置されている。さらに、FF154、155および156を始点とする配線の迂回がなくなっている。以上より、論理ゲート修正部1003においてタイミング制約を満足する回路になっていることが分かる。
次に、修正結果出力部1009は、論理ゲート修正部1003の結果として、修正ネットリスト1021、修正論理ゲート概略配線データ1022および修正論理ゲート配置データ1023を出力し、再レイアウト部1013で変更部分のみの実配置・実配線を行う。実配置・実配線の結果を、タイミング制約判定部1014でタイミング制約を満足したか否かを判定する。タイミング制約を満足していない場合には、要因解析部1001で新たなタイミング修正アルゴリズムを立案し再度論理構造の変更を行う。満足している場合には、修正作業を終了する。
特許文献1に記載の技術は、タイミング制約違反パスの論理素子をタイミング制約違反の無いパスを含めてブール式の分配法則を使用して論理式を展開し、回路の縮小に最も効果的な共通項を括り出すことで論理素子の変更や論理圧縮が行われる。論理圧縮が行われることで、タイミング制約違反パスの効率の悪い論理素子を含んだパスの論理段数が圧縮される。論理段数が圧縮されることで論理素子の遅延時間と論理素子間の配線遅延時間が削減される。
特許文献1に記載の技術は、セットアップタイムやエレクトロマイグレーションにかかわるタイミング制約違反に対して効果がある。
次に、ホールドタイムにかかわるタイミング制約違反分の遅延素子を挿入する一般的な方法を説明する。図12は、タイミング制約違反パスのある回路60を示す。
回路60は、FF61〜64と、複数の論理素子の集まりである組み合わせ回路65と、3入力AND66を有している。各論理素子の間は、ネットA0、ネットB0、ネットC0、ネットD0、ネットE0で接続されている。
FF61の出力端子Qと3入力AND66の入力端子Aの間は、ネットA0で接続されている。FF62の出力端子Qと3入力AND66の入力端子Bの間は、ネットB0で接続されている。FF63の出力端子Qと複数の論理素子の集まりである組み合わせ回路65の入力端子Aの間は、ネットE0で接続されている。組み合わせ回路65の出力端子Yと3入力AND66の入力端子Cの間は、ネットC0で接続されている。3入力AND66の出力端子YとFF64の入力端子Dの間は、ネットD0で接続されている。
図12において、FF61の出力端子QからFF64の入力端子Dのパスに、タイミング制約違反のホールドタイミング違反3nsがある。また、FF62の出力端子QからFF64の入力端子Dのパスにタイミング制約違反のホールドタイミング違反2nsがある。ホールドタイムにかかわるタイミング制約違反分の遅延素子を挿入する一般的な方法を、図16を用いて説明する。図16は、従来の方法で設計した回路74を示す図である。FF61の出力端子QからFF64の入力端子Dのパスにタイミング制約違反を解消するために3nsの遅延時間分として、FF61の出力端子Qと3入力AND66の入力端子Aの間に、2nsの遅延素子69と1nsの遅延素子70を挿入する。さらにFF62の出力端子Qと3入力AND66の入力端子Bの間に、2nsの遅延素子69aを挿入する。これにより図12に示したタイミング制約違反は解消される。
しかしながら、上記のように、タイミング制約違反パスそれぞれに、タイミング制約違反を解消するための遅延素子を挿入する方法では、挿入する遅延素子の個数が多くなるという問題がある。
本発明にかかる回路設計装置は、回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間情報を有する回路情報に基づき、当該論理素子を配置・配線してレイアウトを生成し、レイアウト情報である当該論理素子の配置情報と当該論理素子間の配線情報を格納するレイアウト部と、レイアウト情報と回路情報であるネットリストとライブラリ情報とタイミング制約情報とを参照してタイミング制約違反の有無を検出するタイミング解析部と、検出したタイミング制約違反パスの終点から始点に遡りながら、回路情報を参照して配置する追加遅延素子を選択する選択部と、タイミング制約違反が発生している複数のパスにおいて追加遅延素子が共通に使用できると判断した場合に、当該複数のパスを統合して当該追加遅延素子を配置する論理素子修正部とを有する。
本発明にかかる回路設計方法は、回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間情報を有する回路情報に基づき、当該論理素子を配置・配線してレイアウトを生成し、前記回路情報と、前記レイアウト情報を参照して、タイミング制約違反の有無を検出し、検出したタイミング制約違反パスの終点から始点に遡りながら、前記回路情報を参照して配置する追加遅延素子を選択し、前記タイミング制約違反が発生している複数のパスにおいて共通に前記選択した追加遅延素子が使用できると判断した場合に、当該複数のパスを統合して当該選択した追加遅延素子を配置するものである。
本発明においては、タイミング解析部が検出したタイミング制約違反パスが複数あって、かつこれらのパスに対し、追加遅延素子が共通に使用できると判断した場合、複数のタイミング制約違反パスについて、共通の追加遅延素子を使用するため、追加する遅延素子の個数を抑制することができる。
本発明によれば、特にタイミング制約違反を解消するために挿入する遅延素子の数を抑制できる回路設計装置及び回路設計方法を提供することができる。
実施の形態1
以下、図面を参照しながら、本発明にかかる実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。また、以下の図面に示す各装置の構成は、例えば記憶装置に読み込まれたプログラムをコンピュータ(PCや携帯端末装置等)上で実行することにより実現される。また、これらのプログラムは、CD−ROMや光ディスク等の情報記憶媒体に記憶され、もしくはインターネット等のネットワークを介して配布され、コンピュータにインストールされることになる。
以下、図面を参照しながら、本発明にかかる実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。また、以下の図面に示す各装置の構成は、例えば記憶装置に読み込まれたプログラムをコンピュータ(PCや携帯端末装置等)上で実行することにより実現される。また、これらのプログラムは、CD−ROMや光ディスク等の情報記憶媒体に記憶され、もしくはインターネット等のネットワークを介して配布され、コンピュータにインストールされることになる。
図1は本実施の形態にかかる回路設計装置1を示す図である。本実施の形態にかかる回路設計装置1は、コンピュータ装置2と、サーバ3と、記憶媒体4と、ネットワーク5とを有する。サーバ3は、インターネットなどのネットワーク5を介してエンジニアリングワークステーションなどのコンピュータ装置2に接続される。
記憶媒体4は、実行プログラムの提供に供されるサーバ3に保持されている。記憶媒体4は、本実施の形態にかかる回路設計装置1としての回路設計プログラム6を格納している。
回路設計プログラム6は、ネットワーク5を介してコンピュータ装置2にダウンロードされる。ダウンロードされた回路設計プログラム6はコンピュータ装置2のローカルハードディスク(不図示)またはメモリ(不図示)にストアされて実行処理を行う。
コンピュータ装置2は、ダウンロードされた回路設計プログラム6の実行処理に必要なデータを記憶媒体4にネットワーク5を介してアクセスする。図2は回路設計プログラム6を示す図である。回路設計プログラム6は、回路の設計を行うためのデータベースとして、レイアウト部10と、タイミング解析部11と、選択部12と、論理素子修正部13と、回路情報14と、レイアウト情報18を有する。
レイアウト部10は、回路情報14に格納されているネットリスト15と、ライブラリ情報16と、タイミング制約情報17、に基づき、当該論理素子を配置・配線してレイアウトを生成し、当該論理素子の配置情報19と当該論理素子間の配線情報20をレイアウト情報18に格納する。
タイミング解析部11は、回路情報14とレイアウト情報18を参照して、レイアウトにおけるタイミング制約違反の有無を検出する。
選択部12は、タイミング解析部11が検出したタイミング制約違反パスの終点から始点に遡りながら、回路情報14を参照して配置する追加遅延素子を選択する。
論理素子修正部13は、タイミング制約違反が発生している複数のパスにおいて、選択した追加遅延素子が共通に使用できると判断した場合に、当該複数のパスを統合して当該選択した追加遅延素子を配置する。
回路情報14は、論理素子間の接続情報を有するネットリスト15を有する。
回路情報14は、回路設計に使用する際に基本となる論理素子の遅延時間、セットアップタイムおよびホールドタイムなどの情報を有するライブラリ情報16を有する。
回路設計に使用する論理素子は、複数のフリップフロップを含み、回路情報14は、回路が使用する動作周波数、及びフリップフロップ間のクロック周期を含むタイミング制約情報17を有する。
タイミング解析部11は、回路情報14とレイアウト情報18を参照し、論理素子毎に、現在の信号の入力されるタイミングと、解析対象の論理素子(以下、解析対象素子という。)が必要とするセットアップタイム及びホールドタイムのタイミングを解析し、結果を記憶し、タイミング制約違反の有無を検出する。
本実施の形態によれば、タイミング制約違反パスが発生している複数のパスを統合して追加遅延素子を配置することができる。
次に、本実施の形態についてさらに詳細に説明する。図3は、本実施の形態に係る回路設計の全体を示すフローチャートである。先ず、ネットリスト15とライブラリ情報16とタイミング制約情報17をもとに回路の論理素子の配置と配線を実施し、回路情報14に配置情報19と配線情報20から生成された論理素子の遅延と配線遅延の情報などを記憶する(ステップS21)。
次に、ネットリスト15とライブラリ情報16とタイミング制約情報17をもとにFFの論理素子の間のセットアップタイムおよびホールドタイムのタイミングの解析を実施し、タイミング解析部11にその結果であるパスの各論理素子の遅延時間、基点、終点およびタイミング制約などの条件を記憶する(ステップS22)。
次に、タイミング解析部11に記憶されている結果情報にタイミング制約違反の有無を判定する(ステップS23)。
タイミング制約違反がない場合は、処理を終了する(ステップS23:無)。
タイミング制約違反がある場合(ステップS23:有)は、要因解析(ステップS24)において、タイミング解析部11に記憶されている結果情報から対象となる論理素子を抽出する。
次に、遅延素子の挿入箇所を共通化するための論理解析と論理素子を挿入する(ステップS25)。
次に、タイミング解析部11に記憶されている結果情報のホールドタイムなどすべてのタイミング制約違反パスを修正したか判定する(ステップS26)。
すべてのタイミング制約違反パスが修正できていない場合は、要因解析(ステップS24)からの処理を繰り返す(ステップS26:有)。
すべてのタイミング制約違反パスを修正できた場合は、レイアウト(ステップS21)からの処理を繰り返す(ステップS26:無)。
タイミング制約違反パスと当該パスの遅延情報を元に、遅延が必要なパスを共通化することができるため、半導体集積装置の面積の増加を抑制しながらタイミング制約違反パスを修正することができる。
ここで、各ステップの動作についてさらに詳細に説明する。
まず、ステップS21について説明する。ライブラリ情報16は、論理素子の遅延時間に関する情報を有する。図4は、ライブラリ情報16を示す表1である。表1は、回路設計に使用する際、基本となる論理素子の遅延時間、セットアップタイム、ホールドタイムなどの情報を、論理素子の種類ごとに整理して有している。
ネットリスト15は、回路の論理素子間の接続情報を有する。例として、図5に示す回路30aについて説明する。図5は、本実施の形態にかかる回路30aを示す図である。回路30aは、入力端子IN、出力端子OUT、インバータ31、FF32〜36、ORの論理ゲート(以下ORという)2入力OR37、NANDの論理ゲート(以下NANDという)2入力NAND38、2入力AND39とを有する。それぞれ、インバータの入力端子をA、出力端子をYとし、FF32〜36の入力端子をD、出力端子をQとする。2入力OR37、2入力NAND38および2入力AND39のそれぞれの入力端子をA又はB、出力端子をYとする。また、各素子の間は、ネット41〜48で接続されている。回路30aの接続情報は、以下のようになる。
入力端子INの接続先:インバータ31の入力端子AとFF33の入力端子D
インバータ31の出力端子Yの接続先:FF32の入力端子D
FF32の出力端子Qの接続先:2入力OR37の入力端子A
FF33の出力端子Qの接続先:2入力OR37の入力端子BとFF34の入力端子D
2入力OR37の出力端子Yの接続先:FF35の入力端子Dと2入力NAND38の入力端子A
FF35の出力端子Qの接続先:2入力AND39の入力端子A
FF34の出力端子Qの接続先:2入力NAND38の入力端子B
2入力NAND38の出力端子Yの接続先:2入力AND39の入力端子B
2入力AND39の出力端子Yの接続先:FF36の入力端子D
FF36の出力端子Qの接続先:出力端子OUT
以上の接続情報は、ネットリスト15に、具体的には以下のような形式で記憶される。一番左の項は、ライブラリ情報16に登録されている論理素子名であり次の項は、ネットリスト15内でのアドレスに値する固有名称であり、括弧内はネット名を示す。論理素子の種類を、インバータは、INVx1。2入力ORは、OR2x1。FFは、DFFx1。2入力NANDは、NAND2x1。2入力ANDは、AND2x1として記載する。
インバータ31の出力端子Yの接続先:FF32の入力端子D
FF32の出力端子Qの接続先:2入力OR37の入力端子A
FF33の出力端子Qの接続先:2入力OR37の入力端子BとFF34の入力端子D
2入力OR37の出力端子Yの接続先:FF35の入力端子Dと2入力NAND38の入力端子A
FF35の出力端子Qの接続先:2入力AND39の入力端子A
FF34の出力端子Qの接続先:2入力NAND38の入力端子B
2入力NAND38の出力端子Yの接続先:2入力AND39の入力端子B
2入力AND39の出力端子Yの接続先:FF36の入力端子D
FF36の出力端子Qの接続先:出力端子OUT
以上の接続情報は、ネットリスト15に、具体的には以下のような形式で記憶される。一番左の項は、ライブラリ情報16に登録されている論理素子名であり次の項は、ネットリスト15内でのアドレスに値する固有名称であり、括弧内はネット名を示す。論理素子の種類を、インバータは、INVx1。2入力ORは、OR2x1。FFは、DFFx1。2入力NANDは、NAND2x1。2入力ANDは、AND2x1として記載する。
INVx1 BL31 (net41、IN)
OR2x1 BL37 (net45、net42、net43)
NAND2x1 BL38 (net46、net44、net45)
AND2x1 BL39 (net49、net46、net47)
DFFx1 BL32 (net43、clk、net41)
DFFx1 BL33 (net42、clk、IN)
DFFx1 BL34 (net44、clk、net42)
DFFx1 BL35 (net47、clk、net45)
DFFx1 BL36 (OUT、clk、net48)
回路30aは、ネットリスト15に記憶された情報をもとに、配置および配線された回路である。論理素子が配置され、配線されることで、各素子間を接続するネット41〜48配線の長さが決定される。また、ネット41〜48の配線長さは、配線情報20に記憶される。
OR2x1 BL37 (net45、net42、net43)
NAND2x1 BL38 (net46、net44、net45)
AND2x1 BL39 (net49、net46、net47)
DFFx1 BL32 (net43、clk、net41)
DFFx1 BL33 (net42、clk、IN)
DFFx1 BL34 (net44、clk、net42)
DFFx1 BL35 (net47、clk、net45)
DFFx1 BL36 (OUT、clk、net48)
回路30aは、ネットリスト15に記憶された情報をもとに、配置および配線された回路である。論理素子が配置され、配線されることで、各素子間を接続するネット41〜48配線の長さが決定される。また、ネット41〜48の配線長さは、配線情報20に記憶される。
ネットリスト15に記憶されたネット41〜48の配線長さ(L)と、ライブラリ情報16に記憶された基本遅延時間(tLD0)と、入力端子の容量(Cin)および出力端子の遅延係数(t1)から、各論理素子の遅延時間(tPD)が式(1)を用いて求められる。
tPD=tLD0+(ΣCin+L×0.234)×t1 …式(1)
タイミング解析部11は、式(1)により求められた遅延の情報を記憶する。
タイミング解析部11は、式(1)により求められた遅延の情報を記憶する。
次に、ステップS22について説明する。回路30aにおいて、出力端子OUTが正しくデータを出力するためには、出力端子OUTに接続されたFF36に適切なタイミングで信号を入力する必要がある。よって、出力端子OUTに注目した場合、解析対象素子をFF36とし、解析対象素子に接続されているネットをパスとして抽出する。抽出する範囲は、当該解析対象素子の前段のFFから、当該解析対象素子の後段のFFまでである。ただし、解析対象素子がFFである場合は、解析対象のFFまで抽出する。もし解析対象素子の前段にFF又は他の論理素子が接続されていない場合は、回路の入力端子まで抽出する。
図6は、回路30bを示す図である。回路30bにおいて、FF36を解析対象素子とした場合、抽出されるパスは、
(1)BL32、BL37、BL38、BL39を通るパス90
(2)BL33、BL37、BL38、BL39を通るパス91
(3)BL35、BL39を通るパス92
(4)BL34、BL38、BL39を通るパス93
の4通りである。パスを抽出することで、解析対象のFFと、その前段のFFを判別することができ、FF間のクロック周期、セットアップタイムおよびホールドタイムについてタイミングの解析が実施できるようになる。
(1)BL32、BL37、BL38、BL39を通るパス90
(2)BL33、BL37、BL38、BL39を通るパス91
(3)BL35、BL39を通るパス92
(4)BL34、BL38、BL39を通るパス93
の4通りである。パスを抽出することで、解析対象のFFと、その前段のFFを判別することができ、FF間のクロック周期、セットアップタイムおよびホールドタイムについてタイミングの解析が実施できるようになる。
タイミング解析部11は、抽出されたパスのFF間のクロック周期、セットアップタイムおよびホールドタイムの情報を、解析対象の素子とともに記憶する。
ここで、FF間のクロック周期について説明する。FF間のクロック周期とは、解析対象としているFFとその前段のFFの出力が変化する基準となるタイミングの間の時間のことである。
図7はFF間のクロック周期を示す図である。回路50〜53は、共通のクロック信号に同期して動作するFF回路を示す。50c、51c、52c、53cはそれぞれ、回路50〜53が同期するタイミングを示す。FF50a、FF50b、FF52b、FF53aはクロック信号の立ち上がりに同期するFF回路であり、FF51a、FF51b、FF52a、FF53bはそれぞれクロック信号の立下りに同期するFF回路である。回路50〜53に供給されるクロック信号は、周期が10nsであり、Duty比が50%である。クロック信号の情報は、タイミング制約情報17に記憶されている。
回路50は、FF50aおよびFF50bがクロック信号の立ち上がりに同期するため、FF間のクロック周期はクロック信号が立ち上がるタイミングから、当該クロック信号の1周期分となる。
回路51は、FF51aおよびFF51bがクロック信号の立ち下がりに同期するため、FF間のクロック周期はクロック信号が立ち下がるタイミングから、当該クロック信号の1周期分となる。
回路52は、FF52aがクロック信号の立ち下がりに同期し、FF52bがクロック信号の立ち上がりに同期するため、FF間のクロック周期はクロック信号が立ち下がるタイミングから、当該クロック信号の半周期分となる。
回路53は、FF53aがクロック信号の立ち上がりに同期し、FF53bがクロック信号の立ちさがりに同期するため、FF間のクロック周期はクロック信号が立ち上がるタイミングから、当該クロック信号の半周期分となる。
FF回路には、リセットセットFF、トグルFF、JKFF、リセットトグルFF、データFF(以下D−FFという)などの種類があるが、本実施の形態ではD−FFを回路に使用する。
図8はクロック信号の立ち上がりに同期して動作するD−FFの回路を示す図である。FF54はFFシンボル図を示し、回路55はFF54の内部回路を示す。FF54は、入力端子D54、出力端子Q54およびFF54をコントロールするクロック入力端子CLK54がある。タイミングチャート56aは、FF54の基本動作を示すタイミングチャートである。FF54は、CLK54がLOWレベルからHIGHレベルに変化したタイミングt1およびt2で、入力端子D54からの入力データが出力端子Q54に伝達される。タイミングt1およびタイミングt2以外の時間は、以前のデータ出力を保持する。
図9はクロック信号の立ち下がりに同期して動作するD−FFの回路を示す図である。FF57はFFのシンボル図を示し、回路58はFF57の内部回路を示す。FF57は、入力端子D57、出力端子Q57およびFF57をコントロールするクロック入力端子CLK57がある。FF57は、CLK57がHIGHレベルからLOWレベルに変化したタイミングt1およびt2で、入力端子D57からの入力データが出力端子Q57に伝達される。タイミングチャート59は、FF57の基本動作を示すタイミングチャートである。タイミングt1およびタイミングt2以外の時間は、以前のデータ出力を保持する。
さらに、FFに信号を入力するタイミング制約について説明する。FFには入力端子Dにデータを出力端子Qに伝達するために、サイクルタイム、セットアップタイム、ホールドタイムおよびアクセスタイムなどのタイミング制約がある。図10は、FFのタイミング制約を説明した表2とタイミングチャート56bである。表2は、FFのタイミング制約についてまとめた表である。タイミングチャート56bは、FF54のクロック周期、セットアップタイム、ホールドタイム及びアクセスタイムを示すタイミングチャートである。クロック入力信号がLOWレベルからHIGHレベルに変化する前後の一定時間内は、入力端子Dのデータを保持する必要がある。よって、FFに正しいデータを出力させるためには、セットアップタイムおよびホールドタイムのタイミング制約を満たさなければならない。
次に、図3のステップS23について説明する。タイミング解析部11は、ステップS21において算出された論理素子の遅延と配線遅延の情報を、ステップS22で抽出されたパス毎に加算し、パス毎の総遅延時間を算出する。そしてタイミング解析部11は、ステップS22で記憶したFF間のクロック周期、セットアップタイムおよびホールドタイムの情報を参照して、レイアウトにおけるタイミング制約違反の有無を検出する。そして、タイミング解析部11は、タイミング制約違反の有無を検出し、検出した結果を、パスの各論理素子の遅延時間、基点、終点およびタイミング制約などの条件と共に記憶する。
図11は図5のFF36を解析対象とした際のFF間のクロック周期およびタイミング制約を示すタイミングチャートである。FF36のFF間のクロック周期は10ns、セットアップタイムは2ns、ホールドタイムは1nsおよびアクセスタイムは1nsである。
FF36にデータが入力される遅延時間の基準は、FF36の前段に接続されたFF(FF32〜35)のデータ変化のタイミング、FF間のクロック周期の1周期前となる。
FF36の入力端子Dのセットアップタイム(tS)を満足させるためには、データパスの最大遅延時間とFF36のセットアップタイム(tS)とを加算した値がFF間のクロック周期より小さければよい。FF36の入力端子Dにデータが伝達されるまでの時間である、簡単のために、図6の回路30bのパス90〜93の遅延時間はそれぞれ、4ns、4ns、2ns、3nsであるとする。FF36がセットアップタイムの制約を満たすためには、以下の式を満足させる必要がある。
"クロック周期"≧"最大遅延時間+FF36のセットアップタイム" …式(1)
ここで、FF間のクロック周期は10ns、最大遅延時間は4ns、FF36のセットアップタイムは2nsとなるため、
10ns≧4ns+2ns
となり、FFのセットアップタイムの制約を満たす。
ここで、FF間のクロック周期は10ns、最大遅延時間は4ns、FF36のセットアップタイムは2nsとなるため、
10ns≧4ns+2ns
となり、FFのセットアップタイムの制約を満たす。
また、FF36のホールドタイムの制約を満たすためには、パス最小遅延時間がホールドタイムより大きければよい。よって、以下の式を満足させる必要がある。
"最小遅延時間"≧"FFのホールドタイム" …式(2)
ここで、最小遅延時間は2ns、FF36のホールドタイムは1nsとなるため、
2ns≧1ns
となり、FF36のパスはホールドタイムの制約を満たす。FF36のパスはタイミング制約を満たすため、処理は終了となる。
ここで、最小遅延時間は2ns、FF36のホールドタイムは1nsとなるため、
2ns≧1ns
となり、FF36のパスはホールドタイムの制約を満たす。FF36のパスはタイミング制約を満たすため、処理は終了となる。
次に、ステップS24について説明する。ステップS23において、解析対象のFFに接続されたパスがタイミング制約を満たさなかった場合、すなわち式(1)及び式(2)を満たさなかった場合には、タイミング解析部11を参照し、タイミング制約違反パスの終点であるFFと、その前段に接続された論理素子を、解析対象の素子として抽出する。図12は、タイミング制約違反パスを有する回路60の図である。回路60はFF61〜64と、組み合わせ回路65と、3入力AND66とを有している。FF61および62の出力端子Qは3入力ANDの入力端子AおよびBに接続されている。FF63の出力端子Qは組み合わせ回路65の入力端子Aに接続され、組み合わせ回路65の出力端子Yは3入力AND66の入力端子Cに接続されている。3入力AND66の出力端子YはFF64の入力端子Dに接続されている。
タイミング違反パスがFF61からFF64のパス67と、FF62からFF64のパス68である場合を説明する。この場合、FF64と、その前段に接続されている3入力AND66を解析対象素子として抽出する。
次に、ステップS25について説明する。図13は本実施の形態にかかるステップS25を示すフローチャートである。
まず、タイミング解析部11は、解析対象のFF64の入力端子Dに関するタイミング情報と、パス毎に算出した総遅延時間とを参照して、タイミング制約違反を修正する為に必要な遅延時間を算出する。そして、ライブラリ情報16を参照し、算出したタイミング制約違反を解消するのに必要な遅延素子、遅延素子数および実際に追加される追加遅延時間を求める。(ステップS250)。タイミング情報とは、タイミング制約違反パスおよびそのパスに含まれる各論理素子の遅延時間、セットアップタイム、ホールドタイムおよび遅延素子の遅延時間などの情報である。
上記で求めたタイミング制約違反を修正する為に必要な遅延時間から求めた遅延素子と遅延素子数を以下、追加遅延素子、追加遅延素子数ともいう。遅延時間は、式(3)で求める。
"追加遅延時間"="遅延素子の遅延時間×遅延素子数" …式(3)
複数の遅延素子を使用する場合は、各遅延素子の遅延時間の総和を追加遅延時間とする。追加遅延時間は、タイミング制約違反を修正する為に必要な遅延時間より大きくなければならない。よって式(4)で遅延時間が追加遅延時間より長いかどうか判定する。
複数の遅延素子を使用する場合は、各遅延素子の遅延時間の総和を追加遅延時間とする。追加遅延時間は、タイミング制約違反を修正する為に必要な遅延時間より大きくなければならない。よって式(4)で遅延時間が追加遅延時間より長いかどうか判定する。
"追加遅延時間"≧"遅延時間" …式(4)
例えば、2ns分の遅延素子GL2N0 1個と1ns分の遅延素子GL1N0 1個を用いて各々遅延時間の総和である遅延時間3nsが追加の遅延素子の遅延時間として求まる。
例えば、2ns分の遅延素子GL2N0 1個と1ns分の遅延素子GL1N0 1個を用いて各々遅延時間の総和である遅延時間3nsが追加の遅延素子の遅延時間として求まる。
追加遅延素子を挿入する際、最低限追加しなければならない遅延時間は、タイミング制約違反の時間3nsである。この3nsを追加するために、ライブラリ情報16に登録されている遅延素子を組み合わせて挿入する。よって、実際に追加される遅延素子の総遅延時間は、3nsに一致しない。本実施の形態では、予め登録されたライブラリ情報16に3nsの遅延時間を有する遅延素子が存在せず、遅延時間2nsの遅延素子69および遅延時間1nsの遅延素子70がライブラリ情報16に登録されていることとする。
追加遅延素子は、タイミング制約違反を解消するために必要な遅延時間ごとに、適正な遅延時間を持つ遅延素子を設計し使用することも可能であるが、設計期間が大幅に増加する為、予め使用する論理素子および遅延素子をライブラリ情報16に記憶して設計する。なお、3nsの遅延時間を持つ遅延素子がライブラリ情報16に登録されている場合は、1個の遅延素子で回路を構成してもよい。
また、ステップS250で求めた遅延時間の回路は、まだレイアウトを実施していない為、正確な配線の遅延を見積もることができない。したがって、ステップS250では、配線の遅延時間を考慮していない遅延素子の基本遅延時間又は、予めチップの大きさから求めたレイアウトの配線長を用いて計算した遅延時間を用いる。
次に、ステップS250で入手した情報をもとに、追加遅延時間を挿入しても新たなタイミング制約違反が発生しないかを判定する(ステップS251)。ステップS251は、タイミング解析部11で求めた解析対象のFF64の入力端子Dに関するタイミング情報と、パス毎に算出した総遅延時間と、ステップS250で求めた遅延素子の回路構成による遅延時間から、セットアップタイムおよびホールドタイムの制約に違反していないか判定する。
セットアップタイム側のタイミング制約違反の判定は、式(5)で行う。ホールドタイム側のタイミング制約違反の判定は、式(6)行う。
"クロック周波数"≧"(タイミング制約違反パスの遅延時間+追加遅延時間)+論理素子のセットアップタイム" …式(5)
"タイミング制約違反パスの遅延時間+追加遅延時間"≧"論理素子のホールドタイム" …式(6)
式(5)および(6)の判定でどちらか一方でも成立しない場合(ステップS251:否)は、タイミング制約違反パスの遅延素子の挿入箇所を現在の解析対象素子の入力端子から前段の論理素子の入力端子に解析対象を変更(例えば、FF64の入力端子Dから、前段の3入力AND66の入力端子Aへ変更する)し、ステップS250からの処理を繰り返す(ステップS266)。
"タイミング制約違反パスの遅延時間+追加遅延時間"≧"論理素子のホールドタイム" …式(6)
式(5)および(6)の判定でどちらか一方でも成立しない場合(ステップS251:否)は、タイミング制約違反パスの遅延素子の挿入箇所を現在の解析対象素子の入力端子から前段の論理素子の入力端子に解析対象を変更(例えば、FF64の入力端子Dから、前段の3入力AND66の入力端子Aへ変更する)し、ステップS250からの処理を繰り返す(ステップS266)。
上述したように、FFのホールドタイムは、FFの入力データを正しくFFの出力端子に伝達するために入力データを保持していなければならない最小の時間である。FFは、この時間以上データを保持していれば回路は正しく動作する。"タイミング制約違反の時間=追加の遅延時間"となることがタイミングおよび回路規模の増加がベストの状態であるが、本実施の形態では、ステップS250で説明したように、予めに登録されているライブラリ情報の遅延素子を使用するため、"タイミング制約違反の時間=追加の遅延時間"にすることは、極めて困難である。よって、できるだけタイミング制約違反の時間より追加の遅延時間が大きく"タイミング制約違反の時間=追加の遅延時間"に近い値で調整する。
式(5)および(6)がどちらも成立した場合(ステップS251:可)は、解析対象素子3入力AND66が複数の入力端子を持つ論理素子かをライブラリ情報16を参照して判定する(ステップS252)。入力端子数の判定は、式(7)で求める。
"入力端子数">1 …式(7)
式(7)の判定で成立しない場合(ステップS252:No)は、ネットリスト15に記憶した情報を参照して解析対象素子と前段の論理素子の間、あるいは、解析対象素子と後段の論理素子の間にステップS250で求めた追加遅延素子を挿入する(ステップS262)。
式(7)の判定で成立しない場合(ステップS252:No)は、ネットリスト15に記憶した情報を参照して解析対象素子と前段の論理素子の間、あるいは、解析対象素子と後段の論理素子の間にステップS250で求めた追加遅延素子を挿入する(ステップS262)。
式(7)の判定が成立する場合(ステップS252:Yes)は、3入力AND66のすべての入力端子に関するタイミング情報を入手する(ステップS253)。ステップS22と同様に、3入力AND66のすべての入力端子に接続されるパスの各論理素子の遅延時間、セットアップタイム、ホールドタイムおよび遅延素子の遅延時間情報をネットリスト15、ライブラリ情報16、タイミング制約情報17、およびタイミング解析部11から入手する。ステップS253で新たに抽出されたタイミング制約違反パスのタイミング制約違反を修正するために必要な遅延時間から、ステップS250と同様にして、遅延素子、遅延素子数および実際に追加される追加遅延時間を求める。
ここで、具体的には、FF61の出力端子QからFF64の入力端子Dのパスにタイミング制約違反時間である3nsの遅延時間分として、2nsの遅延素子69と1nsの遅延素子70とFF62の出力端子QからFF64の入力端子Dのパスにタイミング制約違反分の遅延時間である2nsの遅延時間分として、2nsの遅延素子69aが求まる。
次に、ステップS253で入手した情報をもとに解析対象素子3入力AND66のすべての入力端子でホールドタイムのタイミング制約違反パスが複数あるかを判定する(ステップS254)。判定式を、式(8)、式(9)、式(10)に示す。タイミング制約違反パスが2パス以上あり、入力端子の数よりも少ない場合は、パスを共通化する。
"タイミング制約違反パス数"≦"1" …式(8)
"1"<"タイミング制約違反パス数"<"入力端子数" …式(9)
"タイミング制約違反パス数"="入力端子数" …式(10)
"タイミング制約違反パス数"≦"1" …式(8)
"1"<"タイミング制約違反パス数"<"入力端子数" …式(9)
"タイミング制約違反パス数"="入力端子数" …式(10)
式(8)の判定が成立する場合、解析対象素子と前段の論理素子の間にステップS250で求めた追加遅延素子を挿入する(ステップS263)。
式(10)の判定が成立する場合、ステップS263で解析対象素子と後段の論理素子の間にステップS250で求めた追加遅延素子を挿入する(ステップS264)。
式(9)の判定が成立する場合、共通化のために追加する論理素子と解析対象素子を含めの同一論理となる論理素子をライブラリ情報16から選択する。まず、解析対象素子のタイミング制約違反のある入力端子(以下、解析対象端子という)数から追加する論理素子の入力端子数を決定する。(ステップS265)
図14はライブラリ情報16に記憶された正論理(例えば、ANDの論理素子、ORの論理素子など)と不論理(例えば、NANDの論理素子、NORの論理素子など)の論理素子対応を示す表3である。解析対象素子が正論理である場合(ステップS255:正論理)、解析対象素子の論理を、追加する論理素子の論理に適応する(ステップS256)。例えば、3入力AND66の場合、ANDを選択する。
具体的には、図12に示す3入力AND66の場合は、タイミング制約違反のある入力端子の数が2本であることが判断できるため、解析対象端子の数は2本となり、図14に示す2入力ANDを追加の論理素子として選択する。
解析対象素子が負論理であった場合(ステップS255:負論理)、解析対象素子の論理を反転した論理を追加の論理素子の論理として適応するか又は、解析対象素子の論理と反転論理で構成した論理構成を選択する(ステップS257)。
解析対象素子の論理で構成した論理構成を適応する場合について説明する。例えば、解析対象素子がNANDの論理素子の場合は、ANDの論理素子で追加の論理を適用する。解析対象素子がNORの論理素子の場合は、ORの論理素子で追加の論理素子を選択する。
追加の論理素子の選択方法について、予めライブラリ情報16に登録している論理素子を使用するため、必ず反転論理の素子を対で準備していない場合があり、この場合、インバータの論理素子を使用して論理を構成する必要がある。解析対象素子の論理と反転論理で構成した論理構成を適応する場合について説明する。例えば、解析対象素子がNANDの論理素子の場合は、NANDの論理素子とインバータの論理素子で追加の論理を適用する。解析対象素子がNORの論理素子の場合は、NORの論理素子とインバータの論理素子を適用する。
具体的には、図14に示す4入力NAND72の場合は、解析対象素子の論理と同じ論理の論理素子4入力NAND73aおよびインバータ73bを追加する回路73として適応する。
ステップS256またはステップS257で追加の論理素子を選択した後、次に追加した論理素子の遅延時間を考慮して、解析対象素子の入力端子においてすべてのタイミング制約違反パスで新たなタイミング制約違反が発生しないかを判定する(ステップS258)。
セットアップタイム側のタイミング制約違反の判定は、式(11)で求める。
"クロック周波数"≧"(タイミング制約違反パスの遅延時間+追加遅延時間+追加の論理素子の遅延時間)"+"セットアップタイム"…式(11)
"クロック周波数"≧"(タイミング制約違反パスの遅延時間+追加遅延時間+追加の論理素子の遅延時間)"+"セットアップタイム"…式(11)
ホールドタイム側のタイミング制約違反の判定は、式(12)で求める。
"タイミング制約違反パスの遅延時間+追加遅延時間+追加の論理素子の遅延時間"≧"素子のホールドタイム" …式(12)
すべての入力端子で式(11)、式(12)のどちらか一方でも成立しない場合(ステップS258:否)は、解析対象素子と前段の論理素子の間にステップS250で求めた追加の遅延素子を挿入する(ステップS263)。
"タイミング制約違反パスの遅延時間+追加遅延時間+追加の論理素子の遅延時間"≧"素子のホールドタイム" …式(12)
すべての入力端子で式(11)、式(12)のどちらか一方でも成立しない場合(ステップS258:否)は、解析対象素子と前段の論理素子の間にステップS250で求めた追加の遅延素子を挿入する(ステップS263)。
ここでは、ステップS256およびS257で選択した論理素子と、ステップS250で求めた追加の遅延素子を挿入する為、タイミング制約違反分より遅延時間がステップS256またはS257で選択した論理素子の遅延時間分増加する。
式(11)および式(12)の両方が成立した場合(ステップS258:可)は、論理素子修正部13で、タイミング制約違反パスの接続を新たに追加する論理素子の入力端子に変更する。これにより、複数のタイミング制約違反パスを3入力AND66と2入力AND71の間で共通化する(ステップS259)。
具体的には、論理素子修正部13は、ネットリスト15に記憶した3入力AND66の入力端子AおよびBの接続を切断し、2入力AND71の入力端子AおよびBに接続する。
次に、新たに追加した論理素子を含め論理回路全体の論理が等価になるようにオープンになっている1つあるいは複数の解析対象端子をプルアップ/プルダウン/ショートの処理を行う。ここで、タイミング制約違反がないパスの状態を保持するため配線は変更しない(ステップS260)。
具体的には、図12に示す3入力AND66の入力端子Aおよび入力端子Bに接続されていたネットのどちらか一方のオープンになっている入力端子をプルアップ処理する。
論理素子のオープンになっている入力端子の処理について、解析対象素子がANDまたはNANDである場合は、プルアップ処理または他の入力端子とショートし、解析対象素子がORまたはNORである場合は、プルダウン処理または他の入力端子とショートする。
次に、解析対象素子の入力端子と追加論理素子の出力端子の間にステップS250で求めた追加の遅延素子を挿入する(ステップS261)。
具体的には、3入力AND66の入力端子Aと2入力AND71の出力端子Yの間に、タイミング制約違反分の遅延時間分として遅延素子69および70を接続する。
上記の処理により、論理素子を配置および配線したレイアウトでタイミング制約違反パスに挿入する遅延素子の個数が削減でき、結果として面積削減が可能となる。図15は本実施の形態にかかる設計後の回路85を示す図であり、図16は従来の方法で設計した回路74を示す図である。
さらに、修正箇所をタイミング制約違反パスのネットリストの配置と配線のみにすることが可能となる。
なお、2入力AND71の入力端子Aと入力端子Bに接続するネットは、入れ換えて接続されてもよい。また、3入力AND66の入力端子Aと入力端子Bに接続されるネットと、一方の端子のプルアップ処理は、入れ換えて接続されてもよい。また、3入力AND66の入力端子Aと入力端子Bとをショートして接続してもよい。遅延素子69と70の順序は、入れ換えてもよい。
図12の回路60で、パス67にホールドタイムのタイミング制約違反が3nsあり、パス68にホールドタイムのタイミング制約違反が2ns存在するとして、従来例と本発明と対比して本発明の効果を説明する。以下の説明文で使用しているGridとは、レイアウトで使用する最小面積単位である。一例として、1Grid=1.5um×1.5um2とする。
使用する遅延素子GLAの遅延時間GLANSが0.348ns、Grid GLAGRが13Gridとする。また、使用する遅延素子GLBの遅延時間GLBNSが0.217ns、Grid GLBGRが12Gridとしてタイミング制約違反の時間分の遅延時間と面積を求める。
3ns分の遅延素子GL3Nの遅延時間GL3NSおよび面積GL3UMは、以下のように2ns分の遅延素子GL2N0と1ns分の遅延素子GL1N0を加算したものになる。
3ns分の遅延素子の遅延時間GL3NSは、
GL3NS=GL2NS0+GL1NS0
=(0.348ns×8個)+(0.217ns×1個)
= 3.001ns …式a1
遅延素子の個数:9個
3ns分の遅延素子GL3NのGrid GL3GRは、
GL3GR=GL2NS0+GL1NS0
=(13Grid×8個)+(12Grid×1個)
=116Grid …式a2
3ns分の遅延素子GL3Nの面積GL3UMは、
GL3UM=GL3GR×1.5um×1.5um
=116Grid×1.5um×1.5um
=261um2 …式a3
2ns分の遅延素子GL2N1の遅延時間GL2NSおよび面積GL2UMは、以下のようになる。
GL3NS=GL2NS0+GL1NS0
=(0.348ns×8個)+(0.217ns×1個)
= 3.001ns …式a1
遅延素子の個数:9個
3ns分の遅延素子GL3NのGrid GL3GRは、
GL3GR=GL2NS0+GL1NS0
=(13Grid×8個)+(12Grid×1個)
=116Grid …式a2
3ns分の遅延素子GL3Nの面積GL3UMは、
GL3UM=GL3GR×1.5um×1.5um
=116Grid×1.5um×1.5um
=261um2 …式a3
2ns分の遅延素子GL2N1の遅延時間GL2NSおよび面積GL2UMは、以下のようになる。
2ns分の遅延素子GL2N1の遅延時間GL2NSは、
GL2NS=0.348ns×6個=2.088ns …式a4
遅延素子の個数:6個
2ns分の遅延素子GL2N1のGrid GL2GRは、
GL2GR=13Grid×6個=78Grid …式a5
2ns分の遅延素子GL2N1の面積GL2UMは、
GL2UM=GL2GR×1.5um×1.5um
=78Grid×1.5um×1.5um
=175.5um2 …式a6
従来技術でタイミング制約違反を修正した場合、図16のように3ns分の遅延素子GL3N(GL2N0+GL1N0)と2ns分の遅延素子GL2N1が並列で挿入されるため、増加する面積S1は、式a3と式a6の合計となる。
S1=GL3UM+GL2UM
=261um2+175.5um2=436.5um2 …式a7
増加素子の個数:15個
本実施の形態の方法でタイミング制約違反を修正した場合、図3のように3ns分の遅延素子GL3N(GL2N0+GL1N0)が2ns分の遅延素子GL2N1と共通の遅延素子として挿入されるため、増加する面積S2は、追加の2入力ANDの論理素子GA2の面積GA2UMと遅延素子GL3Nの面積GL3UMの合計となる。
2入力ANDの論理素子GA2の面積GA2UMは、
2入力ANDの論理素子GA2のGridが6Gridである為
GA2UM=6Grid×1.5um×1.5um=13.5um2…式a8
増加する面積S2は、
S2=GL3UM+GA2UM
=261um2+13.5um2=274.5um2 …式a9
増加素子の個数:10個
本発明による面積削減効果は、式a7と式a9の差分で表され
436.5um2−274.5um2=162um2
となる。
GL2NS=0.348ns×6個=2.088ns …式a4
遅延素子の個数:6個
2ns分の遅延素子GL2N1のGrid GL2GRは、
GL2GR=13Grid×6個=78Grid …式a5
2ns分の遅延素子GL2N1の面積GL2UMは、
GL2UM=GL2GR×1.5um×1.5um
=78Grid×1.5um×1.5um
=175.5um2 …式a6
従来技術でタイミング制約違反を修正した場合、図16のように3ns分の遅延素子GL3N(GL2N0+GL1N0)と2ns分の遅延素子GL2N1が並列で挿入されるため、増加する面積S1は、式a3と式a6の合計となる。
S1=GL3UM+GL2UM
=261um2+175.5um2=436.5um2 …式a7
増加素子の個数:15個
本実施の形態の方法でタイミング制約違反を修正した場合、図3のように3ns分の遅延素子GL3N(GL2N0+GL1N0)が2ns分の遅延素子GL2N1と共通の遅延素子として挿入されるため、増加する面積S2は、追加の2入力ANDの論理素子GA2の面積GA2UMと遅延素子GL3Nの面積GL3UMの合計となる。
2入力ANDの論理素子GA2の面積GA2UMは、
2入力ANDの論理素子GA2のGridが6Gridである為
GA2UM=6Grid×1.5um×1.5um=13.5um2…式a8
増加する面積S2は、
S2=GL3UM+GA2UM
=261um2+13.5um2=274.5um2 …式a9
増加素子の個数:10個
本発明による面積削減効果は、式a7と式a9の差分で表され
436.5um2−274.5um2=162um2
となる。
本発明の設計方法の実施後の遅延素子数は、下の計算で示す通り15個から10個になり、タイミング制約違反修正のための遅延素子の挿入個数が削減され、面積は、72Grid(162um2)の削減が可能である。
本発明の実施の形態2
以下、図面を参照して本実施の形態について説明する。図17は、本実施の形態にかかる回路設計装置1としての回路設計プログラム7を示す図である。図18は、本実施の形態にかかるステップS25の詳細を示すフローチャートである。本実施の形態にかかる回路設計プログラム7は、実施の形態1の回路設計プログラム6に加え、テーブル情報75を有している。テーブル情報75は、テーブル毎に、解析対象素子、解析対象端子の数および解析対象端子がタイミング制約違反を解消する為に必要とする遅延時間から、新たに追加する論理素子、追加する論理素子および遅延素子の挿入する場所、新たな配線および元の解析対象素子でオープンとなる端子の処理方法を記憶している。
以下、図面を参照して本実施の形態について説明する。図17は、本実施の形態にかかる回路設計装置1としての回路設計プログラム7を示す図である。図18は、本実施の形態にかかるステップS25の詳細を示すフローチャートである。本実施の形態にかかる回路設計プログラム7は、実施の形態1の回路設計プログラム6に加え、テーブル情報75を有している。テーブル情報75は、テーブル毎に、解析対象素子、解析対象端子の数および解析対象端子がタイミング制約違反を解消する為に必要とする遅延時間から、新たに追加する論理素子、追加する論理素子および遅延素子の挿入する場所、新たな配線および元の解析対象素子でオープンとなる端子の処理方法を記憶している。
図19は、テーブル情報75を示す図である。テーブル1は、解析対象素子の3入力AND76の入力端子AおよびBがタイミング制約違反の入力端子である場合に、3入力AND76の入力端子Aと追加する2入力AND77の出力端子Yとを接続する情報を有する。そして、当該新しく接続した3入力AND76の入力端子Aと、追加する2入力AND77の出力端子Yの間を、タイミング制約違反分の遅延素子を挿入する位置L11の情報を有する。さらに、3入力AND76の入力端子BをHIGHに接続してプルアップ処理する情報を有する。
テーブル2は、解析対象素子の4入力ANDの78の入力端子AおよびBがタイミング制約違反の入力端子である場合に、4入力AND78の入力端子Aと追加する2入力AND79の出力端子Yとを接続する情報を有する。そして、当該新しく接続した4入力AND78の入力端子Aと、追加する2入力AND79の出力端子Yの間を、タイミング制約違反分の遅延素子を挿入する位置L21の情報を有する。さらに、4入力AND78の入力端子BをHIGHに接続してプルアップ処理する情報を有する。
テーブル3は、解析対象素子の5入力NOR80の入力端子B、CおよびEがタイミング制約違反の入力端子である場合に、5入力NOR80の入力端子Bと追加した3入力NOR81の出力端子Yを接続する情報を有する。そして、当該新しく接続した5入力NOR80の入力端子Bと、追加した3入力NOR81の出力端子Yの間を、タイミング制約違反分の遅延素子を挿入する位置L31の情報を有する。さらに、5入力NOR80の入力端子CおよびEをプルダウン処理する情報を有する。
次に、実施の形態2の動作について説明する。図18において、図13と同一の符号は、同一の処理及び情報を示す。ステップS21からステップS254までの動作は、実施の形態1と同様である。
まず、レイアウトステップS21からタイミング制約違反数確認ステップS254まで処理を行う。タイミング制約違反数確認ステップS254で、図12に示す解析対象素子3入力AND66で式(9)が成立する場合について説明する。
実施の形態1と異なり、実施の形態2では、ステップS255ではなく、図19のテーブル情報75の有する情報から、解析対象素子の3入力AND66と同じテーブル1の変換後の論理構成の情報を入手する(ステップS270)。
次に、テーブル1から求めた新たに追加する論理素子および遅延素子の情報をもとに配線を変換する(ステップS258〜261)。追加の論理素子と入力端子の制御方法の選択を予めテーブルに記憶させていることで、処理を容易にすることが可能である。
また、本実施の形態においては、解析対象端子の数が増加しても挿入する遅延素子の数を抑制し、それにより回路面積の増加を抑制することができる。解析対象端子の数が2本よりも多い場合、たとえば3本、4本と増えた場合にも適用することができる。なぜなら、複数のタイミング制約違反パスを共通化する場合も、共通化する前の回路と論理等価となるように追加する論理構成を構築できるからである。
一例として、図19のテーブル3で、3本の入力端子を共通化する場合について説明する。
実施の形態2において、ステップS270で、図19のテーブル3を選択した場合に、入力端子B3、C3、E3〜出力端子Y3を経由したパスで、タイミング違反がそれぞれ2nsであったとする。遅延時間と論理素子の増加は以下のようになる。
3入力ORの面積:20.25um2
2nsの遅延素子の面積:175.5um2
(i)共通化しない場合
2nsの遅延素子が3箇所に必要となり、増加する面積は、
175.5um2×3箇所=526.5um2
(ii)共通化する場合
共通化のための論理素子の3入力ORと2nsの遅延素子が1箇所に必要となり、増加する面積は、
20.25um2+175.5um2×1箇所=195.75um2
共通化することで、330.75um2の削減が可能となる。
2nsの遅延素子の面積:175.5um2
(i)共通化しない場合
2nsの遅延素子が3箇所に必要となり、増加する面積は、
175.5um2×3箇所=526.5um2
(ii)共通化する場合
共通化のための論理素子の3入力ORと2nsの遅延素子が1箇所に必要となり、増加する面積は、
20.25um2+175.5um2×1箇所=195.75um2
共通化することで、330.75um2の削減が可能となる。
解析対象端子が4本である場合でも、共通化するための論理素子が大きくなるが、基本的に追加する論理素子の入力端子を増加することで対応できる。解析対象端子を共通化すための論理素子は大きくなるが、遅延素子が共通化されることにより、全体として論理素子の増加を抑制することができる。
実施の形態3
本実施の形態では、解析対象端子が複数あり、かつタイミングの遅延時間の大きさが端子によって異なる場合に、挿入可能となるまで遅延素子の遅延時間を変更し、挿入可能となった場合に、追加の論理素子の入力端子と出力端子に遅延素子を分割して挿入する。
本実施の形態では、解析対象端子が複数あり、かつタイミングの遅延時間の大きさが端子によって異なる場合に、挿入可能となるまで遅延素子の遅延時間を変更し、挿入可能となった場合に、追加の論理素子の入力端子と出力端子に遅延素子を分割して挿入する。
共通の遅延素子では追加の遅延時間が不十分な場合には、不足する遅延時間を補うため、さらに遅延素子を挿入する。
実施の形態3の全体を示すフローチャートは、実施の形態1と同様である。図20は、実施の形態3にかかるステップS25の詳細な動作を示すフローチャートである。
図20において、図13と同一の符号は、同一の処理及び情報を示す。実施の形態3ではステップS265とステップS250からステップS257まで実施の形態1と同様の動作を行う。
ステップS258では、すべての解析対象端子で、式(11)および式(12)のどちらか一方でも成立しない場合は、実施の形態1と異なり、すべての解析対象端子に挿入する遅延時間と出力側に挿入する遅延時間を分割する処理を行う(ステップS290〜ステップS291)。
すべての解析対象端子の遅延時間を分割する処理が終了していない場合(ステップS290:No)、解析対象端子の数だけ、遅延時間を分割する処理を行う(ステップS291)。ステップS291は、タイミング制約違反を解消する為に挿入する遅延時間を分割し、解析対象素子の入力端子側に共通に挿入することができる共通遅延時間を算出する。共通遅延時間は、ステップS250で求めた追加遅延時間とステップS253で求めた追加遅延時間の大きい方から選択をする。
遅延時間の分割を行い(ステップS291)、共通遅延時間と解析対象素子のタイミング制約違反パスのタイミング制約違反を解消する為に必要な遅延時間との差分(以下、差分遅延時間)を新たな追加遅延時間とする(ステップS258)。
具体的には、解析対象素子のタイミング制約違反を修正する為に必要な遅延時間と共通遅延時間の差分からタイミング情報入手1ステップS250と同様、遅延素子と遅延素子数と実際に追加される差分遅延時間を求める。
上記で求めたタイミング制約違反を修正するために必要な共通遅延時間から求めた遅延素子と遅延素子数を以下、共通遅延素子と呼ぶ。また、タイミング制約違反を修正するために必要な差分遅延時間から求めた遅延素子と遅延素子数を以下、差分遅延素子と呼ぶ。上記で求めた差分遅延時間と追加論理素子の遅延時間の総和で新たなタイミング制約違反が発生しない場合、(ステップS258:可)、共通の論理素子を挿入する(ステップS259)。
ここで、すべての解析対象素子に対し、全てのパスに対して遅延時間を分割しても新たに論理素子又は遅延素子を挿入できない場合(ステップS258:否)であって、すべての解析対象端子の数だけ処理が終了した場合(ステップS290:Yes)は、ステップS263を行い、ステップS250で求めた遅延素子を挿入する。
すべての解析対象端子で式(11)、式(12)が成立した場合は、実施の形態1同様に、論理素子を挿入する(ステップS259)。次に、ステップS260で入力端子の処理を行った後、差分遅延素子を挿入する(ステップS292)。
図21は本実施の形態にかかる回路95を示す図である。ステップS292において、差分遅延素子96と共通遅延素子97を挿入する。図に示すように、解析対象の3入力AND66の入力端子AとステップS259で挿入した2入力AND71の出力端子Yの間に、ステップS291で求めた遅延時間分の共通遅延素子97を挿入する。さらに差分遅延素子96を追加の2入力AND71の入力端子Aに接続する。
追加の論理素子の遅延時間とタイミング制約違反を解消する為に必要な遅延時間を一箇所に挿入した場合では遅延素子の共有ができない場合でもタイミング制約違反を解消する為に必要な遅延時間を共通化する論理素子の入力端子に挿入する遅延時間と出力側に挿入する遅延時間に分割することで、共通に挿入できる遅延時間を求めることができ、さらに面積を削減できる。
本実施の形態においては、解析対象素子を通るパスをタイミング制約違反パスとタイミング制約違反のないパスとに分離し、タイミング制約違反分の遅延素子の挿入箇所を共通化することで遅延素子の挿入数の削減が可能となる。よって、タイミング制約違反修正の遅延素子挿入の面積削減をすることができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
1 回路設計装置
2 コンピュータ装置
3 サーバ
4 記憶媒体
5 ネットワーク
6 回路設計プログラム
7 回路設計プログラム
10 レイアウト部
11 タイミング解析部
12 選択部
13 論理素子修正部
14 回路情報
15 ネットリスト
16 ライブラリ情報
17 タイミング制約情報
18 レイアウト情報
19 配置情報
20 配線情報
30a、30b 回路
31 インバータ
32〜36 FF
37 2入力OR
38 2入力NANDゲート
39 2入力ANDゲート
41〜48 ネット
50a〜53a FF
50b〜53b FF
50c〜53c FF間のタイミングチャート
54 FFシンボル図
55 FFの回路図
56a FFのタイミングチャート
57 FFシンボル図
58 FFの回路図
59a FFのタイミングチャート
60 回路図
61〜64 FF
65 組み合わせ回路
66 3入力AND
67、68 パス
69、69a、70 遅延素子
71 2入力AND
72 4入力NAND
73 回路
73a 4入力NAND
73b インバータ
74 回路
75 テーブル情報
76 3入力AND
77 2入力AND
78 4入力AND
79 2入力AND
80 5入力NOR
81 3入力OR
85 回路
90〜93 パス
95 回路
96 差分遅延素子
97 共通遅延素子
L11〜L31 遅延素子挿入位置
150〜158、163 FF
159、160、161、162、170〜172、174、178、179 AND
164、173、175〜177 バッファ
2 コンピュータ装置
3 サーバ
4 記憶媒体
5 ネットワーク
6 回路設計プログラム
7 回路設計プログラム
10 レイアウト部
11 タイミング解析部
12 選択部
13 論理素子修正部
14 回路情報
15 ネットリスト
16 ライブラリ情報
17 タイミング制約情報
18 レイアウト情報
19 配置情報
20 配線情報
30a、30b 回路
31 インバータ
32〜36 FF
37 2入力OR
38 2入力NANDゲート
39 2入力ANDゲート
41〜48 ネット
50a〜53a FF
50b〜53b FF
50c〜53c FF間のタイミングチャート
54 FFシンボル図
55 FFの回路図
56a FFのタイミングチャート
57 FFシンボル図
58 FFの回路図
59a FFのタイミングチャート
60 回路図
61〜64 FF
65 組み合わせ回路
66 3入力AND
67、68 パス
69、69a、70 遅延素子
71 2入力AND
72 4入力NAND
73 回路
73a 4入力NAND
73b インバータ
74 回路
75 テーブル情報
76 3入力AND
77 2入力AND
78 4入力AND
79 2入力AND
80 5入力NOR
81 3入力OR
85 回路
90〜93 パス
95 回路
96 差分遅延素子
97 共通遅延素子
L11〜L31 遅延素子挿入位置
150〜158、163 FF
159、160、161、162、170〜172、174、178、179 AND
164、173、175〜177 バッファ
Claims (12)
- 回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間の情報を有する回路情報に基づき、当該論理素子を配置・配線してレイアウトを生成し、当該論理素子の配置情報と当該論理素子間の配線情報を格納するレイアウト部と、
前記回路情報と前記レイアウトにおける配置情報・配線情報を参照して、タイミング制約違反の有無を検出するタイミング解析部と、
検出したタイミング制約違反パスの終点から始点に遡りながら、前記回路情報を参照して配置する追加遅延素子を選択する選択部と、
前記タイミング制約違反が発生している複数のパスにおいて共通に前記選択した追加遅延素子が使用できると判断した場合に、当該複数のパスを統合して当該選択した追加遅延素子を配置する論理素子修正部とを有する、回路設計装置。 - 前記回路情報は、前記論理素子間の接続に関する情報、前記論理素子の遅延時間、セットアップタイム、及びホールドタイムを含むライブラリ情報を有する請求項1記載の回路設計装置。
- 前記論理素子は、フリップフロップを含み、
前記回路情報は、回路が使用する動作周波数、及びフリップフロップ間のクロック周期を含むタイミング制約情報を有する請求項1又は2記載の回路設計装置。 - 回路設計に使用する論理素子は、複数のフリップフロップを含み、
前記タイミング解析部は、前記フリップフロップを含む論理回路の遅延時間、複数のフリップフロップのセットアップタイム及びホールドタイムを含むライブラリ情報を参照し、タイミング制約違反の有無を検出する請求項1乃至3のいずれか1項記載の回路設計装置。 - 回路設計に使用する論理素子は、複数のフリップフロップを含み、
前記タイミング制約違反パスの終点がフリップフロップである場合、
前記選択部は、前記フリップフロップを含む論理回路の遅延時間、複数のフリップフロップのセットアップタイム及びホールドタイムを含むライブラリ情報を参照し、前記タイミング違反パスの終点のフリップフロップを解析対象として当該タイミング違反を修正するために必要な遅延時間から前記追加遅延素子を選択し追加遅延素子数を決定する、請求項4記載の回路設計装置。 - 回路設計に使用する論理素子は、複数のフリップフロップを含み、
前記論素子修正部は、回路が使用する動作周波数、及びフリップフロップ間のクロック周期を含むタイミング制約情報、及び前記フリップフロップを含む論理回路の遅延時間、複数のフリップのセットアップタイム及びホールドタイムを含むライブラリ情報を参照し、
クロック周波数≧(タイミング制約違反パスの遅延時間+追加遅延時間)+解析対象のフリップフロップのセットアップタイム
タイミング制約違反パスの遅延時間+追加遅延時間≧解析対象のフリップフロップのホールドタイム
のいずれか一方が成立しない場合に、解析対象を現在の解析対象の前段の論理素子に変更し、
前記タイミング解析部及び選択部は、再度タイミング制約違反の有無を検出し、追加遅延素子を選択する、請求項5記載の回路設計装置。 - 前記選択部は、前記変更された解析対象素子が複数の入力端子を有するか否かを判定し、
1<タイミング制約違反がある入力端子数
タイミング制約違反がある入力端子数<解析対象素子の入力端子数
の両方を満たす場合、当該複数のタイミング制約違反パスを共通化し、追加遅延素子を配置する、請求項6記載の回路設計装置。 - 前記選択部は、前記解析対象素子の論理が同一となるよう、前記共通化のために追加する追加論理素子を選択して追加する、請求項7記載の回路設計装置。
- 前記論理修正部は、前記複数の入力端子に繋がるパスを共通化して浮いた入力端子は、当該論理素子が論理積回路(AND)又は否定論理積回路(NAND)の場合はプルアップ処理又は他の入力端子とショートし、当該論理素子が論理和回路(OR)又は否定論理和回路(NOR)の場合はプルダウン処理又は他の入力端子とショートする、請求項8記載の回路設計装置。
- 前記選択部は、前記変更された解析対象素子が複数の入力端子を有するか否かを判定し、
タイミング制約違反がある入力端子数=1
を満たす場合、前記追加遅延素子を当該解析対象素子と前段の論理素子との間に挿入する請求項6記載の回路設計装置。 - 前記選択部は、前記変更された解析対象素子が複数の入力端子を有するか否かを判定し、
入力端子数=タイミング制約違反がある入力端子数
を満たす場合、前記追加遅延素子を当該解析対象素子と後段の論理素子との間に挿入する請求項6記載の回路設計装置。 - 回路設計に使用する論理素子間の接続情報を含むネットリスト及び当該論理素子の遅延時間の情報を有する回路情報に基づき、当該論理素子を配置・配線してレイアウトを生成し、
前記回路情報を参照して、前記レイアウトにおけるタイミング制約違反の有無を検出し、
検出したタイミング制約違反パスの終点から始点に遡りながら、前記回路情報を参照して配置する追加遅延素子を選択し、
前記タイミング制約違反が発生している複数のパスにおいて共通に前記選択した追加遅延素子が使用できると判断した場合に、当該複数のパスを統合して当該選択した追加遅延素子を配置する、回路設計方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010024009A JP2011164740A (ja) | 2010-02-05 | 2010-02-05 | 回路設計装置及び回路設計方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010024009A JP2011164740A (ja) | 2010-02-05 | 2010-02-05 | 回路設計装置及び回路設計方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011164740A true JP2011164740A (ja) | 2011-08-25 |
Family
ID=44595382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010024009A Pending JP2011164740A (ja) | 2010-02-05 | 2010-02-05 | 回路設計装置及び回路設計方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011164740A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014091538A1 (ja) * | 2012-12-10 | 2014-06-19 | 富士通株式会社 | 設計支援装置、設計支援プログラム、及び設計支援方法 |
CN109800511A (zh) * | 2019-01-23 | 2019-05-24 | 中国人民解放军国防科技大学 | 一种寻找最优公共点的保持时间违反修正方法及系统 |
CN113781354A (zh) * | 2021-09-18 | 2021-12-10 | 北京环境特性研究所 | 图像噪点抑制方法、装置、计算设备及存储介质 |
-
2010
- 2010-02-05 JP JP2010024009A patent/JP2011164740A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014091538A1 (ja) * | 2012-12-10 | 2014-06-19 | 富士通株式会社 | 設計支援装置、設計支援プログラム、及び設計支援方法 |
CN109800511A (zh) * | 2019-01-23 | 2019-05-24 | 中国人民解放军国防科技大学 | 一种寻找最优公共点的保持时间违反修正方法及系统 |
CN109800511B (zh) * | 2019-01-23 | 2023-02-07 | 中国人民解放军国防科技大学 | 一种寻找最优公共点的保持时间违反修正方法及系统 |
CN113781354A (zh) * | 2021-09-18 | 2021-12-10 | 北京环境特性研究所 | 图像噪点抑制方法、装置、计算设备及存储介质 |
CN113781354B (zh) * | 2021-09-18 | 2023-09-22 | 北京环境特性研究所 | 图像噪点抑制方法、装置、计算设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150026654A1 (en) | Hierarchical Verification Of Clock Domain Crossings | |
CN108073762B (zh) | 用于利用经延迟的初始化来验证经重定时的电路的方法 | |
JP2005092885A (ja) | デジタル回路の統計的タイミング解析のためのシステムおよび方法 | |
US20050278681A1 (en) | Method for synthesizing domino logic circuits | |
US8181130B1 (en) | Method for jitter reduction by shifting current consumption | |
JPH09293094A (ja) | レイアウト設計装置 | |
US9342640B1 (en) | Method and apparatus for protecting, optimizing, and reporting synchronizers | |
JP2011164740A (ja) | 回路設計装置及び回路設計方法 | |
JP2000123061A (ja) | 集積回路装置の設計用データベース及び集積回路装置の設計方法 | |
US7100140B2 (en) | Generation of graphical congestion data during placement driven synthesis optimization | |
JP2006004056A (ja) | レイアウト設計装置、レイアウト設計方法、レイアウト設計プログラム、および記録媒体 | |
JP5107080B2 (ja) | 半導体装置 | |
JP2008243092A (ja) | マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム | |
JP2005136286A (ja) | 半導体集積回路の設計方法、及びその装置 | |
JP2012150631A (ja) | 半導体集積回路の設計方法および設計装置 | |
JP4481783B2 (ja) | シミュレーションモデル作成装置及びシミュレーション装置とシステム並びに方法とプログラム | |
Chatterjee et al. | A new incremental placement algorithm and its application to congestion-aware divisor extraction | |
JP2002073712A (ja) | 回路生成装置、回路生成方法及びcad設計装置 | |
JP2002222228A (ja) | 高位合成システム及び高位合成方法 | |
WO2011074044A1 (ja) | 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置 | |
JP5145167B2 (ja) | クロックドメインチェック方法及びクロックドメインチェック用プログラム並びに記録媒体 | |
JP3004589B2 (ja) | パストランジスタ論理設計方法 | |
JP5447209B2 (ja) | スキャンチェーン形成方法、プログラム及び設計支援装置 | |
JP5234806B2 (ja) | 論理シミュレーション装置およびそのシミュレーション方法 | |
JP2001067383A (ja) | 静的タイミング解析方法におけるフォールスパス検出方法およびフォールスパス検査方法 |