JP5287955B2 - Behavioral synthesis apparatus, method, and program having test bench generation function - Google Patents

Behavioral synthesis apparatus, method, and program having test bench generation function Download PDF

Info

Publication number
JP5287955B2
JP5287955B2 JP2011192362A JP2011192362A JP5287955B2 JP 5287955 B2 JP5287955 B2 JP 5287955B2 JP 2011192362 A JP2011192362 A JP 2011192362A JP 2011192362 A JP2011192362 A JP 2011192362A JP 5287955 B2 JP5287955 B2 JP 5287955B2
Authority
JP
Japan
Prior art keywords
input
output
signal
rtl
test bench
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.)
Active
Application number
JP2011192362A
Other languages
Japanese (ja)
Other versions
JP2011253564A (en
Inventor
崇 竹中
輝 向山
一敏 若林
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2011192362A priority Critical patent/JP5287955B2/en
Publication of JP2011253564A publication Critical patent/JP2011253564A/en
Application granted granted Critical
Publication of JP5287955B2 publication Critical patent/JP5287955B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、半導体集積回路の動作を記述した動作レベル回路記述から、具体的な機能(回路)を記述したRTL(Register Transfer Level)回路記述を生成する動作合成装置、方法及びプログラムに関し、特に、生成されたRTL回路を検証するためのテストベンチを出力できる動作合成装置、動作合成方法及び動作合成プログラムに関する。   The present invention relates to a behavioral synthesis apparatus, method, and program for generating an RTL (Register Transfer Level) circuit description that describes a specific function (circuit) from an operation level circuit description that describes the operation of a semiconductor integrated circuit. The present invention relates to a behavioral synthesis apparatus, a behavioral synthesis method, and a behavioral synthesis program that can output a test bench for verifying a generated RTL circuit.

近年、システムLSIの設計では、抽象度の高いレベルで設計し、動作合成によりRTLを生成する設計手法が採用され始めている。   In recent years, in the design of system LSIs, a design method of designing at a high level of abstraction and generating RTL by behavioral synthesis has begun to be adopted.

この種の設計手法では、まず、システムLSIの所望の動作を実現する動作記述を設計する。   In this type of design method, first, an operation description for realizing a desired operation of the system LSI is designed.

次に、動作シミュレーションにより、設計した動作記述が確かに回路の所望の動作を達成しているか、すなわち、設計が正しいかを確認する。   Next, it is confirmed by operation simulation whether the designed operation description surely achieves the desired operation of the circuit, that is, whether the design is correct.

そして、設計が正しければ、動作合成を用いて動作記述をRTLに変換する。   If the design is correct, the behavioral description is converted into RTL using behavioral synthesis.

上記設計手法によりLSIの設計を行うとき、動作シミュレーションで使用したテストベクタを、動作合成後のRTLのシミュレーションでも使用したいという要求がある。この要求は、例えば以下の第一、第二を目的としている。   When designing an LSI using the above design method, there is a demand to use the test vector used in the operation simulation in the RTL simulation after the behavioral synthesis. This request has the following first and second purposes, for example.

第一に、動作合成前の動作記述と動作合成後のRTLとが同じ機能を実現しているかを確かめるためである。   First, it is to confirm whether the behavior description before behavioral synthesis and the RTL after behavioral synthesis realize the same function.

動作記述とRTLが同じ機能を実現していない場合、動作シミュレーションで動作記述が回路の所望の動作を達成していることを確認しても意味を成さない。なぜなら、結果として、所望の動作を実現する回路を設計できていないことになるためである。   If the behavioral description and the RTL do not realize the same function, it does not make sense to confirm that the behavioral description achieves the desired behavior of the circuit by behavioral simulation. This is because a circuit that realizes a desired operation cannot be designed as a result.

従来、動作記述とRTLが同じ機能を実現しているか否かの確認は、動作シミュレーションとRTLシミュレーションとで同一テストベクタを使用し、それぞれのシミュレーション結果が同じであることを比較することで行われている。   Conventionally, whether the behavioral description and the RTL have the same function is confirmed by using the same test vector for the behavioral simulation and the RTL simulation, and comparing that the simulation results are the same. ing.

第二に、動作合成後の回路の性能を確かめるためである。   Second, it is for confirming the performance of the circuit after behavioral synthesis.

一般に、動作記述にはタイミングの情報が含まれていないため、ある機能を達成するためにどのくらいの時間を必要とするかといった、回路性能を確かめることができない。   In general, since the behavioral description does not include timing information, it is not possible to confirm the circuit performance such as how much time is required to achieve a certain function.

対して、RTLシミュレーションを行うことで、ある機能を達成するために必要な時間、すなわち、回路性能を求めることができる。   On the other hand, by performing RTL simulation, the time required to achieve a certain function, that is, the circuit performance can be obtained.

そこで、従来手法において、設計した動作記述が所望の性能を達成できるか否かは、動作シミュレーションとRTLシミュレーションとで同じテストベクタを使用し、RTLシミュレーションで計測される回路性能をもって判断している。   Therefore, in the conventional method, whether or not the designed behavior description can achieve the desired performance is determined based on the circuit performance measured by the RTL simulation using the same test vector in the behavior simulation and the RTL simulation.

しかしながら、動作シミュレーションで使用したテストベクタを、そのままでは、RTLシミュレーションには使用することはできない。   However, the test vector used in the operation simulation cannot be used in the RTL simulation as it is.

その理由は、入力印加タイミング、出力観測タイミングの問題のためである。   The reason is because of problems of input application timing and output observation timing.

一般に、動作記述には、時間の概念(クロック)がない。もしくは、時間の概念があっても、RTLの時間とはその粒度が異なっている。このため、動作シミュレーションで使用したテストベクタの入力データ系列を、RTLシミュレーションでクロック毎に印加しても、動作シミュレーションと同じ結果を得ることができない。同様に、RTLシミュレーションでクロック毎に出力を観測しても、動作シミュレーションと同じ結果を得ることはできない。   Generally, there is no concept of time (clock) in the behavioral description. Or even if there is a concept of time, the granularity is different from the time of RTL. Therefore, even if the input data series of the test vector used in the operation simulation is applied for each clock in the RTL simulation, the same result as in the operation simulation cannot be obtained. Similarly, even if the output is observed for each clock in the RTL simulation, the same result as in the operation simulation cannot be obtained.

特許文献1(特開2005−78402号公報)には、上記問題点の解決を図るための動作合成システムが開示されている。特許文献1に記載された動作合成システムは、主に、前述した第一の問題(動作シミュレーションで使用したテストベクタの入力データ系列を、RTLシミュレーションでクロック毎に印加しても、動作シミュレーションと同じ結果を得ることができないという問題)を解決することを意図したものである。この従来の動作合成システムは、入力系列をファイルから読み込むファイル読み込み関数、出力系列をファイルへ書き出すファイル書き込み関数が、動作記述に記載されていることを前提とする。ファイル読み込み関数、及び、ファイル書き込み関数をファイル関数と総称する。この従来の動作合成システムは、構文解析手段と、コントロールデータフローグラフ作成手段と、スケジューリング・バインディング手段と、テストベンチ生成手段と、RTL生成手段とから構成されている。このような構成を有する従来の動作合成システムは、次のように動作する。   Japanese Patent Application Laid-Open No. 2005-78402 discloses a behavioral synthesis system for solving the above problems. The behavioral synthesis system described in Patent Document 1 is mainly the same as the behavioral simulation even if the input data series of the test vector used in the behavioral simulation is applied for each clock in the RTL simulation. It is intended to solve the problem that results cannot be obtained. This conventional behavioral synthesis system is based on the premise that a file reading function for reading an input sequence from a file and a file writing function for writing an output sequence to a file are described in the behavior description. The file reading function and the file writing function are collectively referred to as a file function. This conventional behavioral synthesis system is composed of syntax analysis means, control data flow graph creation means, scheduling and binding means, test bench generation means, and RTL generation means. The conventional behavioral synthesis system having such a configuration operates as follows.

すなわち、構文解析手段、コントロールデータフローグラフ作成手段において動作記述中のファイル関数を残したままにしておく。   That is, the file function in the operation description is left in the syntax analysis unit and the control data flow graph creation unit.

作成したコントロールデータフローグラフを元に、リソースバインディングとスケジューリングを行ってRTLを作成する。   Based on the created control data flow graph, RTL is created by performing resource binding and scheduling.

作成したRTL上において、最初の入力端子からのデータ、変数の入力を切り替えるマルチプレクサのセレクト信号、又は、出力端子に出力されるデータを切り替えるマルチプレクサのセレクト信号を利用して、ファイル関数に関わるファイル入力、又はファイル出力の条件を表現する。   On the created RTL, file input related to the file function using the select signal of the multiplexer that switches the data from the first input terminal, the input of the variable, or the select signal of the multiplexer that switches the data output to the output terminal Or represents the conditions for file output.

しかしながら、特許文献1に記載の動作合成システムには、動作記述中にファイル関数があることが前提条件であり、この前提条件を満たす動作記述にしか適用できないという問題がある。   However, the behavioral synthesis system described in Patent Document 1 has a problem that there is a file function in the behavioral description, and it can be applied only to the behavioral description that satisfies the prerequisite.

また、等価性検証方法の一例が、特許文献2(特開2004−145712号公報)に開示されている。特許文献2に記載された等価検証方法は、主に、前述の第一の問題を解決することを意図したものである。この等価検証方法は、RTLでのシミュレーション結果での入力信号確定時から出力信号確定時までの遅れサイクル数に基づいて比較タイミングを求め、比較タイミングにおけるRTLのシミュレーション結果の出力信号の値と、動作シミュレーションの出力信号とを比較するものであるが、該手法が適用可能な回路の種類が限られている、という問題がある。   An example of the equivalence checking method is disclosed in Patent Document 2 (Japanese Patent Laid-Open No. 2004-145712). The equivalence verification method described in Patent Document 2 is mainly intended to solve the first problem described above. In this equivalent verification method, the comparison timing is obtained based on the number of delay cycles from the time when the input signal is determined to the time when the output signal is determined in the RTL simulation result, the value of the output signal of the RTL simulation result at the comparison timing, and the operation Compared with the simulation output signal, there is a problem that the types of circuits to which the method can be applied are limited.

これは、入力信号毎に、入力値印加タイミングが異なる回路についての考慮がないためである。   This is because there is no consideration for circuits having different input value application timings for each input signal.

さらには、入力データによって出力信号が確定するまでのサイクル数が変化する場合など、「入力信号確定時から出力信号確定時までの遅れサイクル数」に基づいて比較タイミングを求めることができない場合についての考慮がないためである。   Furthermore, when the number of cycles until the output signal is determined changes depending on the input data, the comparison timing cannot be obtained based on the “number of delayed cycles from the time when the input signal is determined until the time when the output signal is determined”. This is because there is no consideration.

なお、特許文献3(米国特許明細書第6、845、341号)には、性能評価システムが開示されている。この性能評価システムは、概略次のように動作する。すなわち、動作シミュレーション、及びRTLシミュレーションを同時に実行するテストベンチを作成する。動作記述とテストベンチの間、及び、RTLとテストベンチの間には、動作シミュレーションとRTLシミュレーションの入力タイミング、及び、出力タイミングの違いを吸収するためのモジュールが挿入される。このようにして、動作シミュレーションとRTLシミュレーションとが同一テストベクトル(ベクタ)を入力し、RTLがシミュレーションを実行するために必要なクロック数を計測することで、その性能を評価する。   Patent Document 3 (US Pat. No. 6,845,341) discloses a performance evaluation system. This performance evaluation system generally operates as follows. That is, a test bench that simultaneously executes operation simulation and RTL simulation is created. Between the behavioral description and the test bench, and between the RTL and the test bench, modules for absorbing differences in input timing and output timing of the behavioral simulation and the RTL simulation are inserted. In this way, the operation simulation and the RTL simulation input the same test vector (vector), and the performance is evaluated by measuring the number of clocks required for the RTL to execute the simulation.

特開2005−78402号公報JP-A-2005-78402 特開2004−145712号公報JP 2004-145712 A 米国特許第6、845、341号明細書(US6、845、341 B2)(Fig2)US Pat. No. 6,845,341 (US 6,845,341 B2) (FIG. 2)

従来のシステムにおいては、動作シミュレーションで使用したテストベクタをそのままでは、RTLシミュレーションには使用できない、という課題がある。   The conventional system has a problem that the test vector used in the operation simulation cannot be used in the RTL simulation as it is.

その理由は、前述したように、入力印加タイミング、出力観測タイミングの問題のためである。この問題を解決しようとして為された各種提案は、前述のように、十分であるとはいえない。   The reason is because of the problems of input application timing and output observation timing as described above. Various proposals made to solve this problem are not sufficient as mentioned above.

また、上記課題の別の理由として、入力端子、出力端子の共有化がある。一般に、動作記述の入力端子、出力端子が、RTLの入力端子、出力端子と一対一対応をしているとは限らない。   Another reason for the above problem is sharing of input terminals and output terminals. In general, an input terminal and an output terminal of a behavior description do not always have a one-to-one correspondence with an RTL input terminal and an output terminal.

さらに、上記課題の別の理由は、動作記述では表現できない動作の問題のためである。動作記述の中には、リセット中の入出力の挙動を指定しないものも多い。例えば、動作記述にC言語を使用する場合にはリセット中の入出力の挙動を指定しない(SystemC言語のようにリセット中の入出力の挙動を指定する動作記述のための言語も存在する)。   Furthermore, another reason for the above problem is due to behavioral problems that cannot be expressed in behavioral descriptions. Many behavioral descriptions do not specify input / output behavior during reset. For example, when the C language is used for the behavioral description, the behavior of the input / output during the reset is not specified (there is a language for the behavioral description that designates the behavior of the input / output during the reset like the SystemC language).

そこで、RTLシミュレーション時にリセット期間中に入力値の印加、出力値の観測を行なっても、動作シミュレーションと同じ結果を得ることができない。   Therefore, even if the input value is applied and the output value is observed during the reset period during the RTL simulation, the same result as the operation simulation cannot be obtained.

さらにまた前記課題の別の理由は、外部モデル(共有メモリのモデル、メモリモデル、演算器モデルなど)の問題のためである。動作合成は、動作記述中の配列をRTLではメモリで実現したり、動作記述中の変数をRTLではモジュール外のレジスタで実現したりする。   Furthermore, another reason for the problem is due to a problem of an external model (such as a shared memory model, a memory model, and an arithmetic unit model). In behavioral synthesis, an array in the behavioral description is realized with a memory in the RTL, and a variable in the behavioral description is realized in a register outside the module in the RTL.

また、動作記述中の演算をRTLの演算器で実現するときに、演算器の内部論理の詳細を省略したブラックボックスとして出力することがある。   Further, when the operation in the operation description is realized by the RTL arithmetic unit, it may be output as a black box in which the details of the internal logic of the arithmetic unit are omitted.

そのため、RTLシミュレーションでは、メモリのシミュレーションモデルやモジュール外のレジスタ、及び、ブラックボックスとして出力された演算器のシミュレーションモデルを用意しなければ、シミュレーションを実行することができない。   Therefore, in the RTL simulation, the simulation cannot be executed unless a simulation model of the memory, a register outside the module, and a simulation model of the arithmetic unit output as a black box are prepared.

したがって、本発明は、上記課題の認識に基づき創案されたものであって、その目的は、動作合成前に使用したテストベクタを動作合成後に得られた回路にも利用可能とするテストベンチを出力できる動作合成装置、方法並びにプログラムを提供することにある。   Therefore, the present invention was created based on the recognition of the above problems, and its purpose is to output a test bench that makes it possible to use a test vector used before behavioral synthesis for a circuit obtained after behavioral synthesis. An object is to provide a behavioral synthesis apparatus, method, and program.

本願で開示される発明は、前記課題を解決するため、概略以下の構成とされる。   In order to solve the above-described problems, the invention disclosed in the present application is generally configured as follows.

本発明によれば、回路に対するリセット解除からのクロック数を計測し、前記クロック数が所定の値と一致したときに、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成するテストベンチ生成手段を備えた動作合成装置が提供される。   According to the present invention, the number of clocks from reset release to the circuit is measured, and when the number of clocks coincides with a predetermined value, the application of the input to the circuit and the observation of the output of the circuit are performed. A behavioral synthesis device including a test bench generating means for generating a bench is provided.

本発明によれば、回路に対するリセットの解除からのクロック数を計測し、前記クロック数が所定の値と一致したときに、前記回路への入力の印加と前記回路の出力の観測を行うテストベンチを作成する、上記工程を含む動作合成方法が提供される。   According to the present invention, a test bench that measures the number of clocks from the release of reset to a circuit and applies an input to the circuit and observes the output of the circuit when the number of clocks matches a predetermined value. A behavioral synthesis method including the above-described steps is provided.

本発明によれば、回路に対するリセット解除からのクロック数を計測し、前記クロック数が所定の値と一致したときに、前記回路への入力の印加と前記回路の出力の観測を行うテストベンチを作成するテストベンチ生成処理を、コンピュータに実行させるプログラムが提供される。   According to the present invention, there is provided a test bench that measures the number of clocks from reset release to a circuit and applies an input to the circuit and observes the output of the circuit when the number of clocks matches a predetermined value. A program for causing a computer to execute a test bench generation process to be created is provided.

本発明によれば、動作シミュレーションとRTLシミュレーションで同じテストベクタを使用することができる。その理由は、本発明においては、動作合成前に使用したテストベクタを動作合成後に得られた回路にも使用できる、テストベンチを出力できるためである。   According to the present invention, the same test vector can be used in the operation simulation and the RTL simulation. This is because, in the present invention, a test bench that can use the test vector used before the behavioral synthesis for the circuit obtained after the behavioral synthesis can be output.

本発明の第1の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 1st Embodiment of this invention. 本発明の第1の実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of the 1st Embodiment of this invention. 本発明の第1の実施の形態の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the 1st Embodiment of this invention. 動作記述の一例を示す図である。It is a figure which shows an example of action description. スケジューリング結果の一例を示す図である。It is a figure which shows an example of a scheduling result. バインディング結果の一例を示す図である。It is a figure which shows an example of a binding result. バインディング結果の一例を示す図である。It is a figure which shows an example of a binding result. FSM生成後の記述の一例を示す図である。It is a figure which shows an example of the description after FSM production | generation. 入力印加タイミング信号、出力観測タイミング信号と、その論理が作成された記述の一例を示す図である。It is a figure which shows an example of the description by which the input application timing signal, the output observation timing signal, and its logic were created. テストベンチの一例を示す図である。It is a figure which shows an example of a test bench. 本発明の第2の実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of the 2nd Embodiment of this invention. 本発明の第2の実施の形態の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the 2nd Embodiment of this invention. 動作記述の一例を示す図である。It is a figure which shows an example of action description. 本発明の第3の実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of the 3rd Embodiment of this invention. 実施例で用いられる動作記述の一例を示す図である。It is a figure which shows an example of the operation description used in an Example. スケジューリング結果の一例を示す図である。It is a figure which shows an example of a scheduling result. FSM生成後の記述の一例を示す図である。It is a figure which shows an example of the description after FSM production | generation. 入力印加タイミング・出力観測タイミングを記録した記述の一例を示す図である。It is a figure which shows an example of the description which recorded the input application timing and the output observation timing. テストベンチの一例を示す図である。It is a figure which shows an example of a test bench. テストベンチの一例を示す図である。It is a figure which shows an example of a test bench. テストベンチの一例を示す図である。It is a figure which shows an example of a test bench. 動作記述の一例を示す図である。It is a figure which shows an example of action description. RTLの一例を示す図である。It is a figure which shows an example of RTL. テストベンチの一例を示す図である。It is a figure which shows an example of a test bench.

上記した本発明についてさらに詳細に説述すべく添付図面を参照して説明する。   The above-described present invention will be described with reference to the accompanying drawings in order to explain in more detail.

<実施の形態1>
図1を参照すると、本発明の第1の実施の形態に係る動作合成システム(装置)は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100と、データ記憶手段(データ記憶装置)110とを備えている。
<Embodiment 1>
Referring to FIG. 1, a behavioral synthesis system (apparatus) according to a first embodiment of the present invention includes a computer (central processing unit; processor; data processing unit) 100 that operates under program control, and data storage means (data). Storage device) 110.

