JP2008186252A - テストベンチ生成機能を有する動作合成装置と方法及びプログラム - Google Patents

テストベンチ生成機能を有する動作合成装置と方法及びプログラム Download PDF

Info

Publication number
JP2008186252A
JP2008186252A JP2007019451A JP2007019451A JP2008186252A JP 2008186252 A JP2008186252 A JP 2008186252A JP 2007019451 A JP2007019451 A JP 2007019451A JP 2007019451 A JP2007019451 A JP 2007019451A JP 2008186252 A JP2008186252 A JP 2008186252A
Authority
JP
Japan
Prior art keywords
output
input
signal
circuit
timing signal
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.)
Granted
Application number
JP2007019451A
Other languages
English (en)
Other versions
JP4853312B2 (ja
Inventor
Takashi Takenaka
崇 竹中
Teru Mukoyama
輝 向山
Kazutoshi Wakabayashi
一敏 若林
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 JP2007019451A priority Critical patent/JP4853312B2/ja
Priority to US12/022,573 priority patent/US8091051B2/en
Publication of JP2008186252A publication Critical patent/JP2008186252A/ja
Priority to US13/336,328 priority patent/US8386973B2/en
Application granted granted Critical
Publication of JP4853312B2 publication Critical patent/JP4853312B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】動作シミュレーションとRTLシミュレーションで同じテストベクタを使用できるためのテストベンチを生成する動作合成装置及び方法及びプログラムを提供する。
【解決手段】入力印加のタイミング及び出力観測のタイミングを表す信号、及び前記入力印加タイミング信号と前記出力観測タイミング信号のための論理回路を生成する入力印加・出力信号観測タイミング信号生成手段104と、当該信号を観測して入力印加、及び、出力観測をおこなうテストベンチを作成するテストベンチ生成手段106と、を有する。
【選択図】図1

Description

本発明は、半導体集積回路の動作を記述した動作レベル回路記述から、具体的な機能(回路)を記述したRTL(Register Transfer Level)回路記述を生成する動作合成装置、方法及びプログラムに関し、特に、生成されたRTL回路を検証するためのテストベンチを出力できる動作合成装置、動作合成方法及び動作合成プログラムに関する。
近年、システムLSIの設計では、抽象度の高いレベルで設計し、動作合成によりRTLを生成する設計手法が採用され始めている。
この種の設計手法では、まず、システムLSIの所望の動作を実現する動作記述を設計する。
次に、動作シミュレーションにより、設計した動作記述が確かに回路の所望の動作を達成しているか、すなわち、設計が正しいかを確認する。
そして、設計が正しければ、動作合成を用いて動作記述をRTLに変換する。
上記設計手法によりLSIの設計を行うとき、動作シミュレーションで使用したテストベクタを、動作合成後のRTLのシミュレーションでも使用したいという要求がある。この要求は、例えば以下の第一、第二を目的としている。
第一に、動作合成前の動作記述と動作合成後のRTLとが同じ機能を実現しているかを確かめるためである。
動作記述とRTLが同じ機能を実現していない場合、動作シミュレーションで動作記述が回路の所望の動作を達成していることを確認しても意味を成さない。なぜなら、結果として、所望の動作を実現する回路を設計できていないことになるためである。
従来、動作記述とRTLが同じ機能を実現しているか否かの確認は、動作シミュレーションとRTLシミュレーションとで同一テストベクタを使用し、それぞれのシミュレーション結果が同じであることを比較することで行われている。
第二に、動作合成後の回路の性能を確かめるためである。
一般に、動作記述にはタイミングの情報が含まれていないため、ある機能を達成するためにどのくらいの時間を必要とするかといった、回路性能を確かめることができない。
対して、RTLシミュレーションを行うことで、ある機能を達成するために必要な時間、すなわち、回路性能を求めることができる。
そこで、従来手法において、設計した動作記述が所望の性能を達成できるか否かは、動作シミュレーションとRTLシミュレーションとで同じテストベクタを使用し、RTLシミュレーションで計測される回路性能をもって判断している。
しかしながら、動作シミュレーションで使用したテストベクタを、そのままでは、RTLシミュレーションには使用することはできない。
その理由は、入力印加タイミング、出力観測タイミングの問題のためである。
一般に、動作記述には、時間の概念(クロック)がない。もしくは、時間の概念があっても、RTLの時間とはその粒度が異なっている。このため、動作シミュレーションで使用したテストベクタの入力データ系列を、RTLシミュレーションでクロック毎に印加しても、動作シミュレーションと同じ結果を得ることができない。同様に、RTLシミュレーションでクロック毎に出力を観測しても、動作シミュレーションと同じ結果を得ることはできない。
特許文献1(特開2005−78402号公報)には、上記問題点の解決を図るための動作合成システムが開示されている。特許文献1に記載された動作合成システムは、主に、前述した第一の問題(動作シミュレーションで使用したテストベクタの入力データ系列を、RTLシミュレーションでクロック毎に印加しても、動作シミュレーションと同じ結果を得ることができないという問題)を解決することを意図したものである。この従来の動作合成システムは、入力系列をファイルから読み込むファイル読み込み関数、出力系列をファイルへ書き出すファイル書き込み関数が、動作記述に記載されていることを前提とする。ファイル読み込み関数、及び、ファイル書き込み関数をファイル関数と総称する。この従来の動作合成システムは、構文解析手段と、コントロールデータフローグラフ作成手段と、スケジューリング・バインディング手段と、テストベンチ生成手段と、RTL生成手段とから構成されている。このような構成を有する従来の動作合成システムは、次のように動作する。
すなわち、構文解析手段、コントロールデータフローグラフ作成手段において動作記述中のファイル関数を残したままにしておく。
作成したコントロールデータフローグラフを元に、リソースバインディングとスケジューリングを行ってRTLを作成する。
作成したRTL上において、最初の入力端子からのデータ、変数の入力を切り替えるマルチプレクサのセレクト信号、又は、出力端子に出力されるデータを切り替えるマルチプレクサのセレクト信号を利用して、ファイル関数に関わるファイル入力、又はファイル出力の条件を表現する。
しかしながら、特許文献1に記載の動作合成システムには、動作記述中にファイル関数があることが前提条件であり、この前提条件を満たす動作記述にしか適用できないという問題がある。
また、等価性検証方法の一例が、特許文献2(特開2004−145712号公報)に開示されている。特許文献2に記載された等価検証方法は、主に、前述の第一の問題を解決することを意図したものである。この等価検証方法は、RTLでのシミュレーション結果での入力信号確定時から出力信号確定時までの遅れサイクル数に基づいて比較タイミングを求め、比較タイミングにおけるRTLのシミュレーション結果の出力信号の値と、動作シミュレーションの出力信号とを比較するものであるが、該手法が適用可能な回路の種類が限られている、という問題がある。
これは、入力信号毎に、入力値印加タイミングが異なる回路についての考慮がないためである。
さらには、入力データによって出力信号が確定するまでのサイクル数が変化する場合など、「入力信号確定時から出力信号確定時までの遅れサイクル数」に基づいて比較タイミングを求めることができない場合についての考慮がないためである。
なお、特許文献3(米国特許明細書第6、845、341号)には、性能評価システムが開示されている。この性能評価システムは、概略次のように動作する。すなわち、動作シミュレーション、及びRTLシミュレーションを同時に実行するテストベンチを作成する。動作記述とテストベンチの間、及び、RTLとテストベンチの間には、動作シミュレーションとRTLシミュレーションの入力タイミング、及び、出力タイミングの違いを吸収するためのモジュールが挿入される。このようにして、動作シミュレーションとRTLシミュレーションとが同一テストベクトルを入力し、RTLがシミュレーションを実行するために必要なクロック数を計測することで、その性能を評価する。
特開2005−78402号公報 特開2004−145712号公報 米国特許第6、845、341号明細書(US6、845、341 B2)(Fig2)
従来のシステムにおいては、動作シミュレーションで使用したテストベクタをそのままでは、RTLシミュレーションには使用できない、という課題がある。
その理由は、前述したように、入力印加タイミング、出力観測タイミングの問題のためである。この問題を解決しようとして為された各種提案は、前述のように、十分であるとはいえない。
また、上記課題の別の理由として、入力端子、出力端子の共有化がある。一般に、動作記述の入力端子、出力端子が、RTLの入力端子、出力端子と一対一対応をしているとは限らない。
さらに、上記課題の別の理由は、動作記述では表現できない動作の問題のためである。動作記述の中には、リセット中の入出力の挙動を指定しないものも多い。例えば、動作記述にC言語を使用する場合にはリセット中の入出力の挙動を指定しない(SystemC言語のようにリセット中の入出力の挙動を指定する動作記述のための言語も存在する)。
そこで、RTLシミュレーション時にリセット期間中に入力値の印加、出力値の観測を行なっても、動作シミュレーションと同じ結果を得ることができない。
さらにまた前記課題の別の理由は、外部モデル(共有メモリのモデル、メモリモデル、演算器モデルなど)の問題のためである。動作合成は、動作記述中の配列をRTLではメモリで実現したり、動作記述中の変数をRTLではモジュール外のレジスタで実現したりする。
また、動作記述中の演算をRTLの演算器で実現するときに、演算器の内部論理の詳細を省略したブラックボックスとして出力することがある。
そのため、RTLシミュレーションでは、メモリのシミュレーションモデルやモジュール外のレジスタ、及び、ブラックボックスとして出力された演算器のシミュレーションモデルを用意しなければ、シミュレーションを実行することができない。
したがって、本発明は、上記課題の認識に基づき創案されたものであって、その目的は、動作合成前に使用したテストベクトルを動作合成後に得られた回路にも利用可能とするテストベンチを出力できる動作合成装置、方法並びにプログラムを提供することにある。
本願で開示される発明は、前記課題を解決するため、概略以下の構成とされる。
本発明に係る第1のシステム(装置)は、回路の入力と出力に関して、入力印加タイミング信号と出力観測タイミング信号とを作成するとともに、前記入力印加タイミング信号と前記出力観測タイミング信号のための論理回路を作成する入力印加・出力観測タイミング信号生成手段と、前記入力印加タイミング信号と前記出力観測タイミング信号の値に従って、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成するテストベンチ生成手段と、を備えている。
本発明に係る第2のシステム(装置)は、回路の動作記述から、入力印加タイミング信号と出力観測タイミング信号を認識し、前記入力印加タイミング信号と前記出力観測タイミング信号の値に従って、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成するテストベンチ生成手段を備えている。
本発明に係る第3のシステム(装置)は、リセット解除からのクロック数を計測し、前記クロック数が所定の値と一致したときに入力の印加、出力の観測を行うテストベンチを出力するテストベンチ生成手段を備えている。
本発明に係る第4のシステム(装置)は、リセット信号が有効である間、又はストール信号が有効である間は、入力の印加、出力の観測を行わないテストベンチを出力するテストベンチ生成手段を備えている。
本発明に係る第5のシステム(装置)は、RTL(レジスタトランスファレベル)に、ブラックボックスとして出力されたハードウェアリソースのためのシミュレーションモデルを備えたテストベンチを出力するテストベンチ生成手段を備えている。
さらに、前記した第1乃至第5のシステム(装置)に対応する方法の発明とプログラムの発明が提供される。
本発明によれば、動作シミュレーションとRTLシミュレーションで同じテストベクタを使用することができる。その理由は、本発明においては、動作合成前に使用したテストベクトルを動作合成後に得られた回路にも使用できる、テストベンチを出力できるためである。
上記した本発明についてさらに詳細に説述すべく添付図面を参照して説明する。
<実施の形態1>
図1を参照すると、本発明の第1の実施の形態に係る動作合成システム(装置)は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100と、データ記憶手段(データ記憶装置)110とを備えている。
コンピュータ(中央処理装置;プロセッサ;データ処理装置)100は、スケジューリング手段101と、バインディング手段102と、FSM(finite state machine)生成手段103と、入力印加・出力観測タイミング信号生成手段104と、RTL(レジスタトランスファレベル)等のHDL(Hardware Description Language)生成手段(RTL生成手段)105と、テストベンチ生成手段106を含む。これらの手段はそれぞれ概略つぎのように動作する。
スケジューリング手段101は、動作記述を状態へ割り当てる。すなわち、動作記述中の演算、条件判定、入力端子からの値の入力、出力端子への値の出力、配列読み込み、配列書き込みを、それぞれ実行される状態に割り当てる。
バインディング手段102は、動作記述をハードウェアリソースに割り当てる。すなわち、
動作記述中の演算を演算器に、
動作記述中の入力端子をRTLの入力端子に、
動作記述中の出力端子をRTLの出力端子に、
動作記述中の配列をRTLのメモリ又はレジスタファイル
に割り当てる。
このとき、動作記述中の複数の入力信号がRTLの一つの入力信号に割り当てられたり、また、動作記述中の複数の出力信号がRTLの一つの出力信号に割り当てられることもある。また、同様に、動作記述中の複数の演算がRTLの一つの演算器に割り当てられることもある。これらを「ハードウェアリソースの共有」と呼ぶ。
有限状態機械(FSM)生成手段103は、状態の遷移を制御する有限状態機械(FSM)とハードウェアリソースを制御する制御論理回路を作成する。ハードウェアリソースを制御する制御論理回路とは、スケジューリング手段101によって得られた状態への割り当て、及び、バインディング手段102によって得られたハードウェアリソースへの割り当てに従って、ハードウェアリソースを制御するための論理回路である。すなわち、動作記述中の演算が割り当てられた状態で割り当てられた演算器によって実行されるための論理回路、動作記述中の条件判定がこれに割り当てられた状態で実行されるための論理回路、及び、動作記述中の入力端子からの値の入力・出力端子への値の出力・配列読み込み・配列書き込みが、それぞれ割り当てられた状態において、RTLの入力端子からの値の入力・出力端子への値の出力・メモリ読み込み・メモリ書き込みによって実現されるための論理回路である。
入力印加・出力観測タイミング信号生成手段104は、入力端子及び出力端子のそれぞれ対して、これに対応する新たな信号端子を作成する。該信号を「入力印加・出力観測タイミング信号」という。
さらに、入力印加・出力観測タイミング信号生成手段104は、対応する入力信号・出力信号に値がそれぞれ入力・出力される状態及び条件においてのみ、入力印加・出力観測タイミング信号に、所定の値(「アクティブ値」という)が出力されるように論理回路を作成する。
RTL生成手段105は、有限状態機械生成手段103で作成したFSMと制御論理回路、及び、入力印加・出力観測タイミング信号生成手段104で作成した論理回路、及び、ハードウェアリソースをHDLに変換し、記憶装置110に格納する。
テストベンチ生成手段106は、テストベンチを作成する。テストベンチには、入力印加・出力観測タイミング信号を観測し、当該信号にアクティブ値が出力されたときに入力を印加、もしくは出力を観測し期待値と照合するような論理を作成する。テストベンチ生成手段106は、作成したテストベンチを記憶装置110に格納する。
なお、本実施形態の動作合成装置は、図1に示した各構成要素の機能を実現するLSIや論理回路等によって構成されていてもよく、図2に示すような情報処理装置(コンピュータ)によって実現されてもよい。
図2に示す情報処理装置は、CPUを含む処理装置100と、記憶装置110と、記録媒体(「記憶媒体」ともいう)500とを有し、処理装置100は、記録媒体500に格納された動作合成用プログラムを読み込み、該動作合成プログラムにしたがってCPUにより、以下に記載する本実施形態のスケジューリング手段101及びバインディング(付帯情報変換)手段102の処理をそれぞれ実行する。
また、記憶装置110は、そのメモリ領域が、動作記述記憶部111、RTL記憶部112、テストベンチ記憶部113にそれぞれ分割されて使用される。
次に、図1及び図3のフローチャートを参照して、本実施の形態の全体の動作について詳細に説明する。
動作記述記憶部111には動作記述が予め記憶されている。動作記述は、Verilog−HDL、VHDL、SystemVerilogといったハードウェア記述言語(HDL)や、C言語、C++言語、C#言語、SystemC、SpecC、Java(登録商標)、Perl、Scheme、Lispなどのプログラミング言語により表現される。C言語、C++言語、Java(登録商標)に回路を表現するための拡張を行った言語で表現されることもある。動作記述は、例えば設計者によって準備される。
まず、コンピュータ100は、記憶装置110内の動作記述記憶部111から動作記述を読み込み、コンピュータ100におけるスケジューリング手段101によって、動作記述を状態へ割り当てる。すなわち、動作記述中の演算、条件判定、入力、出力、配列読み込み、配列書き込みを状態に割り当てる(図3のステップA1)。
次に、バインディング手段102によって動作記述をハードウェアリソースに割り当てる。すなわち、
動作記述中の演算を演算器に、
入力を入力端子に、
出力を出力端子に、
配列をメモリ又はレジスタファイル
に割り当てる(図3のステップA2)。
さらに、FSM生成手段103によって、状態の遷移を制御する有限状態機械(FSM)とハードウェアリソースを制御する論理を作成する(図3のステップA3)。
さらに、入力印加・出力観測タイミング信号生成手段104によって、入力印加・出力観測タイミング信号と、当該信号のための論理回路を作成する(図3のステップA4)。
さらに、RTL生成手段105によって、ステップA3において有限状態機械生成手段103が作成したFSMと制御論理回路、及び、ステップA4において入力印加・出力観測タイミング信号生成手段が作成した論理回路、及び、ハードウェアリソースをHDLに変換し、記憶装置110に格納する(図3のステップA5)。HDLには、VHDL、Verilog−HDL、SystemVerilog、SystemC、SpecC、C言語、C++言語、C#言語などが使用される。
テストベンチ生成手段106によってテストベンチを生成する。テストベンチ生成手段106は作成したテストベンチを記憶装置110に格納する(ステップA6)。テストベンチも、RTLと同様に、VHDL、Verilog−HDL、SystemVerilog、SystemC、SpecC、C言語、C++言語、C#言語などを用いて表現される。
次に、本実施の形態の作用効果について説明する。
本実施の形態では、入力印加・出力観測タイミング信号生成手段104によって、対応する入力信号・出力信号に値がそれぞれ入力・出力される状態、及び条件を、外部に伝えるための信号を生成し、テストベンチ生成手段106によって、当該信号を観測して、入力を印加、又は、出力を観測し期待値と照合するようなテストベンチを作成するというように構成されているため、適切なタイミングで入力を印加、又は、出力を観測して期待値と照合するようなテストベンチを作成することができる。
<実施の形態2>
次に、本発明の第2の実施の形態について説明する。図11は、本発明の第2の実施の形態の構成を示す図である。図12は、本発明の第2の実施の形態の動作を説明する流れ図である。図11を参照すると、本発明の第2の実施の形態は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100が、図1に示した前記第1の実施の形態における入力印加・出力観測タイミング信号生成手段104を削除し、テストベンチ生成手段106の代わりに、別のテストベンチ生成手段107を備えている。図12を参照すると、図3の流れ図からステップA4、A6が削除され、ステップA7があらたに追加されている。
本実施形態におけるテストベンチ生成手段107は、前記第1の実施形態のテストベンチ生成手段106とは、以下の点で異なる。
すなわち、テストベンチ生成手段107は、動作記述中の信号を入力印加・出力観測タイミング信号として認識する。その上で、当該信号を観測し、当該信号にアクティブ値が出力されたときに入力を印加、もしくは、出力を観測し期待値と照合するような論理を作成する(図12のステップA7)。そして、作成したテストベンチを記憶装置110に格納する。
<実施の形態3>
図14を参照すると、本発明の第3の実施の形態は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100が、図1に示された第一の実施の形態における、入力印加・出力観測タイミング信号生成手段104の代わりに、入力印加・出力タイミング記録手段108を備え、テストベンチ生成手段106の代わりに、テストベンチ生成手段109を備える点で異なる。
入力印加・出力観測タイミング記録手段108は、概略以下のように動作する。
コントロールデータフローグラフを参照して、リセットが解除されてから、入力値を印加するまでのクロック数と、一度入力を印加してから次の入力を印加するまでの周期を、入力それぞれについて記録する。また、同時に、リセットが解除されてから出力値が有効になるまでのクロック数と、出力値が一度有効になってから次の出力値が有効になるまでの周期を、出力信号それぞれについて記録する。
テストベンチ生成手段109は、概略、以下のように動作する。入力印加・出力タイミング記録手段108によって記録された、入出力タイミングを読み込み、リセット信号が解除されてからのクロック数を計測し、このクロック数が、入力を印加するクロック数と一致したとき、又は、入力を印加する周期と一致したときに、入力を印加するテストベンチを作成する。また、同時に、リセットが解除されてからのクロック数と、出力が有効になるまでのクロック数が一致したとき、又は、出力が有効になるまでの周期が一致したときに、出力を観測し期待値と照合するようなテストベンチを作成する。作成したテストベンチを記憶装置110に格納する。
本実施形態は、特許文献2と以下の点で異なっている。すなわち、出力観測タイミングを、入力が確定してからの遅れサイクルではなく、リセットが解除されてからのサイクルと、周期をもとに決定している。
入力、出力の区別なく、リセットが解除されてからのサイクル数に基づいて、入力の印加、出力の観測をすることで、特許文献2で開示された発明を適用できない回路であっても、本発明を適用することができる。
<実施の形態4>
次に、本発明の第4の実施の形態について説明する。本発明の第4の実施の形態は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100が、図1に示された第1の実施の形態における、テストベンチ生成手段106が、以下の機能を備える点で異なる。
テストベンチ生成手段106が作成するテストベンチには、入力印加・出力観測タイミング信号に加えて、リセット信号を観測し、入力印加・出力観測信号にアクティブ値が出力されていても、リセット信号が有効になっている間は、入力の印加も出力の観測も行わない。作成したテストベンチを記憶装置110に格納する。
テストベンチ生成手段106は、また、概略以下のようにも動作する。すなわち、テストベンチ生成手段106が作成するテストベンチには、入力印加・出力観測タイミング信号に加えて、ストール信号を観測し、入力印加・出力観測信号にアクティブ値が出力されていても、ストール信号が有効になっている間は、入力の印加も出力の観測も行わない。作成したテストベンチを記憶装置110に格納する。
<実施の形態5>
次に、本発明の第5の実施の形態について説明する。本発明の第5の実施形態は、プログラム制御により動作するコンピュータ(中央処理装置;プロセッサ;データ処理装置)100が、図1に示された第1の実施の形態における、テストベンチ生成手段106が、以下の機能を備える点で異なる。テストベンチ生成手段106は、概略以下のように動作する。
RTL生成手段105で得られたRTL単独ではシミュレーションが実行できない場合に、これに対応して、必要なシミュレーションモデルをもつテストベンチを生成する。
RTL単独ではシミュレーションできない場合とは、例えば、動作記述に配列が存在し、これに対して、RTLには、メモリにアクセスするためのインターフェイス回路が生成されている場合がある。この場合、メモリのためのシミュレーションモデルを有するテストベンチを作成する。
また、例えば、動作記述に掛け算、割り算など複雑な演算が存在し、これに対して、RTLには、当該演算部分を、ブラックボックスとして出力している場合がある。この場合、これに対応する演算のシミュレーションモデルを有するテストベンチを作成する。
以下では、いくつかの具体的な実施例を用いて説明する。
<実施例1>
まず、本発明の第1の実施例を説明する。本発明の第1の実施例は、前記した本発明の第1の実施の形態に対応するものである。図4を参照すると、動作記述が例示されている。図4の動作記述はC言語で表現されている。
関数func()の入力端子はint型の変数a、b、c、dであり、出力端子は int型の変数oである。当該関数の出力値oは、
入力cの値が0のときは、入力すべて(a、b、c、d)の総和であり、
入力cの値が0以外のときは、入力a、bの和となる。動作記述は、記憶装置110の動作記述記憶部111に予め記憶されている。
第1の実施例の動作合成装置は、図4の動作記述を記憶装置110の動作記述記憶部111から読み出し、RTL生成手段105が図9に示すRTLを作成し、テストベンチ生成手段106が、図10に示すテストベンチを作成し、それぞれ、記憶装置110のRTL記憶部112とテストベンチ記憶部113に格納する。
まず、コンピュータ100におけるスケジューリング手段101が動作記述を状態へ割り当てる(図3のステップA1)。すなわち、動作記述中の演算、条件判定、入力、出力、配列読み込み、配列書き込みを状態に割り当てる。
図4の動作記述には、
5行目に、入力a、b及び加算+、
6行目に入力cと条件判定==、
7行目に入力c、dと加算+、
9行目に加算+と出力o
が指定されている。
図5を参照すると、スケジューリング手段101による状態への割り当てが例示されている。図5では、スケジューリング手段101によって、
5行目の入力a、b及び加算+が、状態STATE1に、
6行目の入力cと条件判定==及び、7行目の入力c、dと加算+がそれぞれ状態STATE2に、
9行目の加算+と出力oが、状態STATE3
に割り当てられていることを示している。
次に、コンピュータ100におけるバインディング手段102が、動作記述をハードウェアリソースに割り当てる(図3のステップA2)。
すなわち、
動作記述中の演算を演算器に、
動作記述の入力端子をRTLの入力端子に、
動作記述の出力端子をRTLの出力端子に、
動作記述の配列を、RTLのメモリ又はレジスタファイル
に割り当てる。
図6を参照すると、バインディング手段102による演算器への割り当てが模式的に例示されている。
図6(A)の5行目の加算+、7行目の加算+、及び9行目の加算+が、すべて一つの演算器ADD(図6(D))に割り当てられ、6行目の条件判定==が、比較器EQ(図6(E))に割り当てられていることを示している。
また、図7を参照すると、バインディング手段102による入力端子、出力端子への割り当てが例示されている。
図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))に、
それぞれ割り当てられていることを示している。
次に、有限状態機械(FSM)生成手段103が、状態の遷移を制御する有限状態機械(FSM)とハードウェアリソースを制御する制御論理回路を作成する(図3のステップA3)。
図8を参照すると、有限状態機械と制御論理回路、及び、該制御論理回路で制御されるハードウェアリソースが例示されている。この例は、Verilog−HDLで表現されている。図8に示す例において、有限状態機械及び制御論理回路は、状態レジスタstateとcase()文で表現されている。なお、図8は単に図面作成の都合で図8(A)、(B)に分図されており、module(入出力端子リスト)・・・endmoduleの範囲が一つの回路モジュールとなる。
また、ハードウェアリソースとして、入力端子、出力端子、演算器、記憶素子(レジスタ)が用いられている。入力端子には、iport1、iport2が用いられている。出力端子にはoport1が用いられている。演算器には、加算器ADD、比較器EQが用いられているが、図8に示す例では、加算+、比較==として表現されている。記憶素子(レジスタ)には、v0、v1が用いられている。その他、リセット信号rst、クロック信号clkが用いられている。モジュールmainは、概略以下のように動作する。
クロック信号clkの立ち上がりイベントで以下の動作が行われる。リセット端子rstの入力が1のとき、状態レジスタstateの値をT_STATE1とし、レジスタv0、v1、o_tを0に初期化する。
クロック信号clkの立ち上がりイベントで、リセット端子rstの入力が1でないとき、以下のように動作する。状態レジスタstateの値がT_STATE1の時には、入力端子iport1、iport2からそれぞれ値を読み込み、当該値の和を加算器ADDによって計算し、レジスタv0に計算結果を格納する。さらに、状態レジスタstateの値をT_STATE2に更新する。
状態レジスタstateの値がT_STATE2の時には、入力端子iport1、iport2からそれぞれ値を読み込み、iport1の値を比較器EQによって比較する。入力端子iport1から読み込んだ値が0である場合には、読み込んだ値の和を加算器ADDによって計算し、レジスタv1に計算結果を格納する。さらに、状態レジスタstateの値をT_STATE3に更新する。
状態レジスタstateの値がT_STATE3の時には、レジスタv0とv1の値の和を加算器ADDによって計算し、出力端子oport1に出力する。さらに、状態レジスタstateの値をT_STATE1に更新する。
状態レジスタstateの値は、T_STATE1、T_STATE2、T_STATE3、T_STATE1、・・・、の順番で更新される。
テストベンチは、入力端子iport1、iport2にそれぞれ入力a、b、c、dの値を適切なタイミングで印加し、出力端子oport1の値を適切なタイミングで観測することで、動作記述の関数func()の動作を実現する。
次に、入力印加・出力観測タイミング信号生成手段104が、入力印加・出力観測タイミング信号と、当該信号のための論理回路を作成する(図3のステップA4)。
図9を参照すると、入力印加・出力観測タイミング信号と、当該信号のための論理回路を、図8に付加した例が図示されている。
図4の動作記述には、入力端子a、b、c、d及び出力端子oが備わっている。図9を参照すると、入力a、b、c、dに対して、入力印加タイミング信号a_e、b_e、c_e、d_eが追加されている。また、出力信号oに対して、出力観測タイミング信号o_eが追加されている。また、それぞれの出力値を決定する論理回路も追加されている。
動作記述の入力信号aの5行目に相当する値は、スケジューリング手段、及び、バインディング手段による動作合成の結果のRTLでは、状態STATE1において、入力端子iport1より取得される。したがって、入力印加タイミング信号a_eも、状態STATE1においてのみ、アクティブ値(1(High))になるような論理回路(assign a_e= (state==T_STATE1)? 1'b1:1'b0;)が作成されている。
同様に、出力信号oは、状態STATE3において、出力端子oport1に出力される。したがって、出力観測タイミング信号o_eは、状態STATE3においてのみ、アクティブ値(1(High))になるような論理回路(assign o_e= (state==T_STATE3 )? 1'b1:1'b0;)が作成されている。
次に、RTL生成手段105が、FSM、制御論理回路、及び、入力印加・出力観測タイミング信号とその論理回路、及び、ハードウェアリソースをHDLに変換し、記憶装置110に格納する(図3のステップA5)。図9には、RTL生成手段105によって作成されたHDL(Verilog−HDL)が例示されている。
次に、テストベンチ生成手段106によってテストベンチを生成する。テストベンチには、入力印加・出力観測タイミング信号を観測し、当該信号にアクティブ値が出力されたときに入力を印加、もしくは出力を観測し期待値と照合するような論理を作成する。
図10を参照すると、テストベンチ生成手段106によって作成されたテストベンチを示している。図10の例は、Verilog−HDLに似た擬似コードで表現されている。生成されたテストベンチは、概略以下のような動作をする。
入力印加タイミング信号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の入力値を印加する。
同様に、出力観測タイミング信号o_eの値がアクティブ値(1(High))のときに、出力端子oport1から出力信号oの値が出力されていることを想定して、出力端子oport1の値を観測し、出力信号oの期待値と比較照合する。図10において、モジュール main dut(入出力端子リスト)は、テスト対象モジュールである。
<実施例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への出力動作が指定されていることが異なる。
図13の動作記述において、出力信号a_e、b_e、c_e、d_e、o_eはそれぞれa、b、c、d、oの入力タイミング・出力タイミングをあらわす出力信号である。また、回路記述部には、それぞれ対応する信号の入力・出力アクセスがある場合にアクティブ値(1)を出力するような動作が指定されている。
宣言部において、信号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の入力タイミングを指定する信号であることを規定する。
逆に、信号cには、対応する信号がc_eであり、c_eがcの入力タイミングを指定する信号であることがコメント(プラグマ)で指定されている。7行目:“output int c_e;//pragma enable_signal_for c”のコメント記号“//”以下の“pragma enable_signal_for c”が、シミュレータへの指示(プラグマ)として、c_eがcの入力タイミングを指定する信号であることを規定する。
本発明の第2の実施例の動作合成装置は、図13の動作記述を、図11の記憶装置110の動作記述記憶部111から読み出し、スケジューリング手段101、バインディング手段102、FSM生成手段103、RTL生成手段105を経て、図9に例示されるモジュールmainを生成する。当該モジュールmainの動作は前述のとおりある。
次に、図11のテストベンチ生成手段107によってテストベンチを生成する。テストベンチには、入力印加・出力観測タイミング信号を観測し、当該信号にアクティブ値が出力されたときに入力を印加、もしくは出力を観測し期待値と照合するような論理を作成する。このとき、入力印加・出力観測タイミング信号には、動作記述にもともと存在した信号を利用する。
図10を参照すると、作成されたテストベンチが例示されている。この例は、Verilog−HDLに似た擬似コードで表現されている。
信号aの入力印加タイミング信号には、a_eが用いられている。これは、信号名の類似をもとに判別した信号である。
信号bの入力印加タイミング信号には、b_eが用いられている。これは、信号bのコメント(プラグマ)(図13参照)をもとに判別した信号である。
信号cの入力印加タイミング信号には、c_eが用いられている。これは、信号cのコメント(プラグマ)(図13参照)をもとに判別した信号である。
信号dの入力印加タイミング信号には、d_eが用いられている。これは、動作記述において、信号dの参照と信号d_eへの出力が並行して記述されていることから判別した信号である(図13の19と20行参照)。
図10のテストベンチの動作は前述のとおりである。
<実施例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の総和である。
動作記述は、図14の記憶装置110の動作記述記憶部111に予め記憶されている。
本発明の第3の実施例の動作合成装置は、図15の動作記述を、図14の記憶装置110の動作記述記憶部111から読み出し、RTL生成手段105が、図18に示したRTLと、テストベンチ生成手段109が、図19のテストベンチを作成し、それぞれ、記憶装置110のRTL記憶部112とテストベンチ記憶部113に格納する。
まず、コンピュータ100におけるスケジューリング手段101が動作記述を状態へ割り当てる。すなわち、動作記述中の演算、条件判定、入力、出力、配列読み込み、配列書き込みを状態に割り当てる。
図15の動作記述には、
11行目に入力a、b及び加算+、
12行目に入力b、c及び加算+、
13行目には出力o1、
14行目には加算+、
15行目には出力o2
が指定されている。
図16を参照すると、スケジューリング手段101による状態割り当てが例示されている。図16では、スケジューリング手段101によって、11行目の入力a、b及び加算+がSTAGE1に、12行目の入力b、c及び加算+がSTAGE2に、13行目の出力o1及び14行目の加算+がSTAGE3に、15行目の出力o2がSTAGE4に割り当てられていることを示している。
次にコンピュータ100のおけるバインディング手段102及びFSM生成手段103を経て図17のモジュールmainが生成される。
図17を参照すると、バインディング手段102、FSM生成手段103後に得られるモジュールmainが例示されている。図17の例は、Verilog−HDLで表現されている。当該モジュールはパイプライン回路として合成されている。STAGE1からSTAGE4までのすべてのステージがクロックに同期して毎クロック実行されるように動作する。
次に、入力印加・出力観測タイミング記録手段108は、コントロールデータフローグラフを参照して、リセットが解除されてから入力値を印加するまでのクロック数、及び、入力印加の周期を、入力信号それぞれについて記録する。また、リセットが解除されてから出力値が有効になるまでのクロック数と、出力観測の周期を、出力信号それぞれについて記録する。図18を参照すると、図17のモジュールmainに、これらの情報が記録されたモジュールmainが例示されている。
モジュールmainの入力信号a、bは、それぞれリセットが解除された次のクロックから、毎サイクル入力を印加するため、その情報が記載されている。すなわち、図18(A)に示すように、宣言部の入力信号a、bの各コメント行の1,1は、リセットが解除されてから1クロック後に有効となり、周期は1クロックサイクルであることを示している。
入力信号c、dは、それぞれリセットが解除されて2クロック後から、毎サイクル入力を印加するため、その情報が記載されている。すなわち、図18(A)に示すように、宣言部の入力信号c、dの各コメント行の2,1は、リセットが解除されてから2クロック後に有効となり、周期は1クロックサイクルであることを示している。
出力信号o1は、リセットが解除されてから3クロック後から、毎サイクル出力値が有効になるため、その情報が記載されている。すなわち、図18(A)に示すように、宣言部の出力信号o1のコメント行の3,1は、リセットが解除されてから3クロック後に有効となり、周期は1クロックサイクルであることを示している。
出力信号o2は、リセットが解除されてから4クロック後から毎サイクル出力値が有効になるため、その情報が記載されている。すなわち、図18(A)に示すように、宣言部の出力信号o2のコメント行の4,1は、リセットが解除されてから4クロック後に有効となり、周期は1クロックサイクルであることを示している。
次に、図14のRTL生成手段105及びテストベンチ生成手段109により、RTL及びテストベンチを作成し、それぞれ記憶装置110に格納する。
図19を参照すると、図14のテストベンチ生成手段109によって作成されたテストベンチが例示されている。図19の例は、Verilog−HDLに似た擬似コードで表現されている。
生成されたテストベンチは、概略以下のような動作をする。リセットが解除されてから1クロックサイクル後、且つ1クロック周期で入力端子a、bにそれぞれ入力信号a、bの値を印加する。
リセットが解除されてから2クロックサイクル後、且つ1クロック周期で入力端子c、dにそれぞれ入力信号c、dの値を印加する。
また、リセットが解除されてから3クロックサイクル後、且つ1クロック周期で出力端子o1の値を観測し、出力信号o1の期待値と照合する。
リセットが解除されてから4クロックサイクル後、且つ1クロック周期で出力端子o2の値を観測し、出力信号o2の期待値と照合する。
<実施例4>
次に本発明の第4の実施例を説明する。本発明の第4の実施例は、前記第4の実施の形態に対応するものである。図20を参照すると、本発明の第4の実施の形態のテストベンチ生成手段106が作成したテストベンチの例が示されている。
図20に示すように、生成されたテストベンチは、概略以下のような動作をする。
入力印加タイミング信号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の入力値を印加する。
出力観測タイミング信号o_eの値がアクティブ値(1(High))のとき、且つ、リセットが有効でないときに、出力端子oport1から出力信号oの値が出力されていることを想定して、出力端子oport1の値を観測し、出力信号oの期待値と比較照合する。
図21には、第4の実施の形態のテストベンチ生成手段106が作成した、テストベンチの別の例が示されている。
リセットが解除されてから1クロックサイクル後、且つ、1クロック周期、且つ、ストール信号が有効でないときに、入力端子a、bにそれぞれ入力信号a、bの値を印加する。またリセットが解除されてから2クロックサイクル後、且つ、1クロック周期、且つ、ストール信号が有効でないときに、入力端子c、dにそれぞれ入力信号c、dの値を印加する。
また、リセットが解除されてから3クロックサイクル後、4クロックサイクル後、且つ、1クロック周期、且つ、ストール信号が有効でないときに、出力端子o1、o2の値をそれぞれ観測し、期待値と照合する。
<実施例5>
次に本発明の第5の実施例を説明する。本発明の第5の実施例は、前記第5の実施の形態に対応するものである。図22を参照すると、動作記述の一例が示されている。この動作記述は、概略次のような動作を指定している。
まず、入力信号a、bから値を読み取り、配列ary[]の入力信号aの値の番地に入力信号bの値を書き込む。
次に、入力信号cから値を読み込み、配列ary[]の入力信号cの値の番地の値を読み出し出力信号o1に出力している。
図23を参照すると、本発明の第5の実施の形態のスケジューリング手段101、バインディング手段102、FSM生成手段103、RTL生成手段105を経て得られるRTLの一例が示されている。図23の記述では、配列ary[]にアクセスするためのメモリインターフェイス回路が作成されている。信号ad、rd、wd、weがそれぞれ、アドレス、読み込みデータ、書き込みデータ、書き込み有効フラグに対応している。
モジュールmainは、概略以下のように動作する。クロック信号clkの立ち上がりイベントで以下の動作が行われる。リセット端子rstの入力が1のとき、状態レジスタstateの値をT_STATE1とし、レジスタv0、v1、o_tを0に初期化する。
クロック信号clkの立ち上がりイベントで、リセット端子rstの入力が1でないとき、以下のように動作する。状態レジスタstateの値がT_STATE1の時には、入力信号a、bを読み込み、それぞれの値をレジスタad_t、wd_tにそれぞれ格納し、we_tに1を格納し、状態レジスタstateの値をT_STATE2に更新する。
状態レジスタstateの値がT_STATE2の時には、入力信号cを読み込み、その値をad_tに格納し、we_tに0を格納し、状態レジスタstateの値をT_STATE3に更新する。
状態レジスタstateの値がT_STATE3の時には、状態レジスタstateの値をT_STATE4に更新する。状態レジスタstateの値がT_STATE4の時には、読み込みデータrdを、レジスタo_tに格納し、状態レジスタstateの値をT_STATE1に更新する。状態レジスタstateの値は、T_STATE1、T_STATE2、・・・の順番で更新される。
図24を参照すると、テストベンチ生成手段106が生成したテストベンチが示されている。このテストベンチでは、テスト対象モジュール(main dut(・・・))のほかに、配列ary[]に対応するメモリのシミュレーションモデルm1(memory m1(・・・))が作成され、必要な結線がされている。
本発明によれば、動作記述と、動作合成後のRTLが、等価であることを確かめるといった用途に適用できる。また、動作合成後のRTLの性能が十分であるかを確かめるといった用途にも適用可能である。
以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
本発明の第1の実施の形態の構成を示すブロック図である。 本発明の第1の実施の形態の構成例を示すブロック図である。 本発明の第1の実施の形態の動作を示すフローチャートである。 動作記述の一例を示す図である。 スケジューリング結果の一例を示す図である。 バインディング結果の一例を示す図である。 バインディング結果の一例を示す図である。 FSM生成後の記述の一例を示す図である。 入力印加タイミング信号、出力観測タイミング信号と、その論理が作成された記述の一例を示す図である。 テストベンチの一例を示す図である。 本発明の第2の実施の形態の構成例を示すブロック図である。 本発明の第2の実施の形態の動作を示すフローチャートである。 動作記述の一例を示す図である。 本発明の第3の実施の形態の構成例を示すブロック図である。 実施例で用いられる動作記述の一例を示す図である。 スケジューリング結果の一例を示す図である。 FSM生成後の記述の一例を示す図である。 入力印加タイミング・出力観測タイミングを記録した記述の一例を示す図である。 テストベンチの一例を示す図である。 テストベンチの一例を示す図である。 テストベンチの一例を示す図である。 動作記述の一例を示す図である。 RTLの一例を示す図である。 テストベンチの一例を示す図である。
符号の説明
100 コンピュータ(中央処理装置;プロセッサ;データ処理装置)
101 スケジューリング手段
102 バインディング手段
103 FSM生成手段
104 入力印加・出力観測タイミング信号生成手段
105 RTL生成手段
106 テストベンチ生成手段
107 テストベンチ生成手段
108 入力印加・出力観測タイミング記録手段
109 テストベンチ生成手段
110 記憶装置
111 動作記述記憶部
112 RTL記憶部
113 テストベンチ記憶部
500 記録媒体

