JP2004145670A - Method and device for generating test bench, and computer program - Google Patents

Method and device for generating test bench, and computer program Download PDF

Info

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
Application number
JP2002310313A
Other languages
Japanese (ja)
Inventor
Kiyoaki Hoshino
星野 聖彰
Toshiro Kutsuwa
久津輪 敏郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Osaka Industrial Promotion Organization
Original Assignee
Osaka Industrial Promotion Organization
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Osaka Industrial Promotion Organization filed Critical Osaka Industrial Promotion Organization
Priority to JP2002310313A priority Critical patent/JP2004145670A/en
Publication of JP2004145670A publication Critical patent/JP2004145670A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318314Tools, 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

<P>PROBLEM TO BE SOLVED: To provide a method and device for generating a test bench, and a computer program, enabling simplifying description for generating the test bench. <P>SOLUTION: A test bench generation easing assembly language (ALET: Assembly Language to Ease Testbench) enabling specifying time for execution of a test instruction for verifying a circuit designed using a hardware description language or a system description language at a relative time from execution of one or a plurality of program instructions to be executed on the circuit for executing simulation of the circuit is developed by describing the test instruction on a program file on which the program instructions are described in an assembly language with being related to the predetermined program instructions. Part of the ALET language is extracted from the program file, and a test bench for executing the test instruction at the predetermined time starting from execution of the related program instructions is automatically generated. <P>COPYRIGHT: (C)2004,JPO

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 program file 141 in which a program instruction to be executed in a circuit to be simulated is described in an assembly language and a signal to be input to the circuit for verifying the operation of the circuit are defined as information. The input signal file 142 is prepared. In the program file 141, a test instruction for verifying a value of predetermined information processed in a circuit for generating a test bench is described in an ALET language in association with an assembly language program instruction. The computer program 20 of the present invention for generating a test bench includes an assembler program and an ALET compiler program. The assembler generates, from the program file 141, a machine language file 143 obtained by translating a program instruction described in an assembly language into a machine language, and an intermediate file 144 extracted from a description part of the ALET language. The ALET compiler generates a test bench 145 from the generated machine language file 143, the generated intermediate file 144, and the input signal file 142. In the simulation method according to the present invention, a circuit description file that describes an operation and a logical configuration of a circuit using HDL or a system description language, a machine language file 143, and a generated test bench 145 are used. Is executed by a simulator for executing a program instruction described in a machine language file on the circuit described in (1) to verify a value described in a test bench, and outputs a simulation result. Note that a conventionally existing simulator can be used as the simulator.
[0017]
FIG. 2 is a block diagram showing a configuration of the test bench generation device of the present invention. The test bench generation device 1 is configured using a computer, and is a calculation unit according to the present invention, which performs a calculation, and a storage unit according to the present invention, which stores temporary information generated by the calculation. , An external storage device 13 such as a CD-ROM drive, and an internal storage device 14 such as a hard disk. The computer program 20 according to the present invention is externally stored from a recording medium 2 such as a CD-ROM. The computer program 20 is read by the device 13, the read computer program 20 is stored in the internal storage device 14, the computer program 20 is loaded into the RAM 12, and processing necessary for the test bench generation device 1 is executed based on the loaded computer program 20. The test bench generation device 1 further includes an input device 15 such as a keyboard or a mouse, and an output device 16 such as a liquid crystal display or a CRT display, and receives an operation from an operator such as data input. Has become.
[0018]
Further, the test bench generation device 1 includes a communication interface 17, downloads the computer program 20 according to the present invention from the server device 3 connected to the communication interface 17, and executes the processing by the CPU 11. Is also good.
[0019]
The internal storage device 14 is a program that is input from the input device 15 by an operation of the operator, read from an external storage medium in the external storage device 13, or downloaded from the external server device 3 via the communication interface 17. A file 141 and an input signal file 142 are stored. Further, the internal storage device 14 stores a machine language file 143 and an intermediate file 144 generated during the processing of the present invention, and stores a test bench 145 generated by the present invention.
[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 operand 1 stored in ROM.
OPR2 ... Information of operand 2 stored in ROM.
ADR: ROM address. Indicates the address where INST is located in the machine language file 3.
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 processor 41, which is a circuit described in the circuit description file, is named nr8d, and includes a CPU 42 named ncpu, a RAM 43, and a ROM 44. The processor 41 is given an instance name of U0, and the ncpu 42 is given an instance name of U1. The instance name is a label name assigned to make a plurality of identical components (modules) available in HDL or a system description language. The reset signal rst51 and the clock signal clk52 are input to the ncpu42. When the reset signal 51 is input, the ncpu 42 is reset. A data bus 53 connected to each other is provided between the ncpu 42 and the RAM 43 and the ROM 44, and exchanges data with each other via the data bus 53. Further, an address bus 54 is provided in parallel with the data bus 53, and the ncpu 42 designates, via the address bus 54, an address indicating which part of the RAM 43 and the ROM 44 to read data.
[0027]
The ncpu 42 includes an instruction register irh # reg 45, a controller 46, a program counter proccnt 47, an arithmetic and logic unit ALU 48, and a general-purpose register 49. The controller 46 internally includes a cycle state register cstate 461, and the general-purpose register 49 internally includes a W register W # reg 491, a BL register BL # reg 492, and a BH register BH # reg 493. The instruction register irh # reg 45 fetches an instruction from the data bus 53 and stores it. The controller 46 interprets the instruction stored in the instruction register irh # reg 45 and controls the entire ncpu 42. The program counter progcnt 47 is instructed by the controller 46 how much to advance the counter, and outputs the result to the address bus 54. The arithmetic and logic unit ALU 48 fetches data from the data bus 53 and the general-purpose register 49, calculates the fetched data, and outputs the calculated result to the data bus 53 or the general-purpose register 49.
[0028]
When a register in the ncpu 42 is specified, it is necessary to specify a hierarchical structure. Therefore, in the simulation environment, the W register W # reg 491 stores U0. U1. W # reg and BL register BL # reg 492 store U0. U1. BL # reg, BH register BH # reg 493 stores U0. U1. BH # reg, the program counter progcnt47 is U0. U1. progcnt, cycle state register cstate 461 is U0. U1. cstate, the instruction register irh # reg45 is U0. U1. irh # reg and the reset signal rst51 are U0. U1. rst, clock signal clk52 is U0. U1. It is expressed as clk.
[0029]
Next, a description example of the ALET language is shown. FIG. 4 is a diagram illustrating an example of the program file 141 described in the assembly language and the ALET language. The left half in the figure is the part of the assembly language, and the part described below the right half ";¥" is the part of the ALET language. Lines 401 to 406 are ALET language definition statements, and line 401 is U0. U1. It is defined that proccnt is omitted and written as cpupc. U1. cstate is cpucst, and line 403 is U0. U1. clk is cpulk, line 404 is U0.clk. U1. irh # reg is cpuirh, and line 405 is U0. U1. BL # reg is cpubl, line 406 is U0. U1. It is defined that W # reg is abbreviated as cpuw and written. Line 407 is a comment sentence in assembly language.
[0030]
Lines 408 to 410 are mandatory description items of the ALET language. The line 408 indicates that the program counter of the processor 41 to be simulated is cpupc, that is, U0. U1. progcnt47. Line 409 specifies that the asrt sentence after line 412 is executed at the timing of negative (cpulk). negative (cpulk) is cpulk, that is, U0. U1. This means that clk operates when a falling edge is detected. The line 410 indicates that cpucst == 14′h0001 holds, that is, U0. U1. Only when cstate becomes equal to a 14-bit numerical value of 0001 in hexadecimal is meant to execute the asrt statement in the line 412 and thereafter. Line 411 is a description in assembly language, and sets a label of MAIN. Labels are used when jumping in assembly language.
[0031]
"MOV 10h, W" in the part before ";$" in the line 412 is an assembly language program instruction, which means that a constant of 10 in hexadecimal, that is, 16 in decimal is transferred to the W register W # reg 491. ing. The part of “asrt (cpupc == ADR);” after “; ¥” in the line 412 is an asrt statement in the ALET language. When the MOV instruction in the assembly language on the same line is executed, cpupc, that is, U0. U1. This means a test instruction for performing a test (assert) as to whether the proccnt 47 is the same as the address ADR of the ROM 44, and displaying an error if incorrect. A line 413 indicates a test instruction in which “asrt (cpucst == 14′h0002);” is performed one clock after the execution of the ALET language test instruction in the line 412. That is, U0. U1. Test whether cstate 461 is equal to a 14-bit number that is 0002 in hexadecimal. Further, the row 414 has a value of cpuirh, that is, U0. U1. Whether or not irh # reg 45 is equal to the instruction INST (here, indicating the MOV instruction in row 412, and transferring from a constant (10h = 10 in hexadecimal) to the W register 491, INST is 32 in hexadecimal) Means a test instruction to test. Further, the line 415 stores the cpucst, that is, U0. U1. This means a test instruction for testing whether or not cstate 461 is equal to a 14-bit numerical value of 0004 in hexadecimal. Row 416 contains cpucst, ie, U0... 1 clock after the execution of the test instruction in row 415. U1. This means a test instruction for testing whether or not cstate 461 is equal to a 14-bit numerical value of 0008 in hexadecimal. Row 417 contains cpucst or U0 .1 clock one clock after execution of the test instruction in row 416. U1. This means a test instruction for testing whether or not cstate 461 is equal to a 14-bit numerical value of 0001 in hexadecimal. Further, row 418 contains cpuw, ie, U0. U1. A test instruction for testing whether W # reg 491 is equal to the first operand OPR1 (here, the first operand of the MOV instruction in row 412, which is a constant 10h, that is, 10 in hexadecimal) is meant.
[0032]
“MOV W, BL” in line 419 before “; ¥” is a program instruction in assembly language, which means that the data of the W register 491 is transferred to the BL register 492 in hexadecimal. The part of “asrt (cpupc == ADR);” after “; ¥” in the line 419 is an asrt statement in the ALET language. When the MOV instruction in the assembly language on the same line is executed, cpupc, that is, U0. U1. This means a test instruction for testing whether or not the proccnt 47 is the same as the address ADR of the ROM 44. Row 420 contains cpubl or U0. 3 clocks after the execution of the test instruction in row 419. U1. BL # reg 492 is cpuw, that is, U0. U1. This means a test instruction for testing whether or not the value is equal to W # reg491.
[0033]
Lines 421 to 425 describe an assembly language program instruction.
Line 421 indicates a program instruction for transferring a hexadecimal constant of 02 to the W register 491. The line 422 indicates a program instruction for transferring the value of the W register 491 to the BH register 493. Line 423 represents a program instruction for transferring a constant of 0AA in hexadecimal (that is, 170 in decimal) to the W register 491. The line 424 indicates a program command for transferring the value of the W register 491 to the memory designated by the B register, that is, the BL register 492 and the BH register 493, that is, the ROM 43 and the RAM 44. Line 425 means do nothing.
[0034]
Next, a description example of the input signal is shown. FIG. 5 is a diagram showing an example of the contents of the input signal file 142. The input signal file 142 is described in Verilog-HDL language. It may be described in another HDL or system description language. The description 501 in the figure specifies how a circuit to be simulated is related to the test bench 145, and relates the processor 41 of nr8d to the test bench 145 of nr8d # test.
[0035]
The description 502 sets an input signal to be input to the processor nr8d41, which is a circuit to be simulated. Only the operation of the clock t # clk and the reset t # rst and the initial values of other input signals are described, whereby the location of the circuit portion to be verified or the input each time the time changes. There is no need to rewrite signal information.
[0036]
The description 503 indicates that signal or register information is to be written to a file in order to output a signal waveform. If it is not necessary to output a signal waveform, this description is unnecessary. Description 504 specifies the end time. Here, it is specified that the simulation is ended after 1,000,000 ns.
[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 bench generation device 1 loads the computer program 20 into the RAM 12, and performs assembler processing according to the loaded computer program 20 (S1). FIG. 7 is a flowchart showing the procedure of the assembler process in step S1. The CPU 11 reads the program file 141 stored in the internal storage device 14 according to the computer program 20 loaded in the RAM 12 and stores the read program file 141 in the RAM 12 (S11). Translated into words, and a machine language file 143 is generated (S12). Next, the CPU 11 extracts, from the machine language file 143, an address of a memory stored when each of the program instructions translated into the machine language is executed according to the computer program 20 loaded into the RAM 12 (S13). The program file 141 is extracted from the program file 143 by associating the parts described in the ALET language with the addresses extracted for the program instructions associated with the respective parts (S14), and the extracted ALET language parts are written. An intermediate file 144 is generated (S15), and the process returns to main.
[0038]
FIG. 8 is a diagram showing an example of the contents of the generated intermediate file 144, which is the contents of the intermediate file 144 generated from the program file 143 shown in FIG.
Each description of the ALET language described in the program file 143 is extracted, and the number in the second column shown in the drawing is a number indicating from which line of the program file 143 the ALET language description of each line was extracted. It is. The number in the first column is an address associated with each row, and is a memory address stored when an assembly language program instruction associated with the ALET language description of each row is executed.
[0039]
Next, the CPU 11 stores the machine language file 143 and the intermediate file 144 generated by the assembler processing in the internal storage device 14 according to the computer program 20 loaded into the RAM 12 (S2), and generates the test bench 145 from the intermediate file 144. The processing of the ALET compiler is performed (S3), the generated test bench 145 is stored in the internal storage device 14 (S4), and the processing is terminated.
[0040]
9 to 12 are flowcharts showing the procedure of the processing of the ALET compiler in step S3. The CPU 11 reads the machine language file 143, the intermediate file 144, and the input signal file 142 from the internal storage device 14 into the RAM 12 according to the computer program 20 loaded into the RAM 12 (S301), and writes the necessary information into the file on the test bench 145. Is generated (S302), and the contents of the input signal file 142 are written to the generated test bench 145 (S303). FIG. 13 is a diagram illustrating an example of the content of the test bench 145 to be generated. The test bench 145 is described in Verilog-HDL language. Note that it may be described in another HDL or system description language. The content of the input signal file 142 is written in the description 1301 in the figure, and the information of the input signal is defined in the test bench. The description 1302 defines a file pointer of a file to which a result of the simulation is written. The description 1303 defines a register that counts the number of clocks serving as times in the simulation. Description 1304 defines an array that stores the times at which the program instructions stored in memory were called in the simulation. The description 1305 instructs the file pointer to specifically open the file.
[0041]
Next, the CPU 11 acquires one line of data from the intermediate file 144 stored in the RAM 12 according to the computer program 20 loaded in the RAM 12, stores the data in a predetermined character array (S304), and determines whether the data has been acquired. (S305), and if the data cannot be obtained (S305: NO), it is determined that the processing has been completed up to the last line of the intermediate file 144, the end portion of the file is written to the test bench 145 (S306), and ALET is executed. Terminates the processing of the compiler and returns the processing to the main.
[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 computer program 20 loaded in the RAM 12 (step S305). S307). Next, the CPU 11 determines, according to the computer program 20 loaded into the RAM 12, whether or not the head description of the acquired line in the ALET language is a description of “$ def” (S308), and describes the description of “$ def”. (S308: YES), the information of the definition of the character string is stored in the structure array def [] (S309), the process returns to step S304, and the description of the next line of the intermediate file 144 is obtained. I do. If the description is not “$ def” (S308: NO), the CPU 11 next sets the first description of the acquired line in the ALET language to “$ pc” according to the computer program 20 loaded into the RAM 12. It is determined whether there is any data (S310). If the description is "$ pc" (S310: YES), the information on the definition of the program counter is stored in a predetermined character string pcstr (S311), and the process is performed. Returning to S304, the description of the next one line of the intermediate file 144 is acquired.
[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 computer program 20 loaded into the RAM 12. Is determined (S312). If the description is “$” (S312: YES), the CPU 11 next determines whether the description “$” is the first description according to the computer program 20 loaded into the RAM 12. (S313) If the description of “$” is not the first description but a plurality of descriptions (S313: NO), an error indicating that the sensitivity list is defined redundantly is output (S314). ), Forcibly terminate the process If the description of “$” is the first description (S313: YES), the CPU 11 then stores the definition in the structure array def [] according to the computer program 20 loaded in the RAM 12. It is determined whether or not the character string is included in the acquired line (S315). If the character string in which the definition is stored is not included (S315: NO), the process proceeds to step S317. If a character string whose definition is stored is included (S315: YES), the character string is replaced according to the definition (S316), a sensitivity list is written to the test bench 145 (S317), and the sensitivity list is written. Is written into the test bench 145 (S318), and the process returns to step S304 to write the description of the intermediate file 144. Get the description of the line. A description 1306 in FIG. 13 is for writing a sensitivity list, and defines a reference clock so that the fall of the clock signal is used as a time reference in the simulation. The description 1307 indicates that a register for counting the number of clocks serving as times in the simulation is incremented.
[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 computer program 20 loaded into the RAM 12. Is determined (S319). If the description is “$” (S319: YES), the CPU 11 next determines whether the description “$” is the first description in accordance with the computer program 20 loaded into the RAM 12. It is determined (S320), and when the description of "@" is not the first but a plurality of descriptions are made (S320: NO), an error indicating that the processing execution condition is defined redundantly is output. (S321), and the process is forcibly terminated. When the description of “$” is the first description (S320: YES), the CPU 11 next stores the information of the definition of “$ pc” according to the computer program 20 loaded in the RAM 12 in advance. It is determined whether or not it is stored in the character string pcstr (S322). If the information of the definition of “@pc” is not stored (S322: NO), an error indicating that the program counter is not set Is output (S323), and the process is forcibly terminated. If the information of the definition of “@pc” has been stored (S322: YES), the CPU 11 next executes the character whose definition is stored in the structure array def [] according to the computer program 20 loaded into the RAM 12. It is determined whether or not the column is included in the acquired row (S324). If the column does not include a character string whose definition is stored (S324: NO), the process proceeds to step S326. If a character string whose definition is stored is included (S324: YES), the character string is replaced according to the definition (S325), and a processing execution condition is written to the test bench 145 (S326). When the condition is satisfied, the time at which the program instruction indicated by the program counter is called is associated with the value of the program counter at that time. Kino write a description to be stored clock values to the test bench 145 (S327), the process returns to step S304, and acquires the description of the next line of the intermediate file 144. A description 1308 in FIG. 13 sets processing execution conditions. A description 1309 indicates that the address indicated by the program counter at that time is stored in an array for storing the time at which the program instruction stored in the memory is called in the simulation. It indicates that the clock value at that time is substituted as the called time.
[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 computer program 20 loaded into the RAM 12. It is acquired (S328), and it is determined whether or not the leading description of the acquired part is the description of "#" (S329). If the description is “#” (S329: YES), the CPU 11 then determines whether “$ pc”, “$”, and “$” have already been set according to the computer program 20 loaded into the RAM 12. It is determined (S330) whether it is not set, and if it is not set (S330: NO), an error indicating that any of "$ pc", "$", and "$" is not set is output ( S331), the process is forcibly terminated. If “$ pc”, “$”, and “$” have already been set in step S330 (S330: YES), the delay of the delay is associated with the address associated with the acquired row. The number of delayed clocks is added by the number of clocks indicated by the description and stored (S332), and the process proceeds to step S352.
[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 computer program 20 loaded into the RAM 12. It is determined whether or not the description is an asrt statement (S333). If the description is an asrt statement (S333: YES), it is determined whether “$ pc”, “$”, and “$” have already been set. It is determined (S334) whether it is not set or not (S334: NO), the process proceeds to step S331, an error is output, and the process is forcibly terminated. If “$ pc”, “$”, and “$” have already been set in step S334 (S334: YES), the CPU 11 next executes the asrt statement according to the computer program 20 loaded into the RAM 12. The conditional expression as an argument is obtained (S335), and it is determined whether or not the character string whose definition is stored in the structure array def [] is included in the obtained part (S336). If the stored character string is not included (S336: NO), the process proceeds to step S338, and if the stored character string is included (S336: YES), the character string is used. Is replaced according to the definition (S337), and the clock is obtained by adding the stored delay clock to the value of the clock associated with the address associated with the acquired row. At the time of the check, the description of the time specification to be verified is written to the test bench 145 (S338), and the description to compare the predetermined value with the predicted value according to the conditional expression is written to the test bench 145 (S339). , The process proceeds to step S352. The description 1310 in FIG. 13 indicates that the verification process is performed when a predetermined clock is added from the time when the predetermined address is called, and the program instruction associated with the row 412 shown in FIG. An instruction to perform verification when a time obtained by adding a delay clock 0 to a time when an address 0032 which is a memory address stored in the simulation is called is shown. The description 1311 indicates that a predetermined value is compared with a predicted value according to a conditional expression, and an error should be output if the predetermined value is different from the predicted value. The portion of the description 1312 corresponding to each of the plurality of test instructions shown in FIG. 4 includes, like the portion of the description 1311, an instruction to compare a predetermined value with a predicted value at a predetermined time. Is described. In FIG. 13, a specific description of the description 1312 is omitted.
[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 computer program 20 loaded into the RAM 12. It is determined whether or not the description is a description (S340). If the description is a description of a dump statement (S340: YES), a signal name which is an argument of the dump statement is obtained (S341), and is stored in the structure array def []. It is determined whether or not the character string whose definition is stored is included in the acquired part (S342). If the character string whose definition is stored is not included (S342: NO), The process proceeds to step S344, and if a character string whose definition is stored is included (S342: YES), the character string is replaced according to the definition (S343). Is a clock obtained by adding the stored delay clock to the value of the clock associated with the address associated with the acquired row, and a description of the time specification to be processed is sent to the test bench 145. Write (S344), a description to output information of the signal of the acquired signal name is written in the test bench 145 (S345), and the process proceeds to step S352.
[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 computer program 20 loaded into the RAM 12. It is determined whether the description is a description (S346). If the description is not a disp statement (S346: NO), the process proceeds to step S352. If it is a description of a disp statement (S346: YES), the CPU 11 next acquires a character string as an argument of the disp statement according to the computer program 20 loaded into the RAM 12 (S347), and obtains a structure array def [ It is determined whether or not the character string whose definition is stored is included in the acquired part (S348). If the character string whose definition is stored is not included (S348: NO) ), The process proceeds to step S350. If a character string whose definition is stored is included (S348: YES), the character string is replaced in accordance with the definition (S349), and the time is set to the acquired line. In the case of a clock obtained by adding the stored delay clock to the value of the clock associated with the address associated with Write to bench 145 (S350), writes a description to be output the acquired character string to the test bench 145 (S351), determines whether there is obtained and that the line to the remaining description (S352). If there is a remaining description in the acquired line (S352: YES), the process returns to step S328 to acquire the description from the acquired line to the next ";" If there is no remaining description (S352: NO), the process returns to step S304 to acquire the description of the next one line of the intermediate file 144.
[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 test bench 145 including a description to execute a test instruction associated with the program instruction is generated. 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 described by time.
[0050]
The test bench 145 generated according to the present invention is read by a computer loaded with a simulator program, and the computer further reads a machine language file 143 and a circuit description file, and is written in the circuit description file according to the simulator program. A simulation for executing the program instruction described in the machine language file 143 on the circuit and executing the test instruction described in the test bench 145 is performed.
[0051]
FIG. 14 is a flowchart showing the contents of the processing described in the test bench 145 shown in FIG. The computer that performs the simulation increments the clock, which is a unit of time in the simulation, according to the test bench 145 (S51), determines whether or not the processing execution condition is satisfied (S52). If the processing execution condition is not satisfied, (S52: NO), the process proceeds to step S61. If the process execution condition is satisfied (S52: YES), the program counter of the circuit described in the circuit description file is monitored (S53), and the address indicated by the program counter is set. The current clock value is stored as the associated time, that is, the time when the program instruction at the address is called (S54). The computer then refers to the time associated with the corresponding address, i.e., the time at which the program instruction associated with the test instruction was invoked, and the current clock value adds a predetermined number of clocks to the time. It is determined whether or not the value is the same (S61). If the value is the same (S61: YES), the test instruction is executed (S62). If the clock value is different (S61: NO). , The process proceeds to the next step of step S62. Next, the computer performs the same processing as in step S61 and step S62 for each of the described test instructions, and then determines whether or not the condition for terminating the simulation is satisfied (S70). If the termination condition is not satisfied (S70: NO), the process returns to step S51, and the clock is incremented. If the termination condition is satisfied (S70: YES), the process ends. .
[0052]
FIG. 15 is a schematic diagram showing a waveform of a process of performing a simulation on the processor 41 using the test bench 145. Assume that the MOV instruction of the assembly language program instruction described in row 412 of FIG. The ADR of the MOV instruction at this time is 32 in decimal. In this case, as indicated by reference numeral 1512 in the figure, when the program counter indicates 32 in decimal, the asrt statement in the ALET language in line 412 in FIG. 4 is executed. The asrt statement is cpupc, that is, U0. U1. A test is performed to determine whether progcnt47 is equal to ADR, in which case cpupc, ie, U0. U1. The test passes because both progcnt 47 and ADR point to 32 in decimal.
[0053]
Next, the portion 1513 shown in the figure is tested according to the description of the row 413 in FIG. Further, according to the description of the row 414 in FIG. 4, the portion 1514 shown in the figure is tested. At this time, the MOV instruction is an instruction for transferring a constant to the W register, and the machine language is 32 in hexadecimal. Therefore, INST is replaced by hexadecimal number 32, and the test passes in this case as well. Similarly, the description of the row 1515 shown in FIG. 4 is used to test the portion 1515 shown in the figure, and the description of the row 416 shown in FIG. According to the description in the row 417, the portion 1517 shown in the figure is tested. In each case the test passes. According to the description in the row 418 of FIG. 4, the portion 1518 shown in the figure is tested, and the test also passes because OPR1 has the same meaning as the first operand 10h (10 hexadecimal).
[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 line 419 in FIG. At this time, the ADR is 34 in decimal. Here, since the time series of the ALET language starts from each instruction of the assembly language, when the program counter of the processor 41 points to 34 in decimal and satisfies the condition designated by “@”, At the time of 1501 shown in FIG. 15, the test instruction of the ALET language is executed, and the portion 1519 shown in FIG. 15 is tested. In line 419 of FIG. 4, this test passes because both are 34 in decimal because the program counter of processor 41 specifies to test for ADR pointing to the address of the ROM. . Similarly, according to the description of the row 420 in FIG. 4, the portion 1520 shown in FIG. 15 is tested, and in this case, the test also passes.
[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.
JP2002310313A 2002-10-24 2002-10-24 Method and device for generating test bench, and computer program Pending JP2004145670A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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