コンピュータ(中央処理装置;プロセッサ;データ処理装置)100は、スケジューリング手段101と、バインディング手段102と、FSM(finite state machine)生成手段103と、入力印加・出力観測タイミング信号生成手段104と、RTL(レジスタトランスファレベル)等のHDL(Hardware Description Language)生成手段(RTL生成手段)105と、テストベンチ生成手段106を含む。これらの手段はそれぞれ概略つぎのように動作する。   A computer (central processing unit; processor; data processing unit) 100 includes a scheduling unit 101, a binding unit 102, an FSM (finite state machine) generation unit 103, an input application / output observation timing signal generation unit 104, and an RTL ( HDL (Hardware Description Language) generating means (RTL generating means) 105 such as a register transfer level) and a test bench generating means 106 are included. Each of these means generally operates as follows.

スケジューリング手段101は、動作記述を状態へ割り当てる。すなわち、動作記述中の演算、条件判定、入力端子からの値の入力、出力端子への値の出力、配列読み込み、配列書き込みを、それぞれ実行される状態に割り当てる。   The scheduling unit 101 assigns the behavior description to the state. That is, operations in the behavior description, condition determination, value input from the input terminal, value output to the output terminal, array reading, and array writing are assigned to the states to be executed.

バインディング手段102は、動作記述をハードウェアリソースに割り当てる。すなわち、
動作記述中の演算を演算器に、
動作記述中の入力端子をRTLの入力端子に、
動作記述中の出力端子をRTLの出力端子に、
動作記述中の配列をRTLのメモリ又はレジスタファイル
に割り当てる。
The binding means 102 assigns the behavior description to the hardware resource. That is,
The operation in the operation description is used as an arithmetic unit.
Change the input terminal in the behavior description to the RTL input terminal.
The output terminal in the behavior description is the RTL output terminal.
Allocates the array in the operation description to the RTL memory or register file.

このとき、動作記述中の複数の入力信号がRTLの一つの入力信号に割り当てられたり、また、動作記述中の複数の出力信号がRTLの一つの出力信号に割り当てられることもある。また、同様に、動作記述中の複数の演算がRTLの一つの演算器に割り当てられることもある。これらを「ハードウェアリソースの共有」と呼ぶ。   At this time, a plurality of input signals in the behavioral description may be assigned to one RTL input signal, or a plurality of output signals in the behavioral description may be assigned to one RTL output signal. Similarly, a plurality of operations in the behavioral description may be assigned to one RTL calculator. These are called “hardware resource sharing”.

有限状態機械(FSM)生成手段103は、状態の遷移を制御する有限状態機械(FSM)とハードウェアリソースを制御する制御論理回路を作成する。ハードウェアリソースを制御する制御論理回路とは、スケジューリング手段101によって得られた状態への割り当て、及び、バインディング手段102によって得られたハードウェアリソースへの割り当てに従って、ハードウェアリソースを制御するための論理回路である。すなわち、動作記述中の演算が割り当てられた状態で割り当てられた演算器によって実行されるための論理回路、動作記述中の条件判定がこれに割り当てられた状態で実行されるための論理回路、及び、動作記述中の入力端子からの値の入力・出力端子への値の出力・配列読み込み・配列書き込みが、それぞれ割り当てられた状態において、RTLの入力端子からの値の入力・出力端子への値の出力・メモリ読み込み・メモリ書き込みによって実現されるための論理回路である。   The finite state machine (FSM) generation means 103 creates a finite state machine (FSM) that controls state transition and a control logic circuit that controls hardware resources. The control logic circuit for controlling the hardware resource is a logic for controlling the hardware resource in accordance with the assignment to the state obtained by the scheduling means 101 and the assignment to the hardware resource obtained by the binding means 102. Circuit. That is, a logic circuit for being executed by an assigned computing unit in a state in which an operation in the behavior description is assigned, a logic circuit for executing a condition determination in the behavior description in an assigned state, and The value input from the RTL input terminal and the value input to the output terminal in the state where the value input from the input terminal in the operation description, the value output to the output terminal, the array read, and the array write are respectively assigned. It is a logic circuit to be realized by output, memory reading and memory writing.