Claims (21)

  1. 回路の入力と出力に関して、入力印加タイミング信号と出力観測タイミング信号とを作成するとともに、前記入力印加タイミング信号と前記出力観測タイミング信号のための論理回路を作成する入力印加・出力観測タイミング信号生成手段と、
    前記入力印加タイミング信号と前記出力観測タイミング信号の値に従って、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成するテストベンチ生成手段と、
    を備えたことを特徴とする動作合成装置。
  2. 回路の動作記述から、入力印加タイミング信号と出力観測タイミング信号を認識し、
    前記入力印加タイミング信号と前記出力観測タイミング信号の値に従って、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成するテストベンチ生成手段を備えたことを特徴とする動作合成装置。
  3. 回路に対するリセット解除からのクロック数を計測し、前記クロック数が所定の値と一致したときに、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成するテストベンチ生成手段を備えたことを特徴とする動作合成装置。
  4. 前記テストベンチ生成手段は、前記回路に入力される、リセット信号が有効である間、又は、ストール信号が有効である間は、前記回路への入力の印加と前記回路の出力の観測を行わないようなテストベンチを生成する、ことを特徴とする請求項1記載の動作合成装置。
  5. 前記テストベンチ生成手段は、RTL(レジスタトランスファレベル)に、ブラックボックスとして出力されたハードウェアリソースのためのシミュレーションモデルを備えたテストベンチを生成する、ことを特徴とする請求項1記載の動作合成装置。
  6. 前記入力印加・出力観測タイミング信号生成手段は、前記回路の入力端子及び出力端子のそれぞれに対してそれぞれに対応する新たな信号を作成して、前記入力印加タイミング信号及び前記出力観測タイミング信号とし、
    対応する入力信号、出力信号に値がそれぞれ入力、出力される状態及び条件において、生成した前記入力印加タイミング信号と前記出力観測タイミング信号にそれぞれアクティブ値が出力されるように論理回路を作成し、
    前記テストベンチ生成手段は、前記入力印加タイミング信号及び前記出力観測タイミング信号を観測し、
    前記入力印加タイミング信号にアクティブ値が出力されたときに、入力を印加し、
    前記出力観測タイミング信号にアクティブ値が出力されたときに出力を観測し期待値と照合するような、論理の前記テストベンチを作成し、記憶装置に格納する、
    ことを特徴とする請求項1記載の動作合成装置。
  7. 回路の動作記述を状態へ割り当てるスケジューリング手段と、
    前記動作記述をハードウェアリソースに割り当てるバインディング手段と、
    状態の遷移を制御する有限状態機械(FSM)とハードウェアリソースを制御する制御論理回路を作成する有限状態機械生成手段と、
    前記有限状態機械生成手段で作成した有限状態機械(FSM)と制御論理回路、及び、前記入力印加・出力観測タイミング信号生成手段で作成した論理回路、及び、ハードウェアリソースをハードウェア記述言語(HDL)に変換し記憶装置に格納するRTL(レジスタトランスファレベル)生成手段と、
    を備えたことを特徴とする請求項6記載の動作合成装置。
  8. 前記テストベンチ生成手段は、前記回路の前記動作記述中の信号を、前記入力印加タイミング信号及び前記出力観測タイミング信号として認識し、前記入力印加タイミング信号及び前記出力観測タイミング信号を観測し、アクティブ値が出力されたときに入力を印加、又は出力を観測し期待値と照合するような論理のテストベンチを作成して記憶装置に格納する、ことを特徴とする請求項2記載の動作合成装置。
  9. コントロールデータフローグラフを参照して、リセットが解除されてから、入力値を印加するまでのクロック数と、一度入力を印加してから次の入力を印加するまでの周期からなるタイミング情報を入力信号のそれぞれについて記録し、
    リセットが解除されてから出力値が有効になるまでのクロック数と、出力値が一度有効になってから次の出力値が有効になるまでの周期を、出力信号のそれぞれについて記録する入力印加・出力観測タイミング記録手段を備え、
    前記テストベンチ生成手段は、
    前記入力印加・出力タイミング記録手段によって記録された、入力と出力の前記タイミング情報を読み込み、
    前記回路に入力されるリセット信号が解除されてからのクロック数を計測し、前記クロック数が、入力を印加するクロック数と一致したとき、又は、入力を印加する周期と一致したときに、入力を印加し、
    前記リセット信号が解除されてからのクロック数と、出力が有効になるまでのクロック数が一致したとき、又は、出力が有効になるまでの周期が一致したときに、出力を観測し期待値と照合するような、
    テストベンチを作成して、記憶装置に格納する、
    ことを特徴とする請求項3記載の動作合成装置。
  10. 入力印加タイミングを指定する信号、出力観測タイミングを指定する信号であることの情報が、前記動作記述の宣言部の入力信号、出力信号の注釈にプラグマとして指定されており、
    前記テストベンチ生成手段は、入力信号、出力信号と、プラグマから、入力印加タイミング信号と出力観測タイミング信号を認識する、ことを特徴とする請求項3記載の動作合成装置。
  11. 入力信号と出力信号に関して、リセットが解除されてから入力値、出力値がそれぞれ有効になるまでのクロック数と、入力印加、出力観測の周期をそれぞれ示すタイミング情報が、前記動作記述の宣言部の入力信号と出力信号の注釈欄にそれぞれ付加され、
    前記テストベンチ生成手段は、リセット解除からのクロック数を計測し、前記クロック数が、前記入力信号と前記出力信号のタイミング情報と一致したときに、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成する、ことを特徴とする請求項3記載の動作合成装置。
  12. 回路の入力と出力に関して、入力印加タイミング信号と出力観測タイミング信号とを作成するとともに、前記入力印加タイミング信号と前記出力観測タイミング信号のための論理回路を作成し、
    前記入力印加タイミング信号と前記出力観測タイミング信号の値に従って、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを作成する、
    上記工程を含む、ことを特徴とする動作合成方法。
  13. 回路の動作記述から、入力印加タイミング信号と出力観測タイミング信号を認識し、
    前記入力印加タイミング信号と前記出力観測タイミング信号の値に従って、前記回路への入力の印加と、前記回路の出力の観測をそれぞれ行うテストベンチを生成する、
    上記工程を含む、ことを特徴とする動作合成方法。
  14. 回路に対するリセットの解除からのクロック数を計測し、
    前記クロック数が所定の値と一致したときに、前記回路への入力の印加と前記回路の出力の観測を行うテストベンチを作成する、
    上記工程を含む、ことを特徴とする動作合成方法。
  15. リセット信号が有効である間、もしくはストール信号が有効である間は、前記回路への入力の印加と前記回路の出力の観測を行わないようなテストベンチを作成する、ことを特徴とする請求項12記載の動作合成方法。
  16. RTLにブラックボックスとして出力されたハードウェアリソースのためのシミュレーションモデルを備えたテストベンチを作成する、ことを特徴とする請求項12記載の動作合成方法。
  17. 回路の入力と出力に関して、入力印加タイミング信号と出力観測タイミング信号とを作成するとともに、前記入力印加タイミング信号と前記出力観測タイミング信号のための論理回路を作成する入力印加・出力観測タイミング信号生成処理と、
    前記入力印加タイミング信号と前記出力観測タイミング信号の値に従って、前記回路への入力の印加と、前記回路の出力の観測を行うテストベンチを生成するテストベンチ生成処理と、
    をコンピュータに実行させるプログラム。
  18. 回路の動作記述中の入力印加タイミング信号と出力観測タイミング信号を認識し、
    前記入力印加タイミング信号と前記出力観測タイミング信号を観測して、前記回路への入力印加と、前記回路の出力の観測を行うテストベンチを作成するテストベンチ生成処理を、
    コンピュータに実行させるプログラム。
  19. 回路に対するリセット解除からのクロック数を計測し、前記クロック数が所定の値と一致したときに、前記回路への入力の印加と前記回路の出力の観測を行うテストベンチを作成するテストベンチ生成処理を、
    コンピュータに実行させるプログラム。
  20. 前記テストベンチ生成処理として、リセット信号が有効である間、又はストール信号が有効である間は、前記回路への入力の印加と、前記回路の出力の観測を行わないようなテストベンチを作成する処理を、
    前記コンピュータに実行させる請求項17記載のプログラム。
  21. 前記テストベンチ生成処理として、RTLにブラックボックスとして出力されたハードウェアリソースのためのシミュレーションモデルを備えたテストベンチを作成する処理を前記コンピュータに実行させる請求項17記載のプログラム。
