JP2004013851A - Lsi設計支援システムおよびプログラム - Google Patents
Lsi設計支援システムおよびプログラム Download PDFInfo
- Publication number
- JP2004013851A JP2004013851A JP2002170612A JP2002170612A JP2004013851A JP 2004013851 A JP2004013851 A JP 2004013851A JP 2002170612 A JP2002170612 A JP 2002170612A JP 2002170612 A JP2002170612 A JP 2002170612A JP 2004013851 A JP2004013851 A JP 2004013851A
- Authority
- JP
- Japan
- Prior art keywords
- information
- lsi
- buffer
- design support
- external
- 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
Abstract
【課題】LSIのインタフェース部分を設計する際の負担を軽減する。
【解決手段】端末1、LSIの外部情報3と内部情報4とライブラリ情報5をデータベースから読み出し、これら外部情報3、内部情報4、ライブラリ情報5を用いてインタフェース部分の設計情報を記録したI/F情報テーブルを自動生成する。この自動生成に際しては、外部信号と内部信号とを対応させるとともに、両信号間に配置するバッファを決定し、両信号名と決定したバッファとを対応させてI/F情報テーブルに記録する。バッファの決定では、ライブラリ情報に記録されているバッファの中から、少なくとも遅延時間の計算値が期待値よりも小さいもの、さらにはその中で計算値が最小のものを選択する。
【選択図】 図1
【解決手段】端末1、LSIの外部情報3と内部情報4とライブラリ情報5をデータベースから読み出し、これら外部情報3、内部情報4、ライブラリ情報5を用いてインタフェース部分の設計情報を記録したI/F情報テーブルを自動生成する。この自動生成に際しては、外部信号と内部信号とを対応させるとともに、両信号間に配置するバッファを決定し、両信号名と決定したバッファとを対応させてI/F情報テーブルに記録する。バッファの決定では、ライブラリ情報に記録されているバッファの中から、少なくとも遅延時間の計算値が期待値よりも小さいもの、さらにはその中で計算値が最小のものを選択する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、LSIの内部回路と外部回路の間のインタフェース部の設計を支援するLSI設計支援システムおよびこれに用いるプログラムに関する。
【0002】
【従来の技術】
従来、LSIの基本的な設計工程は、まず仕様を作成し、LSI内部を機能毎のブロックに分割し、各ブロック間の処理やデータの流れを決定してから、LSIの内部回路の設計をする。次に、設計したLSIの内部回路とそのLSIが実装される基板における外部回路とのインタフェース(I/F)回路を設計するために、両回路間での接続ピンの対応関係を決定する内外部リンク処理を行う。そして、これを検証し、I/F回路の設計を行う。
【0003】
I/F回路の設計では、LSIが実装される基板における接続ピンの情報を、設計者が基板用のCADデータから抽出するか、あるいは予想や仮定をしていた。
【0004】
【発明が解決しようとする課題】
しかしながら、近年のLSIの大規模化に伴い、I/F回路の規模も増大してきたため、I/F回路の設計に膨大な作業時間を費やすようになり、設計者の負担が増大してきている。この弊害として、人為的なミスも発生しやすくなっている。
【0005】
本発明は、上記に鑑みてなされたものであり、その目的とするところは、I/F回路を設計する際の負担の軽減に寄与し得るLSI設計支援システムおよびこれに用いるプログラムを提供することにある。
【0006】
【課題を解決するための手段】
第1の本発明に係るLSI設計支援システムは、LSIの外部情報と内部情報とライブラリ情報を記憶しておく記憶手段と、前記外部情報と前記内部情報と前記ライブラリ情報を用いてLSIのインタフェース部分の設計情報を生成する生成手段と、を有することを特徴とする。
【0007】
本発明にあっては、LSIの外部情報と内部情報とライブラリ情報を記憶手段から読み出し、これらの情報を用いてインタフェース部分の設計情報を自動生成するようにしたことで、インタフェース部分の設計の作業時間が短縮され、手入力による作業が削減されるので、設計者の負担を軽減でき、人為的なミスを低減することができる。
【0008】
第2の本発明は、上記LSI設計支援システムにおいて、前記生成手段は、前記外部情報および前記内部情報を用いてLSIの外部信号名と内部信号名とを対応させ、前記ライブラリ情報を用いて両信号間に配置するバッファを決定し、両信号名と決定したバッファ名とを対応させて記録することにより前記設計情報を生成することを特徴とする。
【0009】
本発明にあっては、外部信号と内部信号間に配置するバッファを決定し、両信号名と決定したバッファ名とを対応させて記録することによって設計情報を生成するようにしている。
【0010】
第3の本発明は、上記LSI設計支援システムにおいて、前記バッファの決定は、前記ライブラリ情報に記録されているバッファのうちで遅延時間の計算値が期待値よりも小さいバッファの中から決定することを特徴とする。
【0011】
第4の本発明は、上記LSI設計支援システムにおいて、前記バッファの決定は、遅延時間の計算値が期待値よりも小さいバッファの中で、計算値が最小のバッファを決定することを特徴とする。
【0012】
第3,第4の本発明にあっては、ライブラリ情報に記録されているバッファの中から、少なくとも遅延時間の計算値が期待値よりも小さいもの、さらにはその中で計算値が最小のものをインタフェース部分に配置するバッファとして決定するようにしたことで、適切なバッファが適用されるようにしている。
【0013】
第5の本発明は、上記各LSI設計支援システムにおいて、前記外部情報は、LSIが設置される基板についての基板情報であることを特徴とする。
【0014】
第6の本発明は、上記LSI設計支援システムにおいて、前記基板情報は、データリスト又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0015】
第5,第6の本発明にあっては、外部情報として、基板の設計において自動生成が可能なデータリスト又は回路図、あるいはその両方を用いるようにしたことで、外部情報を作成する作業を削減し、人為的なミスを低減するようにしている。
【0016】
第7の本発明は、上記各LSI設計支援システムにおいて、前記内部情報は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0017】
本発明にあっては、内部情報として、LSIの設計において自動生成が可能なシステム記述言語又は回路図、あるいはその両方を用いるようにしたことで、内部情報を作成する作業を削減し、人為的なミスを低減するようにしている。
【0018】
第8の本発明は、上記各LSI設計支援システムにおいて、前記インタフェース部分の設計情報を所定の形式で出力する出力手段を有することを特徴とする。
【0019】
本発明にあっては、インタフェース部分の設計情報を所定の形式で出力するようにしたことで、設計情報を利用する際の作業を削減し、人為的ミスを低減するようにしている。
【0020】
第9の本発明は、上記LSI設計支援システムにおいて、前記所定の形式は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0021】
本発明にあっては、インタフェース部分の設計情報をシステム記述言語又は回路図、あるいはその両方により出力するようにしたことで、設計情報を迅速かつ容易に利用できるようにしている。
【0022】
第10の本発明に係るLSI設計支援プログラムは、LSIの外部情報と内部情報とライブラリ情報を記憶する記憶手段からこれらの情報を読み出す読出処理と、外部情報と内部情報とライブラリ情報とを用いてLSIのインタフェース部分の設計情報を生成する生成処理と、をコンピュータに実行させることを特徴とする。
【0023】
第11の本発明は、上記LSI設計支援プログラムにおいて、前記生成処理は、前記外部情報および前記内部情報を用いて外部信号名と内部信号名とを対応させ、前記ライブラリ情報を用いて両信号間に配置するバッファを決定し、両信号名と決定したバッファ名とを対応させて記録することにより前記設計情報を生成することを特徴とする。
【0024】
第12の本発明は、上記LSI設計支援プログラムにおいて、前記バッファの決定は、前記ライブラリ情報に記録されているバッファのうちで遅延時間の計算値が期待値よりも小さいバッファの中から決定することを特徴とする。
【0025】
第13の本発明は、上記LSI設計支援プログラムにおいて、前記バッファの決定は、遅延時間の計算値が期待値よりも小さいバッファの中で計算値が最小のバッファを決定することを特徴とする。
【0026】
第14の本発明は、上記各LSI設計支援プログラムにおいて、前記外部情報は、LSIが設置される基板についての基板情報であることを特徴とする。
【0027】
第15の本発明は、上記LSI設計支援プログラムにおいて、前記基板情報は、データリスト又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0028】
第16の本発明は、上記各LSI設計支援プログラムにおいて、前記内部情報は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0029】
第17の本発明は、上記各LSI設計支援プログラムにおいて、前記インタフェース部分の設計情報を所定の形式で出力する出力処理をコンピュータに実行させることを特徴とする。
【0030】
第18の本発明は、上記LSI設計支援プログラムにおいて、前記所定の形式は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0031】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【0032】
図1は、一実施の形態に係るLSI設計支援システムの全体的な構成を示すブロック図である。同図のシステムは、LSIの設計支援プログラムを実行させるための端末1と各種の情報を記憶したデータベースがネットワーク7を介して接続された構成である。
【0033】
端末1には、パソコン1aやEWS(エンジニアリングワークステーション)1bといったコンピュータが用いられる。データベースには、LSIを実装する基板に関する情報(以下「外部情報」という)3と、LSIの内部に関する情報(以下「内部情報」という)4と、LSI・基板間に用いるバッファ等のインタフェース部分に関する情報(以下「ライブラリ情報」)5が記憶されている。
【0034】
外部情報3は、CAD等により基板を設計したときに自動生成される基板情報が用いられる。基板情報は、例えば図2に示すデータリストや、図3に示す回路図で表される。
【0035】
内部情報4は、CAD等によりLSIの内部を設計したときに自動生成されるLSI情報が用いられる。LSI情報は、VHDLやVerilog、SystemC、SpecCといったシステム記述言語や、図3に示したようなLSI部分の回路図で表される。
【0036】
ライブラリ情報5には、外部信号および内部信号の種別や、図4に示すバッファに関する情報等が含まれる。同図(a)は入力バッファ、同図(b)は出力バッファ、同図(c)は入出力バッファについての情報をそれぞれ示す。
【0037】
端末1のメモリには、LSI・基板間のインタフェース部分の設計を支援する設計支援プログラムが格納されている。端末1は、このプログラムをCPUで実行することによって、データベースから外部情報3、内部情報4、ライブラリ情報5を読み出す処理と、これらの情報を用いてインタフェース部分の設計情報(以下「I/F情報」という)6を生成する処理と、このI/F情報6をシステム記述言語や回路図といった所定の形式で出力する処理を行う。
【0038】
なお、外部情報4、内部情報5、ライブラリ情報5、I/F情報6は、別個のデータベースに分散して記憶してもよいし、1つのデータベースに集中させて記憶するようにしてもよい。
【0039】
図5は、本システムによるI/F回路の設計支援処理の全体的な概要を示すフローチャートである。本処理では、外部情報入力処理(step1)、入力バッファの決定処理(step2)、出力バッファの決定処理(step3)により、図14に示すI/F情報テーブルの空欄に所定事項を順次入力していき、I/F情報の出力処理(step4)により、完成されたI/F情報テーブルに基づいて、I/F情報をシステム記述言語で記述されたファイルや回路図で出力する。以下、各ステップにおける処理について詳細に説明する。
【0040】
[1.外部情報入力処理]
本処理は、外部情報をI/F情報テーブルに入力するとともに内部情報との整合を図る処理であり、手入力と自動入力の切替が可能である。
【0041】
図6は、手入力による外部情報入力処理の一例を示すフローチャートである。まず、操作者は、端末1を用いてI/F情報テーブルのPin番号を入力することによって入力行を特定し、そのPin番号の信号が電源(VDD)又はGND(VSS)か否か判断する(step11〜12)。電源又はGNDならば、I/F情報テーブルの電源欄にVDD又はVSSを入力し、電源又はGNDでない場合には、外部信号名が決まっているか否か、内部信号名が決まっているか否かを判断する(step13〜14)。
【0042】
外部信号名が決定していて、かつ内部信号名も決定しているならば、外部信号名をI/F情報テーブルの外部信号名欄に入力し、内部信号名を内部信号名欄に入力する(step15)。
【0043】
外部信号名が決定していて、内部信号名が決定していないならば、外部信号名をI/F情報テーブルの外部信号名欄に入力し、内部信号名を決定して内部信号名欄に入力する(step16)。
【0044】
外部信号名が決定していなくて、内部信号名が決定しているならば、外部信号名を決定してI/F情報テーブルの外部信号名欄に入力し、内部信号名を内部信号名欄に入力する(step17)。
【0045】
外部信号名が決定していなくて、内部信号名も決定していないならば、外部信号名を決定してI/F情報テーブルの外部信号名欄に入力し、内部信号名を決定して内部信号名欄に入力する(step18)。
【0046】
上記step11〜18までの処理をLSIの全ピンに対して実行したところで、外部信号名と内部信号名との整合性を確認する(step19)。整合が取れていない場合には、step11へ戻って上記処理を繰り返し行い、全ピンについて整合性が確認された場合には本処理を終了する。本処理によって、I/F情報テーブルは、図15に一例を示すように、内部情報と整合性がとれた外部情報が入力された状態となる。
【0047】
図7は、自動入力による外部情報入力処理の一例を示すフローチャートである。ここでは、外部信号名と内部信号名との間には予め取り決めを定めておく。具体的には、内部信号が入力に使われるならば文字列で「内部信号名」=「I」+「外部信号名」で表し、内部信号が出力に使われるならば「内部信号名」=「O」+「外部信号名」で表す。内部信号が入出力の双方に使われるならば「内部信号名」=「Bl」+「外部信号名」等のように表す。
【0048】
まず、端末1は、基板情報からPin番号および外部信号名をPin番号の順に読み出し、Pin番号を変数PinNoに代入し、外部信号名を変数OutNameに代入する(step21〜23)。次に、端末1は、外部信号名が電源又はGNDか否かを判断し、電源又はGNDならばI/F情報テーブルのPin No.欄にPin番号を入力し、電源欄にVDD又はVSSを入力する(step24〜25)。一方、外部信号名が電源又はGNDでない場合には、Pin番号をI/F情報テーブルのPin No欄にPin番号を入力し、外部信号名欄に外部信号名を入力する(step26)。
【0049】
続いて、端末1は、内部情報から内部信号名およびI/Oタイプを読み出し、I/Oタイプを変数IOTypeに代入し、内部信号名を変数InNameに代入する(step27〜29)。
【0050】
端末1は、内部信号のI/Oタイプが入力ならば、内部信号名と「I」+「外部信号名」とを比較し、等しければstep33へ進む。内部信号のI/Oタイプが出力ならば、内部信号名と「O」+「外部信号名」とを比較し、等しければstep33へ進む。内部信号のI/Oタイプが双方向ならば内部信号名と「BI」+「外部信号名」、「BO」+「外部信号名」、「BEN」+「外部信号名」とを比較し、いずれかと等しければstep33へ進む(step30〜32)。step33では、端末1は、内部情報から読み出したI/OタイプをI/F情報テーブルのI/Oタイプ欄に入力し、step34で、内部信号名欄に内部信号名を入力する。
【0051】
上記step28〜34の処理を全ての内部信号について行うか、全ての外部信号名と内部信号名の対応関係が一致するまで繰り返す。この処理が終了したところでステップ21へ戻り、全ての外部信号について上記step21〜34の処理を実行したところで本処理を終了する。本処理によって、I/F情報テーブルは、手入力の場合と同様、図15に示すように、内部情報との整合性が取れた外部情報が入力された状態となる。
【0052】
[2.入力バッファの決定処理]
本処理は、LSIのインタフェース部分の入力バッファの決定に必要な情報をI/F情報テーブルにまとめ、この情報を用いて適切な入力バッファを決定し、その入力バッファ名をI/F情報テーブルのバッファ名称欄に入力するものである。
【0053】
図8は、入力バッファの決定処理の全体的な概要を示すフローチャートである。まず、ライブラリ情報を参照し、外部信号および内部信号の種別を図15に示したI/F情報テーブルに追加する(step41)。ここで、種別とは、クロックか否か、シュミットか否か、プル抵抗が有るか否か、プル抵抗が有る場合はプルアップ抵抗かプルダウン抵抗か、CMOSかTTLか、をいう。このときのI/F情報テーブルの一例を図16に示す。この追加処理は手入力で行ってもよいし、端末1が自動入力するようにしてもよい。
【0054】
続いて、端末1は、I/F情報テーブルから外部信号を一つ選び、外部回路から内部回路へ入力される入力信号が、クロックか否かを判断する(step42)。クロックの場合は、後述するハイドライブ型についての処理を行い、クロックでない場合は、後述するスタンダードドライブ型についての処理を行う(step43,44)。続いて、後述するプル抵抗についての処理を行う(step45)。そして、その外部信号および内部信号についての入力バッファ名を決定し、それをI/F情報テーブルのバッファ名称欄に入力する。上記step42〜45の処理を全ての入力信号について行ったところで本処理を終了する。以下、step43,44,45の処理について詳細に説明する。
【0055】
図9は、step43のハイドライブ型についての処理の一例を示すフローチャートである。まず、端末1は、I/F情報テーブルを用いて入力信号がCMOSレベルかTTLレベルかを判断する。TTLレベルの場合には、入力バッファの入力タイプをTTLレベル入力バッファに決定する(step51〜52)。一方、CMOSレベルの場合には、シュミットトリガタイプか否かを判断する(step53)。シュミットトリガタイプの場合、入力バッファの入力タイプをシュミットトリガCMOSレベル入力バッファに決定し、シュミットトリガタイプでない場合、CMOSレベル入力バッファに決定する(step54〜55)。
【0056】
図10は、step44のスタンダードドライブ型についての処理の一例を示すフローチャートである。まず、端末1は、I/F情報テーブルを用いて入力信号がCMOSレベルかTTLレベルかを判断する(step56)。TTLレベルの場合、シュミットトリガタイプか否かを判断する。シュミットトリガタイプの場合は、入力バッファの入力タイプをシュミットトリガTTLレベル入力バッファに決定し、シュミットトリガタイプでない場合は、TTLレベル入力バッファに決定する(step57〜59)。一方、step56でCMOSレベルと判断した場合には、シュミットトリガタイプか否かを判断し、シュミットトリガタイプの場合は、入力バッファの入力タイプをシュミットトリガCMOSレベル入力バッファに決定し、シュミットトリガタイプでない場合は、CMOSレベル入力バッファに決定する(step60〜62)。
【0057】
図11は、step45のプル抵抗についての処理の一例を示すフローチャートである。端末1は、I/F情報テーブルを用いてプル抵抗の有無と、プル抵抗がある場合にはプルアップ抵抗かプルダウン抵抗かを判断する(step63)。プルアップ抵抗の場合は入力バッファの入力タイプをオプションとしてプルアップ付きとし、プルダウン抵抗の場合はプルダウン付きとし、プル抵抗がない場合はオプションを付けない(step64〜66)。
【0058】
次に、上記の入力バッファの決定処理について具体例を用いて説明する。ここでは、端末1が、図16のI/F情報テーブルに示した外部信号I1〜I4についてバッファ名称を決定し、それをI/F情報テーブルのバッファ名称欄に入力する処理について説明する。
【0059】
1.まず、端末1は、外部信号I1についてクロックか否かを調べる。ここでは、図16のI/F情報テーブルから外部信号I1はクロックである。
【0060】
2.次に、外部信号I1がCMOSレベルかTTLレベルかを調べる。図16のI/F情報テーブルから外部信号I1はCMOSレベルである。
【0061】
3.次に、外部信号I1がシュミットトリガか否かを調べる。図16のI/F情報テーブルから外部信号I1はシュミットトリガではない。
【0062】
4.次に、外部信号I1のプル抵抗について調べる。図16のI/F情報テーブルから外部信号I1にはプル抵抗は付かない。
【0063】
5.上記1〜4の処理により、端末1は、外部信号I1の入力タイプを、ハイドライブ型CMOSレベル入力バッファに決定する。オプションとしてのプル抵抗は付けない。
【0064】
6.続いて、端末1は、外部信号I2についてクロックか否かを調べる。図16のI/F情報テーブルから外部信号I1はクロックではない。
【0065】
7.次に、外部信号I2がCMOSレベルかTTLレベルかを調べる。図16のI/F情報テーブルから外部信号I2はCMOSレベルである。
【0066】
8.次に、外部信号I2がシュミットトリガか否かを調べる。図16のI/F情報テーブルから外部信号I2はシュミットトリガではない。
【0067】
9.次に、外部信号I2のプル抵抗について調べる。図16のI/F情報テーブルから外部信号I2にはプルアップ抵抗が付く。
【0068】
10.上記6〜9の処理により、端末1は、外部信号I2の入力タイプを、スタンダードドライブ型CMOSレベル入力バッファに決定する。また、オプションとしてプルアップ抵抗を付ける。
【0069】
11.続いて、端末1は、外部信号I3についてクロックか否かを調べる。図16のI/F情報テーブルから外部信号I3はクロックではない。
【0070】
12.次に、外部信号I3がCMOSレベルかTTLレベルかを調べる。図16のI/F情報テーブルから外部信号I3はCMOSレベルである。
【0071】
13.次に、外部信号I3がシュミットトリガか否かを調べる。図16のI/F情報テーブルから外部信号I3はシュミットトリガである。
【0072】
14.次に、外部信号I3のプル抵抗について調べる。図16のI/F情報テーブルから外部信号I3にはプル抵抗は付かない。
【0073】
15.上記11〜14の処理により、端末1は、外部信号I3の入力タイプを、スタンダードドライブ型のシュミットトリガCMOSレベル入力バッファに決定する。オプションとしてのプル抵抗を付けない。
【0074】
16.続いて、端末1は、外部信号I4についてクロックか否かを調べる。図16のI/F情報テーブルから外部信号I4はクロックではない。
【0075】
17.次に、外部信号I4がCMOSレベルかTTLレベルかを調べる。図16のI/F情報テーブルから外部信号I4はTTLレベルである。
【0076】
18.次に、外部信号I4がシュミットトリガか否かを調べる。図16のI/F情報テーブルから外部信号I4はシュミットトリガではない。
【0077】
19.次に、外部信号I4のプル抵抗について調べる。図16のI/F情報テーブルから外部信号I4にはプル抵抗は付かない。
【0078】
20.上記16〜19の処理により、端末1は、外部信号I4の入力タイプを、スタンダードドライブ型TTLレベル入力バッファに決定する。オプションとしてのプル抵抗を付けない。
【0079】
21.続いて、図4(a)に示した入力バッファについてのライブラリ情報を用いて、上記1〜20の処理で決定した各外部信号の入力タイプに対応するバッファ名称を抽出し、I/F情報テーブルのバッファ名称欄に入力する。入力バッファ決定処理が終了したときのI/F情報テーブルの状態の一例を図17に示す。
【0080】
[3.出力バッファの決定処理]
本処理は、LSIのインタフェース部分についての出力バッファの決定に必要な情報をI/F情報テーブルにまとめ、この情報を用いて適切な出力バッファを決定し、その出力バッファ名をI/F情報テーブルのバッファ名称欄に入力するものである。
【0081】
図12は、出力バッファの決定処理の全体的な概要の一例を示すフローチャートである。まず、ライブラリ情報5を参照し、配線容量および遅延時間の期待値を図17に示したI/F情報テーブルに追加する(step71)。このときのI/F情報テーブルの一例を図18に示す。遅延時間の期待値は、信号がLowからHighに変化するとき(L→H)と、HighからLowに変化するとき(H→L)の2種類用意されている。なお、この追加処理は手入力で行ってもよいし、端末1により自動入力で行うようにしてもよい。
【0082】
続いて、端末1は、I/F情報テーブルから外部信号を一つ選び、ライブラリ情報を用いて適切な出力バッファを決定し(step72)、その出力バッファ名をI/F情報テーブルのバッファ名称欄に入力する(step73)。上記step72〜73の処理を全ての外部信号について行ったところで本処理を終了する。以下、step72の処理について詳細に説明する。
【0083】
図13は、出力バッファを決定する処理の一例を示すフローチャートである。まず、端末1は、図18に示したI/F情報テーブルから外部信号を一つ選ぶとともに、図4(b)に示した出力バッファのライブラリ情報から最初の出力バッファを一つ選ぶ(step81)。次に、その外部信号についてI/F情報テーブルに記録されている負荷容量の期待値を用いて、出力バッファの遅延時間を計算する(step82)。この計算には、例えば半導体ベンダ等により提供される計算式を用いる。次に、遅延時間の計算値と期待値とを比較する(step83)。L→HとH→Lの双方について計算値が期待値よりも小さい場合にはstep84へ進み、そうでない場合にはstep90へ進む。
【0084】
step84では、L→HとH→Lの双方について期待値と計算値との差(L→Hについては結果1、H→Lについては結果2とする)を求める。これら2つの差の和(結果1+結果2)を比較値として登録する。そのときの出力バッファの名称をサブバッファに登録し、次の出力バッファの計算に移る(step85〜91)。2回目以降の計算においては、既に登録されている比較値と新たに計算された結果1と結果2の和を比較する。和の方が小さければその値で比較値を更新し、そのときの出力バッファでサブバッファを更新する(step85〜89)。上記処理を最後の出力バッファになるまで繰り返し行う(step90)。
【0085】
最後の出力バッファについて上記処理が終わったところで、サブバッファに出力バッファが登録されている場合には、最終的な出力バッファをその出力バッファに決定して、バッファに登録する。サブバッファに出力バッファが登録されていない場合には、エラー処理を行う(step92〜94)。
【0086】
続いて、I/F情報テーブルから次の外部信号を選んで、上記step81〜94の処理を行う。全ての外部信号について上記処理が終わったところで、本処理を終了する。バッファに登録された各出力バッファ名は、前述したstep73におけるバッファ名称欄への入力処理に用いられる。
【0087】
次に、上記の出力バッファの決定処理について具体例を用いて説明する。ここでは、端末1により、図18のI/F情報テーブルに示した外部信号O1〜O4,B1について出力バッファを決定し、そのバッファ名をI/F情報テーブルのバッファ名称欄に入力する処理について説明する。
【0088】
1.まず、端末1は、外部信号O1について、図4(b)に示した出力バッファの情報ライブラリから最初の出力バッファを選ぶ。
【0089】
2.外部信号O1の配線容量の期待値を所定の計算式に代入してL→HおよびH→Lの双方について遅延時間を計算する。
【0090】
3.遅延時間の計算値と期待値とを比較し、L→HおよびH→Lの双方について期待値よりも計算値の方が小さければ、計算値と期待値の差をそれぞれ求める。
【0091】
4.2つの差の和を求め、その値を比較値として登録し、そのときの出力バッファをサブバッファに登録する。
【0092】
5.情報ライブラリから次の出力バッファを選び、上記2,3の処理を実行しし、さらに2つの差の和を求めた後、この和が登録されている比較値よりも小さければ、この和で比較値を更新し、そのときの出力バッファでサブバッファを更新する。
【0093】
6.最後の出力バッファになるまで上記5の処理を繰り返し、最終的にバッファに登録されている出力バッファの名称を、I/F情報テーブルの外部信号I1についてのバッファ名称欄に入力する。
【0094】
7.外部信号O2〜O4、B1についても上記1〜6の処理を行う。ただし、外部信号B1については、出力バッファのライブラリ情報に代えて、図4(c)に示した入出力バッファのライブラリ情報を用いる。出力バッファ決定処理が終了したときのI/F情報テーブルの状態の一例を図19に示す。
【0095】
[4.I/F情報の出力処理]
本処理では、端末1は、上記各処理によって完成したI/F情報テーブルを用いて、I/F情報を所定の形式で出力する。出力形式は、例えばシステム記述言語や回路図とする。図20,21は、システム記述言語のVHDLによりI/F情報を示した一連の出力ファイルの内容である。図22は、外部付加容量を示すファイルの内容であり、図23は、Pin No、信号名、バッファ名を示すファイルの内容である。図24は、I/F情報を示す回路図の一例である。
【0096】
したがって、本実施の形態によれば、LSIの外部情報と内部情報とライブラリ情報を用いてインタフェース部分の設計情報をI/F情報テーブルとして自動生成するようにしたことで、設計の作業時間を短縮でき、手入力による作業を削減でき、人為的なミスを低減することができる。
【0097】
本実施の形態によれば、LSIのインタフェース部分に配置するバッファを決定し、そのバッファ名を外部信号名と内部信号名に対応させてI/F情報テーブルに記録することによって、インタフェース部分の設計情報を正確に生成することができる。
【0098】
本実施の形態によれば、ライブラリ情報に記録されているバッファの中から、少なくとも遅延時間の計算値が期待値よりも小さいもの、さらにはそのバッファの中で計算値が最小のものをインタフェース部分に配置するバッファとして決定するようにしたことで、適切なバッファを適用することができる。
【0099】
本実施の形態によれば、LSIの外部情報として、基板を設計する際に自動生成が可能なデータリストあるいは回路図を用いるようにしたことで、外部情報を作成する作業を削減し、人為的なミスを低減することができる。
【0100】
本実施の形態によれば、LSIの内部情報として、LSIを設計する際に自動生成が可能なシステム記述言語あるいは回路図を用いるようにしたことで、内部情報を作成する作業を削減し、人為的なミスを低減することができる。
【0101】
本実施の形態によれば、I/F情報テーブルに記録されたインタフェース部分の設計情報をシステム記述言語あるいは回路図により出力するようにしたことで、設計情報を迅速かつ容易に利用することができる。
【0102】
【発明の効果】
本発明に係るLSI設計支援システムおよびプログラムによれば、LSIのインタフェース部分の設計情報を自動生成するようにしたことで、インタフェース部分の設計の作業時間が短縮され、手入力による作業が削減されるので、設計者の負担を軽減でき、人為的なミスを低減することができる。
【図面の簡単な説明】
【図1】一実施の形態に係るLSI設計支援システムの構成を示すブロック図である。
【図2】基板情報の一例を示すデータリストである。
【図3】基板情報の一例を示す回路図である。
【図4】バッファに関するライブラリ情報の一例を示す図である。
【図5】I/F回路設計の支援処理の全体的な概要の一例を示すフローチャートである。
【図6】手入力による外部情報入力処理の一例を示すフローチャートである。
【図7】自動入力による外部情報入力処理の一例を示すフローチャートである。
【図8】入力バッファの決定処理の全体的な概要の一例を示すフローチャートである。
【図9】スタンダードドライブ型についての処理の一例を示すフローチャートである。
【図10】スタンダードドライブ型についての処理の一例を示すフローチャートである。
【図11】プル抵抗についての処理の一例を示すフローチャートである。
【図12】出力バッファの決定処理の全体的な概要の一例を示すフローチャートである。
【図13】出力バッファを決定する処理の一例を示すフローチャートである。
【図14】I/F情報テーブルの初期状態の一例を示す図である。
【図15】外部情報入力処理が終了した後のI/F情報テーブルの状態の一例を示す図である。
【図16】入力バッファ決定処理を開始した直後のI/F情報テーブルの状態の一例を示す図である。
【図17】入力バッファ決定処理が終了した後のI/F情報テーブルの状態の一例を示す図である。
【図18】出力バッファ決定処理を開始した直後のI/F情報テーブルの状態の一例を示す図である。
【図19】出力バッファ決定処理が終了した後のI/F情報テーブルの状態の一例を示す図である。
【図20】I/F情報をシステム記述言語により出力したときの出力ファイルの一例を示す図である。
【図21】上記出力ファイルの後続部分を示す図である。
【図22】外部付加容量を示すファイルの一例を示す図である。
【図23】Pin No、信号名、バッファ名を示すファイルの一例を示す図である。
【図24】I/F情報を回路図により出力したときの一例を示す図である。
【符号の説明】
1 端末
3 外部情報
4 内部情報
5 ライブラリ情報
6 インタフェース部分の設計情報
7 ネットワーク
【発明の属する技術分野】
本発明は、LSIの内部回路と外部回路の間のインタフェース部の設計を支援するLSI設計支援システムおよびこれに用いるプログラムに関する。
【0002】
【従来の技術】
従来、LSIの基本的な設計工程は、まず仕様を作成し、LSI内部を機能毎のブロックに分割し、各ブロック間の処理やデータの流れを決定してから、LSIの内部回路の設計をする。次に、設計したLSIの内部回路とそのLSIが実装される基板における外部回路とのインタフェース(I/F)回路を設計するために、両回路間での接続ピンの対応関係を決定する内外部リンク処理を行う。そして、これを検証し、I/F回路の設計を行う。
【0003】
I/F回路の設計では、LSIが実装される基板における接続ピンの情報を、設計者が基板用のCADデータから抽出するか、あるいは予想や仮定をしていた。
【0004】
【発明が解決しようとする課題】
しかしながら、近年のLSIの大規模化に伴い、I/F回路の規模も増大してきたため、I/F回路の設計に膨大な作業時間を費やすようになり、設計者の負担が増大してきている。この弊害として、人為的なミスも発生しやすくなっている。
【0005】
本発明は、上記に鑑みてなされたものであり、その目的とするところは、I/F回路を設計する際の負担の軽減に寄与し得るLSI設計支援システムおよびこれに用いるプログラムを提供することにある。
【0006】
【課題を解決するための手段】
第1の本発明に係るLSI設計支援システムは、LSIの外部情報と内部情報とライブラリ情報を記憶しておく記憶手段と、前記外部情報と前記内部情報と前記ライブラリ情報を用いてLSIのインタフェース部分の設計情報を生成する生成手段と、を有することを特徴とする。
【0007】
本発明にあっては、LSIの外部情報と内部情報とライブラリ情報を記憶手段から読み出し、これらの情報を用いてインタフェース部分の設計情報を自動生成するようにしたことで、インタフェース部分の設計の作業時間が短縮され、手入力による作業が削減されるので、設計者の負担を軽減でき、人為的なミスを低減することができる。
【0008】
第2の本発明は、上記LSI設計支援システムにおいて、前記生成手段は、前記外部情報および前記内部情報を用いてLSIの外部信号名と内部信号名とを対応させ、前記ライブラリ情報を用いて両信号間に配置するバッファを決定し、両信号名と決定したバッファ名とを対応させて記録することにより前記設計情報を生成することを特徴とする。
【0009】
本発明にあっては、外部信号と内部信号間に配置するバッファを決定し、両信号名と決定したバッファ名とを対応させて記録することによって設計情報を生成するようにしている。
【0010】
第3の本発明は、上記LSI設計支援システムにおいて、前記バッファの決定は、前記ライブラリ情報に記録されているバッファのうちで遅延時間の計算値が期待値よりも小さいバッファの中から決定することを特徴とする。
【0011】
第4の本発明は、上記LSI設計支援システムにおいて、前記バッファの決定は、遅延時間の計算値が期待値よりも小さいバッファの中で、計算値が最小のバッファを決定することを特徴とする。
【0012】
第3,第4の本発明にあっては、ライブラリ情報に記録されているバッファの中から、少なくとも遅延時間の計算値が期待値よりも小さいもの、さらにはその中で計算値が最小のものをインタフェース部分に配置するバッファとして決定するようにしたことで、適切なバッファが適用されるようにしている。
【0013】
第5の本発明は、上記各LSI設計支援システムにおいて、前記外部情報は、LSIが設置される基板についての基板情報であることを特徴とする。
【0014】
第6の本発明は、上記LSI設計支援システムにおいて、前記基板情報は、データリスト又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0015】
第5,第6の本発明にあっては、外部情報として、基板の設計において自動生成が可能なデータリスト又は回路図、あるいはその両方を用いるようにしたことで、外部情報を作成する作業を削減し、人為的なミスを低減するようにしている。
【0016】
第7の本発明は、上記各LSI設計支援システムにおいて、前記内部情報は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0017】
本発明にあっては、内部情報として、LSIの設計において自動生成が可能なシステム記述言語又は回路図、あるいはその両方を用いるようにしたことで、内部情報を作成する作業を削減し、人為的なミスを低減するようにしている。
【0018】
第8の本発明は、上記各LSI設計支援システムにおいて、前記インタフェース部分の設計情報を所定の形式で出力する出力手段を有することを特徴とする。
【0019】
本発明にあっては、インタフェース部分の設計情報を所定の形式で出力するようにしたことで、設計情報を利用する際の作業を削減し、人為的ミスを低減するようにしている。
【0020】
第9の本発明は、上記LSI設計支援システムにおいて、前記所定の形式は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0021】
本発明にあっては、インタフェース部分の設計情報をシステム記述言語又は回路図、あるいはその両方により出力するようにしたことで、設計情報を迅速かつ容易に利用できるようにしている。
【0022】
第10の本発明に係るLSI設計支援プログラムは、LSIの外部情報と内部情報とライブラリ情報を記憶する記憶手段からこれらの情報を読み出す読出処理と、外部情報と内部情報とライブラリ情報とを用いてLSIのインタフェース部分の設計情報を生成する生成処理と、をコンピュータに実行させることを特徴とする。
【0023】
第11の本発明は、上記LSI設計支援プログラムにおいて、前記生成処理は、前記外部情報および前記内部情報を用いて外部信号名と内部信号名とを対応させ、前記ライブラリ情報を用いて両信号間に配置するバッファを決定し、両信号名と決定したバッファ名とを対応させて記録することにより前記設計情報を生成することを特徴とする。
【0024】
第12の本発明は、上記LSI設計支援プログラムにおいて、前記バッファの決定は、前記ライブラリ情報に記録されているバッファのうちで遅延時間の計算値が期待値よりも小さいバッファの中から決定することを特徴とする。
【0025】
第13の本発明は、上記LSI設計支援プログラムにおいて、前記バッファの決定は、遅延時間の計算値が期待値よりも小さいバッファの中で計算値が最小のバッファを決定することを特徴とする。
【0026】
第14の本発明は、上記各LSI設計支援プログラムにおいて、前記外部情報は、LSIが設置される基板についての基板情報であることを特徴とする。
【0027】
第15の本発明は、上記LSI設計支援プログラムにおいて、前記基板情報は、データリスト又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0028】
第16の本発明は、上記各LSI設計支援プログラムにおいて、前記内部情報は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0029】
第17の本発明は、上記各LSI設計支援プログラムにおいて、前記インタフェース部分の設計情報を所定の形式で出力する出力処理をコンピュータに実行させることを特徴とする。
【0030】
第18の本発明は、上記LSI設計支援プログラムにおいて、前記所定の形式は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする。
【0031】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【0032】
図1は、一実施の形態に係るLSI設計支援システムの全体的な構成を示すブロック図である。同図のシステムは、LSIの設計支援プログラムを実行させるための端末1と各種の情報を記憶したデータベースがネットワーク7を介して接続された構成である。
【0033】
端末1には、パソコン1aやEWS(エンジニアリングワークステーション)1bといったコンピュータが用いられる。データベースには、LSIを実装する基板に関する情報(以下「外部情報」という)3と、LSIの内部に関する情報(以下「内部情報」という)4と、LSI・基板間に用いるバッファ等のインタフェース部分に関する情報(以下「ライブラリ情報」)5が記憶されている。
【0034】
外部情報3は、CAD等により基板を設計したときに自動生成される基板情報が用いられる。基板情報は、例えば図2に示すデータリストや、図3に示す回路図で表される。
【0035】
内部情報4は、CAD等によりLSIの内部を設計したときに自動生成されるLSI情報が用いられる。LSI情報は、VHDLやVerilog、SystemC、SpecCといったシステム記述言語や、図3に示したようなLSI部分の回路図で表される。
【0036】
ライブラリ情報5には、外部信号および内部信号の種別や、図4に示すバッファに関する情報等が含まれる。同図(a)は入力バッファ、同図(b)は出力バッファ、同図(c)は入出力バッファについての情報をそれぞれ示す。
【0037】
端末1のメモリには、LSI・基板間のインタフェース部分の設計を支援する設計支援プログラムが格納されている。端末1は、このプログラムをCPUで実行することによって、データベースから外部情報3、内部情報4、ライブラリ情報5を読み出す処理と、これらの情報を用いてインタフェース部分の設計情報(以下「I/F情報」という)6を生成する処理と、このI/F情報6をシステム記述言語や回路図といった所定の形式で出力する処理を行う。
【0038】
なお、外部情報4、内部情報5、ライブラリ情報5、I/F情報6は、別個のデータベースに分散して記憶してもよいし、1つのデータベースに集中させて記憶するようにしてもよい。
【0039】
図5は、本システムによるI/F回路の設計支援処理の全体的な概要を示すフローチャートである。本処理では、外部情報入力処理(step1)、入力バッファの決定処理(step2)、出力バッファの決定処理(step3)により、図14に示すI/F情報テーブルの空欄に所定事項を順次入力していき、I/F情報の出力処理(step4)により、完成されたI/F情報テーブルに基づいて、I/F情報をシステム記述言語で記述されたファイルや回路図で出力する。以下、各ステップにおける処理について詳細に説明する。
【0040】
[1.外部情報入力処理]
本処理は、外部情報をI/F情報テーブルに入力するとともに内部情報との整合を図る処理であり、手入力と自動入力の切替が可能である。
【0041】
図6は、手入力による外部情報入力処理の一例を示すフローチャートである。まず、操作者は、端末1を用いてI/F情報テーブルのPin番号を入力することによって入力行を特定し、そのPin番号の信号が電源(VDD)又はGND(VSS)か否か判断する(step11〜12)。電源又はGNDならば、I/F情報テーブルの電源欄にVDD又はVSSを入力し、電源又はGNDでない場合には、外部信号名が決まっているか否か、内部信号名が決まっているか否かを判断する(step13〜14)。
【0042】
外部信号名が決定していて、かつ内部信号名も決定しているならば、外部信号名をI/F情報テーブルの外部信号名欄に入力し、内部信号名を内部信号名欄に入力する(step15)。
【0043】
外部信号名が決定していて、内部信号名が決定していないならば、外部信号名をI/F情報テーブルの外部信号名欄に入力し、内部信号名を決定して内部信号名欄に入力する(step16)。
【0044】
外部信号名が決定していなくて、内部信号名が決定しているならば、外部信号名を決定してI/F情報テーブルの外部信号名欄に入力し、内部信号名を内部信号名欄に入力する(step17)。
【0045】
外部信号名が決定していなくて、内部信号名も決定していないならば、外部信号名を決定してI/F情報テーブルの外部信号名欄に入力し、内部信号名を決定して内部信号名欄に入力する(step18)。
【0046】
上記step11〜18までの処理をLSIの全ピンに対して実行したところで、外部信号名と内部信号名との整合性を確認する(step19)。整合が取れていない場合には、step11へ戻って上記処理を繰り返し行い、全ピンについて整合性が確認された場合には本処理を終了する。本処理によって、I/F情報テーブルは、図15に一例を示すように、内部情報と整合性がとれた外部情報が入力された状態となる。
【0047】
図7は、自動入力による外部情報入力処理の一例を示すフローチャートである。ここでは、外部信号名と内部信号名との間には予め取り決めを定めておく。具体的には、内部信号が入力に使われるならば文字列で「内部信号名」=「I」+「外部信号名」で表し、内部信号が出力に使われるならば「内部信号名」=「O」+「外部信号名」で表す。内部信号が入出力の双方に使われるならば「内部信号名」=「Bl」+「外部信号名」等のように表す。
【0048】
まず、端末1は、基板情報からPin番号および外部信号名をPin番号の順に読み出し、Pin番号を変数PinNoに代入し、外部信号名を変数OutNameに代入する(step21〜23)。次に、端末1は、外部信号名が電源又はGNDか否かを判断し、電源又はGNDならばI/F情報テーブルのPin No.欄にPin番号を入力し、電源欄にVDD又はVSSを入力する(step24〜25)。一方、外部信号名が電源又はGNDでない場合には、Pin番号をI/F情報テーブルのPin No欄にPin番号を入力し、外部信号名欄に外部信号名を入力する(step26)。
【0049】
続いて、端末1は、内部情報から内部信号名およびI/Oタイプを読み出し、I/Oタイプを変数IOTypeに代入し、内部信号名を変数InNameに代入する(step27〜29)。
【0050】
端末1は、内部信号のI/Oタイプが入力ならば、内部信号名と「I」+「外部信号名」とを比較し、等しければstep33へ進む。内部信号のI/Oタイプが出力ならば、内部信号名と「O」+「外部信号名」とを比較し、等しければstep33へ進む。内部信号のI/Oタイプが双方向ならば内部信号名と「BI」+「外部信号名」、「BO」+「外部信号名」、「BEN」+「外部信号名」とを比較し、いずれかと等しければstep33へ進む(step30〜32)。step33では、端末1は、内部情報から読み出したI/OタイプをI/F情報テーブルのI/Oタイプ欄に入力し、step34で、内部信号名欄に内部信号名を入力する。
【0051】
上記step28〜34の処理を全ての内部信号について行うか、全ての外部信号名と内部信号名の対応関係が一致するまで繰り返す。この処理が終了したところでステップ21へ戻り、全ての外部信号について上記step21〜34の処理を実行したところで本処理を終了する。本処理によって、I/F情報テーブルは、手入力の場合と同様、図15に示すように、内部情報との整合性が取れた外部情報が入力された状態となる。
【0052】
[2.入力バッファの決定処理]
本処理は、LSIのインタフェース部分の入力バッファの決定に必要な情報をI/F情報テーブルにまとめ、この情報を用いて適切な入力バッファを決定し、その入力バッファ名をI/F情報テーブルのバッファ名称欄に入力するものである。
【0053】
図8は、入力バッファの決定処理の全体的な概要を示すフローチャートである。まず、ライブラリ情報を参照し、外部信号および内部信号の種別を図15に示したI/F情報テーブルに追加する(step41)。ここで、種別とは、クロックか否か、シュミットか否か、プル抵抗が有るか否か、プル抵抗が有る場合はプルアップ抵抗かプルダウン抵抗か、CMOSかTTLか、をいう。このときのI/F情報テーブルの一例を図16に示す。この追加処理は手入力で行ってもよいし、端末1が自動入力するようにしてもよい。
【0054】
続いて、端末1は、I/F情報テーブルから外部信号を一つ選び、外部回路から内部回路へ入力される入力信号が、クロックか否かを判断する(step42)。クロックの場合は、後述するハイドライブ型についての処理を行い、クロックでない場合は、後述するスタンダードドライブ型についての処理を行う(step43,44)。続いて、後述するプル抵抗についての処理を行う(step45)。そして、その外部信号および内部信号についての入力バッファ名を決定し、それをI/F情報テーブルのバッファ名称欄に入力する。上記step42〜45の処理を全ての入力信号について行ったところで本処理を終了する。以下、step43,44,45の処理について詳細に説明する。
【0055】
図9は、step43のハイドライブ型についての処理の一例を示すフローチャートである。まず、端末1は、I/F情報テーブルを用いて入力信号がCMOSレベルかTTLレベルかを判断する。TTLレベルの場合には、入力バッファの入力タイプをTTLレベル入力バッファに決定する(step51〜52)。一方、CMOSレベルの場合には、シュミットトリガタイプか否かを判断する(step53)。シュミットトリガタイプの場合、入力バッファの入力タイプをシュミットトリガCMOSレベル入力バッファに決定し、シュミットトリガタイプでない場合、CMOSレベル入力バッファに決定する(step54〜55)。
【0056】
図10は、step44のスタンダードドライブ型についての処理の一例を示すフローチャートである。まず、端末1は、I/F情報テーブルを用いて入力信号がCMOSレベルかTTLレベルかを判断する(step56)。TTLレベルの場合、シュミットトリガタイプか否かを判断する。シュミットトリガタイプの場合は、入力バッファの入力タイプをシュミットトリガTTLレベル入力バッファに決定し、シュミットトリガタイプでない場合は、TTLレベル入力バッファに決定する(step57〜59)。一方、step56でCMOSレベルと判断した場合には、シュミットトリガタイプか否かを判断し、シュミットトリガタイプの場合は、入力バッファの入力タイプをシュミットトリガCMOSレベル入力バッファに決定し、シュミットトリガタイプでない場合は、CMOSレベル入力バッファに決定する(step60〜62)。
【0057】
図11は、step45のプル抵抗についての処理の一例を示すフローチャートである。端末1は、I/F情報テーブルを用いてプル抵抗の有無と、プル抵抗がある場合にはプルアップ抵抗かプルダウン抵抗かを判断する(step63)。プルアップ抵抗の場合は入力バッファの入力タイプをオプションとしてプルアップ付きとし、プルダウン抵抗の場合はプルダウン付きとし、プル抵抗がない場合はオプションを付けない(step64〜66)。
【0058】
次に、上記の入力バッファの決定処理について具体例を用いて説明する。ここでは、端末1が、図16のI/F情報テーブルに示した外部信号I1〜I4についてバッファ名称を決定し、それをI/F情報テーブルのバッファ名称欄に入力する処理について説明する。
【0059】
1.まず、端末1は、外部信号I1についてクロックか否かを調べる。ここでは、図16のI/F情報テーブルから外部信号I1はクロックである。
【0060】
2.次に、外部信号I1がCMOSレベルかTTLレベルかを調べる。図16のI/F情報テーブルから外部信号I1はCMOSレベルである。
【0061】
3.次に、外部信号I1がシュミットトリガか否かを調べる。図16のI/F情報テーブルから外部信号I1はシュミットトリガではない。
【0062】
4.次に、外部信号I1のプル抵抗について調べる。図16のI/F情報テーブルから外部信号I1にはプル抵抗は付かない。
【0063】
5.上記1〜4の処理により、端末1は、外部信号I1の入力タイプを、ハイドライブ型CMOSレベル入力バッファに決定する。オプションとしてのプル抵抗は付けない。
【0064】
6.続いて、端末1は、外部信号I2についてクロックか否かを調べる。図16のI/F情報テーブルから外部信号I1はクロックではない。
【0065】
7.次に、外部信号I2がCMOSレベルかTTLレベルかを調べる。図16のI/F情報テーブルから外部信号I2はCMOSレベルである。
【0066】
8.次に、外部信号I2がシュミットトリガか否かを調べる。図16のI/F情報テーブルから外部信号I2はシュミットトリガではない。
【0067】
9.次に、外部信号I2のプル抵抗について調べる。図16のI/F情報テーブルから外部信号I2にはプルアップ抵抗が付く。
【0068】
10.上記6〜9の処理により、端末1は、外部信号I2の入力タイプを、スタンダードドライブ型CMOSレベル入力バッファに決定する。また、オプションとしてプルアップ抵抗を付ける。
【0069】
11.続いて、端末1は、外部信号I3についてクロックか否かを調べる。図16のI/F情報テーブルから外部信号I3はクロックではない。
【0070】
12.次に、外部信号I3がCMOSレベルかTTLレベルかを調べる。図16のI/F情報テーブルから外部信号I3はCMOSレベルである。
【0071】
13.次に、外部信号I3がシュミットトリガか否かを調べる。図16のI/F情報テーブルから外部信号I3はシュミットトリガである。
【0072】
14.次に、外部信号I3のプル抵抗について調べる。図16のI/F情報テーブルから外部信号I3にはプル抵抗は付かない。
【0073】
15.上記11〜14の処理により、端末1は、外部信号I3の入力タイプを、スタンダードドライブ型のシュミットトリガCMOSレベル入力バッファに決定する。オプションとしてのプル抵抗を付けない。
【0074】
16.続いて、端末1は、外部信号I4についてクロックか否かを調べる。図16のI/F情報テーブルから外部信号I4はクロックではない。
【0075】
17.次に、外部信号I4がCMOSレベルかTTLレベルかを調べる。図16のI/F情報テーブルから外部信号I4はTTLレベルである。
【0076】
18.次に、外部信号I4がシュミットトリガか否かを調べる。図16のI/F情報テーブルから外部信号I4はシュミットトリガではない。
【0077】
19.次に、外部信号I4のプル抵抗について調べる。図16のI/F情報テーブルから外部信号I4にはプル抵抗は付かない。
【0078】
20.上記16〜19の処理により、端末1は、外部信号I4の入力タイプを、スタンダードドライブ型TTLレベル入力バッファに決定する。オプションとしてのプル抵抗を付けない。
【0079】
21.続いて、図4(a)に示した入力バッファについてのライブラリ情報を用いて、上記1〜20の処理で決定した各外部信号の入力タイプに対応するバッファ名称を抽出し、I/F情報テーブルのバッファ名称欄に入力する。入力バッファ決定処理が終了したときのI/F情報テーブルの状態の一例を図17に示す。
【0080】
[3.出力バッファの決定処理]
本処理は、LSIのインタフェース部分についての出力バッファの決定に必要な情報をI/F情報テーブルにまとめ、この情報を用いて適切な出力バッファを決定し、その出力バッファ名をI/F情報テーブルのバッファ名称欄に入力するものである。
【0081】
図12は、出力バッファの決定処理の全体的な概要の一例を示すフローチャートである。まず、ライブラリ情報5を参照し、配線容量および遅延時間の期待値を図17に示したI/F情報テーブルに追加する(step71)。このときのI/F情報テーブルの一例を図18に示す。遅延時間の期待値は、信号がLowからHighに変化するとき(L→H)と、HighからLowに変化するとき(H→L)の2種類用意されている。なお、この追加処理は手入力で行ってもよいし、端末1により自動入力で行うようにしてもよい。
【0082】
続いて、端末1は、I/F情報テーブルから外部信号を一つ選び、ライブラリ情報を用いて適切な出力バッファを決定し(step72)、その出力バッファ名をI/F情報テーブルのバッファ名称欄に入力する(step73)。上記step72〜73の処理を全ての外部信号について行ったところで本処理を終了する。以下、step72の処理について詳細に説明する。
【0083】
図13は、出力バッファを決定する処理の一例を示すフローチャートである。まず、端末1は、図18に示したI/F情報テーブルから外部信号を一つ選ぶとともに、図4(b)に示した出力バッファのライブラリ情報から最初の出力バッファを一つ選ぶ(step81)。次に、その外部信号についてI/F情報テーブルに記録されている負荷容量の期待値を用いて、出力バッファの遅延時間を計算する(step82)。この計算には、例えば半導体ベンダ等により提供される計算式を用いる。次に、遅延時間の計算値と期待値とを比較する(step83)。L→HとH→Lの双方について計算値が期待値よりも小さい場合にはstep84へ進み、そうでない場合にはstep90へ進む。
【0084】
step84では、L→HとH→Lの双方について期待値と計算値との差(L→Hについては結果1、H→Lについては結果2とする)を求める。これら2つの差の和(結果1+結果2)を比較値として登録する。そのときの出力バッファの名称をサブバッファに登録し、次の出力バッファの計算に移る(step85〜91)。2回目以降の計算においては、既に登録されている比較値と新たに計算された結果1と結果2の和を比較する。和の方が小さければその値で比較値を更新し、そのときの出力バッファでサブバッファを更新する(step85〜89)。上記処理を最後の出力バッファになるまで繰り返し行う(step90)。
【0085】
最後の出力バッファについて上記処理が終わったところで、サブバッファに出力バッファが登録されている場合には、最終的な出力バッファをその出力バッファに決定して、バッファに登録する。サブバッファに出力バッファが登録されていない場合には、エラー処理を行う(step92〜94)。
【0086】
続いて、I/F情報テーブルから次の外部信号を選んで、上記step81〜94の処理を行う。全ての外部信号について上記処理が終わったところで、本処理を終了する。バッファに登録された各出力バッファ名は、前述したstep73におけるバッファ名称欄への入力処理に用いられる。
【0087】
次に、上記の出力バッファの決定処理について具体例を用いて説明する。ここでは、端末1により、図18のI/F情報テーブルに示した外部信号O1〜O4,B1について出力バッファを決定し、そのバッファ名をI/F情報テーブルのバッファ名称欄に入力する処理について説明する。
【0088】
1.まず、端末1は、外部信号O1について、図4(b)に示した出力バッファの情報ライブラリから最初の出力バッファを選ぶ。
【0089】
2.外部信号O1の配線容量の期待値を所定の計算式に代入してL→HおよびH→Lの双方について遅延時間を計算する。
【0090】
3.遅延時間の計算値と期待値とを比較し、L→HおよびH→Lの双方について期待値よりも計算値の方が小さければ、計算値と期待値の差をそれぞれ求める。
【0091】
4.2つの差の和を求め、その値を比較値として登録し、そのときの出力バッファをサブバッファに登録する。
【0092】
5.情報ライブラリから次の出力バッファを選び、上記2,3の処理を実行しし、さらに2つの差の和を求めた後、この和が登録されている比較値よりも小さければ、この和で比較値を更新し、そのときの出力バッファでサブバッファを更新する。
【0093】
6.最後の出力バッファになるまで上記5の処理を繰り返し、最終的にバッファに登録されている出力バッファの名称を、I/F情報テーブルの外部信号I1についてのバッファ名称欄に入力する。
【0094】
7.外部信号O2〜O4、B1についても上記1〜6の処理を行う。ただし、外部信号B1については、出力バッファのライブラリ情報に代えて、図4(c)に示した入出力バッファのライブラリ情報を用いる。出力バッファ決定処理が終了したときのI/F情報テーブルの状態の一例を図19に示す。
【0095】
[4.I/F情報の出力処理]
本処理では、端末1は、上記各処理によって完成したI/F情報テーブルを用いて、I/F情報を所定の形式で出力する。出力形式は、例えばシステム記述言語や回路図とする。図20,21は、システム記述言語のVHDLによりI/F情報を示した一連の出力ファイルの内容である。図22は、外部付加容量を示すファイルの内容であり、図23は、Pin No、信号名、バッファ名を示すファイルの内容である。図24は、I/F情報を示す回路図の一例である。
【0096】
したがって、本実施の形態によれば、LSIの外部情報と内部情報とライブラリ情報を用いてインタフェース部分の設計情報をI/F情報テーブルとして自動生成するようにしたことで、設計の作業時間を短縮でき、手入力による作業を削減でき、人為的なミスを低減することができる。
【0097】
本実施の形態によれば、LSIのインタフェース部分に配置するバッファを決定し、そのバッファ名を外部信号名と内部信号名に対応させてI/F情報テーブルに記録することによって、インタフェース部分の設計情報を正確に生成することができる。
【0098】
本実施の形態によれば、ライブラリ情報に記録されているバッファの中から、少なくとも遅延時間の計算値が期待値よりも小さいもの、さらにはそのバッファの中で計算値が最小のものをインタフェース部分に配置するバッファとして決定するようにしたことで、適切なバッファを適用することができる。
【0099】
本実施の形態によれば、LSIの外部情報として、基板を設計する際に自動生成が可能なデータリストあるいは回路図を用いるようにしたことで、外部情報を作成する作業を削減し、人為的なミスを低減することができる。
【0100】
本実施の形態によれば、LSIの内部情報として、LSIを設計する際に自動生成が可能なシステム記述言語あるいは回路図を用いるようにしたことで、内部情報を作成する作業を削減し、人為的なミスを低減することができる。
【0101】
本実施の形態によれば、I/F情報テーブルに記録されたインタフェース部分の設計情報をシステム記述言語あるいは回路図により出力するようにしたことで、設計情報を迅速かつ容易に利用することができる。
【0102】
【発明の効果】
本発明に係るLSI設計支援システムおよびプログラムによれば、LSIのインタフェース部分の設計情報を自動生成するようにしたことで、インタフェース部分の設計の作業時間が短縮され、手入力による作業が削減されるので、設計者の負担を軽減でき、人為的なミスを低減することができる。
【図面の簡単な説明】
【図1】一実施の形態に係るLSI設計支援システムの構成を示すブロック図である。
【図2】基板情報の一例を示すデータリストである。
【図3】基板情報の一例を示す回路図である。
【図4】バッファに関するライブラリ情報の一例を示す図である。
【図5】I/F回路設計の支援処理の全体的な概要の一例を示すフローチャートである。
【図6】手入力による外部情報入力処理の一例を示すフローチャートである。
【図7】自動入力による外部情報入力処理の一例を示すフローチャートである。
【図8】入力バッファの決定処理の全体的な概要の一例を示すフローチャートである。
【図9】スタンダードドライブ型についての処理の一例を示すフローチャートである。
【図10】スタンダードドライブ型についての処理の一例を示すフローチャートである。
【図11】プル抵抗についての処理の一例を示すフローチャートである。
【図12】出力バッファの決定処理の全体的な概要の一例を示すフローチャートである。
【図13】出力バッファを決定する処理の一例を示すフローチャートである。
【図14】I/F情報テーブルの初期状態の一例を示す図である。
【図15】外部情報入力処理が終了した後のI/F情報テーブルの状態の一例を示す図である。
【図16】入力バッファ決定処理を開始した直後のI/F情報テーブルの状態の一例を示す図である。
【図17】入力バッファ決定処理が終了した後のI/F情報テーブルの状態の一例を示す図である。
【図18】出力バッファ決定処理を開始した直後のI/F情報テーブルの状態の一例を示す図である。
【図19】出力バッファ決定処理が終了した後のI/F情報テーブルの状態の一例を示す図である。
【図20】I/F情報をシステム記述言語により出力したときの出力ファイルの一例を示す図である。
【図21】上記出力ファイルの後続部分を示す図である。
【図22】外部付加容量を示すファイルの一例を示す図である。
【図23】Pin No、信号名、バッファ名を示すファイルの一例を示す図である。
【図24】I/F情報を回路図により出力したときの一例を示す図である。
【符号の説明】
1 端末
3 外部情報
4 内部情報
5 ライブラリ情報
6 インタフェース部分の設計情報
7 ネットワーク
Claims (18)
- LSIの外部情報と内部情報とライブラリ情報を記憶しておく記憶手段と、
前記外部情報と前記内部情報と前記ライブラリ情報を用いてLSIのインタフェース部分の設計情報を生成する生成手段と、
を有することを特徴とするLSI設計支援システム。 - 前記生成手段は、前記外部情報および前記内部情報を用いてLSIの外部信号名と内部信号名とを対応させ、前記ライブラリ情報を用いて両信号間に配置するバッファを決定し、両信号名と決定したバッファ名とを対応させて記録することにより前記設計情報を生成することを特徴とする請求項1記載のLSI設計支援システム。
- 前記バッファの決定は、前記ライブラリ情報に記録されているバッファのうちで遅延時間の計算値が期待値よりも小さいバッファの中から決定することを特徴とする請求項2記載のLSI設計支援システム。
- 前記バッファの決定は、遅延時間の計算値が期待値よりも小さいバッファの中で、計算値が最小のバッファを決定することを特徴とする請求項3記載のLSI設計支援システム。
- 前記外部情報は、LSIが設置される基板についての基板情報であることを特徴とする請求項1乃至4のいずれかに記載のLSI設計支援システム。
- 前記基板情報は、データリスト又は回路図のうちの少なくとも一方が用いられることを特徴とする請求項5記載のLSI設計支援システム。
- 前記内部情報は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする請求項1乃至6のいずれかに記載のLSI設計支援システム。
- 前記インタフェース部分の設計情報を所定の形式で出力する出力手段を有することを特徴とする請求項1乃至7のいずれかに記載のLSI設計支援システム。
- 前記所定の形式は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする請求項8に記載のLSI設計支援システム。
- LSIの外部情報と内部情報とライブラリ情報を記憶する記憶手段からこれらの情報を読み出す読出処理と、
外部情報と内部情報とライブラリ情報とを用いてLSIのインタフェース部分の設計情報を生成する生成処理と、
をコンピュータに実行させることを特徴とするLSI設計支援プログラム。 - 前記生成処理は、前記外部情報および前記内部情報を用いて外部信号名と内部信号名とを対応させ、前記ライブラリ情報を用いて両信号間に配置するバッファを決定し、両信号名と決定したバッファ名とを対応させて記録することにより前記設計情報を生成することを特徴とする請求項10記載のLSI設計支援プログラム。
- 前記バッファの決定は、前記ライブラリ情報に記録されているバッファのうちで遅延時間の計算値が期待値よりも小さいバッファの中から決定することを特徴とする請求項11記載のLSI設計支援プログラム。
- 前記バッファの決定は、遅延時間の計算値が期待値よりも小さいバッファの中で計算値が最小のバッファを決定することを特徴とする請求項12記載のLSI設計支援プログラム。
- 前記外部情報は、LSIが設置される基板についての基板情報であることを特徴とする請求項10乃至13のいずれかに記載のLSI設計支援プログラム。
- 前記基板情報は、データリスト又は回路図のうちの少なくとも一方が用いられることを特徴とする請求項14記載のLSI設計支援プログラム。
- 前記内部情報は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする請求項10乃至15のいずれかに記載のLSI設計支援プログラム。
- 前記インタフェース部分の設計情報を所定の形式で出力する出力処理をコンピュータに実行させることを特徴とする請求項10乃至16のいずれかに記載のLSI設計支援プログラム。
- 前記所定の形式は、システム記述言語又は回路図のうちの少なくとも一方が用いられることを特徴とする請求項17に記載のLSI設計支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002170612A JP2004013851A (ja) | 2002-06-11 | 2002-06-11 | Lsi設計支援システムおよびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002170612A JP2004013851A (ja) | 2002-06-11 | 2002-06-11 | Lsi設計支援システムおよびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004013851A true JP2004013851A (ja) | 2004-01-15 |
Family
ID=30436821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002170612A Pending JP2004013851A (ja) | 2002-06-11 | 2002-06-11 | Lsi設計支援システムおよびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004013851A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012014474A (ja) * | 2010-07-01 | 2012-01-19 | Hitachi Ltd | 信号名設定方法およびシステム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0753800A (ja) * | 1993-07-06 | 1995-02-28 | Hpg Internatl Inc | 難燃性ポリプロピレン組成物 |
JPH07263560A (ja) * | 1994-03-17 | 1995-10-13 | Fujitsu Ltd | 半導体集積回路の設計方法及び半導体集積回路設計支援装置 |
JPH11306218A (ja) * | 1998-04-17 | 1999-11-05 | Nec Corp | 半導体集積回路の設計方法 |
JP2000123055A (ja) * | 1998-10-13 | 2000-04-28 | Nec Corp | 回路設計支援装置、方法、及び記録媒体 |
JP2000181942A (ja) * | 1998-12-11 | 2000-06-30 | Nec Corp | I/oバッファ動作電源自動チェックシステム |
JP2001142923A (ja) * | 1999-11-15 | 2001-05-25 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置の設計方法 |
-
2002
- 2002-06-11 JP JP2002170612A patent/JP2004013851A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0753800A (ja) * | 1993-07-06 | 1995-02-28 | Hpg Internatl Inc | 難燃性ポリプロピレン組成物 |
JPH07263560A (ja) * | 1994-03-17 | 1995-10-13 | Fujitsu Ltd | 半導体集積回路の設計方法及び半導体集積回路設計支援装置 |
JPH11306218A (ja) * | 1998-04-17 | 1999-11-05 | Nec Corp | 半導体集積回路の設計方法 |
JP2000123055A (ja) * | 1998-10-13 | 2000-04-28 | Nec Corp | 回路設計支援装置、方法、及び記録媒体 |
JP2000181942A (ja) * | 1998-12-11 | 2000-06-30 | Nec Corp | I/oバッファ動作電源自動チェックシステム |
JP2001142923A (ja) * | 1999-11-15 | 2001-05-25 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置の設計方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012014474A (ja) * | 2010-07-01 | 2012-01-19 | Hitachi Ltd | 信号名設定方法およびシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8117576B2 (en) | Method for using an equivalence checker to reduce verification effort in a system having analog blocks | |
US8196075B1 (en) | Generation of input/output models | |
JPH05143674A (ja) | 回路図形データベースからの自動論理モデル作成方法 | |
JPH05256901A (ja) | 回路の論理機能の判定方法 | |
US10437946B1 (en) | Using implemented core sources for simulation | |
JP2000076321A (ja) | 機能ブロックのモデル作成によるlsi設計システム及びそのlsi設計方法 | |
JPH06274568A (ja) | 階層図形データの展開方法 | |
JP3304912B2 (ja) | Asic設計方法およびasic設計装置 | |
CN107784185B (zh) | 一种门级网表中伪路径的提取方法、装置及终端设备 | |
JP4962084B2 (ja) | 回路設計検証システム、方法、及び、プログラム | |
JP2007094506A (ja) | 回路検証システムと方法、及びプログラム | |
US20220327269A1 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
JPWO2006025412A1 (ja) | 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置 | |
JP2004013851A (ja) | Lsi設計支援システムおよびプログラム | |
US10997333B1 (en) | Methods, systems, and computer program product for characterizing an electronic design with a schematic driven extracted view | |
JP2752923B2 (ja) | 論理シミュレーション装置および論理回路情報作成方法 | |
US7191412B1 (en) | Method and apparatus for processing a circuit description for logic simulation | |
US6701496B1 (en) | Synthesis with automated placement information feedback | |
JPH07129647A (ja) | Cadシステム | |
US6481001B1 (en) | Method and system for proactively debugging fitting problems in programmable logic devices | |
JP3105782B2 (ja) | 電子回路の論理生成方法 | |
KR102545302B1 (ko) | Cmos 기반 디지털 회로의 설계 및 검증 과정 자동화 프레임워크 | |
TWI768536B (zh) | 積體電路模擬及設計方法與系統 | |
JP2004280279A (ja) | トップダウン設計装置およびトップダウン設計プログラム | |
JP2967174B2 (ja) | 設計装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050527 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080304 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080701 |