入力印加・出力観測タイミング信号生成手段104は、入力端子及び出力端子のそれぞれ対して、これに対応する新たな信号端子を作成する。該信号を「入力印加・出力観測タイミング信号」という。   The input application / output observation timing signal generation means 104 creates a new signal terminal corresponding to each of the input terminal and the output terminal. This signal is referred to as “input application / output observation timing signal”.

さらに、入力印加・出力観測タイミング信号生成手段104は、対応する入力信号・出力信号に値がそれぞれ入力・出力される状態及び条件においてのみ、入力印加・出力観測タイミング信号に、所定の値(「アクティブ値」という)が出力されるように論理回路を作成する。   Further, the input application / output observation timing signal generation unit 104 outputs a predetermined value (““ ”to the input application / output observation timing signal only in a state and a condition in which values are input / output to the corresponding input signal / output signal, respectively. A logic circuit is created so that an “active value” is output.

RTL生成手段105は、有限状態機械生成手段103で作成したFSMと制御論理回路、及び、入力印加・出力観測タイミング信号生成手段104で作成した論理回路、及び、ハードウェアリソースをHDLに変換し、記憶装置110に格納する。   The RTL generation unit 105 converts the FSM and control logic circuit created by the finite state machine generation unit 103, the logic circuit created by the input application / output observation timing signal generation unit 104, and hardware resources into HDL, Store in the storage device 110.

テストベンチ生成手段106は、テストベンチを作成する。テストベンチには、入力印加・出力観測タイミング信号を観測し、当該信号にアクティブ値が出力されたときに入力を印加、もしくは出力を観測し期待値と照合するような論理を作成する。テストベンチ生成手段106は、作成したテストベンチを記憶装置110に格納する。   The test bench generation means 106 creates a test bench. The test bench observes the input application / output observation timing signal, and creates a logic that applies the input when the active value is output to the signal or observes the output and collates it with the expected value. The test bench generation unit 106 stores the created test bench in the storage device 110.

なお、本実施形態の動作合成装置は、図1に示した各構成要素の機能を実現するLSIや論理回路等によって構成されていてもよく、図2に示すような情報処理装置(コンピュータ)によって実現されてもよい。   Note that the behavioral synthesis device according to the present embodiment may be configured by an LSI, a logic circuit, or the like that realizes the functions of the components illustrated in FIG. 1, and is configured by an information processing device (computer) as illustrated in FIG. It may be realized.

図2に示す情報処理装置は、CPUを含む処理装置100と、記憶装置110と、記録媒体(「記憶媒体」ともいう)500とを有し、処理装置100は、記録媒体500に格納された動作合成用プログラムを読み込み、該動作合成プログラムにしたがってCPUにより、以下に記載する本実施形態のスケジューリング手段101及びバインディング(付帯情報変換)手段102の処理をそれぞれ実行する。   2 includes a processing device 100 including a CPU, a storage device 110, and a recording medium (also referred to as a “storage medium”) 500. The processing device 100 is stored in the recording medium 500. The behavioral synthesis program is read, and the processing of the scheduling unit 101 and the binding (accompanying information conversion) unit 102 of the present embodiment described below is executed by the CPU according to the behavioral synthesis program.

また、記憶装置110は、そのメモリ領域が、動作記述記憶部111、RTL記憶部112、テストベンチ記憶部113にそれぞれ分割されて使用される。   Further, the memory area of the storage device 110 is divided into an operation description storage unit 111, an RTL storage unit 112, and a test bench storage unit 113, and used.

次に、図1及び図3のフローチャートを参照して、本実施の形態の全体の動作について詳細に説明する。   Next, the overall operation of the present embodiment will be described in detail with reference to the flowcharts of FIGS.

動作記述記憶部111には動作記述が予め記憶されている。動作記述は、Verilog−HDL、VHDL、SystemVerilogといったハードウェア記述言語(HDL)や、C言語、C++言語、C#言語、SystemC、SpecC、Java(登録商標)、Perl、Scheme、Lispなどのプログラミング言語により表現される。C言語、C++言語、Java(登録商標)に回路を表現するための拡張を行った言語で表現されることもある。動作記述は、例えば設計者によって準備される。   The behavior description storage unit 111 stores behavior descriptions in advance. The operation description is a hardware description language (HDL) such as Verilog-HDL, VHDL, or SystemVerilog, or a programming language such as C language, C ++ language, C # language, SystemC, SpecC, Java (registered trademark), Perl, Scheme, or Lisp. It is expressed by In some cases, the language is expressed in C language, C ++ language, or Java (registered trademark) in an extended language for expressing a circuit. The behavioral description is prepared by a designer, for example.

まず、コンピュータ100は、記憶装置110内の動作記述記憶部111から動作記述を読み込み、コンピュータ100におけるスケジューリング手段101によって、動作記述を状態へ割り当てる。すなわち、動作記述中の演算、条件判定、入力、出力、配列読み込み、配列書き込みを状態に割り当てる(図3のステップA1)。   First, the computer 100 reads an operation description from the operation description storage unit 111 in the storage device 110 and assigns the operation description to a state by the scheduling unit 101 in the computer 100. That is, operations in the behavior description, condition determination, input, output, array read, and array write are assigned to the states (step A1 in FIG. 3).

次に、バインディング手段102によって動作記述をハードウェアリソースに割り当てる。すなわち、
動作記述中の演算を演算器に、
入力を入力端子に、
出力を出力端子に、
配列をメモリ又はレジスタファイル
に割り当てる(図3のステップA2)。
Next, the behavior description is assigned to the hardware resource by the binding means 102. That is,
The operation in the operation description is used as an arithmetic unit.
Input to the input terminal
Output to output terminal
The array is assigned to a memory or register file (step A2 in FIG. 3).

さらに、FSM生成手段103によって、状態の遷移を制御する有限状態機械(FSM)とハードウェアリソースを制御する論理を作成する(図3のステップA3)。   Further, the FSM generation means 103 creates a finite state machine (FSM) that controls state transition and logic that controls hardware resources (step A3 in FIG. 3).

さらに、入力印加・出力観測タイミング信号生成手段104によって、入力印加・出力観測タイミング信号と、当該信号のための論理回路を作成する(図3のステップA4)。   Further, the input application / output observation timing signal generation means 104 creates an input application / output observation timing signal and a logic circuit for the signal (step A4 in FIG. 3).

さらに、RTL生成手段105によって、ステップA3において有限状態機械生成手段103が作成したFSMと制御論理回路、及び、ステップA4において入力印加・出力観測タイミング信号生成手段が作成した論理回路、及び、ハードウェアリソースをHDLに変換し、記憶装置110に格納する(図3のステップA5)。HDLには、VHDL、Verilog−HDL、SystemVerilog、SystemC、SpecC、C言語、C++言語、C#言語などが使用される。   Further, the FTL and the control logic circuit created by the finite state machine generation means 103 in step A3 by the RTL generation means 105, the logic circuit created by the input application / output observation timing signal generation means in step A4, and hardware The resource is converted into HDL and stored in the storage device 110 (step A5 in FIG. 3). VHDL, Verilog-HDL, SystemVerilog, SystemC, SpecC, C language, C ++ language, C # language, etc. are used for HDL.

テストベンチ生成手段106によってテストベンチを生成する。テストベンチ生成手段106は作成したテストベンチを記憶装置110に格納する(ステップA6)。テストベンチも、RTLと同様に、VHDL、Verilog−HDL、SystemVerilog、SystemC、SpecC、C言語、C++言語、C#言語などを用いて表現される。   A test bench is generated by the test bench generation means 106. The test bench generation means 106 stores the created test bench in the storage device 110 (step A6). The test bench is also expressed using VHDL, Verilog-HDL, SystemVerilog, SystemC, SpecC, C language, C ++ language, C # language, and the like, similar to RTL.

次に、本実施の形態の作用効果について説明する。   Next, the effect of this Embodiment is demonstrated.

本実施の形態では、入力印加・出力観測タイミング信号生成手段104によって、対応する入力信号・出力信号に値がそれぞれ入力・出力される状態、及び条件を、外部に伝えるための信号を生成し、テストベンチ生成手段106によって、当該信号を観測して、入力を印加、又は、出力を観測し期待値と照合するようなテストベンチを作成するというように構成されているため、適切なタイミングで入力を印加、又は、出力を観測して期待値と照合するようなテストベンチを作成することができる。   In the present embodiment, the input application / output observation timing signal generation unit 104 generates a signal for transmitting the state and condition in which values are input and output to the corresponding input signal / output signal, and the conditions to the outside, The test bench generation unit 106 is configured to observe the signal and apply the input, or to create the test bench that observes the output and matches the expected value. A test bench can be created in which the output is applied or the output is observed and checked against the expected value.

<実施の形態2>
次に、本発明の第2の実施の形態について説明する。図11は、本発明の第2の実施の形態の構成を示す図である。図12は、本発明の第2の実施の形態の動作を説明する流れ図である。図11を参照すると、本発明の第2の実施の形態は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100が、図1に示した前記第1の実施の形態における入力印加・出力観測タイミング信号生成手段104を削除し、テストベンチ生成手段106の代わりに、別のテストベンチ生成手段107を備えている。図12を参照すると、図3の流れ図からステップA4、A6が削除され、ステップA7があらたに追加されている。
<Embodiment 2>
Next, a second embodiment of the present invention will be described. FIG. 11 is a diagram showing the configuration of the second exemplary embodiment of the present invention. FIG. 12 is a flowchart for explaining the operation of the second exemplary embodiment of the present invention. Referring to FIG. 11, in the second embodiment of the present invention, a computer (central processing unit; processor; data processing unit) 100 operating by program control is the same as that in the first embodiment shown in FIG. The input application / output observation timing signal generation unit 104 is deleted, and another test bench generation unit 107 is provided instead of the test bench generation unit 106. Referring to FIG. 12, steps A4 and A6 are deleted from the flowchart of FIG. 3, and step A7 is newly added.

本実施形態におけるテストベンチ生成手段107は、前記第1の実施形態のテストベンチ生成手段106とは、以下の点で異なる。   The test bench generating means 107 in the present embodiment differs from the test bench generating means 106 in the first embodiment in the following points.

すなわち、テストベンチ生成手段107は、動作記述中の信号を入力印加・出力観測タイミング信号として認識する。その上で、当該信号を観測し、当該信号にアクティブ値が出力されたときに入力を印加、もしくは、出力を観測し期待値と照合するような論理を作成する(図12のステップA7)。そして、作成したテストベンチを記憶装置110に格納する。   That is, the test bench generating means 107 recognizes the signal in the behavior description as the input application / output observation timing signal. After that, the signal is observed, and an input is applied when an active value is output to the signal, or a logic is created such that the output is observed and collated with an expected value (step A7 in FIG. 12). Then, the created test bench is stored in the storage device 110.

<実施の形態3>
図14を参照すると、本発明の第3の実施の形態は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100が、図1に示された第一の実施の形態における、入力印加・出力観測タイミング信号生成手段104の代わりに、入力印加・出力タイミング記録手段108を備え、テストベンチ生成手段106の代わりに、テストベンチ生成手段109を備える点で異なる。
<Embodiment 3>
Referring to FIG. 14, the third embodiment of the present invention is such that a computer (central processing unit; processor; data processing unit) 100 operating under program control is the same as that in the first embodiment shown in FIG. The input application / output observation timing signal generation means 104 is replaced with an input application / output timing recording means 108, and a test bench generation means 109 is provided instead of the test bench generation means 106.

入力印加・出力観測タイミング記録手段108は、概略以下のように動作する。   The input application / output observation timing recording means 108 generally operates as follows.

コントロールデータフローグラフを参照して、リセットが解除されてから、入力値を印加するまでのクロック数と、一度入力を印加してから次の入力を印加するまでの周期を、入力それぞれについて記録する。また、同時に、リセットが解除されてから出力値が有効になるまでのクロック数と、出力値が一度有効になってから次の出力値が有効になるまでの周期を、出力信号それぞれについて記録する。   Referring to the control data flow graph, record the number of clocks from when reset is released until the input value is applied, and the period from application of the input to application of the next input for each input. . At the same time, the number of clocks from when reset is released until the output value becomes valid and the period from when the output value becomes valid until the next output value becomes valid are recorded for each output signal. .

テストベンチ生成手段109は、概略、以下のように動作する。入力印加・出力タイミング記録手段108によって記録された、入出力タイミングを読み込み、リセット信号が解除されてからのクロック数を計測し、このクロック数が、入力を印加するクロック数と一致したとき、又は、入力を印加する周期と一致したときに、入力を印加するテストベンチを作成する。また、同時に、リセットが解除されてからのクロック数と、出力が有効になるまでのクロック数が一致したとき、又は、出力が有効になるまでの周期が一致したときに、出力を観測し期待値と照合するようなテストベンチを作成する。作成したテストベンチを記憶装置110に格納する。   The test bench generating means 109 generally operates as follows. When the input / output timing recorded by the input application / output timing recording means 108 is read and the number of clocks after the reset signal is released is measured, and the number of clocks coincides with the number of clocks to which the input is applied, or A test bench for applying an input is created when the period for applying the input coincides. At the same time, when the number of clocks after reset is released matches the number of clocks until the output becomes valid, or when the period until the output becomes valid, the output is observed and expected. Create a test bench that matches the values. The created test bench is stored in the storage device 110.

本実施形態は、特許文献2と以下の点で異なっている。すなわち、出力観測タイミングを、入力が確定してからの遅れサイクルではなく、リセットが解除されてからのサイクルと、周期をもとに決定している。   This embodiment is different from Patent Document 2 in the following points. That is, the output observation timing is determined based on the cycle and period after the reset is released, not the delay cycle after the input is confirmed.

入力、出力の区別なく、リセットが解除されてからのサイクル数に基づいて、入力の印加、出力の観測をすることで、特許文献2で開示された発明を適用できない回路であっても、本発明を適用することができる。   Even if it is a circuit to which the invention disclosed in Patent Document 2 cannot be applied by applying input and observing output based on the number of cycles after reset is released without distinguishing between input and output, The invention can be applied.

<実施の形態4>
次に、本発明の第4の実施の形態について説明する。本発明の第4の実施の形態は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100が、図1に示された第1の実施の形態における、テストベンチ生成手段106が、以下の機能を備える点で異なる。
<Embodiment 4>
Next, a fourth embodiment of the present invention will be described. In the fourth embodiment of the present invention, a computer (central processing unit; processor; data processing unit) 100 that operates under program control has a test bench generating means 106 in the first embodiment shown in FIG. However, it differs in that it has the following functions.

テストベンチ生成手段106が作成するテストベンチには、入力印加・出力観測タイミング信号に加えて、リセット信号を観測し、入力印加・出力観測信号にアクティブ値が出力されていても、リセット信号が有効になっている間は、入力の印加も出力の観測も行わない。作成したテストベンチを記憶装置110に格納する。   The test bench created by the test bench generation means 106 observes the reset signal in addition to the input application / output observation timing signal, and the reset signal is valid even if an active value is output to the input application / output observation signal. During this period, neither input application nor output observation is performed. The created test bench is stored in the storage device 110.

テストベンチ生成手段106は、また、概略以下のようにも動作する。すなわち、テストベンチ生成手段106が作成するテストベンチには、入力印加・出力観測タイミング信号に加えて、ストール信号を観測し、入力印加・出力観測信号にアクティブ値が出力されていても、ストール信号が有効になっている間は、入力の印加も出力の観測も行わない。作成したテストベンチを記憶装置110に格納する。   The test bench generating means 106 also operates as outlined below. That is, the test bench created by the test bench generation means 106 observes a stall signal in addition to the input application / output observation timing signal, and even if an active value is output to the input application / output observation signal, the stall signal While is valid, neither input application nor output observation is performed. The created test bench is stored in the storage device 110.

<実施の形態5>
次に、本発明の第5の実施の形態について説明する。本発明の第5の実施形態は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100が、図1に示された第1の実施の形態における、テストベンチ生成手段106が、以下の機能を備える点で異なる。テストベンチ生成手段106は、概略以下のように動作する。
<Embodiment 5>
Next, a fifth embodiment of the present invention will be described. In the fifth embodiment of the present invention, the computer (central processing unit; processor; data processing unit) 100 that operates under program control is replaced by the test bench generation unit 106 in the first embodiment shown in FIG. The difference is that it has the following functions. The test bench generating means 106 operates generally as follows.

RTL生成手段105で得られたRTL単独ではシミュレーションが実行できない場合に、これに対応して、必要なシミュレーションモデルをもつテストベンチを生成する。   When the RTL obtained by the RTL generation unit 105 cannot execute the simulation alone, a test bench having a necessary simulation model is generated correspondingly.

RTL単独ではシミュレーションできない場合とは、例えば、動作記述に配列が存在し、これに対して、RTLには、メモリにアクセスするためのインターフェイス回路が生成されている場合がある。この場合、メモリのためのシミュレーションモデルを有するテストベンチを作成する。   The case where the simulation cannot be performed by the RTL alone includes, for example, an array in the behavioral description, and an interface circuit for accessing the memory may be generated in the RTL. In this case, a test bench having a simulation model for the memory is created.

また、例えば、動作記述に掛け算、割り算など複雑な演算が存在し、これに対して、RTLには、当該演算部分を、ブラックボックスとして出力している場合がある。この場合、これに対応する演算のシミュレーションモデルを有するテストベンチを作成する。   In addition, for example, there are complex operations such as multiplication and division in the behavioral description. On the other hand, the RTL may output the operation part as a black box. In this case, a test bench having a simulation model of the operation corresponding to this is created.

以下では、いくつかの具体的な実施例を用いて説明する。   In the following, description will be made using some specific examples.

<実施例1>
まず、本発明の第1の実施例を説明する。本発明の第1の実施例は、前記した本発明の第1の実施の形態に対応するものである。図4を参照すると、動作記述が例示されている。図4の動作記述はC言語で表現されている。
<Example 1>
First, a first embodiment of the present invention will be described. The first example of the present invention corresponds to the first embodiment of the present invention described above. Referring to FIG. 4, an operation description is illustrated. The behavioral description of FIG. 4 is expressed in C language.

関数func()の入力端子はint型の変数a、b、c、dであり、出力端子は int型の変数oである。当該関数の出力値oは、
入力cの値が0のときは、入力すべて(a、b、c、d)の総和であり、
入力cの値が0以外のときは、入力a、bの和となる。動作記述は、記憶装置110の動作記述記憶部111に予め記憶されている。
The input terminal of the function func () is an int type variable a, b, c, d, and the output terminal is an int type variable o. The output value o of the function is
When the value of input c is 0, it is the sum of all inputs (a, b, c, d),
When the value of the input c is other than 0, the sum of the inputs a and b is obtained. The behavior description is stored in advance in the behavior description storage unit 111 of the storage device 110.

第1の実施例の動作合成装置は、図4の動作記述を記憶装置110の動作記述記憶部111から読み出し、RTL生成手段105が図9に示すRTLを作成し、テストベンチ生成手段106が、図10に示すテストベンチを作成し、それぞれ、記憶装置110のRTL記憶部112とテストベンチ記憶部113に格納する。   The behavioral synthesis device of the first embodiment reads the behavioral description of FIG. 4 from the behavioral description storage unit 111 of the storage device 110, the RTL generation unit 105 creates the RTL shown in FIG. 9, and the test bench generation unit 106 The test bench shown in FIG. 10 is created and stored in the RTL storage unit 112 and the test bench storage unit 113 of the storage device 110, respectively.

まず、コンピュータ100におけるスケジューリング手段101が動作記述を状態へ割り当てる(図3のステップA1)。すなわち、動作記述中の演算、条件判定、入力、出力、配列読み込み、配列書き込みを状態に割り当てる。   First, the scheduling means 101 in the computer 100 assigns an operation description to a state (step A1 in FIG. 3). That is, operations in the behavior description, condition determination, input, output, array read, and array write are assigned to states.

図4の動作記述には、
5行目に、入力a、b及び加算+、
6行目に入力cと条件判定==、
7行目に入力c、dと加算+、
9行目に加算+と出力o
が指定されている。
The behavioral description of FIG.
In line 5, inputs a and b and addition +,
In line 6, input c and condition determination ==,
In line 7 input c, d and addition +,
9th line addition + and output o
Is specified.

図5を参照すると、スケジューリング手段101による状態への割り当てが例示されている。図5では、スケジューリング手段101によって、
5行目の入力a、b及び加算+が、状態STATE1に、
6行目の入力cと条件判定==及び、7行目の入力c、dと加算+がそれぞれ状態STATE2に、
9行目の加算+と出力oが、状態STATE3
に割り当てられていることを示している。
Referring to FIG. 5, the assignment to the state by the scheduling means 101 is illustrated. In FIG. 5, the scheduling means 101
The inputs a and b and the addition + in the fifth row are in the state STATE1.
6th line input c and condition determination ==, and 7th line input c, d and addition + are in state STATE2, respectively.
The addition + and the output o in the ninth line are in the state STATE3.
It is shown that it is assigned to.

次に、コンピュータ100におけるバインディング手段102が、動作記述をハードウェアリソースに割り当てる(図3のステップA2)。   Next, the binding means 102 in the computer 100 assigns the operation description to the hardware resource (step A2 in FIG. 3).

すなわち、
動作記述中の演算を演算器に、
動作記述の入力端子をRTLの入力端子に、
動作記述の出力端子をRTLの出力端子に、
動作記述の配列を、RTLのメモリ又はレジスタファイル
に割り当てる。
That is,
The operation in the operation description is used as an arithmetic unit.
The input terminal of the behavior description is the input terminal of RTL,
The output terminal of the behavior description is the output terminal of RTL,
Allocates an array of behavior descriptions to the RTL memory or register file.

図6を参照すると、バインディング手段102による演算器への割り当てが模式的に例示されている。   Referring to FIG. 6, the assignment by the binding means 102 to the calculator is schematically illustrated.

図6(A)の5行目の加算+、7行目の加算+、及び9行目の加算+が、すべて一つの演算器ADD(図6(D))に割り当てられ、6行目の条件判定==が、比較器EQ(図6(E))に割り当てられていることを示している。   In FIG. 6 (A), the addition of the fifth row +, the addition of the seventh row +, and the addition of the ninth row + are all assigned to one arithmetic unit ADD (FIG. 6 (D)). It is shown that the condition determination == is assigned to the comparator EQ (FIG. 6E).

また、図7を参照すると、バインディング手段102による入力端子、出力端子への割り当てが例示されている。   Further, referring to FIG. 7, the assignment to the input terminal and the output terminal by the binding means 102 is illustrated.

図7(A)の5行目の入力a、及び、6行目、7行目の入力cが入力端子iport1(図7(B))に、
図7(A)の5行目の入力b、及び7行目の入力dが入力端子iport2(図7(C))に、
図7(A)の10行目の出力oが出力端子oport1(図7(F))に、
それぞれ割り当てられていることを示している。
The input a in the fifth row in FIG. 7A and the input c in the sixth and seventh rows are connected to the input terminal iport1 (FIG. 7B).
The input b in the fifth row and the input d in the seventh row in FIG. 7A are connected to the input terminal iport2 (FIG. 7C).
The output o in the 10th row in FIG. 7A is connected to the output terminal “opport 1” (FIG. 7F).
Each is assigned.

次に、有限状態機械(FSM)生成手段103が、状態の遷移を制御する有限状態機械(FSM)とハードウェアリソースを制御する制御論理回路を作成する(図3のステップA3)。   Next, the finite state machine (FSM) generation means 103 creates a finite state machine (FSM) that controls state transition and a control logic circuit that controls hardware resources (step A3 in FIG. 3).

図8を参照すると、有限状態機械と制御論理回路、及び、該制御論理回路で制御されるハードウェアリソースが例示されている。この例は、Verilog−HDLで表現されている。図8に示す例において、有限状態機械及び制御論理回路は、状態レジスタstateとcase()文で表現されている。なお、図8は単に図面作成の都合で図8(A)、(B)に分図されており、module(入出力端子リスト)・・・endmoduleの範囲が一つの回路モジュールとなる。   Referring to FIG. 8, a finite state machine, a control logic circuit, and hardware resources controlled by the control logic circuit are illustrated. This example is expressed in Verilog-HDL. In the example shown in FIG. 8, the finite state machine and the control logic circuit are expressed by a state register state and a case () statement. Note that FIG. 8 is simply divided into FIGS. 8A and 8B for convenience of drawing, and the range of module (input / output terminal list)... Endmodule is one circuit module.

また、ハードウェアリソースとして、入力端子、出力端子、演算器、記憶素子(レジスタ)が用いられている。入力端子には、iport1、iport2が用いられている。出力端子にはoport1が用いられている。演算器には、加算器ADD、比較器EQが用いられているが、図8に示す例では、加算+、比較==として表現されている。記憶素子(レジスタ)には、v0、v1が用いられている。その他、リセット信号rst、クロック信号clkが用いられている。モジュールmainは、概略以下のように動作する。   As hardware resources, an input terminal, an output terminal, an arithmetic unit, and a storage element (register) are used. Iport1 and iport2 are used for the input terminals. The output terminal is port1. As an arithmetic unit, an adder ADD and a comparator EQ are used, but in the example shown in FIG. 8, they are expressed as addition +, comparison ==. For the storage element (register), v0 and v1 are used. In addition, a reset signal rst and a clock signal clk are used. The module main operates as follows.

クロック信号clkの立ち上がりイベントで以下の動作が行われる。リセット端子rstの入力が1のとき、状態レジスタstateの値をT_STATE1とし、レジスタv0、v1、o_tを0に初期化する。   The following operations are performed at the rising event of the clock signal clk. When the input of the reset terminal rst is 1, the value of the state register state is set to T_STATE1, and the registers v0, v1, and o_t are initialized to 0.

クロック信号clkの立ち上がりイベントで、リセット端子rstの入力が1でないとき、以下のように動作する。状態レジスタstateの値がT_STATE1の時には、入力端子iport1、iport2からそれぞれ値を読み込み、当該値の和を加算器ADDによって計算し、レジスタv0に計算結果を格納する。さらに、状態レジスタstateの値をT_STATE2に更新する。   When the input of the reset terminal rst is not 1 at the rising event of the clock signal clk, the following operation is performed. When the value of the status register state is T_STATE1, the values are read from the input terminals iport1 and iport2, the sum of the values is calculated by the adder ADD, and the calculation result is stored in the register v0. Further, the value of the status register state is updated to T_STATE2.

状態レジスタstateの値がT_STATE2の時には、入力端子iport1、iport2からそれぞれ値を読み込み、iport1の値を比較器EQによって比較する。入力端子iport1から読み込んだ値が0である場合には、読み込んだ値の和を加算器ADDによって計算し、レジスタv1に計算結果を格納する。さらに、状態レジスタstateの値をT_STATE3に更新する。   When the value of the status register state is T_STATE2, the values are read from the input terminals iport1 and iport2, respectively, and the value of iport1 is compared by the comparator EQ. When the value read from the input terminal iport1 is 0, the sum of the read values is calculated by the adder ADD, and the calculation result is stored in the register v1. Further, the value of the status register state is updated to T_STATE3.

状態レジスタstateの値がT_STATE3の時には、レジスタv0とv1の値の和を加算器ADDによって計算し、出力端子oport1に出力する。さらに、状態レジスタstateの値をT_STATE1に更新する。   When the value of the status register state is T_STATE3, the sum of the values of the registers v0 and v1 is calculated by the adder ADD, and is output to the output terminal “port1”. Further, the value of the status register state is updated to T_STATE1.

状態レジスタstateの値は、T_STATE1、T_STATE2、T_STATE3、T_STATE1、・・・、の順番で更新される。   The value of the status register state is updated in the order of T_STATE1, T_STATE2, T_STATE3, T_STATE1,.

テストベンチは、入力端子iport1、iport2にそれぞれ入力a、b、c、dの値を適切なタイミングで印加し、出力端子oport1の値を適切なタイミングで観測することで、動作記述の関数func()の動作を実現する。   The test bench applies the values of the inputs a, b, c, and d to the input terminals iport1 and iport2, respectively, at an appropriate timing, and observes the value of the output terminal “port1” at an appropriate timing, whereby the function func ( ) Operation.

次に、入力印加・出力観測タイミング信号生成手段104が、入力印加・出力観測タイミング信号と、当該信号のための論理回路を作成する(図3のステップA4)。   Next, the input application / output observation timing signal generation unit 104 creates an input application / output observation timing signal and a logic circuit for the signal (step A4 in FIG. 3).

図9を参照すると、入力印加・出力観測タイミング信号と、当該信号のための論理回路を、図8に付加した例が図示されている。   Referring to FIG. 9, an example in which an input application / output observation timing signal and a logic circuit for the signal are added to FIG. 8 is illustrated.

図4の動作記述には、入力端子a、b、c、d及び出力端子oが備わっている。図9を参照すると、入力a、b、c、dに対して、入力印加タイミング信号a_e、b_e、c_e、d_eが追加されている。また、出力信号oに対して、出力観測タイミング信号o_eが追加されている。また、それぞれの出力値を決定する論理回路も追加されている。   The behavioral description of FIG. 4 has input terminals a, b, c, d and an output terminal o. Referring to FIG. 9, input application timing signals a_e, b_e, c_e, and d_e are added to inputs a, b, c, and d. Further, an output observation timing signal o_e is added to the output signal o. A logic circuit for determining each output value is also added.

動作記述の入力信号aの5行目に相当する値は、スケジューリング手段、及び、バインディング手段による動作合成の結果のRTLでは、状態STATE1において、入力端子iport1より取得される。したがって、入力印加タイミング信号a_eも、状態STATE1においてのみ、アクティブ値(1(High))になるような論理回路(assign a_e= (state==T_STATE1)? 1'b1:1'b0;)が作成されている。   The value corresponding to the fifth line of the input signal a in the behavioral description is acquired from the input terminal iport1 in the state STATE1 in the RTL resulting from the behavioral synthesis by the scheduling unit and the binding unit. Therefore, a logic circuit (assign a_e = (state == T_STATE1)? 1'b1: 1'b0;) is generated so that the input application timing signal a_e also becomes an active value (1 (High)) only in the state STATE1. Has been.

同様に、出力信号oは、状態STATE3において、出力端子oport1に出力される。したがって、出力観測タイミング信号o_eは、状態STATE3においてのみ、アクティブ値(1(High))になるような論理回路(assign o_e= (state==T_STATE3 )? 1'b1:1'b0;)が作成されている。   Similarly, the output signal o is output to the output terminal “port1” in the state STATE3. Therefore, the output observation timing signal o_e is generated by a logic circuit (assign o_e = (state == T_STATE3)? 1'b1: 1'b0;) that becomes an active value (1 (High)) only in the state STATE3. Has been.

次に、RTL生成手段105が、FSM、制御論理回路、及び、入力印加・出力観測タイミング信号とその論理回路、及び、ハードウェアリソースをHDLに変換し、記憶装置110に格納する(図3のステップA5)。図9には、RTL生成手段105によって作成されたHDL(Verilog−HDL)が例示されている。   Next, the RTL generation means 105 converts the FSM, the control logic circuit, the input application / output observation timing signal, its logic circuit, and hardware resources into HDL, and stores them in the storage device 110 (FIG. 3). Step A5). FIG. 9 illustrates HDL (Verilog-HDL) created by the RTL generation unit 105.