JP2007019451A 2007-01-30 2007-01-30 テストベンチ生成機能を有する動作合成装置と方法及びプログラム Active JP4853312B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007019451A JP4853312B2 (ja) 2007-01-30 2007-01-30 テストベンチ生成機能を有する動作合成装置と方法及びプログラム
US12/022,573 US8091051B2 (en) 2007-01-30 2008-01-30 Behavioral synthesis apparatus, method, and program having test bench generation function
US13/336,328 US8386973B2 (en) 2007-01-30 2011-12-23 Behavioral synthesis apparatus, method, and program having test bench generation function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007019451A JP4853312B2 (ja) 2007-01-30 2007-01-30 テストベンチ生成機能を有する動作合成装置と方法及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011192362A Division JP5287955B2 (ja) 2011-09-05 2011-09-05 テストベンチ生成機能を有する動作合成装置と方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2008186252A true JP2008186252A (ja) 2008-08-14
JP4853312B2 JP4853312B2 (ja) 2012-01-11

Family

ID=39669394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007019451A Active JP4853312B2 (ja) 2007-01-30 2007-01-30 テストベンチ生成機能を有する動作合成装置と方法及びプログラム

Country Status (2)

Country Link
US (2) US8091051B2 (ja)
JP (1) JP4853312B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7825684B2 (en) 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7930666B1 (en) * 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US8527911B1 (en) 2009-06-09 2013-09-03 Jasper Design Automation, Inc. Comprehending a circuit design
US8572527B1 (en) * 2011-09-13 2013-10-29 Jasper Design Automation, Inc. Generating properties for circuit designs
US8516421B1 (en) 2012-01-10 2013-08-20 Jasper Design Automation, Inc. Generating circuit design properties from signal traces
US8739092B1 (en) 2012-04-25 2014-05-27 Jasper Design Automation, Inc. Functional property ranking
JP6342065B2 (ja) * 2015-04-08 2018-06-13 三菱電機株式会社 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム
US11550980B1 (en) * 2021-06-14 2023-01-10 Cadence Design Systems, Inc. System and method for generating power-aware electronics
US11790143B2 (en) * 2021-06-15 2023-10-17 International Business Machines Corporation Collateral correlated regression in version control repository

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242684A (ja) * 1999-02-23 2000-09-08 Nec Corp 機能合成方法,機能合成装置およびその記録媒体
JP2005078402A (ja) * 2003-09-01 2005-03-24 Nec Engineering Ltd 電子回路の動作合成方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5177440A (en) * 1989-12-27 1993-01-05 Lsi Logic Corporation Testing of integrated circuits using clock bursts
US5598344A (en) * 1990-04-06 1997-01-28 Lsi Logic Corporation Method and system for creating, validating, and scaling structural description of electronic device
US5710711A (en) * 1992-10-21 1998-01-20 Lucent Technologies Inc. Method and integrated circuit adapted for partial scan testability
US5768567A (en) * 1996-05-14 1998-06-16 Mentor Graphics Corporation Optimizing hardware and software co-simulator
US5920490A (en) * 1996-12-26 1999-07-06 Adaptec, Inc. Integrated circuit test stimulus verification and vector extraction system
JP2000310667A (ja) * 1999-04-27 2000-11-07 Mitsubishi Electric Corp 半導体集積回路装置
US6810373B1 (en) * 1999-08-13 2004-10-26 Synopsis, Inc. Method and apparatus for modeling using a hardware-software co-verification environment
JP2001060210A (ja) 1999-08-20 2001-03-06 Nec Corp Lsi検証方法、lsi検証装置および記録媒体
US6985840B1 (en) * 2000-07-31 2006-01-10 Novas Software, Inc. Circuit property verification system
US6957403B2 (en) * 2001-03-30 2005-10-18 Syntest Technologies, Inc. Computer-aided design system to automate scan synthesis at register-transfer level
US7158925B2 (en) * 2002-04-18 2007-01-02 International Business Machines Corporation Facilitating simulation of a model within a distributed environment
US6845341B2 (en) 2002-05-14 2005-01-18 Cadence Design Systems, Inc. Method and mechanism for improved performance analysis in transaction level models
JP2004145670A (ja) 2002-10-24 2004-05-20 Osaka Industrial Promotion Organization テストベンチ生成方法、テストベンチ生成装置、及びコンピュータプログラム
JP2004145712A (ja) 2002-10-25 2004-05-20 Matsushita Electric Ind Co Ltd 半導体設計における動作記述の等価性検証方法
US7366652B2 (en) * 2003-06-16 2008-04-29 Springsoft, Inc. Method of programming a co-verification system
US7137087B1 (en) * 2003-08-20 2006-11-14 Adaptec, Inc. Integrated circuit verification scheme
GB0327959D0 (en) * 2003-12-03 2004-01-07 Symgenis Ltd System and method for architecture verification
US20080092092A1 (en) * 2004-10-04 2008-04-17 Damian Jude Dalton Method and Processor for Power Analysis in Digital Circuits
US7367001B2 (en) * 2004-12-02 2008-04-29 International Business Machines Corporation Method, system and computer program product for verification of digital designs using case-splitting via constrained internal signals
JP4789039B2 (ja) 2005-06-10 2011-10-05 独立行政法人産業技術総合研究所 ナノインプリント装置
US7616036B1 (en) * 2005-09-12 2009-11-10 Virage Logic Corporation Programmable strobe and clock generator
US7571086B2 (en) * 2005-11-04 2009-08-04 Springsoft Usa, Inc. Incremental circuit re-simulation system
US7711536B2 (en) * 2005-12-30 2010-05-04 Cadence Design Systems, Inc. System and method for verification aware synthesis
US7523425B2 (en) * 2006-04-21 2009-04-21 Alcatel-Lucent Usa Inc. Test case generation algorithm for a model checker
US8479132B2 (en) * 2006-06-16 2013-07-02 Synopsys, Inc. Active trace assertion based verification system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242684A (ja) * 1999-02-23 2000-09-08 Nec Corp 機能合成方法,機能合成装置およびその記録媒体
JP2005078402A (ja) * 2003-09-01 2005-03-24 Nec Engineering Ltd 電子回路の動作合成方法

