JP2004145670A - Method and device for generating test bench, and computer program - Google Patents
Method and device for generating test bench, and computer program Download PDFInfo
- Publication number
- JP2004145670A JP2004145670A JP2002310313A JP2002310313A JP2004145670A JP 2004145670 A JP2004145670 A JP 2004145670A JP 2002310313 A JP2002310313 A JP 2002310313A JP 2002310313 A JP2002310313 A JP 2002310313A JP 2004145670 A JP2004145670 A JP 2004145670A
- Authority
- JP
- Japan
- Prior art keywords
- file
- program
- instruction
- circuit
- test
- 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
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318314—Tools, e.g. program interfaces, test suite, test bench, simulation hardware, test compiler, test program languages
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、ハードウェア記述言語またはシステム記述言語を用いて設計した回路のシミュレーションを行うためのテストベンチを生成する方法、該方法を実現するためのテストベンチ生成装置、コンピュータを該テストベンチ生成装置として実現するためのコンピュータプログラムに関する。
【0002】
【従来の技術】
CPU又はメモリ等の半導体デバイスを実現するIC又はLSI等の回路は、その機能および規模の点で様々な種類の物が開発され、使用されている。回路の設計は、現在では、設計期間の短縮化または検証の容易化などの要請により、ハードウェアの動作または論理構成などを記述する言語であるハードウェア記述言語(以下、HDLと言う)を用いて行われるのが一般的となっている。また、近年では、HDLよりも抽象度の高いC言語などのシステム記述言語を用いた回路の設計手法も開発されている。
【0003】
HDL又はシステム記述言語を用いて回路を設計する場合は、HDL又はシステム記述言語で記述された回路の動作および論理構成などのシミュレーションを行い、設計の検証を行う必要がある。図17は、従来のシミュレーションの概要を示す概念図である。従来のシミュレーションの際には、情報として、HDL又はシステム記述言語を用いて回路の動作および論理構成などを記述した回路記述ファイル、回路で実行されるプログラムをアセンブリ言語で記述したプログラムファイル、並びに、回路の動作を検証する処理の内容を記述したテストベンチが用意される。テストベンチには、回路へ入力される入力信号、及び回路が正常に動作した場合に回路内の所定の信号がとるべき予測値などが記述されている。シミュレーションでは、プログラムファイルがアセンブラで処理されて機械語ファイルが生成され、生成された機械語ファイル、回路記述ファイル、及びテストベンチがシミュレータに入力され、シミュレータは回路の動作のシミュレーションを行い、動作が正常に行われたか否かの結果が出力される。回路の設計者は、出力された結果に基づいて、設計した回路の修正を行う。
【0004】
【特許文献1】
特開2001−306648号公報
【0005】
【発明が解決しようとする課題】
回路の設計時のシミュレーションでは、従来、設計対象の回路に入力する入力信号、正しく回路が動作した場合に回路内の所定の信号がとるべき予測値、及び所定の時刻に動作中の回路での前記信号の値を検証するテスト命令をテストベンチの中に記述しておく必要がある。更に、時刻の指定はシミュレーションの開始時から起算される絶対時間で表現され、検証の時刻は回路の動作に対応して厳密に指定する必要があるため、時刻を指定するのが難しく、複雑な記述を要するという問題がある。テストベンチの作成には、時刻を指定したテスト命令に関連づけて信号の予測値および入力信号の設定を記述する必要があり、回路の規模が増大するにつれてテストベンチの記述量が増大する。記述が複雑で記述量が膨大なテストベンチを手作業で作成することは非常に労力がかかり、回路の設計そのものよりもテストベンチの記述の方に多くの時間を費やさなければいけないという問題がある。
【0006】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、回路上で動作するプログラム命令をアセンブリ言語で記述したプログラムファイル中の各プログラム命令にテスト命令を関連づけておき、回路のシミュレーションを行う際に、各プログラム命令に関連づけられたテスト命令を抜き出してテストベンチを生成することにより、テストベンチ生成のための記述をより簡単に記述することを可能とするテストベンチ生成方法、テストベンチ生成装置、及びコンピュータプログラムを提供することにある。
【0007】
【課題を解決するための手段】
第1発明に係るテストベンチ生成方法は、論理設計された回路の動作のシミュレーションを行うために、記憶部及び演算部を備えたコンピュータを用いて、前記回路上で実行されるべき一又は複数のプログラム命令を前記回路の動作を直接に規定する形式で記述してあるプログラムファイルから、前記回路の動作の検証手順を記述したテストベンチを生成する方法であって、所定のプログラム命令の実行から起算した所定タイミングで前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルを記憶部に記憶し、前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルを記憶部に記憶し、前記プログラムファイルに含まれる前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令に関連づけた状態で、前記プログラムファイルから演算部にて抽出し、テストベンチのファイルを演算部にて生成して記憶部に記憶し、生成したテストベンチのファイルに、前記入力信号ファイルにて規定された前記入力信号を表現した内容を演算部にて書き込み、前記プログラム命令が前記シミュレーションにて呼び出された時刻を示すことを指示する内容を、前記テストベンチのファイルに演算部にて書き込み、前記テスト命令に関連づけられた前記プログラム命令が前記シミュレーションにて呼び出された時刻から起算した前記所定タイミングとなったときに該テスト命令を実行することを指示する内容を、前記テストベンチのファイルに演算部にて書き込むことを特徴とする。
【0008】
第2発明に係るテストベンチ生成方法は、HDL又はシステム記述言語で設計された回路の動作のシミュレーションを行うために、記憶部及び演算部を備えたコンピュータを用いて、内部にプログラムメモリを含む前記回路上で実行されるべき一又は複数のプログラム命令をアセンブリ言語で記述してあるプログラムファイルから、前記回路の動作の検証手順を記述したテストベンチを生成する方法であって、所定のプログラム命令の実行から起算した所定クロック後に前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルを記憶部に記憶し、前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルを記憶部に記憶し、記憶部に記憶している前記プログラムファイルに記述されている一又は複数の前記プログラム命令を、前記回路にて実行されるべき機械語に演算部で翻訳し、機械語に翻訳された前記プログラム命令の夫々が記憶される前記回路のプログラムメモリのアドレスを演算部にて取得し、前記プログラムファイルに含まれる前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令が記憶される前記アドレスに対応づけて、前記プログラムファイルから演算部にて抽出し、テストベンチのファイルを演算部にて生成して記憶部に記憶し、生成したテストベンチのファイルに、前記入力信号ファイルにて規定された前記入力信号をHDL又はシステム記述言語で表現して演算部にて書き込み、前記テストベンチのファイルに、前記入力信号が前記回路に入力されて開始される前記シミュレーションにて所定の処理毎にクロックを加算することを指示する記述をHDL又はシステム記述言語で表現して演算部にて書き込み、前記シミュレーションにて前記アドレスを呼び出された時刻を加算されたクロックの単位で表すことを指示する記述を、前記テストベンチのファイルに、HDL又はシステム記述言語で表現して演算部にて書き込み、加算されたクロックの値が前記テスト命令に対応づけられた前記アドレスを呼び出された時刻に前記所定クロックを加算した値である場合に該テスト命令を実行することを指示する記述を、前記テストベンチのファイルに、HDL又はシステム記述言語で表現して演算部にて書き込むことを特徴とする。
【0009】
第3発明に係るテストベンチ生成装置は、論理設計された回路の動作のシミュレーションを行うために、前記回路上で実行されるべき一又は複数のプログラム命令を前記回路の動作を直接に規定する形式で記述してあるプログラムファイルから、前記回路の動作の検証手順を記述したテストベンチを生成する装置であって、所定のプログラム命令の実行から起算した所定タイミングで前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルを記憶する手段と、前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルを記憶する手段と、前記プログラムファイルに含まれる前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令に関連づけた状態で、前記プログラムファイルから抽出する手段と、テストベンチのファイルを生成する手段と、生成したテストベンチのファイルに、前記入力信号ファイルにて規定された前記入力信号を表現した内容を書き込む手段と、前記プログラム命令が前記シミュレーションにて呼び出された時刻を示すことを指示する内容を、前記テストベンチのファイルに書き込む手段と、前記テスト命令に関連づけられた前記プログラム命令が前記シミュレーションにて呼び出された時刻から起算した前記所定タイミングとなったときに該テスト命令を実行することを指示する内容を、前記テストベンチのファイルに書き込む手段とを備えることを特徴とする。
【0010】
第4発明に係るテストベンチ生成装置は、HDL又はシステム記述言語で設計された回路の動作のシミュレーションを行うために、内部にプログラムメモリを含む前記回路上で実行されるべき一又は複数のプログラム命令をアセンブリ言語で記述してあるプログラムファイルから、前記回路の動作の検証手順を記述したテストベンチを生成する装置であって、所定のプログラム命令の実行から起算した所定クロック後に前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルを記憶する手段と、前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルを記憶する手段と、記憶している前記プログラムファイルに記述されている一又は複数の前記プログラム命令を、前記回路にて実行されるべき機械語に翻訳する手段と、機械語に翻訳された前記プログラム命令の夫々が記憶される前記回路のプログラムメモリのアドレスを取得する手段と、前記プログラムファイルに含まれる前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令が記憶される前記アドレスに対応づけて、前記プログラムファイルから抽出する手段と、テストベンチのファイルを生成する手段と、生成したテストベンチのファイルに、前記入力信号ファイルにて規定された前記入力信号をHDL又はシステム記述言語で表現して書き込む手段と、前記テストベンチのファイルに、前記入力信号が前記回路に入力されて開始される前記シミュレーションにて所定の処理毎にクロックを加算することを指示する記述をHDL又はシステム記述言語で表現して書き込む手段と、前記シミュレーションにて前記アドレスを呼び出された時刻を加算されたクロックの単位で表すことを指示する記述を、前記テストベンチのファイルに、HDL又はシステム記述言語で表現して書き込む手段と、加算されたクロックの値が前記テスト命令に対応づけられた前記アドレスを呼び出された時刻に前記所定クロックを加算した値である場合に該テスト命令を実行することを指示する記述を、前記テストベンチのファイルに、HDL又はシステム記述言語で表現して書き込む手段とを備えることを特徴とする。
【0011】
第5発明に係るコンピュータプログラムは、論理設計された回路の動作のシミュレーションを行うために、コンピュータに、前記回路上で実行されるべき一又は複数のプログラム命令を前記回路の動作を直接に規定する形式で記述してあるプログラムファイルから、前記回路の動作の検証手順を記述したテストベンチを生成させるコンピュータプログラムであって、コンピュータに、所定のプログラム命令の実行から起算した所定タイミングで前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルから、前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令に関連づけた状態で抽出させる手順と、コンピュータに、テストベンチのファイルを生成させる手順と、コンピュータに、生成したテストベンチのファイルに、前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルの内容を書き込ませる手順と、コンピュータに、前記プログラム命令が前記シミュレーションにて呼び出された時刻を示すことを指示する内容を、前記テストベンチのファイルに書き込ませる手順と、コンピュータに、前記テスト命令に関連づけられた前記プログラム命令が前記シミュレーションにて呼び出された時刻から起算した前記所定タイミングとなったときに前記テスト命令を実行することを指示する内容を、前記テストベンチのファイルに書き込ませる手順とを含むことを特徴とする。
【0012】
第6発明に係るコンピュータプログラムは、HDL又はシステム記述言語で設計された回路の動作のシミュレーションを行うために、コンピュータに、内部にプログラムメモリを含む前記回路上で実行されるべき一又は複数のプログラム命令をアセンブリ言語で記述してあるプログラムファイルから、前記回路の動作の検証手順を記述したテストベンチを生成させるコンピュータプログラムであって、コンピュータに、所定のプログラム命令の実行から起算した所定クロック後に前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルから、前記回路にて実行されるべき機械語に一又は複数の前記プログラム命令を翻訳させる手順と、コンピュータに、機械語に翻訳された前記プログラム命令の夫々が記憶される前記回路のプログラムメモリのアドレスを取得させる手順と、コンピュータに、前記プログラムファイルに含まれる前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令が記憶される前記アドレスに対応づけて、前記プログラムファイルから抽出させる手順と、コンピュータに、テストベンチのファイルを生成させる手順と、コンピュータに、生成したテストベンチのファイルに、前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルの内容をHDL又はシステム記述言語で表現して書き込ませる手順と、コンピュータに、前記テストベンチのファイルに、前記入力信号が前記回路に入力されて開始される前記シミュレーションにて所定の処理毎にクロックを加算することを指示する記述をHDL又はシステム記述言語で表現して書き込むませる手順と、コンピュータに、前記シミュレーションにて前記アドレスを呼び出された時刻を加算されたクロックの単位で表すことを指示する記述を、前記テストベンチのファイルに、HDL又はシステム記述言語で表現して書き込ませる手順と、コンピュータに、加算されたクロックの値が前記テスト命令に対応づけられた前記アドレスを呼び出された時刻に前記所定クロックを加算した値である場合に該テスト命令を実行することを指示する記述を、前記テストベンチのファイルに、HDL又はシステム記述言語で表現して書き込ませる手順とを含むことを特徴とする。
【0013】
本発明者は、アセンブリ言語で記述された一つ一つのプログラム命令が、回路が行う一つ一つの動作に対応しており、アセンブリ言語で記述された、回路内で実行されるべきプログラム命令が、回路内で前記プログラム命令が実行される時刻を厳密に規定できることに着目し、アセンブリ言語で記述されたプログラム命令に対応づけてテストベンチに必要なテスト命令を記述することにより、回路の検証を行う時刻の指定を容易にすることができるテストベンチ生成容易化アセンブリ言語(ALET言語:Assembly Language to Ease Testbench ) を開発した。
【0014】
第1、第3及び第5発明においては、回路の動作を直接に規定する形式、即ち、回路が行う一連の動作をまとめて規定する所謂高級言語ではなく回路が行う個別の動作を逐一規定する所謂低級言語で記述されたプログラム命令に関連づけてALET言語によるテスト命令を記述しておいたプログラムファイルを用い、シミュレーションにおいてプログラム命令が呼び出される時刻を参照して該時刻から起算した所定タイミングで前記プログラム命令に関連づけられたテスト命令を実行すべき記述を含んだテストベンチを生成する。これにより、テストベンチを生成する際に、テスト命令を実行する時刻を絶対時間で記述する必要がなくなり、回路の動作を直接に規定する形式で記述されたプログラム命令からの相対時間でテスト命令を実行する時刻を指定することができる。
【0015】
第2、第4及び第6発明においては、アセンブリ言語で記述されたプログラム命令に関連づけてALET言語によるテスト命令を記述しておいたプログラムファイルを用い、シミュレーションにおいてプログラム命令が記憶されたメモリのアドレスを呼び出された時刻を参照して該時刻から起算した所定クロック後に前記プログラム命令に関連づけられたテスト命令を実行すべき記述を含んだテストベンチを生成する。これにより、テストベンチを生成する際に、テスト命令を実行する時刻を絶対時間で記述する必要がなくなり、回路の一つ一つの動作に対応しているアセンブリ言語で記述されたプログラム命令からの相対クロック数でテスト命令を実行する時刻を指定することができる。
【0016】
【発明の実施の形態】
以下本発明をその実施の形態を示す図面に基づき具体的に説明する。
図1は、本発明の概要を示す概念図である。本発明のテストベンチ生成方法では、情報として、シミュレーションの対象である回路で実行されるプログラム命令をアセンブリ言語で記述したプログラムファイル141と、回路の動作を検証するために回路に入力する信号を規定した入力信号ファイル142とが用意される。プログラムファイル141には、テストベンチ生成のための、回路内で処理される所定の情報の値を検証するテスト命令が、アセンブリ言語のプログラム命令に対応づけてALET言語で記述されている。テストベンチを生成する本発明のコンピュータプログラム20は、アセンブラのプログラムとALETコンパイラのプログラムとを含んでいる。アセンブラは、プログラムファイル141から、アセンブリ言語で記述されたプログラム命令を機械語に翻訳した機械語ファイル143と、ALET言語の記述部分を抜き出した中間ファイル144とを生成する。ALETコンパイラは、生成された機械語ファイル143と、生成された中間ファイル144と、入力信号ファイル142とから、テストベンチ145を生成する。本発明に係るシミュレーション方法では、HDL又はシステム記述言語を用いて回路の動作および論理構成などを記述した回路記述ファイルと、機械語ファイル143と、生成されたテストベンチ145とを用い、回路記述ファイルに記述された回路上で機械語ファイルに記述されたプログラム命令を実行してテストベンチに記述された値の検証を行うシミュレーションを、シミュレータにて実行して、シミュレーションの結果が出力される。なお、シミュレータとして、従来から存在するシミュレータを使用することも可能である。
【0017】
図2は、本発明のテストベンチ生成装置の構成を示すブロック図である。テストベンチ生成装置1は、コンピュータを用いて構成されており、本発明に係る演算部であって演算を行うCPU11と、本発明に係る記憶部であって演算に伴って発生する一時的な情報を記憶するRAM12と、CD−ROMドライブ等の外部記憶装置13と、ハードディスク等の内部記憶装置14とを備えており、CD−ROM等の記録媒体2から本発明に係るコンピュータプログラム20を外部記憶装置13にて読み取り、読み取ったコンピュータプログラム20を内部記憶装置14に記憶し、RAM12にコンピュータプログラム20をロードし、ロードしたコンピュータプログラム20に基づいてテストベンチ生成装置1に必要な処理を実行する。テストベンチ生成装置1は、更に、キーボード又はマウス等の入力装置15と、液晶ディスプレイ又はCRTディスプレイ等の出力装置16とを備えており、データの入力を初めとするオペレータからの操作を受け付ける構成となっている。
【0018】
また、テストベンチ生成装置1は、通信インタフェース17を備え、該通信インタフェース17に接続しているサーバ装置3から本発明に係るコンピュータプログラム20をダウンロードし、CPU11にて処理を実行する形態であってもよい。
【0019】
内部記憶装置14は、オペレータの操作により入力装置15から入力されるか、外部記憶装置13にて外部の記録媒体から読みとるか、又は通信インタフェース17を介して外部のサーバ装置3からダウンロードした、プログラムファイル141及び入力信号ファイル142を記憶している。また、内部記憶装置14は、本発明の処理の途中にて生成される機械語ファイル143及び中間ファイル144を記憶し、本発明により生成されるテストベンチ145を記憶する。
【0020】
次に、本発明者が開発したALET言語について説明する。
1.ALET言語の記述場所
ALET言語の記述は、アセンブリ言語のコメント部分に記述する。なお、アセンブリ言語のコメントは、一般的に「;」以下に記述される。
1.1 「;¥」(セミコロン及び円マーク)
アセンブリ言語のコメント部分が「;¥」で始まる場合はALET言語形式の表記が始まることを意味する。
1.2 「;」
アセンブリ言語のコメント部分が「;¥」ではなく「;」で始まっている場合は、通常のアセンブリ言語のコメント部分である。
1.3 「//」(スラッシュ2文字)
ALET言語形式の記述の場所すなわち「;¥」の後で、「//」が記述されている場合は、「//」以降の記述はALET言語のコメント部分である。
【0021】
2.必須記述事項
後述の遅延およびアサート文の前には、以下の3つの記述を行わなければならない。
2.1 「`pc」:プロセッサのプログラムカウンタの指定
シミュレーションの対象となる回路において、プロセッサのプログラムカウンタがどこに存在するかを指定する。
2.2 「@」:処理のセンシティビリティリスト
センシティビリティリストとは、HDLまたはシステム記述言語でプロセスの実行がどの信号のどのようなイベントに依存しているかを指定する記述のことであり、回路の検証を行う処理の基準クロックを指定する。基本的には回路へ入力されるクロックを指定する。
2.3 「`@」:処理実行条件
回路の検証を行う処理がどのような条件のときに実行されるのかを指定する。プロセッサの初めのマシンサイクルを指定する。この処理実行条件を指定する前に「`pc」でプロセッサのプログラムカウンタを指定しておく必要がある。
【0022】
3.「#」:遅延時間の指定
テスト命令を行う時刻を指定する。「#5c;」などと「#」に続けてクロック数を記述することで、直前に記述されたアセンブリ言語のプログラム命令が初めて実行されたときから起算して、5クロック後などの前記クロック後に、以降のALET言語形式の記述へ進むことを意味している。
【0023】
4.表示関数
4.1 「asrt( )」:アサート文
「asrt(条件);」と記述することで、この記述の時刻で、直前のアセンブリ言語のプログラム命令が実行されたときに、条件が正であるか又は偽であるかを判定し、条件が偽であった場合はシミュレーションを停止させ、条件が偽であったことを出力することを意味する。条件式の中に予測値を記述しておくことにより、回路で処理された情報の値と予測値とを比較するテストを行うことができる。
4.2 「disp( )」:ディスプレイ文
「disp(文字列);」と記述することで、この記述の時刻で、直前のアセンブリ言語のプログラム命令が実行されたときに、文字列で指定された文字を表示することを意味する。
4.3 「dump( )」:ダンプ文
「dump(信号名);」と記述することで、この記述の時刻で、直前のアセンブリ言語のプログラム命令が実行されたときに、信号名で指定された信号の状態を表示することを意味する。
【0024】
5.定義文および予約語
5.1 「`def」:定義文
「`def 定義名 値、式または文字列」と記述することで、この定義があった後のALET言語の記述では、定義名がその後で指定した値、式または文字列と置換されることを意味する。
5.2 予約語
以下の記述はアセンブリ言語とALET言語とが密接に関連しているため、ALET言語のコンパイラが適当な値に置き換える。
INST … ROMに入っている命令の情報。
OPR1 … ROMに入っているオペランド1の情報。
OPR2 … ROMに入っているオペランド2の情報。
ADR … ROMのアドレス。INSTが機械語ファイル3のどこにあるかのアドレスを示す。
なお、ここで表記しているROMとは、シミュレーション対象の回路に含まれる、プログラム命令を記憶するメモリのことである。
【0025】
6.記述方法
6.1 同じ行での複数記述
「@」(アットマーク)と「`」(アクサングラーブ)で始まるALET言語の記述は1行に同時に記述することができないが、遅延とアサート文については複数の記述が許されている。これらの複数の記述が許されているものは「;」によって夫々を区切る。
6.2 時間重複
ALET言語では複数のテスト命令の時間重複も可能である。
【0026】
次に、HDL又はシステム記述言語で設計された回路の例を示す。図3は、回路記述ファイルに記述されてシミュレーションの対象となる回路の例を示すブロック図である。回路記述ファイルに記述された回路であるプロセッサ41は、nr8dという名前が付けられており、ncpuという名前をつけたCPU42と、RAM43及びROM44とから構成されている。プロセッサ41にはU0、ncpu42にはU1というインスタンス名がそれぞれ付けられている。インスタンス名とはHDL又はシステム記述言語で複数の同一部品(モジュール)を利用可能にするために付けられるラベル名のことである。このncpu42にはリセット信号rst51とクロック信号clk52が入力される。リセット信号51が入力されたときはncpu42がリセットされる。ncpu42とRAM43及びROM44との間には、互いに接続されたデータバス53が設けられており、データバス53を介して互いにデータを交換する。更に、データバス53に平行してアドレスバス54が設けられており、ncpu42は、RAM43及びROM44のどの部分のデータを読み込むかを示すアドレスを、アドレスバス54を介して指定する。
【0027】
ncpu42は、命令レジスタirh#reg45、コントローラ46、プログラムカウンタprogcnt47、算術論理演算装置ALU48及び汎用レジスタ49を備えている。コントローラ46は、サイクルステートレジスタcstate461を内部に含み、汎用レジスタ49は、WレジスタW#reg491、BLレジスタBL#reg492、及びBHレジスタBH#reg493を内部に含む。命令レジスタirh#reg45はデータバス53から命令を取り出して格納する。コントローラ46は、命令レジスタirh#reg45に格納されてある命令を解釈しncpu42全体を制御する。プログラムカウンタprogcnt47は、コントローラ46からどれだけカウンタを進めるか伝えられ、結果をアドレスバス54に出力する。算術論理演算装置ALU48はデータバス53と汎用レジスタ49とからデータを取り込み、取り込んだデータを計算し、計算した結果をデータバス53又は汎用レジスタ49へ出力する。
【0028】
ncpu42の中にあるレジスタを指定する場合、階層構造の指定をする必要があるため、シミュレーション環境では、WレジスタW#reg491がU0.U1.W#reg、BLレジスタBL#reg492がU0.U1.BL#reg、BHレジスタBH#reg493がU0.U1.BH#reg、プログラムカウンタprogcnt47がU0.U1.progcnt、サイクルステートレジスタcstate461がU0.U1.cstate、命令レジスタirh#reg45がU0.U1.irh#reg、リセット信号rst51がU0.U1.rst、クロック信号clk52がU0.U1.clkと表現される。
【0029】
次に、ALET言語の記述例を示す。図4は、アセンブリ言語及びALET言語で記述されたプログラムファイル141の例を示す図である。図中の左半分はアセンブリ言語の部分であり、右半分の「;¥」以下に記述されている部分がALET言語の部分である。行401〜行406は、ALET言語の定義文であり、行401は、U0.U1.progcntを省略してcpupcと書くことを定義しており、更に行402はU0.U1.cstateをcpucst、行403はU0.U1.clkをcpuclk、行404はU0.U1.irh#regをcpuirh、行405はU0.U1.BL#regをcpubl、行406はU0.U1.W#regをcpuwとそれぞれ省略して書くことを定義している。行407はアセンブリ言語のコメント文である。
【0030】
行408〜行410は、ALET言語の必須記述事項である。行408は、シミュレーションの対象であるプロセッサ41のプログラムカウンタが、cpupcすなわちU0.U1.progcnt47であることを指定している。行409は、行412以降のasrt文がnegedge(cpuclk)というタイミングで行われることを指定している。negedge(cpuclk)はcpuclkすなわちU0.U1.clkが立下りのエッジを検出したときに動作をすることを意味している。行410は、cpucst==14’h0001が成立したとき、すなわちU0.U1.cstateが16進数で0001となる14ビットの数値と等しくなったときに限り、行412以降のasrt文を実行することを意味している。行411はアセンブリ言語の記述であり、MAINというラベルを設定している。ラベルはアセンブリ言語内でジャンプする場合に利用される。
【0031】
行412の「;¥」以前の部分、「MOV 10h,W」はアセンブリ言語のプログラム命令であり、16進数で10の定数すなわち10進数で16をWレジスタW#reg491に転送することを意味している。行412の「;¥」以後の「asrt(cpupc ==ADR);」の部分は、ALET言語のasrt文であり、同じ行のアセンブリ言語のMOV命令が行われた時に、cpupcすなわちU0.U1.progcnt47がROM44のアドレスADRと同じであるか否かのテスト(assert)を行い、間違っていればエラーを表示するテスト命令を意味している。行413は、行412のALET言語のテスト命令が実行されてから1クロック後に「asrt(cpucst == 14’h0002);」が行われるテスト命令を意味している。すなわち行412の実行から1クロック後にU0.U1.cstate461が16進数で0002となる14ビットの数値と等しいか否かをテストする。また、行414は、行413のテスト命令の実行から1クロック後にcpuirhすなわちU0.U1.irh#reg45が命令INST(ここでは行412のMOV命令を指し、定数(10h = 16進数の10)からWレジスタ491への転送であるため、INSTは16進数で32となる)と等しいか否かをテストするテスト命令を意味している。また、行415は、行414のテスト命令の実行と同じ時刻に、cpucstすなわちU0.U1.cstate461が16進数で0004となる14ビットの数値と等しいか否かをテストするテスト命令を意味している。行416は、行415のテスト命令の実行から1クロック後にcpucstすなわちU0.U1.cstate461が16進数で0008となる14ビットの数値と等しくなるか否かをテストするテスト命令を意味している。行417は、行416のテスト命令の実行から1クロック後にcpucstすなわちU0.U1.cstate461が16進数で0001となる14ビットの数値と等しくなるか否かをテストするテスト命令を意味している。更に、行418は、行417のテスト命令の実行から1クロック後にcpuwすなわちU0.U1.W#reg491が第1オペランドOPR1(ここでは行412のMOV命令の第1オペランドを指し、定数10h すなわち16進数の10となる)と等しくなるか否かをテストするテスト命令を意味している。
【0032】
行419の「;¥」以前の部分、「MOV W,BL」はアセンブリ言語のプログラム命令であり、16進数でWレジスタ491のデータをBLレジスタ492へ転送することを意味している。行419の「;¥」以後の「asrt(cpupc == ADR);」の部分は、ALET言語のasrt文であり、同じ行のアセンブリ言語のMOV命令が行われた時に、cpupcすなわちU0.U1.progcnt47がROM44のアドレスADRと同じであるか否かをテストするテスト命令を意味している。行420は、行419のテスト命令の実行から3クロック後にcpublすなわちU0.U1.BL#reg492がcpuwすなわちU0.U1.W#reg491と等しくなるか否かをテストするテスト命令を意味している。
【0033】
行421〜行425は、アセンブリ言語のプログラム命令が記述されている。
行421は、16進数で02の定数をWレジスタ491へ転送するプログラム命令を意味している。行422は、Wレジスタ491の値をBHレジスタ493へ転送するプログラム命令を意味している。行423は、16進数で0AAの定数(すなわち10進数で170)をWレジスタ491へ転送するプログラム命令を意味している。行424は、Wレジスタ491の値を、Bレジスタ即ちBLレジスタ492及びBHレジスタ493で指定したアドレスのメモリ即ちROM43及びRAM44へ転送するプログラム命令を意味している。行425は、何もしないことを意味している。
【0034】
次に、入力信号の記述例を示す。図5は、入力信号ファイル142の内容の例を示す図である。入力信号ファイル142は、Verilog−HDL言語で記述されている。なお、他のHDL又はシステム記述言語で記述してあっても良い。図中の記述501は、シミュレーションの対象である回路をどのようにテストベンチ145へ関係づけるかを指定しており、nr8dというプロセッサ41を、nr8d#testというテストベンチ145へ関係づけている。
【0035】
記述502は、シミュレーションの対象の回路であるプロセッサnr8d41へ入力するための入力信号を設定してある。クロックt#clk及びリセットt#rstの動作と、他の入力信号の初期値とのみを記述しており、これにより、検証が行われる回路の部分の場所、又は時間が変更になる都度、入力信号の情報を書き換える必要がない。
【0036】
記述503は、信号の波形を出力するために、信号又はレジスタの情報をファイルへ書き込むことを指示している。信号の波形を出力する必要がない場合は、本記述は不必要である。記述504は、終了時間を指定している。ここでは1000000ns後にシミュレーションを終了することを指定している。
【0037】
次に、本発明のテストベンチ生成方法の手順を、フローチャートに基づいて説明する。図6は、本発明のテストベンチ生成装置が行う処理の手順を示すフローチャートである。テストベンチ生成装置1のCPU11は、コンピュータプログラム20をRAM12へロードし、ロードしたコンピュータプログラム20に従って、アセンブラの処理を行う(S1)。図7は、ステップS1のアセンブラの処理の手順を示すフローチャートである。CPU11は、RAM12にロードしたコンピュータプログラム20に従って、内部記憶装置14に記憶されているプログラムファイル141を読み出してRAM12に記憶し(S11)、プログラムファイル141にアセンブリ言語で記述されているプログラム命令を機械語に翻訳し、機械語ファイル143を生成する(S12)。CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、機械語に翻訳された夫々のプログラム命令が実行されるときに記憶されるメモリのアドレスを、機械語ファイル143から抽出し(S13)。プログラムファイル141にALET言語で記述された部分を、夫々の部分が関連づけられたプログラム命令について抽出したアドレスを対応づけて、プログラムファイル143から抽出し(S14)、抽出したALET言語の部分を書き込んだ中間ファイル144を生成し(S15)、処理をメインへ戻す。
【0038】
図8は、生成された中間ファイル144の内容の例を示す図であり、図5に示すプログラムファイル143から生成された中間ファイル144の内容である。
プログラムファイル143に記述されたALET言語の夫々の記述が抽出されており、図中に示す2列目の数字は、各行のALET言語の記述がプログラムファイル143のどの行から抽出されたかを示す数字である。また、1列目の数字は、各行に対応づけられたアドレスであり、各行のALET言語の記述が関連づけられたアセンブリ言語のプログラム命令が実行されるときに記憶されるメモリのアドレスである。
【0039】
CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、アセンブラの処理で生成した機械語ファイル143及び中間ファイル144を内部記憶装置14に記憶させ(S2)、中間ファイル144からテストベンチ145を生成するALETコンパイラの処理を行い(S3)、生成したテストベンチ145を内部記憶装置14に記憶させて(S4)、処理を終了する。
【0040】
図9乃至図12は、ステップS3のALETコンパイラの処理の手順を示すフローチャートである。CPU11は、RAM12にロードしたコンピュータプログラム20に従って、機械語ファイル143、中間ファイル144、及び入力信号ファイル142を内部記憶装置14からRAM12へ読み込み(S301)、必要な情報を書き込んだテストベンチ145のファイルを生成し(S302)、生成したテストベンチ145へ入力信号ファイル142の内容を書き込む(S303)。図13は、生成するテストベンチ145の内容の例を示す図である。テストベンチ145は、Verilog−HDL言語で記述されている。なお、他のHDL又はシステム記述言語で記述しても良い。図中の記述1301の部分に、入力信号ファイル142の内容が書き込まれ、入力信号の情報がテストベンチ中で定義される。記述1302は、シミュレーションの結果を書き込むファイルのファイルポインタを定義している。記述1303は、シミュレーションにおける時刻となるクロック数を数えるレジスタを定義している。記述1304は、シミュレーションにおいてメモリに記憶されているプログラム命令が呼び出された時刻を保存する配列を定義している。また、記述1305は、前記ファイルポインタに対して、具体的にファイルを開くことを指示している。
【0041】
CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、RAM12に記憶している中間ファイル144から一行のデータを取得して所定の文字配列に記憶し(S304)、データが取得できたか否かを判定し(S305)、データが取得できなかった場合は(S305:NO)、中間ファイル144の最後の行まで処理が終了したとして、テストベンチ145にファイルの終了部分を書き込み(S306)、ALETコンパイラの処理を終了して処理をメインへ戻す。
【0042】
ステップS305にてデータが取得できた場合は(S305:YES)、CPU11は、RAM12にロードしたコンピュータプログラム20に従って、取得した行のALET言語の記述に関連づけられているアドレス等の情報を取得する(S307)。CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、取得した行のALET言語の先頭の記述が「`def」の記述であるか否かを判定し(S308)、「`def」の記述であった場合は(S308:YES)、文字列の定義の情報を構造体配列def[]に保存し(S309)、処理をステップS304へ戻して、中間ファイル144の次の一行の記述を取得する。「`def」の記述ではなかった場合は(S308:NO)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、取得した行のALET言語の先頭の記述が「`pc」の記述であるか否かを判定し(S310)、「`pc」の記述であった場合は(S310:YES)、プログラムカウンタの定義の情報を所定の文字列pcstrに保存し(S311)、処理をステップS304へ戻して、中間ファイル144の次の一行の記述を取得する。
【0043】
ステップS310にて「`pc」の記述ではなかった場合は(S310:NO)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、取得した行のALET言語の先頭の記述が「@」の記述であるか否かを判定する(S312)。「@」の記述であった場合は(S312:YES)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、「@」の記述が一つ目の記述であるか否かを判定し(S313)、「@」の記述は一つ目ではなく複数の記述がなされていた場合は(S313:NO)、センシビリティリストが重複して定義されていることを示すエラーを出力し(S314)、処理を強制終了する。「@」の記述が一つ目の記述であった場合は(S313:YES)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、構造体配列def[]に定義が保存されている文字列が、取得している行に含まれているか否かを判定し(S315)、定義が保存されている文字列が含まれていない場合は(S315:NO)、処理をステップS317へ進め、定義が保存されている文字列が含まれていた場合は(S315:YES)、前記文字列を定義に従って置換し(S316)、テストベンチ145へセンシビリティリストを書き込み(S317)、センシビリティリストに依存してクロックを刻む記述をテストベンチ145へ書き込み(S318)、処理をステップS304へ戻して、中間ファイル144の次の一行の記述を取得する。図13の記述1306は、センシビリティリストの書き込みであり、クロック信号の立ち下がりをシミュレーションにおける時刻の基準とすべく基準クロックを定義している。また、記述1307は、シミュレーションにおける時刻となるクロック数を数えるレジスタをインクリメントすることを指示している。
【0044】
ステップS312にて「@」の記述ではなかった場合は(S312:NO)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、取得した行のALET言語の先頭の記述が「`@」の記述であるか否かを判定する(S319)。「`@」の記述であった場合は(S319:YES)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、「`@」の記述が一つ目の記述であるか否かを判定し(S320)、「`@」の記述は一つ目ではなく複数の記述がなされていた場合は(S320:NO)、処理実行条件が重複して定義されていることを示すエラーを出力し(S321)、処理を強制終了する。「`@」の記述が一つ目の記述であった場合は(S320:YES)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、既に「`pc」の定義の情報が所定の文字列pcstrに保存されているか否かを判定し(S322)、「`pc」の定義の情報が保存されていなかった場合は(S322:NO)、プログラムカウンタが設定されていないことを示すエラーを出力し(S323)、処理を強制終了する。「`pc」の定義の情報が保存されていた場合は(S322:YES)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、構造体配列def[]に定義が保存されている文字列が、取得している行に含まれているか否かを判定し(S324)、定義が保存されている文字列が含まれていない場合は(S324:NO)、処理をステップS326へ進め、定義が保存されている文字列が含まれていた場合は(S324:YES)、前記文字列を定義に従って置換し(S325)、テストベンチ145へ処理実行条件を書き込み(S326)、処理実行条件が満たされたときに、そのときのプログラムカウンタの値に関連づけて、該プログラムカウンタが示すプログラム命令が呼び出された時刻として、そのときのクロックの値を保存すべき記述をテストベンチ145へ書き込み(S327)、処理をステップS304へ戻して、中間ファイル144の次の一行の記述を取得する。図13の記述1308は、処理実行条件を設定しており、記述1309は、シミュレーションにおいてメモリに記憶されているプログラム命令が呼び出された時刻を保存する配列に、そのときのプログラムカウンタが示すアドレスが呼び出された時刻として、そのときのクロックの値を代入することを指示している。
【0045】
ステップS319にて「`@」の記述ではなかった場合は(S319:NO)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、取得している行から、「;」までの記述を取得し(S328)、取得した部分の先頭の記述が「#」の記述であるか否かを判定する(S329)。「#」の記述であった場合は(S329:YES)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、「`pc」「@」及び「`@」が既に設定済みであるか否かを判定し(S330)、設定されていない場合は(S330:NO)、「`pc」「@」及び「`@」のうちいずれかが設定されていないことを示すエラーを出力し(S331)、処理を強制終了する。ステップS330にて、「`pc」「@」及び「`@」が既に設定済みであった場合は(S330:YES)、取得している行に対応づけられているアドレスに関連づけて、遅延の記述が示すクロック数だけ遅延クロック数を加算して保存し(S332)、処理をステップS352へ進める。
【0046】
ステップS329にて、取得した部分の先頭の記述が「#」の記述でなかった場合は(S329:NO)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、取得した部分の記述がasrt文の記述であるか否かを判定し(S333)、asrt文の記述であった場合は(S333:YES)、「`pc」「@」及び「`@」が既に設定済みであるか否かを判定し(S334)、設定されていない場合は(S334:NO)、ステップS331へ処理を進めてエラーを出力し、処理を強制終了する。ステップS334にて、「`pc」「@」及び「`@」が既に設定済みであった場合は(S334:YES)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、asrt文の引数である条件式を取得し(S335)、構造体配列def[]に定義が保存されている文字列が、取得している部分に含まれているか否かを判定し(S336)、定義が保存されている文字列が含まれていない場合は(S336:NO)、処理をステップS338へ進め、定義が保存されている文字列が含まれていた場合は(S336:YES)、前記文字列を定義に従って置換し(S337)、時刻が、取得している行に対応づけられているアドレスに関連づけられたクロックの値に保存している遅延クロックを加算したクロックのときに、検証の処理を行うべき、時刻指定の記述をテストベンチ145へ書き込み(S338)、条件式に従って所定の値と予測値とを照合すべき記述をテストベンチ145へ書き込み(S339)、処理をステップS352へ進める。図13の記述1310は、所定のアドレスが呼び出された時刻から所定のクロックが加算されたときに検証の処理を行うことを指示しており、図4に示す行412に関連づけられたプログラム命令がシミュレーションにて記憶されるメモリのアドレスであるアドレス0032が呼び出された時刻に遅延クロック0を加えた時刻となったときに検証を行うべき指示を、示している。また、記述1311は、条件式に従って所定の値と予測値とを比較して、所定の値が予測値と異なっていた場合にはエラーを出力すべきことを指示している。記述1312の、図4に示した複数のテスト命令の夫々に対応する部分には、記述1311の部分と同様の、所定の時刻となったときに所定の値と予測値とを比較すべき指示が記述される。なお、図13では、記述1312の部分の具体的な記述は省略している。
【0047】
ステップS333にて、取得した部分の記述がasrt文の記述でなかった場合は(S333:NO)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、取得した部分の記述がdump文の記述であるか否かを判定し(S340)、dump文の記述であった場合は(S340:YES)、dump文の引数である信号名を取得し(S341)、構造体配列def[]に定義が保存されている文字列が、取得している部分に含まれているか否かを判定し(S342)、定義が保存されている文字列が含まれていない場合は(S342:NO)、処理をステップS344へ進め、定義が保存されている文字列が含まれていた場合は(S342:YES)、前記文字列を定義に従って置換し(S343)、時刻が、取得している行に対応づけられているアドレスに関連づけられたクロックの値に保存している遅延クロックを加算したクロックのときに、処理を行うべき、時刻指定の記述をテストベンチ145へ書き込み(S344)、取得した信号名の信号の情報を出力すべき記述をテストベンチ145へ書き込み(S345)、処理をステップS352へ進める。
【0048】
ステップS340にて、取得した部分の記述がdump文の記述でなかった場合は(S340:NO)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、取得した部分の記述がdisp文の記述であるか否かを判定し(S346)、disp文の記述でなかった場合は(S346:NO)、処理をステップS352へ進める。disp文の記述であった場合は(S346:YES)、CPU11は、次に、RAM12にロードしたコンピュータプログラム20に従って、disp文の引数である文字列を取得し(S347)、構造体配列def[]に定義が保存されている文字列が、取得している部分に含まれているか否かを判定し(S348)、定義が保存されている文字列が含まれていない場合は(S348:NO)、処理をステップS350へ進め、定義が保存されている文字列が含まれていた場合は(S348:YES)、前記文字列を定義に従って置換し(S349)、時刻が、取得している行に対応づけられているアドレスに関連づけられたクロックの値に保存している遅延クロックを加算したクロックのときに、処理を行うべき、時刻指定の記述をテストベンチ145へ書き込み(S350)、取得した文字列を出力すべき記述をテストベンチ145へ書き込み(S351)、取得している行に残りの記述があるか否かを判定する(S352)。取得している行に残りの記述がある場合は(S352:YES)、処理をステップS328へ戻して、取得している行から次の「;」までの記述を取得し、取得している行に残りの記述がない場合は(S352:NO)、処理をステップS304へ戻して、中間ファイル144の次の一行の記述を取得する。
【0049】
以上詳述した如く、本発明においては、アセンブリ言語で記述されたプログラム命令に関連づけてALET言語によるテスト命令を記述しておいたプログラムファイルを用い、シミュレーションにおいてプログラム命令が呼び出される時刻を参照して該時刻から起算した所定クロック後に前記プログラム命令に関連づけられたテスト命令を実行すべき記述を含んだテストベンチ145を生成する。これにより、テストベンチを生成する際に、テスト命令を実行する時刻を絶対時間で記述する必要がなくなり、回路の一つ一つの動作に対応しているアセンブリ言語で記述されたプログラム命令からの相対時間でテスト命令を実行する時刻を記述することができる。
【0050】
本発明により生成されたテストベンチ145は、シミュレータのプログラムをロードしたコンピュータに読み込まれ、該コンピュータは、更に機械語ファイル143及び回路記述ファイルを読み込み、シミュレータのプログラムに従って、回路記述ファイルに記述された回路上で機械語ファイル143に記述されたプログラム命令を実行してテストベンチ145に記述されたテスト命令を実行するシミュレーションを行う。
【0051】
図14は、図13に示すテストベンチ145に記述された処理の内容を示すフローチャートである。シミュレーションを行うコンピュータは、テストベンチ145に従って、シミュレーションでの時刻の単位となるクロックをインクリメントし(S51)、処理実行条件が成り立つか否かを判定し(S52)、処理実行条件が成り立たない場合は(S52:NO)、処理をステップS61へ進め、処理実行条件が成り立つ場合は(S52:YES)、回路記述ファイルに記述された回路のプログラムカウンタを監視し(S53)、プログラムカウンタが示すアドレスに関連づけた時刻、即ち該アドレスのプログラム命令が呼び出された時刻として、現在のクロックの値を保存する(S54)。前記コンピュータは、次に、対応するアドレスに関連づけられた時刻、即ちテスト命令に関連づけられたプログラム命令が呼び出された時刻を参照して、現在のクロックの値が前記時刻に所定のクロック数を加算した値であるか否かを判定し(S61)、前記値であった場合は(S61:YES)、テスト命令を実行し(S62)、クロックの値が異なっていた場合は(S61:NO)、ステップS62の次のステップへ処理を進める。前記コンピュータは、次に、記述されているテスト命令の夫々について、ステップS61及びステップS62と同様の処理を行い、次に、シミュレーションの終了の条件が満たされているか否かを判定し(S70)、終了の条件が満たされていなかった場合は(S70:NO)、処理をステップS51へ戻してクロックをインクリメントし、終了の条件が満たされていた場合は(S70:YES)、処理を終了する。
【0052】
図15は、テストベンチ145を用いてプロセッサ41に対するシミュレーションを行った処理の波形を示した模式図である。図4の行412に記述されたアセンブリ言語のプログラム命令のMOV命令がROM44の10進数で32番地に入っているとする。このときのMOV命令のADRは10進数で32となる。この場合、図中の1512に示した如くプログラムカウンタが10進数で32を指すとき、図4の行412のALET言語のasrt文が実行される。asrt文はcpupcすなわちU0.U1.progcnt47がADRと等しいかどうかテストを行い、この場合、cpupcすなわちU0.U1.progcnt47とADRとは共に10進数で32を指しているためテストは合格する。
【0053】
次に、図4の行413の記述により、図中に示した1513の部分がテストされる。更に、図4の行414の記述により、図中に示した1514の部分がテストされる。このとき、MOV命令は定数をWレジスタに転送する命令であり、機械語は16進数で32となる。よってINSTは16進数の32と置き換わるので、この場合もテストに合格する。以下も同様に、図4の行415の記述により、図中に示した1515の部分がテストされ、図4の行416の記述により、図中に示した1516の部分がテストされ、図4の行417の記述により、図中に示した1517の部分がテストされる。いずれの場合もテストに合格する。図4の行418の記述により、図中に示した1518の部分がテストされ、OPR1は第1オペランドである10h(16進数の10)と同じ意味であるため、この場合もテストに合格する。
【0054】
次に、図4の行419の記述により、アセンブリ言語のプログラム命令のMOV命令がメモリの10進数で34番地に格納される。このときADRは10進数で34となる。ここで、アセンブリ言語の夫々の命令からALET言語の時系列が始まるため、プロセッサ41のプログラムカウンタが10進数で34を指して、「`@」で指定されている条件を満たした場合、すなわち図15に示した1501の時刻に、ALET言語のテスト命令が実行され、図15に示した1519の部分がテストされる。図4の行419では、プロセッサ41のプログラムカウンタが、ROMのアドレスを指すADRと等しいかどうかをテストすることを指定しているため、これら両方が10進数で34であるのでこのテストは合格する。同様にして、図4の行420の記述により、図15に示した1520の部分がテストされ、この場合もテストに合格する。
【0055】
以上に示した如く、テスト命令を実行する時刻が前後する場合においても、注目するプログラム命令に関連づけてALET言語のテスト命令を記述することで、テスト命令を実行する時刻を指定できるため、時刻の指定が容易となる。また、回路中の特定の部分の動作に関連づけてテスト命令を独立に記述できるため、パイプライン処理を行うプロセッサに対しても本発明を適用することができる。
【0056】
図16は、テストベンチ作成のために必要な記述量を示した特性図である。横軸は、テストベンチによるテスト項目数を示し、縦軸は、テストベンチ作成のために手作業で入力する必要があるファイルのサイズをバイト単位で示す。テスト項目数が増えるに従って膨大な量のファイルを入力する必要があった従来の方法に比べて、本発明では、入力が必要なファイルのサイズが大幅に減少し、テスト項目数の増加に伴う入力ファイルサイズの増加率も大幅に小さい。従って、本発明を用いることにより、テストベンチを作成するために必要な手間および時間を大幅に削減することができる。
【0057】
本実施の形態においては、アセンブラの処理で中間ファイルを作成し、作成した中間ファイルを元にALETコンパイラの処理でテストベンチを生成する手順を用いる形態を示したが、この形態に限るものではなく、中間ファイルを生成せずに一気にテストベンチを生成する処理を用いる形態であってもよい。また、アセンブラの処理とALETコンパイラの処理とを連続して実行する方法を用いる形態を示したが、アセンブラの処理を終了した時点で一度処理を終了し、オペレータ等の指示を受け付けた後で改めてALETコンパイラの処理を行う方法を用いる形態であってもよい。また、本実施の形態においては、プログラムファイルに記述されるプログラム命令はアセンブリ言語で記述されてあり、該プログラムファイルからテストベンチを生成する形態を示したが、回路の動作を直接に規定する形式のプログラム言語、即ち、回路が行う一連の動作をまとめて規定する所謂高級言語ではなく回路が行う個別の動作を逐一規定する所謂低級言語でプログラム命令が記述された場合は、回路が個別の動作を行う時刻を明確に規定することができるため、アセンブリ言語以外の他の前記プログラム言語でプログラム命令が記述されたプログラムファイルからテストベンチを生成する形態であっても良い。
【0058】
【発明の効果】
第1、第3及び第5発明においては、回路の動作を直接に規定する形式、即ち、回路が行う一連の動作をまとめて規定するのではなく回路が行う個別の動作を逐一規定する形式で記述されたプログラム命令に関連づけてALET言語によるテスト命令を記述しておいたプログラムファイルを用い、シミュレーションにおいてプログラム命令が呼び出される時刻を参照して該時刻から起算した所定タイミングで前記プログラム命令に関連づけられたテスト命令を実行すべき記述を含んだテストベンチを生成する。これにより、テストベンチを生成する際に、テスト命令を実行する時刻を絶対時間で記述する必要がなくなり、回路の動作を直接に規定する形式で記述されたプログラム命令からの相対時間でテスト命令を実行する時刻を容易に指定することができる。また、テストベンチを生成するために手作業で入力が必要なファイルのサイズが大幅に減少し、テストベンチを作成するために必要な手間および時間を大幅に削減することができる。
【0059】
第2、第4及び第6発明においては、アセンブリ言語で記述されたプログラム命令に関連づけてALET言語によるテスト命令を記述しておいたプログラムファイルを用い、シミュレーションにおいてプログラム命令が記憶されたメモリのアドレスを呼び出された時刻を参照して該時刻から起算した所定クロック後に前記プログラム命令に関連づけられたテスト命令を実行すべき記述を含んだテストベンチを生成する。これにより、テストベンチを生成する際に、テスト命令を実行する時刻を絶対時間で記述する必要がなくなり、回路の一つ一つの動作に対応しているアセンブリ言語で記述されたプログラム命令からの相対クロック数でテスト命令を実行する時刻を指定することができる。また、テストベンチを生成するために手作業で入力が必要なファイルのサイズが大幅に減少し、テストベンチを作成するために必要な手間および時間を大幅に削減することができる等、本発明は優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明の概要を示す概念図である。
【図2】本発明のテストベンチ生成装置の構成を示すブロック図である。
【図3】回路記述ファイルに記述されてシミュレーションの対象となる回路の例を示すブロック図である。
【図4】アセンブリ言語及びALET言語で記述されたプログラムファイルの例を示す図である。
【図5】入力信号ファイルの内容の例を示す図である。
【図6】本発明のテストベンチ生成装置が行う処理の手順を示すフローチャートである。
【図7】ステップS1のアセンブラの処理の手順を示すフローチャートである。
【図8】生成された中間ファイルの内容の例を示す図である。
【図9】ステップS3のALETコンパイラの処理の手順を示すフローチャートである。
【図10】ステップS3のALETコンパイラの処理の手順を示すフローチャートである。
【図11】ステップS3のALETコンパイラの処理の手順を示すフローチャートである。
【図12】ステップS3のALETコンパイラの処理の手順を示すフローチャートである。
【図13】生成するテストベンチの内容の例を示す図である。
【図14】図13に示すテストベンチに記述された処理の内容を示すフローチャートである。
【図15】テストベンチを用いてプロセッサに対するシミュレーションを行った処理の波形を示した模式図である。
【図16】テストベンチ作成のために必要な記述量を示した特性図である。
【図17】従来のシミュレーションの概要を示す概念図である。
【符号の説明】
1 テストベンチ生成装置
11 CPU(演算部)
12 RAM(記憶部)
2 記録媒体
20 コンピュータプログラム[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a method for generating a test bench for simulating a circuit designed using a hardware description language or a system description language, a test bench generation apparatus for realizing the method, and a computer for the test bench generation apparatus. The present invention relates to a computer program to be realized as.
[0002]
[Prior art]
Various types of circuits such as ICs or LSIs for realizing semiconductor devices such as CPUs and memories have been developed and used in terms of their functions and scale. At present, a circuit design uses a hardware description language (hereinafter referred to as HDL), which is a language for describing hardware operation or a logical configuration, etc., according to a request for shortening a design period or facilitating verification. It has become common practice. In recent years, a circuit design method using a system description language such as C language having a higher degree of abstraction than HDL has also been developed.
[0003]
When designing a circuit using HDL or a system description language, it is necessary to perform a simulation of the operation and the logical configuration of the circuit described in the HDL or the system description language, and verify the design. FIG. 17 is a conceptual diagram showing an outline of a conventional simulation. At the time of a conventional simulation, as information, a circuit description file describing the operation and logical configuration of a circuit using HDL or a system description language, a program file describing a program to be executed by the circuit in an assembly language, and A test bench is prepared that describes the contents of the process for verifying the operation of the circuit. The test bench describes an input signal input to the circuit, a predicted value to be taken by a predetermined signal in the circuit when the circuit operates normally, and the like. In the simulation, a program file is processed by an assembler to generate a machine language file.The generated machine language file, circuit description file, and test bench are input to the simulator, and the simulator simulates the operation of the circuit. A result indicating whether the operation was successful is output. The circuit designer corrects the designed circuit based on the output result.
[0004]
[Patent Document 1]
JP 2001-306648 A
[0005]
[Problems to be solved by the invention]
Conventionally, in the simulation at the time of designing a circuit, an input signal to be input to a circuit to be designed, a predicted value to be taken by a predetermined signal in the circuit when the circuit operates correctly, and a simulation of a circuit operating at a predetermined time. A test instruction for verifying the value of the signal needs to be described in the test bench. Furthermore, the specification of the time is represented by an absolute time calculated from the start of the simulation, and the verification time must be strictly specified in accordance with the operation of the circuit. There is a problem that description is required. To create a test bench, it is necessary to describe a predicted value of a signal and the setting of an input signal in association with a test instruction specifying a time, and the amount of description of the test bench increases as the scale of a circuit increases. Creating a test bench with a complex description and a large amount of description by hand is extremely labor-intensive, and has the problem that more time must be spent writing the test bench than designing the circuit itself. .
[0006]
The present invention has been made in view of such circumstances, and an object of the present invention is to associate a test instruction with each program instruction in a program file in which a program instruction operating on a circuit is described in an assembly language. Test bench that generates test benches by extracting test instructions associated with each program instruction and generating a test bench when simulating a circuit. An object of the present invention is to provide a generation method, a test bench generation device, and a computer program.
[0007]
[Means for Solving the Problems]
A test bench generation method according to a first aspect of the present invention uses a computer having a storage unit and an operation unit to simulate the operation of a logic-designed circuit, using one or more computers to be executed on the circuit. A method for generating a test bench describing a procedure for verifying the operation of the circuit from a program file in which program instructions are described in a format that directly defines the operation of the circuit, the method comprising calculating a test bench from execution of a predetermined program instruction Storing the program file in which a test instruction for inspecting a value of predetermined information processed in the circuit at the predetermined timing in association with the program instruction is stored in a storage unit; An input signal file defining input signals to be input is stored in the storage unit, and the text file included in the program file is stored in the storage unit. The operation instruction is extracted from the program file by the operation unit while the test instruction is associated with the program instruction associated with the test instruction, the test bench file is generated by the operation unit, and stored in the storage unit. The content expressing the input signal defined in the input signal file is written into the test bench file by the arithmetic unit, and the content indicating that the program command indicates the time at which the simulation was called in the simulation is written. And writing the test instruction to the test bench file at a predetermined timing calculated from a time at which the program instruction associated with the test instruction is called in the simulation by an arithmetic unit. Is written in the test bench file by the calculation unit. To.
[0008]
The test bench generation method according to the second invention uses a computer having a storage unit and an arithmetic unit to simulate the operation of a circuit designed in HDL or a system description language, and includes a program memory therein. A method for generating, from a program file in which one or more program instructions to be executed on a circuit are described in an assembly language, a test bench describing a procedure for verifying the operation of the circuit, comprising: After storing a program file in which a test instruction for checking a value of predetermined information processed in the circuit after a predetermined clock counted from execution is described in association with the program instruction, the program file is stored in a storage unit. An input signal file defining an input signal to be input to the circuit is stored in a storage unit, and the storage unit The one or more program instructions described in the stored program file are translated into a machine language to be executed in the circuit by an arithmetic unit, and each of the program instructions translated into the machine language is An arithmetic unit obtains an address of a program memory of the circuit to be stored, and associates the test instruction included in the program file with the address at which the program instruction associated with the test instruction is stored. The operation unit extracts from the program file, generates a test bench file in the operation unit and stores it in the storage unit.The generated test bench file includes the input signal defined in the input signal file. Expressed in HDL or system description language and written by the arithmetic unit, and the input signal is In the simulation started by being input to the circuit, a description instructing to add a clock for each predetermined process is expressed in HDL or a system description language, written in the arithmetic unit, and the address is called in the simulation. A description instructing that the obtained time is expressed in the unit of the added clock is written in the test bench file in HDL or a system description language and written in the arithmetic unit, and the value of the added clock is written in the test bench. A description indicating that the test instruction is to be executed when the value obtained by adding the predetermined clock to the time at which the address associated with the instruction is called is added to the test bench file in HDL or a system description language. And written in the calculation unit.
[0009]
In order to simulate the operation of a logic-designed circuit, the test bench generation device according to a third aspect of the present invention includes one or more program instructions to be executed on the circuit and directly defines the operation of the circuit. An apparatus for generating a test bench describing a procedure for verifying the operation of the circuit from the program file described in the above, wherein the test bench is processed in the circuit at a predetermined timing calculated from execution of a predetermined program instruction. Means for storing the program file in which a test instruction for checking the value of the information is described in association with the program instruction, and means for storing an input signal file defining input signals to be input to the circuit in the simulation And transmitting the test instruction included in the program file to the program associated with the test instruction. Means for extracting from the program file, means for generating a test bench file, and expressing the input signal specified in the input signal file in the generated test bench file in a state associated with the program command. Means for writing the contents, means for writing contents indicating the time at which the program instruction was called in the simulation in a file of the test bench, and wherein the program instruction associated with the test instruction is A means for writing, in the file of the test bench, a content for instructing execution of the test instruction when the predetermined timing counted from the time of the call is reached.
[0010]
According to a fourth aspect of the present invention, there is provided a test bench generation apparatus, which simulates an operation of a circuit designed in HDL or a system description language, in which one or more program instructions to be executed on the circuit including a program memory therein A test bench describing a procedure for verifying the operation of the circuit from a program file described in assembly language, wherein the test bench is processed in the circuit after a predetermined clock counted from execution of a predetermined program instruction. Means for storing the program file in which a test instruction for checking the value of the predetermined information is described in association with the program instruction, and an input signal file defining input signals to be input to the circuit in the simulation. Means for storing, and one of the programs described in the stored program file. Means for translating the plurality of program instructions into a machine language to be executed by the circuit, and means for acquiring an address of a program memory of the circuit in which each of the program instructions translated into the machine language is stored Means for extracting the test instruction included in the program file from the program file in association with the address where the program instruction associated with the test instruction is stored, and generating a test bench file Means, means for writing the input signal specified by the input signal file in HDL or a system description language into the generated test bench file, and writing the input signal into the test bench file Clock is added for each predetermined process in the simulation started by input to Means for writing a description instructing the address in HDL or a system description language, and a description instructing to represent the time at which the address was called in the simulation in a unit of a clock added. Means for writing in a file described in HDL or a system description language, and when the value of the added clock is a value obtained by adding the predetermined clock to the time at which the address associated with the test instruction is called Means for writing a description instructing execution of the test instruction to the test bench file in HDL or a system description language.
[0011]
A computer program according to a fifth aspect of the present invention provides a computer with one or a plurality of program instructions to be executed on the circuit to directly specify the operation of the circuit in order to simulate the operation of a logic-designed circuit. A computer program for generating, from a program file described in a format, a test bench describing a procedure for verifying the operation of the circuit, wherein the computer generates a test bench within the circuit at a predetermined timing calculated from execution of a predetermined program instruction. From the program file in which a test instruction for checking the value of the predetermined information being processed is described in association with the program instruction, the test instruction is stored in a state in which the test instruction is associated with the program instruction associated with the test instruction. The extraction procedure and the test bench file A step of causing the computer to write the contents of an input signal file that defines the input signals to be input to the circuit in the simulation into a generated test bench file. A procedure for writing the content indicating the time of calling in the simulation in the file of the test bench, and a computer instructing the computer to execute the program command associated with the test command in the simulation. Writing the contents instructing execution of the test instruction when the predetermined timing is counted into a file of the test bench.
[0012]
A computer program according to a sixth aspect of the present invention is a computer program, which simulates the operation of a circuit designed in HDL or a system description language, in a computer, one or more programs to be executed on the circuit including a program memory therein. A computer program for generating a test bench describing a procedure for verifying the operation of the circuit from a program file in which instructions are described in an assembly language. From the program file describing a test instruction for checking a value of predetermined information being processed in the circuit in association with the program instruction, one or a plurality of the programs in a machine language to be executed in the circuit Instructions to translate the instructions and the computer to the machine Obtaining an address of a program memory of the circuit in which each of the program instructions translated into the program instruction is stored; and causing a computer to execute the test instruction included in the program file, the program instruction being associated with the test instruction. A procedure for extracting the test bench file from the program file in association with the address in which the program is stored, a procedure for causing the computer to generate a test bench file, A step of expressing the contents of an input signal file defining input signals to be input to the HDL or a system description language and writing the input signals to a test bench file in a computer; Specified in the simulation A procedure for writing a description instructing to add a clock for each process in HDL or a system description language, and writing the time at which the address was called in the simulation in a unit of the added clock to the computer. And writing a description instructing the test instruction to the test bench file in HDL or a system description language, and instructing the computer to call the address where the added clock value is associated with the test instruction. And writing a description instructing to execute the test instruction when the value is the value obtained by adding the predetermined clock to the test time, in a file of the test bench in HDL or a system description language. It is characterized by the following.
[0013]
The inventor has determined that each program instruction written in assembly language corresponds to each operation performed by the circuit, and that the program instruction written in assembly language to be executed in the circuit is Focusing on the fact that the time at which the program instruction is executed in the circuit can be strictly defined, and by describing the test instruction necessary for the test bench in association with the program instruction described in the assembly language, the verification of the circuit can be performed. A test bench generation facilitating assembly language (ALET language: Assembly Language to Ease Testbench) that can easily specify the time to be performed has been developed.
[0014]
In the first, third, and fifth aspects of the present invention, a format for directly defining the operation of a circuit, that is, not a so-called high-level language for collectively defining a series of operations performed by a circuit, but an individual operation performed by the circuit is defined one by one. Using a program file in which test instructions in the ALET language are described in association with program instructions written in a so-called lower-level language, referring to a time at which the program instructions are called in the simulation, and executing the program at a predetermined timing calculated from the time. A test bench is generated that includes a description to execute a test instruction associated with the instruction. This eliminates the need to describe the test instruction execution time in absolute time when generating a test bench.The test instruction is executed relative to the program instruction written in a format that directly defines the circuit operation. The execution time can be specified.
[0015]
According to the second, fourth and sixth aspects of the present invention, a program file in which a test instruction in an ALET language is described in association with a program instruction in an assembly language is used, and an address of a memory in which the program instruction is stored in a simulation. A test bench including a description to execute a test instruction associated with the program instruction after a predetermined clock counted from the time with reference to the time at which is called. This eliminates the need to describe the test instruction execution time in absolute time when generating the test bench, and makes it relative to the program instruction written in assembly language corresponding to each operation of the circuit. The time at which the test instruction is executed can be specified by the number of clocks.
[0016]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, the present invention will be specifically described with reference to the drawings showing the embodiments.
FIG. 1 is a conceptual diagram showing an outline of the present invention. According to the test bench generation method of the present invention, a
[0017]
FIG. 2 is a block diagram showing a configuration of the test bench generation device of the present invention. The test
[0018]
Further, the test
[0019]
The
[0020]
Next, the ALET language developed by the inventor will be described.
1. Description place of ALET language
The description of the ALET language is described in the comment part of the assembly language. Note that comments in assembly language are generally described below ";".
1.1 “; ¥” (semicolon and yen mark)
When the comment part of the assembly language starts with “; ¥”, it means that the description in the ALET language format starts.
1.2 ";"
If the comment part of the assembly language starts with ";" instead of ";@", it is a normal assembly language comment part.
1.3 "//" (two slash characters)
If “//” is described after the place of the description in the ALET language format, that is, “; ¥”, the description after “//” is a comment part of the ALET language.
[0021]
2. Required information
Before the delay and assert statements described below, the following three statements must be made.
2.1 "@pc": Designation of processor program counter
In the circuit to be simulated, the location where the program counter of the processor exists is specified.
2.2 “@”: Processing sensitivity list
The sensitivity list is a description in HDL or a system description language that specifies which event of which signal the process execution depends on, and specifies a reference clock of a process for performing circuit verification. Basically, it specifies the clock input to the circuit.
2.3 "` @": Processing execution condition
Specify the conditions under which the circuit verification process is executed. Specifies the first machine cycle of the processor. Before specifying the processing execution condition, it is necessary to specify the program counter of the processor with "@pc".
[0022]
3. "#": Specify delay time
Specifies the time at which the test instruction will be performed. By describing the number of clocks following “#” and “# 5c;”, the number of clocks is counted from the time when the immediately preceding assembly language program instruction is executed for the first time, and after 5 clocks or the like. , Which means to proceed to the description in the ALET language format.
[0023]
4. Display function
4.1 “asrt ()”: assert statement
By describing “asrt (condition);”, when the immediately preceding assembly language program instruction is executed at the time of this description, it is determined whether the condition is positive or false, and If false, it means to stop the simulation and output that the condition is false. By describing the predicted value in the conditional expression, a test for comparing the value of the information processed by the circuit with the predicted value can be performed.
4.2 “disp ()”: Display sentence
By describing "disp (character string);", it means that the character specified by the character string is displayed when the immediately preceding assembly language program instruction is executed at the time of this description.
4.3 “dump ()”: Dump statement
By describing “dump (signal name);”, it means that the state of the signal specified by the signal name is displayed when the immediately preceding assembly language program instruction is executed at the time of this description. .
[0024]
5. Definition statements and reserved words
5.1 "@def": Definition sentence
By describing "$ def definition name value, expression or character string", in the description of the ALET language after this definition, the definition name is replaced with the value, expression or character string specified thereafter. means.
5.2 Reserved words
In the following description, since the assembly language and the ALET language are closely related, the ALET language compiler substitutes appropriate values.
INST ... Instruction information stored in ROM.
OPR1 ... Information of
OPR2 ... Information of
ADR: ROM address. Indicates the address where INST is located in the
Note that the ROM described here is a memory that stores a program instruction included in a circuit to be simulated.
[0025]
6. Description method
6.1 Multiple descriptions on the same line
The description of the ALET language starting with "@" (at mark) and "@" (accent grab) cannot be described at the same time on one line, but multiple descriptions of delay and assert statements are allowed. Those in which plural descriptions are allowed are separated from each other by ";".
6.2 Time overlap
In the ALET language, time overlap of a plurality of test instructions is also possible.
[0026]
Next, an example of a circuit designed in HDL or a system description language will be described. FIG. 3 is a block diagram illustrating an example of a circuit described in a circuit description file and to be simulated. The
[0027]
The
[0028]
When a register in the
[0029]
Next, a description example of the ALET language is shown. FIG. 4 is a diagram illustrating an example of the
[0030]
[0031]
"MOV 10h, W" in the part before ";$" in the
[0032]
“MOV W, BL” in
[0033]
[0034]
Next, a description example of the input signal is shown. FIG. 5 is a diagram showing an example of the contents of the
[0035]
The
[0036]
The
[0037]
Next, the procedure of the test bench generation method of the present invention will be described based on a flowchart. FIG. 6 is a flowchart illustrating a procedure of processing performed by the test bench generation device of the present invention. The CPU 11 of the test
[0038]
FIG. 8 is a diagram showing an example of the contents of the generated
Each description of the ALET language described in the
[0039]
Next, the CPU 11 stores the
[0040]
9 to 12 are flowcharts showing the procedure of the processing of the ALET compiler in step S3. The CPU 11 reads the
[0041]
Next, the CPU 11 acquires one line of data from the
[0042]
If the data has been obtained in step S305 (S305: YES), the CPU 11 obtains information such as an address associated with the description of the obtained line in the ALET language according to the
[0043]
If the description is not “$ pc” in step S310 (S310: NO), the CPU 11 next sets the description at the top of the ALET language of the acquired line to “$” according to the
[0044]
If the description is not “$” in step S312 (S312: NO), the CPU 11 next sets the description at the top of the ALET language of the acquired line to “$” according to the
[0045]
If the description is not “$” in step S319 (S319: NO), the CPU 11 next writes the description from the acquired line to “;” in accordance with the
[0046]
In step S329, if the description at the top of the acquired part is not the description of “#” (S329: NO), the CPU 11 then writes the description of the acquired part in accordance with the
[0047]
In step S333, if the description of the acquired part is not the description of the asrt statement (S333: NO), the CPU 11 then changes the description of the acquired part to the description of the dump statement in accordance with the
[0048]
If it is determined in step S340 that the description of the obtained part is not a description of a dump statement (S340: NO), the CPU 11 then changes the description of the obtained part to a description of the disp statement in accordance with the
[0049]
As described in detail above, in the present invention, a program file in which a test instruction in the ALET language is described in association with a program instruction in an assembly language is used, and a time at which the program instruction is called in the simulation is referred to. After a predetermined clock counted from the time, a
[0050]
The
[0051]
FIG. 14 is a flowchart showing the contents of the processing described in the
[0052]
FIG. 15 is a schematic diagram showing a waveform of a process of performing a simulation on the
[0053]
Next, the
[0054]
Next, the MOV instruction of the assembly language program instruction is stored at the address 34 in decimal in the memory according to the description of the
[0055]
As described above, even when the time at which the test instruction is executed is before or after, the time at which the test instruction is executed can be specified by describing the test instruction in the ALET language in association with the program instruction of interest. Specification becomes easy. In addition, since a test instruction can be described independently in association with the operation of a specific part in a circuit, the present invention can be applied to a processor that performs pipeline processing.
[0056]
FIG. 16 is a characteristic diagram showing a description amount necessary for creating a test bench. The horizontal axis indicates the number of test items by the test bench, and the vertical axis indicates the size of the file that needs to be manually input for creating the test bench in units of bytes. Compared to the conventional method that required inputting a huge amount of files as the number of test items increased, the present invention greatly reduced the size of the file required to be input, and the input required as the number of test items increased. The rate of increase in file size is also very small. Therefore, by using the present invention, the labor and time required to create a test bench can be significantly reduced.
[0057]
In the present embodiment, an example is described in which an intermediate file is created by assembler processing and a test bench is generated by ALET compiler processing based on the created intermediate file. However, the present invention is not limited to this form. Alternatively, a mode may be used in which a test bench is generated at once without generating an intermediate file. In addition, the mode of using the method of continuously executing the assembler processing and the ALET compiler processing has been described. However, the processing is terminated once when the assembler processing is completed, and again after receiving an instruction from an operator or the like. An embodiment using a method of performing the processing of the ALET compiler may be used. Further, in the present embodiment, the program instructions described in the program file are described in the assembly language, and the form in which the test bench is generated from the program file has been described. When program instructions are described in a programming language, that is, a so-called low-level language that defines individual operations performed by a circuit, instead of a so-called high-level language that collectively defines a series of operations performed by a circuit, the circuit operates in a separate operation. Since the execution time can be clearly defined, a test bench may be generated from a program file in which program instructions are described in another program language other than the assembly language.
[0058]
【The invention's effect】
In the first, third and fifth aspects of the present invention, the operation of the circuit is directly defined, that is, the individual operation performed by the circuit is not defined collectively but a series of operations performed by the circuit. Using a program file in which a test instruction in the ALET language is described in association with the described program instruction, the program instruction is referred to at the time when the program instruction is called in the simulation, and is associated with the program instruction at a predetermined timing calculated from the time. A test bench including a description for executing the test instruction is generated. This eliminates the need to describe the test instruction execution time in absolute time when generating a test bench.The test instruction is executed relative to the program instruction written in a format that directly defines the circuit operation. The execution time can be easily specified. In addition, the size of a file that needs to be manually input to generate a test bench is significantly reduced, and the labor and time required to create a test bench can be significantly reduced.
[0059]
According to the second, fourth and sixth aspects of the present invention, a program file in which a test instruction in an ALET language is described in association with a program instruction in an assembly language is used, and an address of a memory in which the program instruction is stored in a simulation. A test bench including a description to execute a test instruction associated with the program instruction after a predetermined clock counted from the time with reference to the time at which is called. This eliminates the need to describe the test instruction execution time in absolute time when generating the test bench, and makes it relative to the program instruction written in assembly language corresponding to each operation of the circuit. The time at which the test instruction is executed can be specified by the number of clocks. In addition, the present invention significantly reduces the size of files that need to be manually input to generate a test bench, and significantly reduces the labor and time required to create a test bench. It has excellent effects.
[Brief description of the drawings]
FIG. 1 is a conceptual diagram showing an outline of the present invention.
FIG. 2 is a block diagram illustrating a configuration of a test bench generation device according to the present invention.
FIG. 3 is a block diagram illustrating an example of a circuit described in a circuit description file to be simulated;
FIG. 4 is a diagram showing an example of a program file described in an assembly language and an ALET language.
FIG. 5 is a diagram showing an example of the contents of an input signal file.
FIG. 6 is a flowchart showing a procedure of a process performed by the test bench generation device of the present invention.
FIG. 7 is a flowchart showing a procedure of assembler processing in step S1.
FIG. 8 is a diagram illustrating an example of the contents of a generated intermediate file.
FIG. 9 is a flowchart showing a procedure of processing of the ALET compiler in step S3.
FIG. 10 is a flowchart showing a procedure of processing of the ALET compiler in step S3.
FIG. 11 is a flowchart showing a procedure of processing of the ALET compiler in step S3.
FIG. 12 is a flowchart illustrating a procedure of processing of the ALET compiler in step S3.
FIG. 13 is a diagram illustrating an example of the contents of a test bench to be generated.
FIG. 14 is a flowchart showing the contents of processing described in the test bench shown in FIG.
FIG. 15 is a schematic diagram showing waveforms of processing in which a simulation is performed on a processor using a test bench.
FIG. 16 is a characteristic diagram showing a description amount necessary for creating a test bench.
FIG. 17 is a conceptual diagram showing an outline of a conventional simulation.
[Explanation of symbols]
1 Test bench generator
11 CPU (arithmetic unit)
12 RAM (storage unit)
2 Recording media
20 Computer programs
Claims (6)
所定のプログラム命令の実行から起算した所定タイミングで前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルを記憶部に記憶し、
前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルを記憶部に記憶し、
前記プログラムファイルに含まれる前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令に関連づけた状態で、前記プログラムファイルから演算部にて抽出し、
テストベンチのファイルを演算部にて生成して記憶部に記憶し、
生成したテストベンチのファイルに、前記入力信号ファイルにて規定された前記入力信号を表現した内容を演算部にて書き込み、
前記プログラム命令が前記シミュレーションにて呼び出された時刻を示すことを指示する内容を、前記テストベンチのファイルに演算部にて書き込み、
前記テスト命令に関連づけられた前記プログラム命令が前記シミュレーションにて呼び出された時刻から起算した前記所定タイミングとなったときに該テスト命令を実行することを指示する内容を、前記テストベンチのファイルに演算部にて書き込む
ことを特徴とするテストベンチ生成方法。In order to simulate the operation of a logic-designed circuit, one or more program instructions to be executed on the circuit are directly defined by using a computer having a storage unit and an operation unit. A method for generating a test bench describing a procedure for verifying the operation of the circuit from a program file described in a format
A test instruction for checking a value of predetermined information processed in the circuit at a predetermined timing calculated from execution of a predetermined program instruction is stored in a storage unit in a storage unit, wherein the test file describes a test instruction in association with the program instruction. ,
An input signal file defining an input signal to be input to the circuit in the simulation is stored in a storage unit,
The test instruction included in the program file is extracted by the operation unit from the program file in a state where the test instruction is associated with the program instruction associated with the test instruction,
The test bench file is generated by the arithmetic unit and stored in the storage unit,
In the generated test bench file, the content expressing the input signal specified in the input signal file is written by an arithmetic unit,
A content indicating that the program instruction indicates a time called in the simulation is written in a file of the test bench by an arithmetic unit,
When the predetermined timing calculated from the time at which the program instruction associated with the test instruction is called in the simulation comes, the content indicating the execution of the test instruction is calculated in the test bench file. A test bench generation method characterized by writing in a section.
所定のプログラム命令の実行から起算した所定クロック後に前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルを記憶部に記憶し、
前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルを記憶部に記憶し、
記憶部に記憶している前記プログラムファイルに記述されている一又は複数の前記プログラム命令を、前記回路にて実行されるべき機械語に演算部で翻訳し、機械語に翻訳された前記プログラム命令の夫々が記憶される前記回路のプログラムメモリのアドレスを演算部にて取得し、
前記プログラムファイルに含まれる前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令が記憶される前記アドレスに対応づけて、前記プログラムファイルから演算部にて抽出し、
テストベンチのファイルを演算部にて生成して記憶部に記憶し、
生成したテストベンチのファイルに、前記入力信号ファイルにて規定された前記入力信号をハードウェア記述言語又はシステム記述言語で表現して演算部にて書き込み、
前記テストベンチのファイルに、前記入力信号が前記回路に入力されて開始される前記シミュレーションにて所定の処理毎にクロックを加算することを指示する記述をハードウェア記述言語又はシステム記述言語で表現して演算部にて書き込み、
前記シミュレーションにて前記アドレスを呼び出された時刻を加算されたクロックの単位で表すことを指示する記述を、前記テストベンチのファイルに、ハードウェア記述言語又はシステム記述言語で表現して演算部にて書き込み、
加算されたクロックの値が前記テスト命令に対応づけられた前記アドレスを呼び出された時刻に前記所定クロックを加算した値である場合に該テスト命令を実行することを指示する記述を、前記テストベンチのファイルに、ハードウェア記述言語又はシステム記述言語で表現して演算部にて書き込む
ことを特徴とするテストベンチ生成方法。In order to simulate the operation of a circuit designed in a hardware description language or a system description language, a computer having a storage unit and an operation unit is used to execute a circuit to be executed on the circuit including a program memory therein. Or a method of generating a test bench describing a procedure for verifying operation of the circuit from a program file in which a plurality of program instructions are described in an assembly language,
After a predetermined clock counted from the execution of the predetermined program instruction, storing the program file in which a test instruction for checking a value of predetermined information processed in the circuit in association with the program instruction is stored in a storage unit. ,
An input signal file defining an input signal to be input to the circuit in the simulation is stored in a storage unit,
The one or more program instructions described in the program file stored in the storage unit are translated into a machine language to be executed by the circuit by an arithmetic unit, and the program instructions translated into a machine language The address of the program memory of the circuit in which each of
The test instruction included in the program file is extracted by the arithmetic unit from the program file in association with the address at which the program instruction associated with the test instruction is stored,
The test bench file is generated by the arithmetic unit and stored in the storage unit,
In the generated test bench file, the input signal specified in the input signal file is expressed in a hardware description language or a system description language and written by an arithmetic unit,
In the test bench file, a description instructing to add a clock for each predetermined process in the simulation started when the input signal is input to the circuit is expressed in a hardware description language or a system description language. Write in the arithmetic unit,
The description indicating that the address is called in the simulation in the unit of the added clock in the simulation is expressed in the test bench file in the hardware description language or the system description language, and the calculation unit writing,
When the value of the added clock is a value obtained by adding the predetermined clock to the time at which the address associated with the test instruction is called, a description indicating that the test instruction is to be executed is described in the test bench. A test bench generation method characterized in that the file is written in a hardware description language or a system description language and written by a calculation unit in the file.
所定のプログラム命令の実行から起算した所定タイミングで前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルを記憶する手段と、
前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルを記憶する手段と、
前記プログラムファイルに含まれる前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令に関連づけた状態で、前記プログラムファイルから抽出する手段と、
テストベンチのファイルを生成する手段と、
生成したテストベンチのファイルに、前記入力信号ファイルにて規定された前記入力信号を表現した内容を書き込む手段と、
前記プログラム命令が前記シミュレーションにて呼び出された時刻を示すことを指示する内容を、前記テストベンチのファイルに書き込む手段と、
前記テスト命令に関連づけられた前記プログラム命令が前記シミュレーションにて呼び出された時刻から起算した前記所定タイミングとなったときに該テスト命令を実行することを指示する内容を、前記テストベンチのファイルに書き込む手段と
を備えることを特徴とするテストベンチ生成装置。In order to simulate the operation of a logic-designed circuit, one or more program instructions to be executed on the circuit are described from a program file in which the operation of the circuit is directly specified. An apparatus for generating a test bench describing a procedure for verifying the operation of
Means for storing the program file in which a test instruction for checking a value of predetermined information processed in the circuit at a predetermined timing calculated from execution of a predetermined program instruction is described in association with the program instruction;
Means for storing an input signal file defining input signals to be input to the circuit in the simulation;
Means for extracting the test instruction included in the program file from the program file in a state where the test instruction is associated with the program instruction associated with the test instruction;
Means for generating test bench files;
Means for writing the content representing the input signal defined in the input signal file to the generated test bench file,
Means for writing, in a file of the test bench, a content indicating that the program instruction indicates a time called in the simulation,
When the program instruction associated with the test instruction is at the predetermined timing calculated from the time when the program instruction is called in the simulation, the content indicating that the test instruction is to be executed is written to the test bench file. And a means for generating a test bench.
所定のプログラム命令の実行から起算した所定クロック後に前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルを記憶する手段と、
前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルを記憶する手段と、
記憶している前記プログラムファイルに記述されている一又は複数の前記プログラム命令を、前記回路にて実行されるべき機械語に翻訳する手段と、
機械語に翻訳された前記プログラム命令の夫々が記憶される前記回路のプログラムメモリのアドレスを取得する手段と、
前記プログラムファイルに含まれる前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令が記憶される前記アドレスに対応づけて、前記プログラムファイルから抽出する手段と、
テストベンチのファイルを生成する手段と、
生成したテストベンチのファイルに、前記入力信号ファイルにて規定された前記入力信号をハードウェア記述言語又はシステム記述言語で表現して書き込む手段と、
前記テストベンチのファイルに、前記入力信号が前記回路に入力されて開始される前記シミュレーションにて所定の処理毎にクロックを加算することを指示する記述をハードウェア記述言語又はシステム記述言語で表現して書き込む手段と、
前記シミュレーションにて前記アドレスを呼び出された時刻を加算されたクロックの単位で表すことを指示する記述を、前記テストベンチのファイルに、ハードウェア記述言語又はシステム記述言語で表現して書き込む手段と、
加算されたクロックの値が前記テスト命令に対応づけられた前記アドレスを呼び出された時刻に前記所定クロックを加算した値である場合に該テスト命令を実行することを指示する記述を、前記テストベンチのファイルに、ハードウェア記述言語又はシステム記述言語で表現して書き込む手段と
を備えることを特徴とするテストベンチ生成装置。In order to simulate the operation of a circuit designed in a hardware description language or a system description language, one or a plurality of program instructions to be executed on the circuit including a program memory therein are described in an assembly language. An apparatus for generating a test bench describing a procedure for verifying operation of the circuit from a program file,
Means for storing the program file in which a test instruction for checking a value of predetermined information processed in the circuit after a predetermined clock counted from execution of the predetermined program instruction is described in association with the program instruction;
Means for storing an input signal file defining input signals to be input to the circuit in the simulation;
Means for translating one or more of the program instructions described in the stored program file into a machine language to be executed by the circuit;
Means for obtaining an address of a program memory of the circuit in which each of the program instructions translated into machine language is stored;
Means for extracting the test instruction included in the program file from the program file in association with the address where the program instruction associated with the test instruction is stored;
Means for generating test bench files;
Means for writing the input signal specified by the input signal file in a hardware test language or a system description language in a generated test bench file,
In the test bench file, a description instructing to add a clock for each predetermined process in the simulation started when the input signal is input to the circuit is expressed in a hardware description language or a system description language. Means for writing
Means for writing a description instructing to represent the time at which the address was called in the simulation in a unit of a clock added to the test bench file in a hardware description language or a system description language,
When the value of the added clock is a value obtained by adding the predetermined clock to the time at which the address associated with the test instruction is called, a description indicating that the test instruction is to be executed is described in the test bench. A means for expressing and writing the file in a hardware description language or a system description language to the file.
コンピュータに、所定のプログラム命令の実行から起算した所定タイミングで前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルから、前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令に関連づけた状態で抽出させる手順と、
コンピュータに、テストベンチのファイルを生成させる手順と、
コンピュータに、生成したテストベンチのファイルに、前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルの内容を書き込ませる手順と、
コンピュータに、前記プログラム命令が前記シミュレーションにて呼び出された時刻を示すことを指示する内容を、前記テストベンチのファイルに書き込ませる手順と、
コンピュータに、前記テスト命令に関連づけられた前記プログラム命令が前記シミュレーションにて呼び出された時刻から起算した前記所定タイミングとなったときに前記テスト命令を実行することを指示する内容を、前記テストベンチのファイルに書き込ませる手順と
を含むことを特徴とするコンピュータプログラム。In order to simulate the operation of a logic-designed circuit, a computer writes one or more program instructions to be executed on the circuit from a program file describing the operation of the circuit in a format that directly defines the operation of the circuit. A computer program for generating a test bench describing a procedure for verifying the operation of the circuit,
From the program file, a test instruction for checking a value of predetermined information being processed in the circuit at a predetermined timing calculated from execution of a predetermined program instruction is described in association with the program instruction. Extracting a test instruction in a state associated with the program instruction associated with the test instruction;
Steps to have the computer generate the test bench file,
A procedure for causing a computer to write the contents of an input signal file that defines input signals to be input to the circuit in the simulation into a generated test bench file;
A procedure for causing a computer to write, in a file of the test bench, a content indicating that the program instruction indicates a time at which the program instruction was called in the simulation,
The test bench is provided with a content for instructing a computer to execute the test instruction when the predetermined timing counted from the time at which the program instruction associated with the test instruction is called in the simulation is reached. Computer program for writing to a file.
コンピュータに、所定のプログラム命令の実行から起算した所定クロック後に前記回路内で処理されている所定の情報の値を検査するテスト命令を前記プログラム命令に関連づけて記述してある前記プログラムファイルから、前記回路にて実行されるべき機械語に一又は複数の前記プログラム命令を翻訳させる手順と、コンピュータに、機械語に翻訳された前記プログラム命令の夫々が記憶される前記回路のプログラムメモリのアドレスを取得させる手順と、
コンピュータに、前記プログラムファイルに含まれる前記テスト命令を、該テスト命令に関連づけられた前記プログラム命令が記憶される前記アドレスに対応づけて、前記プログラムファイルから抽出させる手順と、
コンピュータに、テストベンチのファイルを生成させる手順と、
コンピュータに、生成したテストベンチのファイルに、前記シミュレーションにて前記回路へ入力する入力信号を規定した入力信号ファイルの内容をハードウェア記述言語又はシステム記述言語で表現して書き込ませる手順と、
コンピュータに、前記テストベンチのファイルに、前記入力信号が前記回路に入力されて開始される前記シミュレーションにて所定の処理毎にクロックを加算することを指示する記述をハードウェア記述言語又はシステム記述言語で表現して書き込むませる手順と、
コンピュータに、前記シミュレーションにて前記アドレスを呼び出された時刻を加算されたクロックの単位で表すことを指示する記述を、前記テストベンチのファイルに、ハードウェア記述言語又はシステム記述言語で表現して書き込ませる手順と、
コンピュータに、加算されたクロックの値が前記テスト命令に対応づけられた前記アドレスを呼び出された時刻に前記所定クロックを加算した値である場合に該テスト命令を実行することを指示する記述を、前記テストベンチのファイルに、ハードウェア記述言語又はシステム記述言語で表現して書き込ませる手順と
を含むことを特徴とするコンピュータプログラム。In order to simulate the operation of a circuit designed in a hardware description language or a system description language, a computer describes one or more program instructions to be executed on the circuit including a program memory therein in an assembly language. A computer program for generating a test bench describing a procedure for verifying the operation of the circuit from a program file having
From the program file, a test instruction for checking a value of predetermined information processed in the circuit after a predetermined clock counted from execution of a predetermined program instruction is described in association with the program instruction. A step of translating one or a plurality of the program instructions into a machine language to be executed by the circuit, and obtaining, by a computer, an address of a program memory of the circuit in which each of the program instructions translated into the machine language is stored. And the steps to
Causing the computer to extract the test instruction included in the program file from the program file in association with the address where the program instruction associated with the test instruction is stored;
Steps to have the computer generate the test bench file,
A procedure for causing the computer to write the contents of an input signal file defining input signals to be input to the circuit in the simulation in a generated test bench file in a hardware description language or a system description language, and
In the test bench file, a description instructing the computer to add a clock for each predetermined process in the simulation started by inputting the input signal to the circuit is described in a hardware description language or a system description language. To write and write in
A description that instructs the computer to represent the time at which the address was called in the simulation in the unit of the added clock is written in the test bench file in a hardware description language or a system description language. And the steps to
A description instructing the computer to execute the test instruction when the value of the added clock is a value obtained by adding the predetermined clock to the time at which the address associated with the test instruction is called, And writing the test bench file expressed in a hardware description language or a system description language in a file of the test bench.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002310313A JP2004145670A (en) | 2002-10-24 | 2002-10-24 | Method and device for generating test bench, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002310313A JP2004145670A (en) | 2002-10-24 | 2002-10-24 | Method and device for generating test bench, and computer program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004145670A true JP2004145670A (en) | 2004-05-20 |
Family
ID=32455837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002310313A Pending JP2004145670A (en) | 2002-10-24 | 2002-10-24 | Method and device for generating test bench, and computer program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004145670A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011253564A (en) * | 2011-09-05 | 2011-12-15 | Nec Corp | Operation synthesis device and method having test bench generation function, and program |
US8386973B2 (en) | 2007-01-30 | 2013-02-26 | Nec Corporation | Behavioral synthesis apparatus, method, and program having test bench generation function |
WO2023014041A1 (en) * | 2021-08-06 | 2023-02-09 | 주식회사 에너자이 | Test bench generating method, test bench generating device, and test bench generating system |
-
2002
- 2002-10-24 JP JP2002310313A patent/JP2004145670A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386973B2 (en) | 2007-01-30 | 2013-02-26 | Nec Corporation | Behavioral synthesis apparatus, method, and program having test bench generation function |
JP2011253564A (en) * | 2011-09-05 | 2011-12-15 | Nec Corp | Operation synthesis device and method having test bench generation function, and program |
WO2023014041A1 (en) * | 2021-08-06 | 2023-02-09 | 주식회사 에너자이 | Test bench generating method, test bench generating device, and test bench generating system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6587995B1 (en) | Enhanced programmable core model with integrated graphical debugging functionality | |
US7213216B2 (en) | Method and system for debugging using replicated logic and trigger logic | |
US8180620B2 (en) | Apparatus and method for performing hardware and software co-verification testing | |
US7472361B2 (en) | System and method for generating a plurality of models at different levels of abstraction from a single master model | |
EP1546947B1 (en) | Method and system for debugging using replicated logic | |
EP1913410B1 (en) | Method and system for debug and test using replicated logic | |
KR20080055913A (en) | Development of assertions for integrated circuit design simulation | |
US7266791B2 (en) | High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium | |
JP5034916B2 (en) | Performance evaluation model generation method, system performance evaluation method, and performance evaluation model generation apparatus | |
US10816600B1 (en) | Protocol analysis and visualization during simulation | |
JP2004145670A (en) | Method and device for generating test bench, and computer program | |
JP5545054B2 (en) | Debug circuit and debug system | |
JP5034867B2 (en) | Software verification support program, recording medium recording the program, software verification support apparatus, and software verification support method | |
JP5799589B2 (en) | Verification method and verification program | |
WO2010095635A1 (en) | Circuit design assistance device, circuit design assistance method, and computer readable recording medium | |
JPH11149489A (en) | Simulation system | |
Martin | IP reuse and integration in MPSoC: highly configurable processors | |
JP4400358B2 (en) | Logic simulation method, logic simulation apparatus, and logic simulation program | |
JPS63188268A (en) | Design supporting device | |
JP2007328775A (en) | Simulation device, simulation method and simulation program | |
US20130014074A1 (en) | Incremental Modification of Instrumentation Logic | |
JP2004164035A (en) | Device and method for designing integrated circuit | |
JP2004070529A (en) | Method and system for simulating logic circuit |