次に、テストベンチ生成手段106によってテストベンチを生成する。テストベンチには、入力印加・出力観測タイミング信号を観測し、当該信号にアクティブ値が出力されたときに入力を印加、もしくは出力を観測し期待値と照合するような論理を作成する。   Next, a test bench is generated by the test bench generation means 106. The test bench observes the input application / output observation timing signal, and creates a logic that applies the input when the active value is output to the signal or observes the output and collates it with the expected value.

図10を参照すると、テストベンチ生成手段106によって作成されたテストベンチを示している。図10の例は、Verilog−HDLに似た擬似コードで表現されている。生成されたテストベンチは、概略以下のような動作をする。   Referring to FIG. 10, the test bench created by the test bench generating means 106 is shown. The example of FIG. 10 is expressed by pseudo code similar to Verilog-HDL. The generated test bench generally operates as follows.

入力印加タイミング信号a_eの値がアクティブ値(1(High))のときに、入力端子iport1から、入力信号aの値を取得することを想定して、入力端子iport1に入力信号aの入力値を印加する。入力印加タイミング信号b_eの値がアクティブ値(1(High))のときに、入力端子iport1から、入力信号bの値を取得することを想定して、入力端子iport1に入力信号bの入力値を印加する。入力印加タイミング信号c_eの値がアクティブ値(1(High))のときに、入力端子iport2から、入力信号cの値を取得することを想定して、入力端子iport2に入力信号cの入力値を印加する。入力印加タイミング信号d_eの値がアクティブ値(1(High))のときに、入力端子iport2から、入力信号dの値を取得することを想定して、入力端子iport2に入力信号dの入力値を印加する。   Assuming that the value of the input signal a is obtained from the input terminal iport1 when the value of the input application timing signal a_e is an active value (1 (High)), the input value of the input signal a is input to the input terminal iport1. Apply. Assuming that the value of the input signal b is acquired from the input terminal iport1 when the value of the input application timing signal b_e is the active value (1 (High)), the input value of the input signal b is input to the input terminal iport1. Apply. Assuming that the value of the input signal c is obtained from the input terminal iport2 when the value of the input application timing signal c_e is an active value (1 (High)), the input value of the input signal c is input to the input terminal iport2. Apply. Assuming that the value of the input signal d is obtained from the input terminal iport2 when the value of the input application timing signal d_e is an active value (1 (High)), the input value of the input signal d is input to the input terminal iport2. Apply.