Also Published As

Publication number Publication date
US20080184180A1 (en) 2008-07-31
US8091051B2 (en) 2012-01-03
JP4853312B2 (ja) 2012-01-11
US8386973B2 (en) 2013-02-26
US20120096418A1 (en) 2012-04-19

Similar Documents

Publication Publication Date Title
JP4853312B2 (ja) テストベンチ生成機能を有する動作合成装置と方法及びプログラム
JP4994393B2 (ja) 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法
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
US8589837B1 (en) Constructing inductive counterexamples in a multi-algorithm verification framework
JP5065113B2 (ja) 等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法
WO2016073520A1 (en) Hardware/software partitioning performance estimation
JP2006285333A (ja) 動作合成装置及び方法
JP2010238054A (ja) 半導体設計支援装置、高位合成方法及び半導体設計支援プログラム
JP4654203B2 (ja) デジタルシステムのhdl記述ファイルを作成する方法、および得られるシステム
JP5233355B2 (ja) プロパティ生成システムおよびプロパティ検証システム
JP5830955B2 (ja) 検証装置、検証方法及び検証プログラム
US20080300806A1 (en) Power consumption calculating method
US20170270228A1 (en) Method and system for emulation of multiple electronic designs in a single testbench environment
Huggi et al. Design and verification of memory elements using python
JP5287955B2 (ja) テストベンチ生成機能を有する動作合成装置と方法及びプログラム
US9733941B2 (en) Technique for translating dependent instructions
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
Datta et al. Formal verification of a public-domain DDR2 controller design
US9047428B2 (en) Determining method, computer product, and determining apparatus
US8813005B1 (en) Debugging using tagged flip-flops
JP5233354B2 (ja) プロパティ検証システム、プロパティ検証方法、及びプログラム
JP5262678B2 (ja) 動作合成システム、動作合成方法、及び動作合成用プログラム
Hu et al. A Hybrid Method for Equivalence Checking Between System Level and RTL

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

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: 20110927

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111010

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4853312

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150