(57)【要約】【課題】  論理設計時の配線の接続ミス、記述ミスを防止し、集積回路の論理設計期間を短縮する。【解決手段】  外部端子に接続されるＩＯセルを論理回路に接続するために、まず、外部からＩＯセルの端子と論理回路の端子との接続仕様が入力され、この接続仕様に応じて、ＩＯセルと論理回路との間に回路素子が自動的に挿入される。次に、集積回路を構成する素子の接続関係が抽出されてネットリストが生成される。このため、接続仕様に応じて、ＩＯセルと論理回路との間に必要な回路素子が確実に挿入される。【選択図】    図１
2005284893.tif 000002
【特許請求の範囲】
【請求項１】
外部端子に接続されるＩＯセルを、論理回路に接続するための集積回路の論理生成方法であって、
前記ＩＯセルの端子と前記論理回路の端子との接続仕様を受け、
前記ＩＯセルと前記論理回路との間に前記接続仕様に応じて回路素子を挿入し、
集積回路を構成する素子の接続関係を抽出してネットリストを生成することを特徴とする集積回路の論理生成方法。
【請求項２】
請求項１記載の集積回路の論理生成方法において、
前記接続仕様が、前記ＩＯセルの端子と前記論理回路の端子との入出力特性が互いに一致しないことを示す場合に、入出力特性を一致させるための前記回路素子を前記ＩＯセルと前記論理回路との間に挿入することを特徴とする集積回路の論理生成方法。
【請求項３】
請求項１記載の集積回路の論理生成方法において、
挿入した前記回路素子および抽出した前記接続関係の少なくともいずれかを、修正することを特徴とする集積回路の論理生成方法。
【請求項４】
外部端子に接続されるＩＯセルを論理回路に接続するために、コンピュータを、
前記ＩＯセルの端子と前記論理回路の端子との接続仕様を受ける手段と、
前記ＩＯセルと前記論理回路との間に前記接続仕様に応じて回路素子を挿入する手段と、
集積回路を構成する素子の接続関係を抽出してネットリストを生成する手段として機能させることを特徴とする集積回路の論理生成プログラム。
【請求項５】
請求項４記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、前記ＩＯセルの端子と前記論理回路の端子との入出力特性が互いに一致しないことを示す場合に、入出力特性を一致させるための前記回路素子を前記ＩＯセルと前記論理回路との間に挿入する手段として機能させることを特徴とする集積回路の論理生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路等の論理設計に使用される集積回路の論理生成方法および集積回路の論理生成プログラムに関する。
【背景技術】
【０００２】
トランジスタ構造の微細化とともに、プロセッサ等の集積回路の性能は、年々向上している。これに伴い、集積回路の規模が増大している。大規模な集積回路を市場の要求に見合った期間で開発するために、設計手法が自動化され、設計効率の向上（ターンアラウンドタイムの改善）が図られている。例えば、集積回路の機能を実現する内部回路と、外部端子および内部回路（論理回路）のインタフェース部分である周辺回路（ＩＯセル）の論理とを接続するときに、設計仕様に応じて周辺回路の駆動能力等を最適にする技術が開示されている（例えば、特許文献１）。
【特許文献１】国際公開第００／４９６５３号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００３】
例えば、周辺回路の端子の電気的仕様が、内部回路の端子の電気的仕様と相違する場合、電気的仕様を合わせるためのインタフェース回路が必要である。従来、この種のインタフェース回路は、手作業で挿入している。換言すれば、論理設計等において、この種のインタフェース回路は、人手で記述する必要があった。回路規模の増加および挿入する回路の種類の増加により、手作業で挿入したインタフェース回路の接続ミスや記述ミスが増加する傾向にあり、設計期間の短縮の妨げになっている。また、インタフェース回路を人手で挿入ために所定の工数が必要であり、設計期間を増加させる要因になっている。
【０００４】
本発明の目的は、論理設計時の配線の接続ミス、記述ミスを防止し、集積回路の論理設計期間を短縮することにある。
【課題を解決するための手段】
【０００５】
本発明の一形態では、外部端子に接続されるＩＯセルを論理回路に接続するために、まず、外部からＩＯセルの端子と論理回路の端子との接続仕様が入力され、この接続仕様に応じて、ＩＯセルと論理回路との間に回路素子が自動的に挿入される。次に、集積回路を構成する素子の接続関係が抽出されてネットリストが生成される。このため、接続仕様に応じて、ＩＯセルと論理回路との間に必要な回路素子を確実に挿入できる。この結果、論理設計時の配線の接続ミス、記述ミスを防止でき、集積回路の論理設計期間を短縮できる。
【０００６】
本発明の一形態における好ましい例では、接続仕様が、ＩＯセルの端子と論理回路の端子との入出力特性が互いに一致しないことを示す場合に、入出力特性を一致させるための回路素子が、ＩＯセルと論理回路との間に挿入される。このため、入出力特性の不一致による集積回路の誤動作防止の措置を、ネットリストを作成するまでの一連の処理中に講じることができる。すなわち、誤動作防止の措置を論理設計段階から講じることができる。
【０００７】
本発明の一形態における好ましい例では、挿入した回路素子および抽出した接続関係の少なくともいずれかは、修正可能である。このため、自動挿入された回路素子を容易に修正でき、あるいはＩＯセル、論理回路および回路素子間の接続関係を容易に修正できる。換言すれば、万一、接続関係等に誤りがあることを発見した場合にも、接続仕様を新たに生成することなく、修正処理を容易にできるため、集積回路の論理設計期間を短縮できる
。
【発明の効果】
【０００８】
本発明では、ＩＯセルの端子と論理回路の端子との接続仕様に応じて、ＩＯセルと論理回路との間に回路素子が挿入されるため、論理設計時の配線の接続ミス、記述ミスを防止でき、集積回路の論理設計期間を短縮できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態を図面を用いて説明する。
【００１０】
図１は、本発明の集積回路の論理生成方法および集積回路の論理生成プログラムの一実施形態を示しており、半導体集積回路を論理設計するための設計ツールの一部を示している。図中の四角（一重枠）は、論理設計をするための処理部を示し、円柱は、処理部に対して入出力されるファイルを示している。図中の四角（二重枠）は、別の設計ツールを示している。一点鎖線で囲まれた論理生成部１００は、本発明を実現するための主要部である。図中の各処理部およびファイルは、ワークステーションＷＳ（コンピュータ）によって実行およびアクセスされる。二重枠で示した設計ツールは、ワークステーションＷＳおよびワークステーションＷＳによって実行されるプログラムで実現してもよく、別の装置およびこの装置によって実行されるプログラムで実現してもよい。
【００１１】
各処理部は、ワークステーションＷＳに実行させるためのプログラムとして生成されている。各ファイルは、ワークステーションＷＳがプログラムを実行するために使用され、あるいはワークステーションＷＳがプログラムを実行することで生成される。これ等プログラムおよびファイルは、磁気テープ、光ディスク（ＭＯ、ＣＤ−ＲＯＭ）、あるいは磁気ディスク（ハードディスク）等の記憶媒体に記憶される。一般的には、プログラムは、磁気テープまたは光ディスク等からワークステーションＷＳ内のハードディスクに転送され、ワークステーションＷＳにより実行可能にハードディスク内に記憶されている。
【００１２】
論理生成部１００は、モジュール読込部１０、制御カード解析部１２、入力部１４、制御カード生成部１６、接続信号判断部１８、ネット接続部２０、ネットリスト出力部２２、テストデータ生成部２４およびＬＳＩテスタ用データ生成部２６で構成されている。プログラムにより実現される各処理部１０〜２６に入力および出力される矢印は、そのプログラムで使用するために入力されるデータおよびプログラムの実行により生成されるデータをそれぞれ示している。
【００１３】
モジュール読込部１０は、論理回路の記述データとＩＯセルの記述データを読み込み、読み込んだデータをデータベース化する。ここで、論理回路の記述は、論理回路生成ツールにより別途生成される。論理回路は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェース回路、割り込み回路、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）等であり、半導体集積回路の所定の機能を実現するための回路である。ＩＯセルは、論理回路を外部端子に接続するための回路である。ここでは、ＩＯセルは、一般にハードウエアＩＰと称する最小単位のセル（プリミティブセル）を示す。ＩＯセルには、バッファ回路の他、レベルコンバータ、プルアップ回路、プルダウン回路、反転回路、バスフォルダ回路、バウンダリスキャン回路およびＪＴＡＧ回路等がある。
【００１４】
制御カード解析部１２は、ＩＯセルを論理回路に接続するために、予め用意された制御カードに記載された外部端子の信号情報および接続情報を読み込み、各情報を他の処理部１６、１８、２４、２６で処理可能な形式に変換する。制御カード解析部１２は、半導体集積回路の外部端子の記述と論理回路の端子の記述に所定の規則性がある場合、これ等記
述が正規表現されていると判断し、正規表現された記述を、一対一対応の接続記述に変換する。
【００１５】
また、制御カード解析部１２は、予め用意されたテストデータ用制御カードに記載された外部端子に対するテストデータ情報に基づいて、テストデータテンプレート（情報格納用のひな型）および入力端子に必要な固定値情報を生成する。テストデータテンプレートには、レジスタのアドレス等のテストデータとして必要な情報を格納する格納領域が予め割り当てられている。さらに、制御カード解析部１２は、出荷テスト用制御カードに記載された半導体集積回路を封止するパッケージ名、外部端子の端子名および端子番号を読み込み、パッケージ情報を作成する。
【００１６】
テストデータ用制御カードには、外部端子毎にタイミングを含んだテストパターンと、端子の固定値情報とが記載されている。ここで、固定値情報とは、例えば、入力端子のアクティブ論理レベルを含み、ハイアクティブの入力端子がオープンのときに、ロウレベルに固定する必要があることを示す。半導体集積回路がＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）またはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等のプログラムを実行するプロセッサを含む場合、テストデータ用制御カードには、プロセッサのメモリマップと、プロセッサがアクセスするレジスタのアドレスと、レジスタのビット幅等も記載されている。テストデータ用制御カードは、テストデータ生成部２４によるテストデータの生成に使用される。
【００１７】
出荷テスト用制御カードは、半導体集積回路のパッケージ名、外部端子名、外部端子番号、電圧情報（ＤＣ条件）、等の端子条件が記載されている。出荷テスト用制御カードは、ＬＳＩテスタ用データ生成部２６によるＬＳＩテスタ用制御カードの生成に使用される。
【００１８】
入力部１４は、いわゆるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）であり、ワークステーションＷＳに接続されたキーボード、マウスおよびディスプレイ等を制御する。また、入力部１４は、制御カード解析部１２で受けた制御カードの信号情報、挿入された回路素子および後述する接続信号判断部１８により抽出される回路の接続関係の変更、削除を、ワークステーションＷＳを操作するオペレータの指示に応答して実施する。あるいは、入力部１４は、制御カードに記載されていない新たな信号情報、回路素子および接続情報をオペレータの指示に応答して追加設定する。制御カード生成部１６は、入力部１４で変更および追加された信号情報、回路素子および接続情報に対応して、制御カードを更新し、あるいは、新たな制御カードを生成する。入力部１４で変更および追加された信号情報および接続情報は、制御カード解析部１２にもフィードバックされる。
【００１９】
接続信号判断部１８は、制御カード解析部１２を介して受ける制御カードに記載された信号情報および接続情報と、入力部１４から受ける変更情報および追加情報と、モジュール読込部１０を介して受けるデータベース化された論理回路の記述データおよびＩＯセルの記述データとに基づいて、論理回路の端子とＩＯセルの端子とを互いに接続する。また、接続信号判断部１８は、制御カードに記載された情報に基づいて、ＩＯセルと論理回路との間に挿入すべき回路素子（プルアップ回路等のプリミティブセル）を判定する。挿入される回路素子は、接続信号判断部１８に予め登録しておいてもよく、その都度ＩＯセルファイルから読み込んでもよい。このように、接続信号判断部１８は、挿入される回路素子を含めた信号情報および接続情報等の素子の接続関係を抽出し、ネット接続部２０に出力する。
【００２０】
ネット接続部２０は、接続信号判断部１８からの情報に基づいて論理回路の端子、ＩＯ
セルの端子、および挿入された回路素子の端子を相互に接続する。そして、接続信号判断部１８により自動挿入された回路素子を含むネットリストが生成される。すなわち、接続信号判断部１８が抽出した素子の接続関係に基づいてネットリストが生成される。
【００２１】
ネットリスト出力部２２は、ネット接続部２０により生成されたネットリストを出力する。また、ネットリスト出力部２２は、ネットリストに関連して、外部端子名情報、外部端子の属性情報およびネットリスト内部のレジスタ等のアドレス情報、ＩＯセルの種別情報等を生成する。
【００２２】
テストデータ生成部２４は、制御カード解析部１２を介して受けるテストデータ用制御カードに記載された情報と、ネットリスト出力部２２から受けるネットリストとともに作成される外部端子名情報、外部端子の属性情報、ネットリスト内部のレジスタ等のアドレス情報とに基づいて、論理シミュレーションを実行するためのテストデータを生成する。この際、入力部１４によって信号情報および接続情報が変更または追加されている場合、テストデータ生成部２４は、変更または追加された情報を含めた情報を受ける。論理シミュレータは、ネットリストおよびテストデータを受けることで論理シミュレーションを実行する。テストデータ生成部２４の動作の詳細は、図２で説明する。
【００２３】
ＬＳＩテスト用データ生成部２６は、制御カード解析部１２を介して受ける出荷テスト用制御カードに記載された情報と、ネットリスト出力部２２から受ける外部端子名情報、外部端子の属性情報、ＩＯセルの種別情報とに基づいて、ＬＳＩテスタで出荷テスト（半導体集積回路の選別テスト）を実行するためのＬＳＩテスタ用制御カードを生成する。ＬＳＩテスタは、ＬＳＩテスタ用制御カードと、別途作成されるＬＳＩテスタ用テストデータとを受けることで、実装された半導体集積回路の出荷テストを実行する。ＬＳＩテスト用データ生成部２６の動作の詳細は、図３で説明する。
【００２４】
図２は、テストデータ生成部２４の詳細を示している。テストデータ生成部２４は、外部端子情報生成部３０、アドレス情報生成部３２およびテストデータ生成処理部３４を有している。外部端子情報生成部３０は、ネットリスト出力部２２により生成された外部端子名情報および外部端子の属性情報に基づいて、外部端子の一覧である外部端子情報を生成する。また、外部端子情報生成部３０は、制御カード解析部１２により生成された固定値情報に基づいて、外部入力端子に固定値を付加する。アドレス情報生成部３２は、制御カード解析部１２により生成されたテストデータテンプレート内のレジスタアドレス格納領域に、半導体集積回路に形成されるレジスタのアドレスを付加してアドレス情報を生成する。テストデータ生成処理部３４は、外部端子情報生成部３０により生成された外部端子情報（外部端子の一覧）と、アドレス情報生成部３２により生成されたアドレス情報とに基づいて、論理シミュレータで使用する期待値とタイミング、テスト周期などが記載されたテストデータを生成する。
【００２５】
テストデータ生成部２４では、ネットリスト出力部２２でのネットリスト作成の際に生成される外部端子名等の情報を利用することにより、従来、人手でテストデータを作成していたときに問題になっていたテストデータの記述ミスを防ぐことができる。また、ネットリスト作成の際に生成される情報に基づいてテストデータを自動で作成することで、テストデータの作成期間を短縮できる。
【００２６】
図３は、ＬＳＩテスト用データ生成部２６の詳細を示している。ＬＳＩテスト用データ生成部２６は、外部端子情報生成部４０、パッド情報生成部４２およびＬＳＩテスト用データ生成処理部４４を有している。外部端子情報生成部４０は、ネットリスト出力部２２により生成された外部端子の属性情報、ＩＯセルの種別情報とに基づいて、外部端子の入出力属性および外部端子に対する信号種別を示す外部端子情報を生成する。パッド情報生
成部４２は、ネットリスト出力部２２により生成された外部端子名情報、ＩＯセルの種別情報と、制御カード解析部１２により生成されたパッケージ情報に基づいて、パッケージ（リードフレーム）の端子と半導体集積回路の外部端子の対応情報、パッド座標情報およびパッド形状情報を生成する。ＬＳＩテスト用データ生成処理部４４は、外部端子情報生成部４０およびパッド情報生成部４２で生成された情報に基づいて、ＬＳＩテスタで使用する外部端子の属性、パッドの形状、外部端子に供給する電圧条件等の情報を記述したＬＳＩテスタ用制御カードを生成する。
【００２７】
ＬＳＩテスト用データ生成部２６では、ネットリスト出力部２２でのネットリスト作成の際に生成される外部端子名等の情報を利用することにより、従来、人手でＬＳＩテスト用データを作成していたときに問題になっていたパッド座標の算出ミスおよびパッド形状の選択ミスを防ぐことができる。また、パッケージ情報やＩＯセルの種別の調査作業を自動化することで、ＬＳＩテスト用データの作成期間を短縮できる。
【００２８】
図４は、図１に示した論理生成部１００の動作例を示している。なお、図に示した手順は、発明を分かりやすくするためのものであり、実際の論理生成部１００の動作は、この手順に限定されるものではなく、図に示した３つの処理が同時に実施されてもよい。この例では、ＩＯセルＡおよび論理回路Ｂ、Ｃが、モジュール読込部１０により読み込まれる。また、制御カードには、ＩＯセルＡが入力属性を有すること、ＩＯセルＡの内部端子Ａ１が、論理回路Ｂの入力端子Ｂ１と論理回路Ｃの入力端子Ｃ１に接続されることが記載されている（上側の図）。
【００２９】
制御カード解析部１２は、ＩＯセルＡが５Ｖ仕様であり、論理回路Ｂ、Ｃの電源電圧がそれぞれ５Ｖおよび３Ｖであることが記載された制御カードを、ＩＯセルＡと論理回路Ｂ、Ｃの端子間の接続仕様として読み込む（中央の図）。接続信号判断部１８は、接続仕様に応じてＩＯセルＡの高レベル電圧（５Ｖ）が論理回路Ｃに直接供給されてはならないと判断する。すなわち、ＩＯセルＡと論理回路Ｃの入出力特性が一致しないことが自動的に検出される。接続信号判断部１８は、この検出に基づいて、ＩＯセルＡと論理回路Ｃの入出力特性を一致させるために、ＩＯセルＡと論理回路Ｃとの間に、５Ｖの高レベル電圧を３Ｖに変換するレベルコンバータＤ（回路素子）を自動的に挿入する（下側の図）。このように、レベルコンバータＤは、出力回路（ＩＯセルＡ）端子Ａ１から入力回路（論理回路Ｃ）の端子Ｃ１に伝達される信号の電圧レベルが互いに異なる場合、電圧レベルを入力回路に合わせるために自動的に挿入される。換言すれば、接続信号判断部１８は、制御カードにレベルコンバータＤの記載が存在しなくても、制御カードの情報に基づいてレベルコンバータＤを挿入する。
【００３０】
ネット接続部２０は、端子Ａ１、Ｄ１、Ｂ１を互いに接続し、端子Ｄ２、Ｃ１を互いに接続することで、半導体集積回路を構成する素子の接続関係を抽出し、抽出した接続関係に対応するネットリストを作成する。この後、上述したように、論理生成部１００は、論理シミュレータ用のテストデータと、ＬＳＩテスタ用制御カードとを生成する。
【００３１】
図５は、図１に示した論理生成部１００の別の動作例を示している。なお、図に示した手順は、図４と同様に発明を限定するものではない。この例では、ＩＯセルＡおよび論理回路Ｂが、モジュール読込部１０により読み込まれる。また、制御カードには、ＩＯセルＡが入力属性を有すること、ＩＯセルＡの内部端子Ａ１が、論理回路Ｂの入力端子Ｂ１に接続されることが記載されている（上側の図）。
【００３２】
制御カード解析部１２は、ＩＯセルＡに接続される外部端子（パッド）に信号が供給されない場合があること、および論理回路Ｂの入力端子Ｂ１のアクティブ電圧レベルがロウアクティブを示すことが記載された制御カードを、ＩＯセルＡと論理回路Ｂの端子間の接
続仕様として読み込む。接続信号判断部１８は、接続仕様に応じて、ＩＯセルＡに接続される外部端子（パッド）がオープンになる場合もあると判断し、入力端子Ｂ１を非アクティブレベルに保持するために、端子Ａ１、Ｂ１間を接続するネット上にプルアップ回路Ｃを自動的に挿入する（下側の図）。このように、接続信号判断部１８は、制御カードにプルアップ回路Ｃの記載が存在しなくても、制御カードの情報に基づいてプルアップ回路Ｃを挿入する。
【００３３】
なお、端子Ｂ１がハイアクティブの属性を有する場合、プルダウン回路が挿入される。また、ＩＯセルＡと論理回路Ｂの入出力関係が逆の場合に、接続信号判断部１８は、外部端子を介してＩＯセルＡに接続される外部信号線の接続仕様に応じて、プルアップ回路またはプルダウン回路を挿入するか否かを判断する。
【００３４】
ネット接続部２０は、端子Ａ１、Ｂ１、Ｃ１を互いに接続することで、半導体集積回路を構成する素子の接続関係を抽出し、抽出した接続関係に対応するネットリストを作成する。この後、上述したように、論理生成部１００は、論理シミュレータ用のテストデータと、ＬＳＩテスタ用制御カードとを生成する。
【００３５】
図６は、図１に示した論理生成部１００の別の動作例を示している。なお、図に示した手順は、図４と同様に発明を限定するものではない。この例では、ＩＯセルＡおよび論理回路Ｂ、Ｃが、モジュール読込部１０により読み込まれる。また、制御カードには、ＩＯセルＡが入力属性を有すること、ＩＯセルＡの内部端子Ａ１が、論理回路Ｂ、Ｃの入力端子Ｂ１、Ｃ１に接続されることが記載されている（上側の図）。
【００３６】
制御カード解析部１２は、ＩＯセルＡに接続される外部端子（パッド）に信号が供給されない場合がある（ハイインピーダンスになる場合がある）ことが記載された制御カードを、ＩＯセルＡと論理回路Ｂ、Ｃの端子間の接続仕様として読み込む。接続信号判断部１８は、接続仕様に応じて、ＩＯセルＡに接続される外部端子（パッド）がフローティングになる場合もあると判断し、端子Ａ１、Ｂ１、Ｃ１間を相互に接続するネット上にバスフォルダ回路Ｄ（ネット上に伝達された信号の論理レベルを保持するラッチ回路）を自動的に挿入する（下側の図）。
【００３７】
なお、ＩＯセルＡと論理回路Ｃの入出力関係が逆の場合で、論理回路Ｃの出力端子がハイインピーダンスになる可能性がある場合、接続信号判断部１８は、ＩＯセルＡと論理回路Ｃの間にバスフォルダ回路Ｄを挿入することを判断する。このように、接続信号判断部１８は、制御カードにバスフォルダ回路Ｄの記載が存在しなくても、制御カードの情報に基づいてバスフォルダ回路Ｄを挿入する。この後、図４および図５と同様に、ネットリスト、論理シミュレータ用のテストデータ、およびＬＳＩテスタ用制御カードが生成される。
【００３８】
図７は、図１に示した論理生成部１００の別の動作例を示している。なお、図に示した手順は、図４と同様に発明を限定するものではない。この例では、ＩＯセルＡ、Ｂ、Ｃおよび論理回路Ｄが、モジュール読込部１０により読み込まれる。また、制御カードには、ＩＯセルＡが入力属性を有すること、ＩＯセルＢが出力属性を有すること、ＩＯセルＣが入出力属性を有すること、ＩＯセルＡ、Ｂ、Ｃの内部端子Ａ１−３、Ｂ１−２、Ｃ１が、論理回路Ｄの入力端子Ｄ１−３、出力端子Ｄ４−５、入出力端子Ｄ６に接続されることが記載されている（上側の図）。制御カードには、半導体集積回路内にバウンダリスキャン回路（テスト回路）を挿入することも記載されている。
【００３９】
制御カード解析部１２は、制御カードを、ＩＯセルＡ、Ｂ、Ｃと論理回路Ｄの接続仕様として読み込む。接続信号判断部１８は、接続仕様に応じて、ＩＯセルＡ、Ｂ、Ｃと論理
回路Ｄとの間にスキャンレジスタＳＣＡＮを挿入する（下側の図）。この際、接続信号判断部１８は、バウンダリスキャンテストに必要な図示しない制御回路（命令レジスタ、バイパスレジスタ、ＴＡＰコントローラ）および専用のテスト端子も挿入する。このように、接続信号判断部１８は、制御カードにスキャンレジスタＳＣＡＮの挿入位置の記載およびスキャンレジスタＳＣＡＮに付随する命令レジスタ等の記載が存在しなくても、制御カードの情報に基づいてバウンダリスキャン回路を自動的に挿入する。
【００４０】
この後、図４および図５と同様に、ネットリスト、論理シミュレータ用のテストデータ、およびＬＳＩテスタ用制御カードが生成される。バウンダリスキャン回路ＳＣＡＮ等の挿入により、実際に製造された半導体集積回路がシステム基板に搭載された状態で、半導体集積回路の外部端子とシステム基板との相互接続テストを容易に実施できる。
【００４１】
図８は、図１に示した論理生成部１００の別の動作例を示している。なお、図に示した手順は、図４と同様に発明を限定するものではない。この例では、上述した図７に加え、制御カード解析部１２は、バウンダリスキャンテストを効率的に実施するためのＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）回路を半導体集積回路内に挿入することが記載された制御カードを、ＩＯセルＡ、Ｂ、Ｃと論理回路Ｄの接続仕様として読み込む。制御カードに記載された他の接続仕様は、図７と同じである。
【００４２】
接続信号判断部１８は、接続仕様に応じて、ＩＯセルＡ、Ｂ、Ｃと論理回路Ｄとの間にスキャンレジスタＳＣＡＮおよびＪＴＡＧ回路を自動的に挿入する（下側の図）。この際、接続信号判断部１８は、ＪＴＡＧ回路の挿入位置を、接続仕様に応じて自動的に判断する。この例では、ＪＴＡＧ回路は、入出力属性を有するＩＯセルＣと論理回路Ｄの端子Ｄ６の間に挿入される。このように、接続信号判断部１８は、制御カードにスキャンレジスタＳＣＡＮおよびＪＴＡＧ回路の挿入位置の記載が存在しなくても、制御カードの情報に基づいてバウンダリスキャン回路を自動的に挿入する。この後、図４および図５と同様に、ネットリスト、論理シミュレータ用のテストデータ、およびＬＳＩテスタ用制御カードが生成される。
【００４３】
図９は、図１に示した論理生成部１００の別の動作例を示している。なお、図に示した手順は、図４と同様に発明を限定するものではない。この例では、上述した図８に加え、制御カード解析部１２は、バウンダリスキャンテストを実施するためのバウンダリスキャン回路の動作を、ユーザ固有の仕様に基づいて設定することが記載された制御カードを、ＩＯセルＡ、Ｂ、Ｃと論理回路Ｄの接続仕様として読み込む。制御カードに記載された他の接続仕様は、図７および図８と同じである。なお、論理回路Ｄは、プログラムを実行するためのＣＰＵコア等のプロセッサを含む。
【００４４】
接続信号判断部１８は、接続仕様に応じて、ＩＯセルＡ、Ｂ、Ｃと論理回路Ｄとの間にスキャンレジスタＳＣＡＮおよびＪＴＡＧ回路を挿入する。また、接続信号判断部１８は、論理回路Ｄが実行するバウンダリスキャンテスト用のユーザプログラムを格納するためのＪＴＡＧメモリ（記憶領域）が必要と判断し、ＪＴＡＧメモリをプロセッサがアクセス可能な論理回路Ｄ内に挿入する（下側の図）。この後、図４および図５と同様に、ネットリスト、論理シミュレータ用のテストデータ、およびＬＳＩテスタ用制御カードが生成される。
【００４５】
図１０は、図１に示した論理生成部１００の別の動作例を示している。なお、図に示した手順は、図４と同様に発明を限定するものではない。この例では、ＩＯセルＡ、Ｂ、Ｃおよび論理回路Ｄが、モジュール読込部１０により読み込まれる。また、制御カードには、ＩＯセルＡ、Ｂが入力属性および出力属性をそれぞれ有すること、ＩＯセルＣが出力属性を有し、イネーブル端子Ｃ２を有するトライステートバッファであること、論理回路Ｄ
の入力端子Ｄ１、Ｄ３、Ｄ４がＩＯセルＡの内部端子Ａ１、ＩＯセルＢの内部端子Ｂ１、ＩＯセルＣの内部端子Ｃ１にそれぞれ接続されることが記載されている（上側の図）。さらに、制御カードには、論理回路Ｄの入力端子Ｄ２とＩＯセルＣのイネーブル端子Ｃ２とがオープンであること、入力端子Ｄ２は、ロウアクティブの属性を有し、常に非活性化する必要があること、イネーブル端子Ｃ２は、ロウアクティブの属性を有し、論理回路Ｄからの出力信号を外部に出力するために、常に活性化する必要があることが記載されている。
【００４６】
制御カード解析部１２は、上述の内容が記載された制御カードを、ＩＯセルＡ、Ｂ、Ｃと論理回路Ｄの端子間の接続仕様として読み込む。接続信号判断部１８は、接続仕様に応じて、論理回路Ｄの端子Ｄ１、Ｄ３、Ｄ４をＩＯセルＡ、Ｂ、Ｃの端子Ａ１、Ｂ１、Ｃ１にそれぞれ接続する。また、接続信号判断部１８は、接続仕様に応じて、論理回路Ｄの端子Ｄ２をハイレベルに固定する必要があると判断し、電源電圧レベルを出力するプルアップ回路Ｅを自動的に挿入し、このプルアップ回路Ｅを端子Ｄ２に自動的に接続する。さらに、接続信号判断部１８は、ＩＯセルＣのイネーブル端子Ｃ２をロウレベルに固定する必要があると判断し、接地電圧レベルを出力するプルダウン回路Ｆを自動的に挿入し、このプルダウン回路Ｆをイネーブル端子Ｃ２に自動的に接続する（下側の図）。このように、接続信号判断部１８は、制御カードにプルアップ回路Ｅおよびプルダウン回路Ｆの記載が存在しなくても、制御カードの情報に基づいてこれ等回路Ｅ、Ｆを自動的に挿入する。この後、図４および図５と同様に、ネットリスト、論理シミュレータ用のテストデータ、およびＬＳＩテスタ用制御カードが生成される。
【００４７】
図１１は、図１に示した論理生成部１００の別の動作例を示している。なお、図に示した手順は、図４と同様に発明を限定するものではない。この例では、ＩＯセルＡ、Ｂおよび論理回路Ｃが、モジュール読込部１０により読み込まれる。制御カードには、ＩＯセルＡが入出力属性を有し、方向切り替え端子Ａ２（外部端子から方向切り替え信号を受ける）を有する双方向バッファであること、ＩＯセルＢが出力属性を有すること、論理回路Ｃの入出力端子Ｃ１、方向切り替え端子Ｃ２（入力端子）、出力端子Ｃ３、Ｃ４がＩＯセルＡの内部端子Ａ１、方向切り替え端子Ａ２、ＩＯセルＢの内部端子Ｂ１、Ｂ２にそれぞれ接続されることが記載されている（上側の図）。また、制御カードには、ＩＯセルＡと論理回路Ｃの方向切り替え端子Ａ２、Ｃ２における論理レベルと入出力方向が記載されている。
【００４８】
制御カード解析部１２は、上述の内容が記載された制御カードを、ＩＯセルＡ、Ｂと論理回路Ｃの端子間の接続仕様として読み込む。接続信号判断部１８は、接続仕様に応じて、論理回路Ｃの端子Ｃ１、Ｃ３、Ｃ４をＩＯセルＡ、Ｂの端子Ａ１、Ｂ１、Ｂ２にそれぞれ接続する。また、接続信号判断部１８は、ＩＯセルＡと論理回路Ｃの方向切り替え端子Ａ２、Ｃ２における論理レベルと入出力方向との関係が、互いに逆であると判断する。すなわち、ＩＯセルＡと論理回路Ｃの入出力特性が一致しないことが自動的に検出される。接続信号判断部１８は、この検出に基づいて、ＩＯセルＡと論理回路Ｃの入出力特性を一致させるために、ＩＯセルＡの方向切り替え端子Ａ２と論理回路Ｃの方向切り替え端子Ｃ２との間に反転回路Ｄを挿入する（下側の図）。具体的には、例えば、ＩＯセルＡにおいて、方向切り替え信号のハイレベルが外部端子からの入力を示し、論理回路Ｃにおいて方向切り替え信号のハイレベルが出力を示すとき、反転回路Ｄが挿入される。このように、接続信号判断部１８は、制御カードに反転回路Ｄの記載が存在しなくても、制御カードの情報に基づいて反転回路Ｄを自動的に挿入する。この後、図４および図５と同様に、ネットリスト、論理シミュレータ用のテストデータ、およびＬＳＩテスタ用制御カードが生成される。
【００４９】
以上、本実施形態では、制御カードに記載された接続仕様に応じて、ＩＯセルと論理回
路との間に必要な回路素子（レベルコンバータ、プルアップ回路等）を確実に挿入できる。挿入する回路素子の選択は、論理生成プログラムにより自動的に実施されるため、従来、人手で作業することで発生していた論理設計時の配線の接続ミス、記述ミスを防止できる。この結果、半導体集積回路の論理設計期間を短縮できる。
【００５０】
制御カードに記載された接続仕様が、ＩＯセルの端子と論理回路の端子との入出力電圧仕様が互いに一致しないことを示す場合に、電圧を一致させるためのレベルコンバータを挿入することで、電圧の不一致による半導体集積回路の誤動作防止の措置を、ネットリストを作成するまでの論理設計中に講じることができる。
【００５１】
挿入した回路素子および抽出した接続関係は、オペレータからの入力指示に基づいて修正可能である。このため、自動挿入された回路素子を容易に修正でき、あるいはＩＯセル、論理回路および回路素子間の接続関係を容易に修正できる。換言すれば、万一、接続関係等に誤りがあった場合にも、接続仕様を新たに生成することなく、修正処理を容易にできため、半導体集積回路の論理設計期間を短縮できる。
【００５２】
以上の実施形態において説明した発明を整理して、付記として開示する。
【００５３】
（付記１）
外部端子に接続されるＩＯセルを、論理回路に接続するための集積回路の論理生成方法であって、
前記ＩＯセルの端子と前記論理回路の端子との接続仕様を受け、
前記ＩＯセルと前記論理回路との間に前記接続仕様に応じて回路素子を挿入し、
集積回路を構成する素子の接続関係を抽出してネットリストを生成することを特徴とする集積回路の論理生成方法。
（付記２）
付記１記載の集積回路の論理生成方法において、
前記接続仕様が、前記ＩＯセルの端子と前記論理回路の端子との入出力特性が互いに一致しないことを示す場合に、入出力特性を一致させるための前記回路素子を前記ＩＯセルと前記論理回路との間に挿入することを特徴とする集積回路の論理生成方法。
【００５４】
（付記３）
付記２記載の集積回路の論理生成方法において、
前記接続仕様が、前記端子に対してそれぞれ入力および出力される信号の電圧レベルを示し、これ等電圧レベルが互いに異なる場合に、電圧レベルを一致させるためのレベルコンバータを前記ＩＯセルと前記論理回路との間に挿入することを特徴とする集積回路の論理生成方法。
（付記４）
付記２記載の集積回路の論理生成方法において、
前記接続仕様が、前記端子に対してそれぞれ入力および出力される信号のアクティブ電圧レベルを示し、これ等アクティブ電圧レベルが互いに異なる場合に、前記端子の一方から出力される信号のアクティブ電圧レベルを反転するための反転回路を前記ＩＯセルと前記論理回路の間に挿入することを特徴とする集積回路の論理生成方法。
【００５５】
（付記５）
付記１記載の集積回路の論理生成方法において、
前記接続仕様が、前記端子の一方に入力される入力信号のアクティブ電圧レベルを示す場合に、このアクティブ電圧レベルに応じて、前記入力信号を非アクティブ電圧レベルに保持するためのプルアップ回路またはプルダウン回路を前記ＩＯセルと前記論理回路との間に挿入することを特徴とする集積回路の論理生成方法。
（付記６）
付記１記載の集積回路の論理生成方法において、
前記接続仕様が、前記ＩＯセルまたは前記論理回路の入力端子を所定の電圧レベルに固定する必要があることを示すとき、この入力端子に前記所定の電圧レベルを出力する回路素子を接続することを特徴とする集積回路の論理生成方法。
【００５６】
（付記７）
付記１記載の集積回路の論理生成方法において、
前記接続仕様が、前記端子の少なくとも一方がハイインピーダンスになる場合があることを示す場合に、ラッチ回路を前記ＩＯセルと前記論理回路との間に挿入することを特徴とする集積回路の論理生成方法。
（付記８）
付記１記載の集積回路の論理生成方法において、
前記接続仕様が、集積回路を搭載する基板と前記外部端子との相互接続テストを実施するためのテスト回路の挿入を示す場合に、テスト回路を前記ＩＯセルと前記論理回路との間に挿入することを特徴とする集積回路の論理生成方法。
【００５７】
（付記９）
付記８記載の集積回路の論理生成方法において、
前記接続仕様が、挿入する前記テスト回路がバウンダリスキャン回路であることを示す場合に、スキャンレジスタを前記ＩＯセルと前記論理回路との間に挿入するとともに、前記スキャンレジスタの動作を制御する制御回路を集積回路内に挿入することを特徴とする集積回路の論理生成方法。
（付記１０）
付記９記載の集積回路の論理生成方法において、
前記接続仕様が、ＪＴＡＧ回路の挿入を示す場合に、ＩＯセルの仕様に応じて前記ＪＴＡＧ回路を接続するＩＯセルを選択し、選択した前記ＩＯセルと前記論理回路の間に前記ＪＴＡＧ回路を挿入することを特徴とする集積回路の論理生成方法。
【００５８】
（付記１１）
付記１０記載の集積回路の論理生成方法において、
前記接続仕様が、前記バウンダリスキャン回路の動作仕様をユーザ固有に設定することを示す場合に、前記論理回路が実行するバウンダリスキャンテスト用のユーザプログラムを格納するための記憶領域を、前記論理回路がアクセス可能な位置に挿入することを特徴とする集積回路の論理生成方法。
（付記１２）
付記１記載の集積回路の論理生成方法において、
挿入した前記回路素子および抽出した前記接続関係の少なくともいずれかを、修正することを特徴とする集積回路の論理生成方法。
【００５９】
（付記１３）
付記１２記載の集積回路の論理生成方法において、
前記接続仕様を変更内容に応じて更新することを特徴とする集積回路の論理生成方法。
【００６０】
（付記１４）
外部端子に接続されるＩＯセルを論理回路に接続するために、コンピュータを、
前記ＩＯセルの端子と前記論理回路の端子との接続仕様を受ける手段と、
前記ＩＯセルと前記論理回路との間に前記接続仕様に応じて回路素子を挿入する手段と、
集積回路を構成する素子の接続関係を抽出してネットリストを生成する手段として機能
させることを特徴とする集積回路の論理生成プログラム。
（付記１５）
付記１４記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、前記ＩＯセルの端子と前記論理回路の端子との入出力特性が互いに一致しないことを示す場合に、入出力特性を一致させるための前記回路素子を前記ＩＯセルと前記論理回路との間に挿入する手段として機能させることを特徴とする集積回路の論理生成プログラム。
【００６１】
（付記１６）
付記１５記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、前記端子に対してそれぞれ入力および出力される信号の電圧レベルを示し、これ等電圧レベルが互いに異なる場合に、電圧レベルを一致させるためのレベルコンバータを前記ＩＯセルと前記論理回路との間に挿入する手段として機能させることを特徴とする集積回路の論理生成プログラム。
（付記１７）
付記１５記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、前記端子に対してそれぞれ入力および出力される信号のアクティブ電圧レベルを示し、これ等アクティブ電圧レベルが互いに異なる場合に、前記端子の一方から出力される信号のアクティブ電圧レベルを反転するための反転回路を前記ＩＯセルと前記論理回路の間に挿入する手段として機能させることを特徴とする集積回路の論理生成プログラム。
【００６２】
（付記１８）
付記１４記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、前記端子の一方に入力される入力信号のアクティブ電圧レベルを示す場合に、このアクティブ電圧レベルに応じて、前記入力信号を非アクティブ電圧レベルに保持するためのプルアップ回路またはプルダウン回路を前記ＩＯセルと前記論理回路との間に挿入する手段として機能させることを特徴とする集積回路の論理生成プログラム。
（付記１９）
付記１４記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、前記ＩＯセルまたは前記論理回路の入力端子を所定の電圧レベルに固定する必要があることを示すとき、この入力端子に前記所定の電圧レベルを出力する回路素子を接続する手段として機能させることを特徴とする集積回路の論理生成プログラム。
【００６３】
（付記２０）
付記１４記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、前記端子の少なくとも一方がハイインピーダンスになる場合があることを示す場合に、ラッチ回路を前記ＩＯセルと前記論理回路との間に挿入する手段として機能させることを特徴とする集積回路の論理生成プログラム。
（付記２１）
付記１４記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、集積回路を搭載する基板と前記外部端子との相互接続テストを実施するためのテスト回路の挿入を示す場合に、テスト回路を前記ＩＯセルと前記論理回路との
間に挿入する手段として機能させることを特徴とする集積回路の論理生成プログラム。
【００６４】
（付記２２）
付記２１記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、挿入する前記テスト回路がバウンダリスキャン回路であることを示す場合に、スキャンレジスタを前記ＩＯセルと前記論理回路との間に挿入するとともに、前記スキャンレジスタの動作を制御する制御回路を集積回路内に挿入する手段として機能させることを特徴とする集積回路の論理生成プログラム。
（付記２３）
付記２２記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、ＪＴＡＧ回路の挿入を示す場合に、ＩＯセルの仕様に応じて前記ＪＴＡＧ回路を接続するＩＯセルを選択し、選択した前記ＩＯセルと前記論理回路の間に前記ＪＴＡＧ回路を挿入する手段として機能させることを特徴とする集積回路の論理生成プログラム。
【００６５】
（付記２４）
付記２３記載の集積回路の論理生成プログラムにおいて、
コンピュータを、
前記接続仕様が、前記バウンダリスキャン回路の動作仕様をユーザ固有に設定することを示す場合に、前記論理回路が実行するバウンダリスキャンテスト用のユーザプログラムを格納するための記憶領域を、前記論理回路がアクセス可能な位置に挿入する手段として機能させることを特徴とする集積回路の論理生成プログラム。
【００６６】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態を示す処理フローである。
【図２】テストデータ生成部の詳細を示す処理フローである。
【図３】ＬＳＩテスト用データ生成部の詳細を示す処理フローである。
【図４】図１に示した論理生成部の動作例を示す説明図である。
【図５】図１に示した論理生成部の別の動作例を示す説明図である。
【図６】図１に示した論理生成部の別の動作例を示す説明図である。
【図７】図１に示した論理生成部の別の動作例を示す説明図である。
【図８】図１に示した論理生成部の別の動作例を示す説明図である。
【図９】図１に示した論理生成部の別の動作例を示す説明図である。
【図１０】図１に示した論理生成部の別の動作例を示す説明図である。
【図１１】図１に示した論理生成部の別の動作例を示す説明図である。
【符号の説明】
【００６８】
１０  モジュール読込部
１２  制御カード解析部
１４  入力部
１６  制御カード生成部
１８  接続信号判断部
２０  ネット接続部
２２  ネットリスト出力部
２４  テストデータ生成部
２６  ＬＳＩテスタ用データ生成部
３０  外部端子情報生成部
３２  アドレス情報生成部
３４  テストデータ生成処理部
４０  外部端子情報生成部
４２  パッド情報生成部
４４  ＬＳＩテスト用データ生成処理部
１００  論理生成部
【図１】
2005284893.tif 000003
【図２】
2005284893.tif 000004
【図３】
2005284893.tif 000005
【図４】
2005284893.tif 000006
【図５】
2005284893.tif 000007
【図６】
2005284893.tif 000008
【図７】
2005284893.tif 000009
【図８】
2005284893.tif 000010
【図９】
2005284893.tif 000011
【図１０】
2005284893.tif 000012
【図１１】
2005284893.tif 000013