同様に、出力観測タイミング信号o_eの値がアクティブ値(1(High))のときに、出力端子oport1から出力信号oの値が出力されていることを想定して、出力端子oport1の値を観測し、出力信号oの期待値と比較照合する。図10において、モジュール main dut(入出力端子リスト)は、テスト対象モジュールである。   Similarly, when the value of the output observation timing signal o_e is an active value (1 (High)), it is assumed that the value of the output signal o is output from the output terminal “opport1”, and the value of the output terminal “port1” is observed. Then, comparison is made with the expected value of the output signal o. In FIG. 10, a module main duty (input / output terminal list) is a test target module.

<実施例2>
次に本発明の第2の実施例を説明する。本実施例は、図11及び図12を参照して説明した前記第2の実施の形態に対応するものである。図13を参照すると、動作記述の一例が示されている。図13の動作記述は、図4の動作記述と比較して、出力信号a_e、b_e、c_e、d_e、o_eを備え、16行目、17行目、20行目、23行目に、出力信号a_e、b_e、出力信号c_e、出力信号d_e、出力信号o_eへの出力動作が指定されていることが異なる。
<Example 2>
Next, a second embodiment of the present invention will be described. This example corresponds to the second embodiment described with reference to FIGS. 11 and 12. Referring to FIG. 13, an example of behavior description is shown. The behavioral description of FIG. 13 includes output signals a_e, b_e, c_e, d_e, and o_e as compared with the behavioral description of FIG. 4, and the output signals are displayed on the 16th, 17th, 20th, and 23rd lines. The difference is that output operations to a_e, b_e, output signal c_e, output signal d_e, and output signal o_e are specified.

