(57)【要約】【課題】ＣＰＵを搭載するＬＳＩの製造時テスト用の入力ベクタ作成のためのプログラムを自動的に作成すること。【解決手段】例えばハード・ソフト協調設計環境下での設計で、ソフトウェア・ハードウェア間のインタフェースの生成に際して、ソフトウェアからハードウェア周辺回路部分にアクセスするメモリマップドレジスタ情報が抽出される（処理１３）。この抽出されたメモリマップドレジスタ情報は、次に、通常のＣ言語で利用可能なマクロ定義に自動的に変換される（処理１４）。その後、全てのメモリマップドレジスタに順次アクセスするプログラムを生成するルール１５に基づき、プログラムソースコードが自動的に生成されるようにした（処理１６）。【選択図】  図１
2004257822.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵを搭載する集積回路の製造時テスト用のテスト入力ベクタ作成のための、マスクデータで提供されたＣＰＵと周辺回路部分の接続をテストするためのプログラムを作成するテストプログラム自動作成装置であって、
レジスタ・トランスファー・レベル設計情報を生成するための中間設計情報から、ソフトウェアからハードウェア周辺回路部分にアクセスする各メモリマップドレジスタ情報を抽出した上、記憶する情報抽出・記憶手段と、
該情報抽出・記憶手段上に記憶されている各メモリマップドレジスタ情報をマクロ定義に変換するマクロ定義自動変換手段と、
該マクロ定義自動変換手段によりマクロ定義に変換された各メモリマップドレジスタ情報から、プログラムソースコードを生成するプログラムソースコード自動生成手段と
を含むテストプログラム自動作成装置。
【請求項２】
請求項１記載のテストプログラム自動作成装置において、
上記情報抽出・記憶手段により各メモリマップドレジスタ情報が抽出されるに際しては、該各メモリマップドレジスタ情報として、先頭アドレス、読出し／書込みアクセス区別及びワード数が抽出されるテストプログラム自動作成装置。
【請求項３】
請求項１記載のテストプログラム自動作成装置において、
上記プログラムソースコード自動生成手段によりプログラムソースコードが生成されるに際しては、全メモリマップドレジスタに順次、アクセスするためのプログラムを生成するためのルールに基づき、ソースコードが生成されるテストプログラム自動作成装置。
【請求項４】
ＣＰＵを搭載する集積回路の製造時テスト用のテスト入力ベクタ作成のための、マスクデータで提供されたＣＰＵと周辺回路部分の接続をテストするためのプログラムを作成するテストプログラム自動作成方法であって、
レジスタ・トランスファー・レベル設計情報を生成するための中間設計情報から、ソフトウェアからハードウェア周辺回路部分にアクセスする各メモリマップドレジスタ情報を抽出した上、記憶する情報抽出・記憶ステップと、
該情報抽出・記憶手段上に記憶されている各メモリマップドレジスタ情報をマクロ定義に変換するマクロ定義自動変換ステップと、
該マクロ定義自動変換手段によりマクロ定義に変換された各メモリマップドレジスタ情報から、プログラムソースコードを生成するプログラムソースコード自動生成ステップと
を含むテストプログラム自動作成方法。
【請求項５】
請求項４記載のテストプログラム自動作成方法において、
上記情報抽出・記憶ステップにより各メモリマップドレジスタ情報が抽出されるに際しては、該各メモリマップドレジスタ情報として、先頭アドレス、読出し／書込みアクセス区別及びワード数が抽出されるテストプログラム自動作成方法。
【請求項６】
請求項４記載のテストプログラム自動作成方法において、
上記プログラムソースコード自動生成手段によりプログラムソースコードが生成されるに際しては、全メモリマップドレジスタに順次、アクセスするためのプログラムを生成するためのルールに基づき、ソースコードが生成されるテストプログラム自動作成方法。
【請求項７】
ＣＰＵを搭載する集積回路の製造時テスト用のテスト入力ベクタ作成のための、マスクデータで提供されたＣＰＵと周辺回路部分の接続をテストするためのプログラムを作成するテストプログラム自動作成プログラムであって、
レジスタ・トランスファー・レベル設計情報を生成するための中間設計情報から、ソフトウェアからハードウェア周辺回路部分にアクセスする各メモリマップドレジスタ情報を抽出した上、記憶する情報抽出・記憶ステップと、
該情報抽出・記憶手段上に記憶されている各メモリマップドレジスタ情報をマクロ定義に変換するマクロ定義自動変換ステップと、
該マクロ定義自動変換手段によりマクロ定義に変換された各メモリマップドレジスタ情報から、プログラムソースコードを生成するプログラムソースコード自動生成ステップと
を含むテストプログラム自動作成プログラム。
【請求項８】
請求項７記載のテストプログラム自動作成プログラムにおいて、
上記情報抽出・記憶ステップにより各メモリマップドレジスタ情報が抽出されるに際しては、該各メモリマップドレジスタ情報として、先頭アドレス、読出し／書込みアクセス区別及びワード数が抽出されるテストプログラム自動作成プログラム。
【請求項９】
請求項７記載のテストプログラム自動作成プログラムにおいて、
上記プログラムソースコード自動生成手段によりプログラムソースコードが生成されるに際しては、全メモリマップドレジスタに順次、アクセスするためのプログラムを生成するためのルールに基づき、ソースコードが生成されるテストプログラム自動作成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵが搭載されている集積回路、特にＣＰＵと周辺回路が１チップとして実現されているシステムＬＳＩの製造時テスト用のテスト入力ベクタ作成のための、マスクデータで提供されたＣＰＵと周辺回路部分の接続をテストするためのプログラムを自動的に作成するテストプログラム自動作成装置及び方法、並びにテストプログラム自動作成プログラムに関する。
【０００２】
【従来の技術】
これまで、集積回路、例えばＬＳＩの製造時テストに際しては、幾つかの入出力ベクタの組を用意し、製造されたチップ各々に対して入力ベクタが与えられた場合に、正しい出力ベクタが出力されるか否かを確認することで、回路内に故障があるか否を確認している。
【０００３】
一方、集積回路の設計では、代表的なテスト容易化設計手法として、スキャン設計が知られている。このスキャン設計では、回路内部のレジスタをスキャン・レジスタに置き換え、スキャン・レジスタをシリアルに接続し、テストモード時にシフトレジスタとして動作させる。スキャン・レジスタをチェイン状に接続することで、テストモード時に個別の組合せ回路に対するテスト入力ベクタを設定し、組合せ回路の出力をパラレルにレジスタに読み込み、更に、シフトレジスタとして動作させてスキャン出力から観測することで、内部の組合せ回路の動作が確認可能となっている。
【０００４】
更に、スキャン設計された回路に対して、故障検出率の高いテスト入力ベクタを自動生成する技術が確立されていることから、テスト入力ベクタの全てを手作業で開発する手間が省けている。
【０００５】
因みに、特許文献１では、集積回路中に組み込まれたパターン発生器で発生されたテストパターンは、パターン修正器で修正された上、複数のシフトレジスタに入力されていることから、シフトレジスタであるスキャンパス数が増やされ、スキャンパス段数が少なくされることにより、集積回路に対するテスト時間が短縮化されている。
【０００６】
【特許文献１】
特開２００２―２３６１４４号公報
【０００７】
【発明が解決しようとする課題】
ところで、スキャン設計は、これから設計しようとしている回路部分に対しては有効であるも、製造プロセスに依存するマスクデータで提供される既設計回路についてはその適用が困難となっている。このような既設計回路の代表的なものとしてはＣＰＵコアが挙げられるが、ＣＰＵコア自体についてのテスト手法は、そのＣＰＵコアの提供者から提供されるのが通常である。しかしながら、ＣＰＵコアと、新たに設計された周辺回路部分との接続をテストするためのテスト入力ベクタは、設計者が手作業で開発する必要があった。因みに、上記にいう「マスクデータで提供」とは、物理的設計情報は提供されているも、レジスター・トランスファー・レベルの論理的設計情報が提供されていないことを意味している。
【０００８】
設計者がテスト入力ベクタを手作業で開発するには、先ずＣＰＵから全周辺回路にアクセスするソフトウェア（テストプログラム）を作成・実行し、ＣＰＵから各周辺回路内部の、最もバスに近いレジスタに正しくアクセスが行われているか否かを確認する必要がある。このソフトウェアをチップ外部からチップ内へ供給するための形式に変更されたものが、チップレベルでのテスト入力ベクタとなる。
【０００９】
ここで、テスト入力ベクタ作成のための、手作業によるソフトウェアの開発について、その作業概要を簡単ながら説明すれば、図３に示すようである。
即ち、仕様上のメモリマップドレジスタ情報３１を出発点として、これのＣマクロ定義への変換（Ｃマクロ定義化）作業３２、プログラムソースコード作成作業３３が順次、行われることによって、全てのメモリマップドレジスタに順次、アクセスするプログラムが作成される。その後は、テスト入力ベクタ化作業３４、即ち、以上のようにして作成されたソフトウェアの、チップ外部からチップ内へ供給するための形式への変更が行われる。
【００１０】
本発明の目的は、ＣＰＵを搭載する集積回路の製造時テスト用のベクタ作成のための、マスクデータで提供されたＣＰＵと周辺回路部分の接続をテストするためのプログラムを自動的に作成し得るテストプログラム自動作成装置を提供することにある。
本発明の他の目的は、ＣＰＵを搭載する集積回路の製造時テスト用のベクタ作成のための、マスクデータで提供されたＣＰＵと周辺回路部分の接続をテストするプログラムを自動的に作成し得るテストプログラム自動作成方法を提供することにある。
本発明の更なる他の目的は、ＣＰＵを搭載する集積回路の製造時テスト用のベクタ作成のための、マスクデータで提供されたＣＰＵと周辺回路部分の接続をテストするためのプログラムを自動的に作成し得るテストプログラム自動作成プログラムを提供することにある。
【００１１】
【課題を解決するための手段】
本発明のテストプログラム自動作成方法は、レジスタ・トランスファー・レベル設計情報を生成するための中間設計情報からは、ソフトウェアからハードウェア周辺回路部分にアクセスする各メモリマップドレジスタ情報が抽出されるが、その後、それら抽出された各メモリマップドレジスタ情報はマクロ定義に自動的に変換され、更に、マクロ定義に変換された各メモリマップドレジスタ情報からは、プログラムソースコードが自動的に生成されるようにしたものである。
【００１２】
また、各メモリマップドレジスタ情報が抽出されるに際しては、各メモリマップドレジスタ情報として、先頭アドレス、読出し／書込みアクセス区別及びワード数が抽出されるようにした。更に、プログラムソースコードが自動的に生成されるに際しては、全メモリマップドレジスタに順次、アクセスするためのプログラムを生成するためのルールに基づき、ソースコードが生成されることでテストプログラムが自動的に作成されるようにした。
【００１３】
これにより、全てのメモリマップドレジスタを順次、アクセスするテストプログラムが自動的に作成され得、したがって、これまでの手作業による作成に比し、短時間内にＣＰＵから周辺回路部分との接続をテストするためのテスト入力ベクタの作成が可能となる。
【００１４】
【発明の実施の形態】
以下、本発明の一実施の形態を図１、図２により説明する。
先ずレジスター・トランスファー・レベル設計情報を生成するための中間設計情報から、ソフトウェアからハードウェア周辺回路部分にアクセスする各メモリマップドレジスタ情報を抽出する方法について説明すれば、これには、例えば、ハード・ソフト協調設計環境を利用した設計を利用することが考えられる。そのハード・ソフト協調設計環境下での設計フローの途中過程で、各メモリマップドレジスタ情報を抽出することが可能とされているものである。
【００１５】
その設計フローを含む、本発明のテストプログラム自動作成方法の一例での処理フローを図１に示す。図中、破線枠内での処理は、テストプログラム自動作成処理に係るものとされる。先ずはハード・ソフト協調設計環境下での設計フローから説明すれば、先ず、ステップ１：チップ全体の機能モデルが作成・確認される。次に、ステップ２：ステップ１でモデルを作成した各機能が、ハードウェアにマッピングされるのか、ソフトウェアにマッピングされるのかが決定される（ハード／ソフト分割処理１１）。その後、ステップ３：ソフトウェア・ハードウェア間のインタフェースが生成される（インタフェース生成処理１２）。この際に、ハード・ソフト協調シミュレーション環境にて、ステップ２での決定の妥当性が確認されるが、何等かの問題がある場合は、ステップ２に戻り、決定の修正が行われる。ステップ４）：決定の妥当性が確認されれば、それぞれの部分の詳細化・最適化が行われる。
【００１６】
以上のように、ステップ３では、ソフトウェア・ハードウェア間のインタフェースが生成されているが、このインタフェース生成の際に、ソフトウェアからハードウェア周辺回路部分にアクセスするメモリマップドレジスタ情報が抽出された上、記憶される（メモリマップドレジスタ情報抽出処理１３）。この抽出されたメモリマップドレジスタ情報は、次に、通常のＣ言語で利用可能なマクロ定義に自動的に変換される（Ｃマクロ定義化処理１４）。その後、全てのメモリマップドレジスタに順次アクセスするプログラムを生成するルール（メモリマップドレジスタ情報各々についての処理とされるが、これについては後述）１５に基づき、プログラムソースコードが自動的に生成されるようにした（プログラムソースコード生成処理１６）。
【００１７】
以上のように、メモリマップドレジスタ情報、マクロ定義及びルール１５から、全てのメモリマップドレジスタを順次、アクセスするテストプログラムが自動的に作成されるが、その後は、テスト入力ベクタ化作業１８、即ち、以上のようにして作成されたプログラムの、チップ外部からチップ内へ供給するための形式への変更が行われる。
【００１８】
ここで、ルール１５について説明すれば、図３にその処理フローを示す。これによる場合、メモリマップドレジスタ情報が一件読み込まれる度に、読出し／書込みアクセス区別から読出しアクセスか、書込みアクセスかが判断される（処理２１，２２）。読出しアクセスと判断された場合には、そのメモリマップドレジスタから値を読み込む処理をソースコードに追加し、値をテスト出力用周辺回路に出力する処理をソースコードに追加する処理が順次、行われる（処理２３，２４）。また、もしも、書込みアクセスと判断された場合は、そのメモリマップドレジスタに全ビット“１”，“０”を順次、書き込む処理をソースコードに追加する処理が行われる（処理２６）。
【００１９】
その後は、読出しアクセスであれ、書込みアクセスであれ、全ワードについて、以上の処理が行われたか否かが判断される（処理２５，２７）。全ワードについて、以上の処理が行われていない場合は、処理２３、又は処理２６に戻された上、処理が続行されるが、全ワードについて、以上の処理が行われた場合には、全件のメモリマップドレジスタ情報が処理されたか否かが判断される（処理２８）。この判断で、もしも、未処理のメモリマップドレジスタ情報が存在する限りにおいては、処理２１に戻されるようになっている。
【００２０】
以上、本発明のテストプログラム自動作成方法について説明したが、これ以外の発明、即ち、テストプログラム自動作成装置やテストプログラム自動作成プログラムも考えられる。このうち、テストプログラム自動作成装置は、レジスター・トランスファー・レベル設計情報を生成するための中間設計情報から、ソフトウェアからハードウェア周辺回路部分にアクセスする各メモリマップドレジスタ情報を抽出した上、記憶する情報抽出・記憶手段と、この情報抽出・記憶手段上に記憶されている各メモリマップドレジスタ情報をマクロ定義に変換するマクロ定義自動変換手段と、このマクロ定義自動変換手段によりマクロ定義に変換された各メモリマップドレジスタ情報から、プログラムソースコードを生成するプログラムソースコード自動生成手段とを基本的に含むようにして、構成されればよい。
【００２１】
また、テストプログラム自動作成プログラムには、レジスター・トランスファー・レベル設計情報を生成するための中間設計情報から、ソフトウェアからハードウェア周辺回路部分にアクセスする各メモリマップドレジスタ情報を抽出した上、記憶する情報抽出・記憶ステップと、この情報抽出・記憶手段上に記憶されている各メモリマップドレジスタ情報をマクロ定義に変換するマクロ定義自動変換ステップと、このマクロ定義自動変換手段によりマクロ定義に変換された各メモリマップドレジスタ情報から、プログラムソースコードを生成するプログラムソースコード自動生成ステップとが基本的に含むようにされる。
【００２２】
以上、本発明者によってなされた発明を実施の形態に基づき、具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内で種々変更可能であることはいうまでもない。
【００２３】
【発明の効果】
ＣＰＵを搭載する集積回路の製造時テスト用のベクタ作成のための、マスクデータで提供されたＣＰＵと周辺回路部分の接続をテストするためのプログラムを自動的に作成し得るテストプログラム自動作成装置が提供される。
ＣＰＵを搭載する集積回路の製造時テスト用のベクタ作成のための、マスクデータで提供されたＣＰＵと周辺回路部分の接続をテストするプログラムを自動的に作成し得るテストプログラム自動作成方法が提供される。
ＣＰＵを搭載する集積回路の製造時テスト用のベクタ作成のための、マスクデータで提供されたＣＰＵと周辺回路部分の接続をテストするためのプログラムを自動的に作成し得るテストプログラム自動作成プログラムが提供される。
【図面の簡単な説明】
【図１】ハード・ソフト協調設計環境下での設計フローを含む、本発明のテストプログラム自動作成方法の一例での処理フローを示す図である。
【図２】全てのメモリマップドレジスタに順次アクセスするプログラムを生成するルールの処理フローを示す図である。
【図３】手作業により、テスト入力ベクタ作成のためのソフトウェアが開発される上での作業概要を示す図である。
【符号の説明】
１３…メモリマップドレジスタ情報抽出処理、１４…Ｃマクロ定義化処理、１５…全てのメモリマップドレジスタに順次アクセスするプログラムを生成するルール、１６…プログラムソースコード生成処理
【図１】
2004257822.tif 000003
【図２】
2004257822.tif 000004
【図３】
2004257822.tif 000005