図13の動作記述において、出力信号a_e、b_e、c_e、d_e、o_eはそれぞれa、b、c、d、oの入力タイミング・出力タイミングをあらわす出力信号である。また、回路記述部には、それぞれ対応する信号の入力・出力アクセスがある場合にアクティブ値(1)を出力するような動作が指定されている。   In the behavioral description of FIG. 13, output signals a_e, b_e, c_e, d_e, and o_e are output signals representing the input timing and output timing of a, b, c, d, and o, respectively. In the circuit description section, an operation for outputting an active value (1) when there is an input / output access of a corresponding signal is designated.

宣言部において、信号b_eには、対応する信号がbであり、b_eがbの入力タイミングを指定する信号であることが、コメント(プラグマ)で指定されている。2行目:“input int b;//pragma enable_signal_is b_e”のコメント記号“//”以下の“pragma enable_signal_is b_e”が、シミュレータへの指示(プラグマ)として、b_eがbの入力タイミングを指定する信号であることを規定する。   In the declaration part, the signal b_e is specified by a comment (pragma) that the corresponding signal is b and b_e is a signal that specifies the input timing of b. 2nd line: “input int b; // pragma enable_signal_is b_e” comment symbol “//” below “pragma enable_signal_is b_e” is an instruction (pragma) to the simulator and b_e is a signal that specifies the input timing of b It stipulates that

逆に、信号cには、対応する信号がc_eであり、c_eがcの入力タイミングを指定する信号であることがコメント(プラグマ)で指定されている。7行目:“output int c_e;//pragma enable_signal_for c”のコメント記号“//”以下の“pragma enable_signal_for c”が、シミュレータへの指示(プラグマ)として、c_eがcの入力タイミングを指定する信号であることを規定する。   Conversely, the signal c is designated by a comment (pragma) that the corresponding signal is c_e, and that c_e is a signal that designates the input timing of c. 7th line: "output int c_e; // pragma enable_signal_for c" comment symbol "//" and below "pragma enable_signal_for c" is an instruction (pragma) to the simulator, c_e specifies the input timing of c It stipulates that

本発明の第2の実施例の動作合成装置は、図13の動作記述を、図11の記憶装置110の動作記述記憶部111から読み出し、スケジューリング手段101、バインディング手段102、FSM生成手段103、RTL生成手段105を経て、図9に例示されるモジュールmainを生成する。当該モジュールmainの動作は前述のとおりある。   The behavioral synthesis apparatus according to the second embodiment of the present invention reads the behavioral description of FIG. 13 from the behavioral description storage unit 111 of the storage device 110 of FIG. 11, and schedules 101, binding means 102, FSM generation means 103, RTL. The module main illustrated in FIG. 9 is generated through the generation unit 105. The operation of the module main is as described above.

次に、図11のテストベンチ生成手段107によってテストベンチを生成する。テストベンチには、入力印加・出力観測タイミング信号を観測し、当該信号にアクティブ値が出力されたときに入力を印加、もしくは出力を観測し期待値と照合するような論理を作成する。このとき、入力印加・出力観測タイミング信号には、動作記述にもともと存在した信号を利用する。   Next, a test bench is generated by the test bench generation means 107 of FIG. The test bench observes the input application / output observation timing signal, and creates a logic that applies the input when the active value is output to the signal or observes the output and collates it with the expected value. At this time, the signal originally present in the operation description is used as the input application / output observation timing signal.

図10を参照すると、作成されたテストベンチが例示されている。この例は、Verilog−HDLに似た擬似コードで表現されている。   Referring to FIG. 10, the created test bench is illustrated. This example is expressed in pseudo code similar to Verilog-HDL.

信号aの入力印加タイミング信号には、a_eが用いられている。これは、信号名の類似をもとに判別した信号である。   A_e is used as the input application timing signal of the signal a. This is a signal determined based on the similarity of signal names.

信号bの入力印加タイミング信号には、b_eが用いられている。これは、信号bのコメント(プラグマ)(図13参照)をもとに判別した信号である。   B_e is used for the input application timing signal of the signal b. This is a signal determined based on the comment (pragma) of the signal b (see FIG. 13).

信号cの入力印加タイミング信号には、c_eが用いられている。これは、信号cのコメント(プラグマ)(図13参照)をもとに判別した信号である。   C_e is used as the input application timing signal of the signal c. This is a signal determined based on the comment (pragma) of the signal c (see FIG. 13).

信号dの入力印加タイミング信号には、d_eが用いられている。これは、動作記述において、信号dの参照と信号d_eへの出力が並行して記述されていることから判別した信号である(図13の19と20行参照)。   D_e is used as the input application timing signal of the signal d. This is a signal determined from the fact that the reference to the signal d and the output to the signal d_e are described in parallel in the behavioral description (see lines 19 and 20 in FIG. 13).

図10のテストベンチの動作は前述のとおりである。   The operation of the test bench in FIG. 10 is as described above.

<実施例3>
次に、本発明の第3の実施例を説明する。本発明の第3の実施例は、図14を参照して説明した前記第3の実施の形態に対応するものである。図15を参照すると、動作記述の一例が示されている。図15において、関数func()の入力はint型の変数a、b、c、dであり、出力はint型の変数o1、o2である。関数func()の出力o1は入力a、bの和であり、出力o2は入力a、b、c、dの総和である。
<Example 3>
Next, a third embodiment of the present invention will be described. The third embodiment of the present invention corresponds to the third embodiment described with reference to FIG. Referring to FIG. 15, an example of behavioral description is shown. In FIG. 15, the input of the function func () is int type variables a, b, c and d, and the outputs are int type variables o1 and o2. The output o1 of the function func () is the sum of the inputs a and b, and the output o2 is the sum of the inputs a, b, c and d.

動作記述は、図14の記憶装置110の動作記述記憶部111に予め記憶されている。   The behavioral description is stored in advance in the behavioral description storage unit 111 of the storage device 110 in FIG.

本発明の第3の実施例の動作合成装置は、図15の動作記述を、図14の記憶装置110の動作記述記憶部111から読み出し、RTL生成手段105が、図18に示したRTLと、テストベンチ生成手段109が、図19のテストベンチを作成し、それぞれ、記憶装置110のRTL記憶部112とテストベンチ記憶部113に格納する。   The behavioral synthesis device according to the third embodiment of the present invention reads the behavioral description of FIG. 15 from the behavioral description storage unit 111 of the storage device 110 of FIG. 14, and the RTL generation means 105 performs the RTL shown in FIG. The test bench generation unit 109 creates the test bench of FIG. 19 and stores them in the RTL storage unit 112 and the test bench storage unit 113 of the storage device 110, respectively.

まず、コンピュータ100におけるスケジューリング手段101が動作記述を状態へ割り当てる。すなわち、動作記述中の演算、条件判定、入力、出力、配列読み込み、配列書き込みを状態に割り当てる。   First, the scheduling unit 101 in the computer 100 assigns an operation description to a state. That is, operations in the behavior description, condition determination, input, output, array read, and array write are assigned to states.

図15の動作記述には、
11行目に入力a、b及び加算+、
12行目に入力b、c及び加算+、
13行目には出力o1、
14行目には加算+、
15行目には出力o2
が指定されている。
The behavioral description in FIG.
Input a, b and addition + on line 11
Input b, c and addition + on line 12
On line 13, output o1,
On line 14, add +,
Output o2 on line 15
Is specified.

図16を参照すると、スケジューリング手段101による状態割り当てが例示されている。図16では、スケジューリング手段101によって、11行目の入力a、b及び加算+がSTAGE1に、12行目の入力b、c及び加算+がSTAGE2に、13行目の出力o1及び14行目の加算+がSTAGE3に、15行目の出力o2がSTAGE4に割り当てられていることを示している。   Referring to FIG. 16, state assignment by the scheduling unit 101 is illustrated. In FIG. 16, the scheduling means 101 causes the inputs a and b and addition + on the 11th row to STAGE1, the inputs b and c and addition + on the 12th row to STAGE2, and the output o1 and 14th row on the 13th row. The addition + indicates that the stage 3 is allocated, and the output o2 in the 15th row is allocated to the stage 4.

次にコンピュータ100のおけるバインディング手段102及びFSM生成手段103を経て図17のモジュールmainが生成される。   Next, the module main of FIG. 17 is generated through the binding means 102 and the FSM generation means 103 in the computer 100.

図17を参照すると、バインディング手段102、FSM生成手段103後に得られるモジュールmainが例示されている。図17の例は、Verilog−HDLで表現されている。当該モジュールはパイプライン回路として合成されている。STAGE1からSTAGE4までのすべてのステージがクロックに同期して毎クロック実行されるように動作する。   Referring to FIG. 17, a module main obtained after the binding means 102 and the FSM generating means 103 is illustrated. The example of FIG. 17 is expressed in Verilog-HDL. The module is synthesized as a pipeline circuit. All stages from STAGE 1 to STAGE 4 are operated so as to be executed every clock in synchronization with the clock.

次に、入力印加・出力観測タイミング記録手段108は、コントロールデータフローグラフを参照して、リセットが解除されてから入力値を印加するまでのクロック数、及び、入力印加の周期を、入力信号それぞれについて記録する。また、リセットが解除されてから出力値が有効になるまでのクロック数と、出力観測の周期を、出力信号それぞれについて記録する。図18を参照すると、図17のモジュールmainに、これらの情報が記録されたモジュールmainが例示されている。   Next, the input application / output observation timing recording unit 108 refers to the control data flow graph, and determines the number of clocks from when reset is released until the input value is applied, and the cycle of input application, for each input signal. Record about. In addition, the number of clocks from when reset is released until the output value becomes valid, and the period of output observation are recorded for each output signal. Referring to FIG. 18, the module main in which these pieces of information are recorded is illustrated in the module main in FIG.

モジュールmainの入力信号a、bは、それぞれリセットが解除された次のクロックから、毎サイクル入力を印加するため、その情報が記載されている。すなわち、図18(A)に示すように、宣言部の入力信号a、bの各コメント行の1,1は、リセットが解除されてから1クロック後に有効となり、周期は1クロックサイクルであることを示している。   The input signals a and b of the module main are described in order to apply the input every cycle from the next clock after the reset is released. That is, as shown in FIG. 18A, the comment lines 1 and 1 of the input signals a and b of the declaration part become valid one clock after the reset is released, and the cycle is one clock cycle. Is shown.

入力信号c、dは、それぞれリセットが解除されて2クロック後から、毎サイクル入力を印加するため、その情報が記載されている。すなわち、図18(A)に示すように、宣言部の入力信号c、dの各コメント行の2,1は、リセットが解除されてから2クロック後に有効となり、周期は1クロックサイクルであることを示している。   The input signals c and d are described in order to apply the input every cycle after the reset is released and two clocks later. That is, as shown in FIG. 18A, the comment lines 2 and 1 of the input signals c and d in the declaration part become valid two clocks after the reset is released, and the period is one clock cycle. Is shown.

出力信号o1は、リセットが解除されてから3クロック後から、毎サイクル出力値が有効になるため、その情報が記載されている。すなわち、図18(A)に示すように、宣言部の出力信号o1のコメント行の3,1は、リセットが解除されてから3クロック後に有効となり、周期は1クロックサイクルであることを示している。   Since the output value of the output signal o1 becomes valid every cycle three clocks after the reset is released, the information is described. That is, as shown in FIG. 18A, the comment lines 3 and 1 of the output signal o1 of the declaration part become effective three clocks after the reset is released, and indicate that the cycle is one clock cycle. Yes.

出力信号o2は、リセットが解除されてから4クロック後から毎サイクル出力値が有効になるため、その情報が記載されている。すなわち、図18(A)に示すように、宣言部の出力信号o2のコメント行の4,1は、リセットが解除されてから4クロック後に有効となり、周期は1クロックサイクルであることを示している。   Since the output value of the output signal o2 becomes valid every cycle from 4 clocks after the reset is released, the information is described. That is, as shown in FIG. 18A, the comment lines 4 and 1 of the output signal o2 of the declaration part become valid four clocks after the reset is released, indicating that the period is one clock cycle. Yes.

次に、図14のRTL生成手段105及びテストベンチ生成手段109により、RTL及びテストベンチを作成し、それぞれ記憶装置110に格納する。   Next, an RTL and a test bench are created by the RTL generation unit 105 and the test bench generation unit 109 of FIG. 14 and stored in the storage device 110, respectively.

図19を参照すると、図14のテストベンチ生成手段109によって作成されたテストベンチが例示されている。図19の例は、Verilog−HDLに似た擬似コードで表現されている。   Referring to FIG. 19, a test bench created by the test bench generation means 109 of FIG. 14 is illustrated. The example of FIG. 19 is expressed by pseudo code similar to Verilog-HDL.

生成されたテストベンチは、概略以下のような動作をする。リセットが解除されてから1クロックサイクル後、且つ1クロック周期で入力端子a、bにそれぞれ入力信号a、bの値を印加する。   The generated test bench generally operates as follows. The values of the input signals a and b are applied to the input terminals a and b one clock cycle after the reset is released and in one clock cycle, respectively.

リセットが解除されてから2クロックサイクル後、且つ1クロック周期で入力端子c、dにそれぞれ入力信号c、dの値を印加する。   Two clock cycles after the reset is released, and the values of the input signals c and d are applied to the input terminals c and d, respectively, in one clock cycle.

また、リセットが解除されてから3クロックサイクル後、且つ1クロック周期で出力端子o1の値を観測し、出力信号o1の期待値と照合する。   Further, the value of the output terminal o1 is observed three clock cycles after the reset is released and in one clock cycle, and collated with the expected value of the output signal o1.

リセットが解除されてから4クロックサイクル後、且つ1クロック周期で出力端子o2の値を観測し、出力信号o2の期待値と照合する。   Four clock cycles after the reset is released, and the value of the output terminal o2 is observed in one clock cycle and collated with the expected value of the output signal o2.

<実施例4>
次に本発明の第4の実施例を説明する。本発明の第4の実施例は、前記第4の実施の形態に対応するものである。図20を参照すると、本発明の第4の実施の形態のテストベンチ生成手段106が作成したテストベンチの例が示されている。
<Example 4>
Next, a fourth embodiment of the present invention will be described. The fourth example of the present invention corresponds to the fourth embodiment. Referring to FIG. 20, an example of a test bench created by the test bench generating means 106 according to the fourth embodiment of the present invention is shown.

図20に示すように、生成されたテストベンチは、概略以下のような動作をする。   As shown in FIG. 20, the generated test bench generally operates as follows.

入力印加タイミング信号a_eの値がアクティブ値(1(High))のとき、且つ、リセットが有効でないときに、入力端子iport1から入力信号aの値を取得することを想定して、入力端子iport1に、入力信号aの入力値を印加する。入力印加タイミング信号b_eの値がアクティブ値(1(High))のとき、且つ、リセットが有効でないときに、入力端子iport1から入力信号bの値を取得することを想定して、入力端子iport1に、入力信号bの入力値を印加する。入力印加タイミング信号c_eの値がアクティブ値(1(High))のとき、且つ、リセットが有効でないときに、入力端子iport2から入力信号cの値を取得することを想定して、入力端子iport2に、入力信号cの入力値を印加する。入力印加タイミング信号d_eの値がアクティブ値(1(High))のとき、且つ、リセットが有効でないときに、入力端子iport2から入力信号dの値を取得することを想定して、入力端子iport2に、入力信号dの入力値を印加する。   When the value of the input application timing signal a_e is an active value (1 (High)) and the reset is not valid, it is assumed that the value of the input signal a is acquired from the input terminal iport1, and the input terminal iport1 The input value of the input signal a is applied. When the value of the input application timing signal b_e is an active value (1 (High)) and the reset is not valid, it is assumed that the value of the input signal b is acquired from the input terminal iport1, and the input terminal iport1 The input value of the input signal b is applied. When the value of the input application timing signal c_e is an active value (1 (High)) and the reset is not valid, it is assumed that the value of the input signal c is acquired from the input terminal iport2, and the input terminal iport2 The input value of the input signal c is applied. When the value of the input application timing signal d_e is an active value (1 (High)) and the reset is not valid, it is assumed that the value of the input signal d is acquired from the input terminal iport2, and the input terminal iport2 The input value of the input signal d is applied.

出力観測タイミング信号o_eの値がアクティブ値(1(High))のとき、且つ、リセットが有効でないときに、出力端子oport1から出力信号oの値が出力されていることを想定して、出力端子oport1の値を観測し、出力信号oの期待値と比較照合する。   When the value of the output observation timing signal o_e is the active value (1 (High)) and the reset is not valid, the output terminal o1 is assumed to output the value of the output signal o. The value of port1 is observed and compared with the expected value of the output signal o.

図21には、第4の実施の形態のテストベンチ生成手段106が作成した、テストベンチの別の例が示されている。   FIG. 21 shows another example of a test bench created by the test bench generation unit 106 of the fourth embodiment.

リセットが解除されてから1クロックサイクル後、且つ、1クロック周期、且つ、ストール信号が有効でないときに、入力端子a、bにそれぞれ入力信号a、bの値を印加する。またリセットが解除されてから2クロックサイクル後、且つ、1クロック周期、且つ、ストール信号が有効でないときに、入力端子c、dにそれぞれ入力信号c、dの値を印加する。   The values of the input signals a and b are applied to the input terminals a and b, respectively, one clock cycle after the reset is released, one clock cycle, and when the stall signal is not valid. Further, two clock cycles after the reset is released, one clock cycle, and when the stall signal is not valid, the values of the input signals c and d are applied to the input terminals c and d, respectively.

また、リセットが解除されてから3クロックサイクル後、4クロックサイクル後、且つ、1クロック周期、且つ、ストール信号が有効でないときに、出力端子o1、o2の値をそれぞれ観測し、期待値と照合する。   In addition, when the reset signal is released, after 3 clock cycles, 4 clock cycles, 1 clock cycle, and when the stall signal is not valid, the values of the output terminals o1 and o2 are observed and compared with the expected values. To do.

<実施例5>
次に本発明の第5の実施例を説明する。本発明の第5の実施例は、前記第5の実施の形態に対応するものである。図22を参照すると、動作記述の一例が示されている。この動作記述は、概略次のような動作を指定している。
<Example 5>
Next, a fifth embodiment of the present invention will be described. The fifth example of the present invention corresponds to the fifth embodiment. Referring to FIG. 22, an example of behavioral description is shown. This behavioral description generally specifies the following behavior.

まず、入力信号a、bから値を読み取り、配列ary[]の入力信号aの値の番地に入力信号bの値を書き込む。   First, values are read from the input signals a and b, and the value of the input signal b is written at the address of the value of the input signal a in the array ary [].

次に、入力信号cから値を読み込み、配列ary[]の入力信号cの値の番地の値を読み出し出力信号o1に出力している。   Next, a value is read from the input signal c, and the value of the address of the input signal c in the array ary [] is read and output to the output signal o1.

図23を参照すると、本発明の第5の実施の形態のスケジューリング手段101、バインディング手段102、FSM生成手段103、RTL生成手段105を経て得られるRTLの一例が示されている。図23の記述では、配列ary[]にアクセスするためのメモリインターフェイス回路が作成されている。信号ad、rd、wd、weがそれぞれ、アドレス、読み込みデータ、書き込みデータ、書き込み有効フラグに対応している。   Referring to FIG. 23, there is shown an example of RTL obtained through the scheduling unit 101, the binding unit 102, the FSM generation unit 103, and the RTL generation unit 105 according to the fifth embodiment of the present invention. In the description of FIG. 23, a memory interface circuit for accessing the array ary [] is created. Signals ad, rd, wd, and we respectively correspond to an address, read data, write data, and a write valid flag.

モジュールmainは、概略以下のように動作する。クロック信号clkの立ち上がりイベントで以下の動作が行われる。リセット端子rstの入力が1のとき、状態レジスタstateの値をT_STATE1とし、レジスタv0、v1、o_tを0に初期化する。   The module main operates as follows. The following operations are performed at the rising event of the clock signal clk. When the input of the reset terminal rst is 1, the value of the state register state is set to T_STATE1, and the registers v0, v1, and o_t are initialized to 0.

クロック信号clkの立ち上がりイベントで、リセット端子rstの入力が1でないとき、以下のように動作する。状態レジスタstateの値がT_STATE1の時には、入力信号a、bを読み込み、それぞれの値をレジスタad_t、wd_tにそれぞれ格納し、we_tに1を格納し、状態レジスタstateの値をT_STATE2に更新する。   When the input of the reset terminal rst is not 1 at the rising event of the clock signal clk, the following operation is performed. When the value of the state register state is T_STATE1, the input signals a and b are read, the respective values are stored in the registers ad_t and wd_t, 1 is stored in the we_t, and the value of the state register state is updated to T_STATE2.

状態レジスタstateの値がT_STATE2の時には、入力信号cを読み込み、その値をad_tに格納し、we_tに0を格納し、状態レジスタstateの値をT_STATE3に更新する。   When the value of the state register state is T_STATE2, the input signal c is read, the value is stored in ad_t, 0 is stored in we_t, and the value of the state register state is updated to T_STATE3.

状態レジスタstateの値がT_STATE3の時には、状態レジスタstateの値をT_STATE4に更新する。状態レジスタstateの値がT_STATE4の時には、読み込みデータrdを、レジスタo_tに格納し、状態レジスタstateの値をT_STATE1に更新する。状態レジスタstateの値は、T_STATE1、T_STATE2、・・・の順番で更新される。   When the value of the state register state is T_STATE3, the value of the state register state is updated to T_STATE4. When the value of the state register state is T_STATE4, the read data rd is stored in the register o_t, and the value of the state register state is updated to T_STATE1. The value of the status register state is updated in the order of T_STATE1, T_STATE2,.

図24を参照すると、テストベンチ生成手段106が生成したテストベンチが示されている。このテストベンチでは、テスト対象モジュール(main dut(・・・))のほかに、配列ary[]に対応するメモリのシミュレーションモデルm1(memory m1(・・・))が作成され、必要な結線がされている。   Referring to FIG. 24, the test bench generated by the test bench generating means 106 is shown. In this test bench, in addition to the test target module (main dut (...)), a memory simulation model m1 (memory m1 (...)) corresponding to the array ary [] is created, and necessary connections are made. Has been.

本発明によれば、動作記述と、動作合成後のRTLが、等価であることを確かめるといった用途に適用できる。また、動作合成後のRTLの性能が十分であるかを確かめるといった用途にも適用可能である。   According to the present invention, the present invention can be applied to a purpose of confirming that the behavioral description and the RTL after behavioral synthesis are equivalent. Further, the present invention can also be applied to uses such as confirming whether the performance of RTL after behavioral synthesis is sufficient.

以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。   Although the present invention has been described with reference to the above-described embodiments, the present invention is not limited to the configurations of the above-described embodiments, and various modifications that can be made by those skilled in the art within the scope of the present invention. Of course, including modifications.

100 コンピュータ(中央処理装置;プロセッサ;データ処理装置)
101 スケジューリング手段
102 バインディング手段
103 FSM生成手段
104 入力印加・出力観測タイミング信号生成手段
105 RTL生成手段
106 テストベンチ生成手段
107 テストベンチ生成手段
108 入力印加・出力観測タイミング記録手段
109 テストベンチ生成手段
110 記憶装置
111 動作記述記憶部
112 RTL記憶部
113 テストベンチ記憶部
500 記録媒体
100 computer (central processing unit; processor; data processing unit)
101 Scheduling means 102 Binding means 103 FSM generation means 104 Input application / output observation timing signal generation means 105 RTL generation means 106 Test bench generation means 107 Test bench generation means
108 Input application / output observation timing recording means 109 Test bench generation means 110 Storage device 111 Operation description storage section 112 RTL storage section 113 Test bench storage section 500 Recording medium

Claims (4)

動作合成を用いて動作記述をRTL(Register Transfer Level)に変換する動作合成装置であって、
回路の入力信号と出力信号に関して、リセットが解除されてから入力値、出力値がそれぞれ有効になるまでのクロック数と、入力印加、出力観測の周期をそれぞれ示すタイミング情報を、回路の前記動作記述の宣言部の入力信号と出力信号の注釈欄にそれぞれ付加し、記憶装置に記憶する入力印加出力観測タイミング記録手段と、
前記動作記述に対するRTL情報を記憶したRTL記憶部からRTL情報を読み出し、前記記憶装置から前記回路の動作記述の宣言部の入力信号と出力信号の注釈欄を参照し、
リセット解除からのクロック数を計測し、前記クロック数と、前記入力信号と前記出力信号のタイミング情報と一致したときに、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成しテストベンチ記憶部に記憶するテストベンチ生成手段と、
を備えた、ことを特徴とする動作合成装置。
A behavioral synthesis device that converts behavioral description into RTL (Register Transfer Level) using behavioral synthesis,
Regarding the input and output signals of the circuit, the number of clocks from when reset is released until the input value and output value become valid, and timing information indicating the period of input application and output observation, respectively, are described in the operation description of the circuit. An input application output observation timing recording means for adding to the annotation field of the input signal and output signal of the declaration part of each and storing in the storage device,
Read RTL information from the RTL storage unit storing RTL information for the behavioral description, refer to the input signal and output signal annotation fields in the declaration part of the circuit behavioral description from the storage device,
Tests that measure the number of clocks from reset release and perform application of input to the circuit and observation of the output of the circuit when the number of clocks matches the timing information of the input signal and the output signal. A test bench generating means for generating a bench and storing it in a test bench storage unit ;
With a behavioral synthesis apparatus characterized by.
前記入力印加・出力観測タイミング記録手段は、前記回路のコントロールデータフローグラフを参照して、リセットが解除されてから、入力値を印加するまでのクロック数と、一度入力を印加してから次の入力を印加するまでの周期からなるタイミング情報を入力信号のそれぞれについて記録し、
リセットが解除されてから出力値が有効になるまでのクロック数と、出力値が一度有効になってから次の出力値が有効になるまでの周期を、出力信号のそれぞれについて記録し、
前記テストベンチ生成手段は、
前記入力印加・出力タイミング記録手段によって記録された、入力と出力の前記タイミング情報を読み込み、
前記回路に入力されるリセット信号が解除されてからのクロック数を計測し、前記クロック数が、入力を印加するクロック数と一致したとき、又は、入力を印加する周期と一致したときに、入力を印加し、
前記リセット信号が解除されてからのクロック数と、出力が有効になるまでのクロック数が一致したとき、又は、出力が有効になるまでの周期が一致したときに、出力を観測し期待値と照合するような、
テストベンチを作成して、前記テストベンチ記憶に格納する、
ことを特徴とする請求項1記載の動作合成装置。
The input application / output observation timing recording means refers to the control data flow graph of the circuit, the number of clocks until the input value is applied after the reset is released, and the next time after the input is applied once. Record timing information consisting of the period until the input is applied for each input signal,
Record the number of clocks from when reset is released until the output value becomes valid, and the period from when the output value becomes valid until the next output value becomes valid, for each output signal .
The test bench generating means includes
Read the timing information of input and output recorded by the input application / output timing recording means,
The number of clocks after the reset signal input to the circuit is released is measured, and when the number of clocks matches the number of clocks to which the input is applied or when the number of clocks matches the period of applying the input Apply
When the number of clocks after the reset signal is canceled and the number of clocks until the output becomes valid, or when the period until the output becomes valid, the output is observed and the expected value Like matching,
Create a test bench and store it in the test bench storage unit ,
The behavioral synthesis device according to claim 1.
入力印加出力観測タイミング記録手段と、テストベンチ生成手段を備え、動作合成を用いて動作記述をRTL(Register Transfer Level)に変換する動作合成装置による動作合成方法であって、
前記入力印加出力観測タイミング記録手段が、回路の入力信号と出力信号に関して、リセットが解除されてから入力値、出力値がそれぞれ有効になるまでのクロック数と、入力印加、出力観測の周期をそれぞれ示すタイミング情報を、回路の前記動作記述の宣言部の入力信号と出力信号の注釈欄にそれぞれ付加し、記憶装置に記憶し、
前記テストベンチ生成手段が、前記動作記述に対するRTL情報を記憶したRTL記憶部からRTL情報を読み出し、前記記憶装置から前記回路の動作記述の宣言部の入力信号と出力信号の注釈欄を参照し、
リセット解除からのクロック数を計測し、前記クロック数と、前記入力信号と前記出力信号のタイミング情報と一致したときに、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成しテストベンチ記憶部に記憶する、ことを特徴とする動作合成方法。
A behavioral synthesis method by a behavioral synthesis apparatus that includes an input application output observation timing recording unit and a test bench generation unit, and converts behavioral descriptions into RTL (Register Transfer Level) using behavioral synthesis,
The input application output observation timing recording means, for the input signal and output signal of the circuit, the number of clocks until the input value and the output value become valid after the reset is released, and the period of input application and output observation, respectively. The timing information shown is added to the input signal and output signal annotation fields in the declaration part of the operation description of the circuit, respectively, and stored in the storage device,
The test bench generation means reads RTL information from an RTL storage unit that stores RTL information for the behavioral description, and refers to an annotation field of an input signal and an output signal of a declaration unit of the circuit behavioral description from the storage device,
Tests that measure the number of clocks from reset release and perform application of input to the circuit and observation of the output of the circuit when the number of clocks matches the timing information of the input signal and the output signal. A behavioral synthesis method characterized in that a bench is generated and stored in a test bench storage unit .
動作合成を用いて動作記述をRTL(Register Transfer Level)に変換する動作合成装置を構成するコンピュータに、
回路の入力信号と出力信号に関して、リセットが解除されてから入力値、出力値がそれぞれ有効になるまでのクロック数と、入力印加、出力観測の周期をそれぞれ示すタイミング情報を、回路の前記動作記述の宣言部の入力信号と出力信号の注釈欄にそれぞれ付加し、記憶装置に記憶する入力印加出力観測タイミング記録処理と、
前記動作記述に対するRTL情報を記憶したRTL記憶部からRTL情報を読み出し、前記記憶装置から前記回路の動作記述の宣言部の入力信号と出力信号の注釈欄を参照し、
リセット解除からのクロック数を計測し、前記クロック数と、前記入力信号と前記出力信号のタイミング情報と一致したときに、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成しテストベンチ記憶部に記憶するテストベンチ生成処理を、実行させるプログラム。
In a computer constituting a behavioral synthesis device that converts behavioral description into RTL (Register Transfer Level) using behavioral synthesis,
Regarding the input and output signals of the circuit, the number of clocks from when reset is released until the input value and output value become valid, and timing information indicating the period of input application and output observation, respectively, are described in the operation description of the circuit. An input application output observation timing recording process to be added to the annotation field of the input signal and the output signal of the declaration part of each and stored in the storage device,
Read RTL information from the RTL storage unit storing RTL information for the behavioral description, refer to the input signal and output signal annotation fields in the declaration part of the circuit behavioral description from the storage device,
Tests that measure the number of clocks from reset release and perform application of input to the circuit and observation of the output of the circuit when the number of clocks matches the timing information of the input signal and the output signal. A program that executes a test bench generation process that generates a bench and stores it in the test bench storage unit .
JP2011192362A 2011-09-05 2011-09-05 Behavioral synthesis apparatus, method, and program having test bench generation function Active JP5287955B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011192362A JP5287955B2 (en) 2011-09-05 2011-09-05 Behavioral synthesis apparatus, method, and program having test bench generation function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011192362A JP5287955B2 (en) 2011-09-05 2011-09-05 Behavioral synthesis apparatus, method, and program having test bench generation function

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007019451A Division JP4853312B2 (en) 2007-01-30 2007-01-30 Behavioral synthesis apparatus, method, and program having test bench generation function

Publications (2)

Publication Number Publication Date
JP2011253564A JP2011253564A (en) 2011-12-15
JP5287955B2 true JP5287955B2 (en) 2013-09-11

Family

ID=45417379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011192362A Active JP5287955B2 (en) 2011-09-05 2011-09-05 Behavioral synthesis apparatus, method, and program having test bench generation function

Country Status (1)

Country Link
JP (1) JP5287955B2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001060210A (en) * 1999-08-20 2001-03-06 Nec Corp Lsi verification method and device and recording medium
JP2004145670A (en) * 2002-10-24 2004-05-20 Osaka Industrial Promotion Organization Method and device for generating test bench, and computer program

Also Published As

Publication number Publication date
JP2011253564A (en) 2011-12-15

Similar Documents

Publication Publication Date Title
JP4853312B2 (en) Behavioral synthesis apparatus, method, and program having test bench generation function
JP4994393B2 (en) System and method for generating multiple models at different levels of abstraction from a single master model
US7743352B2 (en) Computer implemented method of high-level synthesis for the efficient verification of computer software
US20060130029A1 (en) Programming language model generating apparatus for hardware verification, programming language model generating method for hardware verification, computer system, hardware simulation method, control program and computer-readable storage medium
JP5065113B2 (en) Equivalence verification method, equivalence verification program, and equivalence verification program generation method
US8589837B1 (en) Constructing inductive counterexamples in a multi-algorithm verification framework
WO2016073520A1 (en) Hardware/software partitioning performance estimation
US8418099B2 (en) Performance counters for integrated circuits
US8365114B2 (en) Logic modification synthesis
US10331830B1 (en) Heterogeneous logic gate simulation using SIMD instructions
US10162915B2 (en) Method and system for emulation of multiple electronic designs in a single testbench environment
JP6249827B2 (en) Simulation apparatus and simulation program
JP5287955B2 (en) Behavioral synthesis apparatus, method, and program having test bench generation function
Ghosh et al. Case Study: SoC Performance Verification and Static Verification of RTL Parameters
JP5454349B2 (en) Performance estimation device
US7051303B1 (en) Method and apparatus for detection and isolation during large scale circuit verification
US11023357B1 (en) Method and system for sequential equivalence checking
US7447621B1 (en) PLI-less co-simulation of ISS-based verification systems in hardware simulators
US7246053B2 (en) Method for transforming behavioral architectural and verification specifications into cycle-based compliant specifications
Stotland et al. Standalone functional verification of multicore microprocessor memory subsystem units based on application of memory subsystem models
JP6473023B2 (en) Performance evaluation module and semiconductor integrated circuit incorporating the same
Datta et al. Formal verification of a public-domain DDR2 controller design
JP5262678B2 (en) Behavioral synthesis system, behavioral synthesis method, and behavioral synthesis program
Vivenzio Advanced High-performance Bus (AHB) architecture verification
Parshionikar et al. Verification of 32-Bit Memory Using Layered Testbench with Optimum Functional Coverage and Constrained Randomization

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130520

R150 Certificate of patent or registration of utility model

Ref document number: 5287955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150