JP2005266838A - ハードウェア・エミュレーション・システム - Google Patents

ハードウェア・エミュレーション・システム Download PDF

Info

Publication number
JP2005266838A
JP2005266838A JP2004073630A JP2004073630A JP2005266838A JP 2005266838 A JP2005266838 A JP 2005266838A JP 2004073630 A JP2004073630 A JP 2004073630A JP 2004073630 A JP2004073630 A JP 2004073630A JP 2005266838 A JP2005266838 A JP 2005266838A
Authority
JP
Japan
Prior art keywords
clock
delay
emulation
circuit
flip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004073630A
Other languages
English (en)
Inventor
Hironori Tsuchiya
浩則 槌矢
Yasuhiko Kajimoto
靖彦 梶本
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004073630A priority Critical patent/JP2005266838A/ja
Publication of JP2005266838A publication Critical patent/JP2005266838A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

【課題】回路データ上に記述されている信号遅延情報をエミュレーション上に反映させることができ、信号遅延を考慮した機能検証を高速に行うことができるハードウェア・エミュレーション・システムを提供する。
【解決手段】FPGA等の可変論理デバイス上に形成された複数のレジスタ・パス間やクロック線をエミュレーション対象の論理回路203、204として、それらの論理回路203、204間に、システム内の最速のクロックで動作するフリップ・フロップ205を挿入し、そのフリップ・フロップ205により遅延された信号を、エミュレーション対象となっている論理回路203、204上の遅延信号として扱う。
【選択図】図2

Description

本発明は、半導体集積回路装置等のハードウェア系を、例えば回路データで記述される擬似機能回路の状態で、模擬的に機能動作を検証するためのハードウェア・エミュレーション・システムに関するものである。
従来から、半導体集積回路装置等の機能検証および論理検証は、ハードウェア記述言語による回路データで記述されたRTL(Register Transfer Level)やネットリストを、ソフトウェア・シミュレータを用いてダイナミック・シミュレーションすることで行われてきた。
しかし、ソフトウェア・シミュレーションによる機能検証および論理検証は、柔軟性が高い反面、回路規模が大きくなるとシミュレーション速度が著しく低下するため、1チップレベルで長大な検証パターンを実行する必要がある場合には、検証期間が非常に長くなるという問題があった。
そのような問題点を解消する方法(例えば、特許文献1を参照)として、エミュレーション対象となる機能回路を、FPGA(Field Programmable Gate Array)等の可変論理デバイス上で構成されたハードウェア上に模擬的に形成することで、検証対象となる機能回路のエミュレーションを行うハードウェア・エミュレータによる検証が行われている。
特開2000−31284号公報
しかしながら上記のような従来のFPGA型ハードウェア・エミュレータでは、ハードウェア記述言語を用いて記述されたRTLやテストベンチおよびネットリスト等の回路データ上で記述されている各機能回路間の信号遅延量が、FPGA内で使用されるロジック回路の位置関係に依存するため、エミュレーションに反映することができず、そのため、遅延で表現された信号間の微妙な動作タイミングを考慮した機能検証を行うことができないという問題点を有していた。
また、上記のような信号遅延を考慮して設計されている検証対象回路をハードウェア・エミュレータで検証しようとした場合、信号遅延が無視されることで信号間のタイミングにずれが発生してしまうため、ハードウェア・エミュレータで正常に動作させることが困難な場合もあるという問題点も有していた。
本発明は、上記従来の問題点を解決するもので、回路データ上に記述されている信号遅延情報をエミュレーション上に反映させることができ、信号遅延を考慮した機能検証を高速に行うことができるハードウェア・エミュレーション・システムを提供する。
上記の課題を解決するために、本発明の請求項1に記載のハードウェア・エミュレーション・システムは、複数のレジスタ間にエミュレーション対象となる論理回路を形成するためのプログラム可能な複数個の可変論理デバイスと、前記可変論理デバイス内のエミュレーション対象論理回路間を任意に接続可能な可変配線手段と、前記エミュレーション対象論理回路および前記可変配線手段の回路接続状態を示す各種データを蓄積するためのメモリデバイスと、前記エミュレーション対象論理回路に対するエミュレーション時の制御を指示するホストコンピュータとをインターフェース接続するインターフェース手段と、前記ホストコンピュータから前記インターフェース手段を通じて入力される指示に従って、エミュレーション動作を制御するコントローラとを備えたハードウェア・エミュレーション・システムにおいて、前記可変配線手段の任意接続により前記エミュレーション対象論理回路上に発生した複数のレジスタ・パス間およびクロック線の信号遅延量を調整する遅延調整回路を設け、前記コントローラは、前記エミュレーション動作時に、前記遅延調整回路による信号遅延量の調整を制御するよう構成したことを特徴とする。
また、本発明の請求項2に記載のハードウェア・エミュレーション・システムは、請求項1記載のハードウェア・エミュレーション・システムであって、前記遅延調整回路は、システム内の最速クロックで動作するフリップ・フロップで形成し、前記コントローラは、前記エミュレーション動作時に、前記エミュレーション対象論理回路の動作クロックとして、前記最速クロックよりも低速なクロックを使用し、前記フリップ・フロップを前記エミュレーション対象論理回路のデータ・パス間に信号遅延フリップ・フロップとして挿入し、前記信号遅延フリップ・フロップの出力信号を遅延信号として扱うように、制御するよう構成したことを特徴とする。
また、本発明の請求項3に記載のハードウェア・エミュレーション・システムは、請求項2記載のハードウェア・エミュレーション・システムであって、前記遅延調整回路は、前記最速クロックとして、システム内の発振回路から生成されるシステムクロックを使用するよう構成し、前記コントローラは、前記エミュレーション対象論理回路の動作クロックとして、前記システムクロックを分周した分周クロックを使用するように、制御するよう構成したことを特徴とする。
また、本発明の請求項4に記載のハードウェア・エミュレーション・システムは、請求項3記載のハードウェア・エミュレーション・システムであって、前記コントローラは、前記システムクロックの1周期を、ハードウェア記述言語で記述された遅延量の最小遅延単位に割り当て、前記信号遅延フリップ・フロップを、前記エミュレーション対象論理回路のデータ・パス間に必要な遅延量に相当する段数挿入するように、制御するよう構成したことを特徴とする。
また、本発明の請求項5に記載のハードウェア・エミュレーション・システムは、請求項3記載のハードウェア・エミュレーション・システムであって、前記コントローラは、回路記述やテスト記述に記述されている遅延値の最大公約数を算出し、その最大公約数を前記最小遅延単位として前記システムクロックの1周期に割り当て、前記信号遅延フリップ・フロップを、前記エミュレーション対象論理回路のデータ・パス間に必要な遅延量に相当する段数挿入するように、制御するよう構成したことを特徴とする。
また、本発明の請求項6に記載のハードウェア・エミュレーション・システムは、請求項3記載のハードウェア・エミュレーション・システムであって、前記コントローラは、前記システムクロックの半周期を、ハードウェア記述言語で記述された遅延量の最小遅延単位に割り当て、前記信号遅延フリップ・フロップとして、前記システムクロックのポジティブエッジで動作するフリップ・フロップと、前記システムクロックのネガティブエッジで動作するフリップ・フロップとを交互に多段接続し、前記信号遅延フリップ・フロップの挿入段数を変化させるように、制御するよう構成したことを特徴とする。
また、本発明の請求項7に記載のハードウェア・エミュレーション・システムは、請求項3記載のハードウェア・エミュレーション・システムであって、前記コントローラは、前記エミュレーション対象論理回路上のレジスタ・パス間に、前記システムクロックで動作する信号遅延フリップ・フロップを挿入して、時間軸上で独立した信号遅延状態を作り出し、その信号遅延状態に対して、前記レジスタ・パス間における信号遅延状態を遅延量の小さい状態から順に仮想的に割り当てるように、制御するよう構成したことを特徴とする。
また、本発明の請求項8に記載のハードウェア・エミュレーション・システムは、請求項7記載のハードウェア・エミュレーション・システムであって、前記レジスタ・パス間に多段挿入した前記信号遅延フリップ・フロップの出力ノードに信号観測用ノードを設け、前記コントローラは、前記ホストコンピュータに前記出力ノードにおける信号データを転送し、前記遅延状態の割り当て情報と前記エミュレーション対象論理回路の動作クロック周期情報とから、前記ハードウェア記述言語で記述された信号遅延状態を反映した波形を合成するように、制御するよう構成したことを特徴とする。
また、本発明の請求項9に記載のハードウェア・エミュレーション・システムは、請求項2記載のハードウェア・エミュレーション・システムであって、前記遅延調整回路は、前記最速クロックとして、外部装置から生成されるクロックを使用するよう構成し、前記コントローラは、前記エミュレーション対象論理回路の動作クロックとして、前記外部装置からのクロックを分周した分周クロックを使用するように、制御するよう構成したことを特徴とする。
また、本発明の請求項10に記載の遅延エミュレーション用データ生成方法は、請求項1から請求項9のいずれかに記載のハードウェア・エミュレーション・システムにおける遅延エミュレーション用データ生成方法であって、前記エミュレーション対象論理回路の回路記述を解析し、記述されている信号遅延情報を抽出する信号遅延情報抽出工程と、前記エミュレーション対象論理回路のテスト記述を解析し、記述されているクロック情報を抽出するクロック情報抽出工程と、前記システムクロックに最小遅延単位を割り当てる最小遅延単位割り当て工程と、前記クロック情報と前記最小遅延単位割り当て結果から分周率を算出し、その分周率を実現するための分周回路を合成して生成する分周回路生成工程と、前記エミュレーション対象論理回路の回路データに、前記信号遅延フリップ・フロップを挿入する信号遅延フリップ・フロップ挿入工程とを有する方法としたことを特徴とする。
以上により、従来のハードウェア・エミュレータでは行えなかったハードウェア記述言語により表現された信号遅延量情報を反映したエミュレーションを可能とすることができる。
以上のように本発明によれば、従来のハードウェア・エミュレータでは行えなかったハードウェア記述言語により表現された信号遅延量情報を反映したエミュレーションを可能とすることができる。
そのため、回路データ上に記述されている信号遅延情報をエミュレーション上に反映させることができ、信号遅延を考慮した機能検証を高速に行うことができる。
以下、本発明の実施の形態を示すハードウェア・エミュレーション・システムについて、図面を参照しながら具体的に説明する。
(実施の形態1)
本発明の実施の形態1のハードウェア・エミュレーション・システムを説明する。
図1は本実施の形態1のハードウェア・エミュレーション・システムの概略構成を示すブロック図である。このハードウェア・エミュレーション・システムは、図1に示すように、エミュレーション対象となる論理回路を配置するためのプログラム可能な複数個のエミュレーション対象回路配置用の可変論理デバイス101と、可変論理デバイス101間を任意に接続するための配線用可変論理デバイス102と、データ蓄積用のメモリデバイス103と、ハードウェア・エミュレーション・システムを動作させるためのシステムクロックを生成するシステムクロック発生装置104と、システムクロック発生装置104からのシステムクロックを分周し、エミュレーション対象となる論理回路を動作させるためのエミュレーション対象回路動作用クロックを生成する分周クロック生成装置(可変論理デバイス)105と、エミュレーションをコントロールするコントローラ106と、ホストコンピュータ107と、ハードウェア・エミュレーション・システムのインターフェース108とで構成される。
なお図1において、109はデータ配線、110はシステムクロック配線、111はエミュレーション対象回路クロック配線、112はコントロール線である。
上記のように構成されるハードウェア・エミュレーション・システムについて、その詳細を以下に説明する。
可変論理デバイス101はエミュレーション対象となる論理回路を形成するためのものであり、配線用の可変論理デバイス102は、可変論理デバイス101間を接続するためのものである。エミュレーション対象となる論理回路は、複数の可変論理デバイス101に分割して配置され、各可変論理デバイス101間は可変論理デバイス102の経路を任意に変更することにより配線される。これにより、一枚の可変論理デバイス101では収まらない大規模の論理回路であっても配置が可能となる。メモリデバイス103は、エミュレーション対象となる論理回路内に実装されるメモリ素子を、ハードウェア・エミュレーション・システム上で形成するために使用される。メモリ素子の周辺に可変論理デバイスで構成されたラッパー回路を被せることにより、メモリ素子の分割や統合およびアクセス方法の変更が可能となる。
システムクロック発生装置104は、本実施の形態のハードウェア・エミュレーション・システム内の各デバイスを動作させる基本となるシステムクロックを生成するためのものであり、例えば水晶振動子とPLL等で構成される。システムクロック発生装置104で生成されたシステムクロックは、信号遅延調整クロックとして、エミュレーション対象の論理回路が配置されている各可変論理デバイス101に入力される。尚、システムクロック発生装置104は、場合によっては、エミュレーション・システムの外部ボードから供給することも可能であるものとする。
エミュレーション対象となる論理回路がエミュレーション・システム内で実動作するクロックは、分周クロック生成装置105により生成され、エミュレーション対象の論理回路を動作させるクロックとして、各可変論理デバイス101およびメモリデバイス103に入力される。分周クロック生成装置105は、可変論理デバイス上に形成された分周回路で構成され、この分周回路はエミュレーション対象となる論理回路のクロックを反映して任意に変更が可能となっている。
コントローラ106は、本実施の形態のハードウェア・エミュレーション・システムを制御するためのものである。コントローラ106は、可変論理デバイス上に形成されたエミュレーション対象となる回路の動作を制御する信号を形成して、各可変論理デバイス101上に形成された論理回路をエミュレーション動作させる。また、コントローラ106は、インターフェース108を介してホストコンピュータ107と接続されており、ホストコンピュータ107からの指示を受けることで、エミュレーションの開始、停止、データのアップロードおよびダウンロード等の制御を行う。
本発明の目的であるエミュレーション対象となる回路記述上に記述された信号遅延のエミュレーションへの反映は、システムの中で最速のクロックであるシステムクロックで動作するフリップ・フロップを、システムクロックを分周したクロックで動作するエミュレーション対象回路のノード間に挿入し、信号を遅延させることにより実現される。その詳細な機構について、以下に説明する。
図2は、可変論理デバイス101内にエミュレーション対象となる論理回路を形成し、レジスタ・パス間にシステムクロックで動作するフリップ・フロップを1段挿入した例を示したものである。201は始点用レジスタとなるフリップ・フロップ、202は終点用レジスタとなるフリップ・フロップ、203、204はフリップ・フロップ201からフリップ・フロップ202に至るパスを形成する論理回路、205は信号を遅延させるために挿入されたシステムクロックで動作する信号遅延用フリップ・フロップ、207はシステムクロック線、206はシステムクロック線207上のシステムクロックを分周して生成されたクロックを供給するエミュレーション対象回路動作用クロック線である。このエミュレーション対象回路動作用クロックは、分周クロック生成装置105から供給されるものである。
図3はレジスタ・パス間にフリップ・フロップを挿入しない場合の信号波形と、図2に示すようにレジスタ・パス間にフリップ・フロップを1段挿入した場合の信号波形の状態を比較した図である。図3において、301はシステムクロック波形、302はシステムクロックを10分周することで生成されたエミュレーション対象回路動作用のクロック波形である。303はノード208における信号波形、304はノード209における信号波形、305はレジスタ・パス間に信号遅延用レジスタとしてのフリップ・フロップを挿入しない場合のノード210、211における信号波形である。また、306はレジスタ・パス間に信号遅延用レジスタとしてのフリップ・フロップを1段挿入した場合のノード210における信号波形、307はレジスタ・パス間に信号遅延用レジスタとしてのフリップ・フロップを1段挿入した場合のノード211における信号波形である。
図3の信号波形305と信号波形307を比較すると、システムクロックで動作するフリップ・フロップを、信号を遅延させるノード間に1段挿入することで、システムクロック1周期に相当する時間だけ信号が遅延されている。すなわち、エミュレーション対象回路動作用クロックの10分の1に相当する時間の信号遅延を、エミュレーション上で表現できたことが分かる。以上のことから、システムクロックで動作するフリップ・フロップを信号遅延用レジスタとしてノード間に挿入することにより、エミュレーション対象回路上の信号を遅延させることが可能であることが分かる。
図4は、図2の例と同様に、レジスタ・パス間にシステムクロックで動作するフリップ・フロップを直列に3段挿入した場合の例を示した構成図である。また、図5は、レジスタ・パス間にフリップ・フロップを挿入しない場合の信号波形と、図4に示すように、レジスタ・パス間にフリップ・フロップを3段挿入した場合の信号波形の状態を比較した図である。
図4において、401は始点用レジスタとなるフリップ・フロップ、402は終点用レジスタとなるフリップ・フロップ、403、404はフリップ・フロップ401からフリップ・フロップ402に至るパスを形成する論理回路、405はそれぞれ信号遅延用のフリップ・フロップ、406はエミュレーション対象回路動作用クロック線、407は信号遅延用レジスタ動作用のシステムクロック線である。
また、図5において、501はシステムクロック波形、502はシステムクロックを10分周することで生成されたエミュレーション対象回路動作用のクロック波形、503はノード408における信号波形、504はレジスタ・パス間に信号遅延用レジスタとしてのフリップ・フロップを挿入しない場合のノード409、410における信号波形、505はレジスタ・パス間にフリップ・フロップを3段挿入した場合の409における信号波形、506はレジスタ・パス間にフリップ・フロップを3段挿入した場合のノード410における信号波形である。
図5に示すように、レジスタ・パス間に信号遅延用レジスタとしてシステムクロックで動作するフリップ・フロップを3段挿入した場合、エミュレーション対象回路上の信号をシステムクロック3周期に相当する時間だけ遅延させることが可能である。
以上のことから、エミュレーション対象回路はシステムクロックを分周したクロックで動作させ、信号を遅延させるノード間にシステムクロックで動作するフリップ・フロップを信号遅延用レジスタとして挿入し、その挿入段数を変更することで、システムクロック1周期を遅延単位として信号遅延量を制御できることが分かる。
(実施の形態2)
本発明の実施の形態2のハードウェア・エミュレーション・システムを説明する。なお、実施の形態1ではシステム構成や信号遅延機構について説明したが、本実施の形態2では、回路記述に記述されている遅延をハードウェア・エミュレータ・システムに反映させる適用手法について説明する。
下記に、VerilogHDLにおける記述方式に従って信号遅延を付加することを記述した場合の回路記述例を示す。なお、VerilogHDLの記述方式においては、下記に示すように、遅延値を「#[整数]」のように記述する。

assign a = #2 b & c; ・・・・(回路記述1)
buf #5 (out,in); ・・・・(回路記述2)
always @(b) a = #9 b; ・・・・(回路記述3)

例えば、実施の形態1において、システムクロックの1周期をRTL記述やテストベンチ上に記述されている#1に割り当てたとすると、レジスタ・パス間にシステムクロックで動作するフリップ・フロップを1段挿入した場合は、システムクロックの1周期に相当する時間の信号遅延が得られるので、VerilogHDLにおける遅延値の記述方式に従って「#1」のように記述され、またレジスタ・パス間にシステムクロックで動作するフリップ・フロップを3段挿入した場合は、同様にシステムクロックの3周期に相当する時間の信号遅延が得られるので、VerilogHDLにおける遅延値の記述方式に従って「#3」のように記述される。
また、実施の形態1の例では、エミュレーション対象回路動作用クロックはシステムクロックを10分周して生成しているので、VerilogHDLにおける遅延値の記述方式に従って「#1」から「#9」と記述することにより、システムクロックの1周期から9周期に相当する遅延を表現することが可能となる。つまり、システムクロック周期に遅延単位を割り当てることで、エミュレーション時に回路データに記述された信号遅延を反映させることができる。
図6にシステムクロック1周期に遅延値#1を割り当て、回路記述1に遅延を反映させたうえで、エミュレータ上に配置した場合の回路構成を示す。図6において、601は回路記述1のaに対応するノード、602は回路記述1のbに対応するノード、603は回路記述1のcに対応するノード、604はそれぞれ信号遅延用レジスタとなるフリップ・フロップ、605はエミュレーション対象回路動作用のクロック線、606はシステムクロック線、607はノード601に接続されている論理回路網、608はノード602に接続されている論理回路網、609はノード603に接続されている論理回路網である。
ノード602とノード603の演算結果が出力されたノード601の前に信号遅延用フリップ・フロップ604が2段挿入されている。信号遅延用フリップ・フロップ604を1段挿入することは#1(システムクロック1周期分)に相当する時間、信号を遅延させることになるので、合計で#2(システムクロック2周期分)に相当する時間、信号を遅延させることになる。
上記のように、エミュレーション対象回路の回路記述において、遅延が記述されている全ての回路記述に対し、システムクロック周期に遅延単位を割り当てた信号遅延フリップ・フロップを挿入することで、エミュレーション対象回路の回路記述上に記述された遅延をエミュレーション時に反映させることが可能となる。
(実施の形態3)
本発明の実施の形態3のハードウェア・エミュレーション・システムを説明する。なお、実施の形態1では全て同じクロックエッジで動作するフリップ・フロップを信号遅延用レジスタとして使用した場合について説明したが、本実施の形態3ではポジティブエッジで動作するフリップ・フロップ、ネガティブエッジで動作するフリップ・フロップを使用した場合について説明する。
図7は始点用レジスタと終点用レジスタの間に、システムクロックのポジティブエッジで動作する信号遅延用フリップ・フロップとネガティブエッジで動作する信号遅延用フリップ・フロップとを、交互に挿入した構成例を示している。図7において、701は始点用レジスタとなるフリップ・フロップ、702は終点用レジスタとなるフリップ・フロップ、703、704は論理回路、705はポジティブエッジで動作する信号遅延用フリップ・フロップ、706はネガティブエッジで動作する信号遅延用フリップ・フロップ、707はエミュレーション対象となる論理回路の動作クロック線、708はシステムクロック線、709〜714はノードである。
図8は図7における信号波形の遅延状態を示したものである。図8において、801はシステムクロック波形、802はエミュレーション対象回路の動作クロック波形、803はノード709における信号波形、804はノード710における信号波形、805はノード711における信号波形、806はノード712における信号波形、807はノード713における信号波形、808はノード714における信号波形である。
図8に示すように、1段の信号遅延フリップ・フロップ挿入により信号がシステムクロック半周期に相当する時間が遅延されており、4段トータルでみるとシステムクロック2周期分に相当する時間が信号遅延されていることが分かる。もし、半周期をRTL記述やテストベンチ上に記述されている#1に割り当てたとすると、上記の例では#4に相当する時間の信号遅延を表現できたことになる。また、上記の例では、動作クロックはシステムクロックを10分周して生成しているので、#0から#19までの遅延状態を表現することが可能になる。
このように、ポジティブエッジで動作する信号遅延フリップ・フロップとネガティブエッジで動作する信号遅延フリップ・フロップとを、交互に挿入することで、システムクロック半周期を遅延単位に割り当てることが可能となり、実施の形態1よりも高速にエミュレーションを行うことが可能となる。
(実施の形態4)
本発明の実施の形態4のハードウェア・エミュレーション・システムを説明する。ここでは、エミュレーション・データ生成手法およびエミュレーションへの信号遅延の反映方法について説明する。
図9は本実施の形態4のハードウェア・エミュレーション・システムにおけるエミュレーション・データ生成方法を示すフローチャートである。このエミュレーション・データ生成方法は、図9に示すように、エミュレーション対象となる回路の回路記述を解析し、記述されている信号遅延情報を抽出する信号遅延情報抽出工程901と、テスト記述を解析しクロック情報としてクロック周期を抽出するクロック周期抽出工程902と、システムクロックに最小遅延単位を割り当てる最小遅延単位割り当て工程903と、クロック情報と最小遅延単位割り当て結果から分周率を算出し分周回路を合成する分周回路生成工程904と、エミュレーション対象回路の回路データに信号遅延フリップ・フロップを挿入する信号遅延フリップ・フロップ挿入工程905とからなっている。
なお図9において、906は遅延情報リスト、907は分周回路データ、908はエミュレーション対象の回路データである。
このようなエミュレーション・データ生成手法において、信号遅延情報抽出工程901では、入力されたエミュレーション対象回路の回路データであるRTL、ネットリスト、テストベンチのソースコードに記述された遅延値と信号が遅延するノードを自動的に抽出し、信号遅延量と信号遅延が発生するノード情報をリスト化する。例えば、VerilogHDLおいて遅延は、実施の形態2に記載の(回路記述1)、(回路記述2)、(回路記述3)に示されるように、「#[数値]」で表現される。
よって、VerilogHDLの記述において、「#」を順次に検索していくことでエミュレーション対象の回路記述に記述された信号遅延値と信号遅延が発生するノードの抽出を自動的に行うことができる。そして、その情報をまとめた遅延情報リスト906を生成する。図10に工程901で生成される遅延値情報リスト906の例を示す。回路データとして1001が入力された場合、1002のような遅延情報リストが生成される。尚、この遅延情報リスト1002はホストコンピュータの記憶デバイスに保存され、適時参照が可能である。
クロック周期抽出工程902では、あらかじめ設定されたクロック指定に基づき、テストベンチのソースコードを解析し、エミュレーション対象回路が動作するクロックの周期を抽出する。図11にVerilogHDLにおける一般的なクロック記述を示す。
図11に示したように、クロック1101はテストベンチのinitialブロックにおいて定義される。図11の例では、#0において値が1に設定されている。その値は#50の間保持され、#50の時間が経った後、0が代入される。次に、更に#50の時間が経てば再び1が代入される。そして、このシーケンスを延々と繰り返していることが分かる。以上のことから、図11の例の場合、エミュレーション対象回路が動作するクロックの周期は#100となる。このように指定されたクロック変数のinitialブロックを解析することで、エミュレーション対象回路が動作するクロック周期を算出することができる。このクロック周期の情報は工程904で使用される。
最小遅延単位割り当て工程903では、システムクロック周期として最小値遅延単位の割り当てを行う。実施の形態2では回路記述に記述されている遅延値に関係なくシステムクロック1周期に最小遅延単位として#1を割り当てた場合について説明したが、本実施の形態4の工程903では、工程901で抽出した遅延情報から判断し、システムクロック周期に割り当てる最小遅延単位を決定する。ここで決定された最小値遅延単位が信号遅延フリップ・フロップで遅延できる最小の遅延量となる。
また、最小遅延単位割り当て工程903は、細分すると最小遅延単位算出工程と、最小遅延単位丸め工程からなっている。最小遅延単位算出工程では、工程901で作成された遅延情報リスト1002に記載されている遅延値の最大公約数を、ホストコンピュータにより算出する。そして、最小遅延単位丸め工程では、もし演算結果が割り切れない場合や小数点以下の値が発生する場合は、値が小さい整数値に値を近似する。そして、算出された最大公約数を最小遅延単位としてシステムクロック周期に割り当てる。例えば、工程901が生成したリストとして1002を考えた場合、最大公約数は5となり、最小遅延単位として#5がシステムクロックの周期に割り当てられる。
分周回路生成工程904は、工程902で抽出したクロック周期と工程903で決定した最小遅延単位の割り当て情報から判断して、エミュレーション対象となる回路が動作するクロックを生成できるような分周回路の分周率を決定し、可変論理デバイスに配置可能なセルを使用して分周回路を合成する工程である。
工程904は、工程902で算出されたクロック周期を、上記最大遅延単位で除算した解を分周率として算出する。もし、演算結果が割り切れない場合や小数点以下の値が発生する場合は、工程903と同様、分周率としては値の小さい側の整数値に近似する。そして、算出された分周率に基づき分周回路を合成し分周回路データを生成する。例を示すと、エミュレーション対象回路のクロック周期が#100、最小遅延単位が#5であるとすると、分周率は20となり、分周率20の分周回路データ907を生成する。ここで生成された分周回路データ907に対応する分周回路は、分周クロック生成装置105内の可変論理デバイスに形成され、この分周回路により分周されたクロックを、エミュレーション対象回路の動作クロックとして用いる。
信号遅延フリップ・フロップ挿入工程905では、エミュレーション対象回路に対し信号遅延フリップ・フロップを挿入し、エミュレーション対象回路に信号遅延を反映したエミュレーション用回路データを生成する。以下に工程905について説明する。
工程905では、まず、入力されたエミュレーション対象回路の回路データを、可変論理デバイスに配置可能なセルを使用したネットリストへ変換する。次に、工程901で抽出された遅延情報リストと工程903で決定した最小遅延単位の割り当て情報とをもとに、信号遅延が発生するノード間に信号遅延フリップ・フロップの挿入を行う。具体的には、遅延情報リストに記載の信号遅延値を最小遅延単位で割った数のフリップ・フロップを遅延ノード間に挿入する。例えば、回路データ1001による回路記述(assign a3 = #15 b3 | c2;)の場合、工程903でシステムクロックに割り当てられた最小遅延単位は#5、信号遅延は#15となるため、ノードb3、c2の演算結結果とノードa3との間に信号遅延フリップ・フロップを3段挿入する。こうすることで、エミュレーション対象回路の信号遅延を反映したエミュレーション用回路データを生成することができる。
以上のように、工程901から工程905のフローを実行することで、信号遅延を反映したエミュレーション用回路データと、システムクロックからエミュレーション対象回路動作用クロックを生成するための分周回路データとが生成される。上記のように生成されたデータは、回路規模、配線状態、回路の動作タイミングを考慮し、図1のハードウェア・エミュレーション・システムへ配置配線される。そして、エミュレーションを実行することで遅延を考慮したエミュレーションを行うことができる。尚、工程901から工程905までの工程処理はホストコンピュータ109によって制御され実行される。
本実施の形態4の方法では、システムクロック周期に割り当てる最小遅延単位を最適化することにより、分周回路の分周率を低くすることができるため、実施の形態2に比べ分周回路の規模を小さく、且つ、高速に遅延エミュレーションを行うことができる。
(実施の形態5)
本発明の実施の形態5のハードウェア・エミュレーション・システムを説明する。
なお、実施の形態4では、システムクロック周期に対し最小遅延単位を割り当て、信号遅延値を最小値遅延単位で割った数の信号遅延フリップ・フロップをノード間に挿入することで、信号遅延をエミュレーションに反映する場合のデータ生成方法について説明したが、本実施の形態5では、システムクロックで動作するフリップ・フロップにより遅延された状態に対し、レジスタ・パス間における信号遅延状態を仮想的に割り当てることにより、信号遅延をエミュレーションに反映する場合について説明を行う。
図12は本実施の形態5のハードウェア・エミュレーション・システムにおいて、レジスタ・パス間における信号遅延状態に対し、システムクロックで動作するフリップ・フロップにより遅延された状態を仮想的に割り当てた場合のイメージ説明図である。
図12において、1201は始点用レジスタとなるフリップ・フロップ、1202は終点用レジスタとなるフリップ・フロップ、1203は信号遅延用レジスタとなるフリップ・フロップ、1204はシステムクロック線、1205は1段目の信号遅延フリップ・フロップの入力ノード、1206は1段目の信号遅延フリップ・フロップの出力ノード、1207は2段目の信号遅延フリップ・フロップの出力ノード、1208は3段目の信号遅延フリップ・フロップの出力ノード、1209は4段目の信号遅延フリップ・フロップの出力ノード、1210は5段目の信号遅延フリップ・フロップの出力ノードである。また、1211はエミュレーション対象回路のエミュレータ上での動作クロック、1212はシステムクロック、1213〜1318はノード1205〜1210の信号波形である。図12では、エミュレーション対象回路の動作クロック周期が#200、入力側のレジスタを基準としてレジスタ・パス間に#10、#20、#40、#75、#100の遅延状態があった場合のイメージを示している。
図12に示すように、エミュレーション対象回路のレジスタ・パス間にシステムクロックで動作する信号遅延フリップ・フロップ1203が5段挿入されている。信号遅延フリップ・フロップの出力ノード1206〜1210の波形を見てみると、これらの信号遅延フリップ・フロップは、システムクロック1周期単位で信号を遅延させる効果があることがわかる。また、信号遅延フリップ・フロップの出力ノード1206〜1210の波形は時間軸上でそれぞれ独立して存在しており、エミュレーション対象回路の1周期の区間において、一つ独立した遅延状態として成立していることがわかる。
このことから、信号遅延フリップ・フロップにより遅延させた信号を遅延信号としてエミュレーション上で扱うことが可能であることが分かる。故に、システムクロックで動作するフリップ・フロップにより遅延された状態に対し、エミュレーション対象回路のレジスタ・パス間における信号遅延状態を仮想的に割り当てることにより、信号遅延をエミュレーションに反映することが可能となる。
例えば図12の例では、エミュレーション対象回路の動作クロック周期が#200、入力側のレジスタを基準としてレジスタ・パス間に#10、#20、#40、#75、#100の遅延状態があった場合、#10の遅延状態は遅延フリップ・フロップ1段によりシステムクロック1周期遅延された状態、#20の遅延状態は遅延フリップ・フロップ2段によりシステムクロック2周期遅延された状態、#40の遅延状態は遅延フリップ・フロップ3段によりシステムクロック3周期遅延された状態、#75の遅延状態は遅延フリップ・フロップ4段によりシステムクロック4周期遅延された状態、#100の遅延状態は遅延フリップ・フロップ5段によりシステムクロック5周期遅延された状態を割り当て、エミュレーション対象回路の動作クロック周期にはシステムクロック6周期分の周期を割り当てることにより、それぞれの信号遅延フリップ・フロップの出力信号を#10、#20、#40、#75、#100遅延した信号として、エミュレーション・システム上で扱うことが可能となる。
尚、エミュレーション対象回路の動作クロック周期は、1周期内に起こりうる遅延状態の数によって決定される。上記の例では、遅延状態数は5であったが、更に多くの状態を表現するためには5段以上の信号遅延フリップ・フロップをレジスタ・パス間に挿入する必要がある。その場合、5システムクロック周期以上の信号遅延が発生し、その状態をエミュレーション対象回路の動作クロック1周期内に収める必要があるため、6周期以上の周期を割り当てる必要がある。
図12には示していないが、#250のように信号遅延がクロック周期より大きくなる場合は、動作クロック周期内に収まっている遅延状態の遅延フリップ・フロップ段数に2を足した段数に遅延された状態を割り当てる。例えば、図12の場合では#100の遅延状態である段数5に2を足した段数7に#250を割り当てる。こうすることで、その遅延状態はエミュレーション対象回路の動作クロックの2周期の中に納まり、遅延状態が表現可能となる。
また、動作解析のため波形表示を行う場合は、遅延状態の割り当て情報と、エミュレーション対象回路動作用クロックの周期情報から、図13に示すように、視覚的なずれが発生しないように波形ファイルを合成する。これにより、解析時は、エミュレーション内における実際の遅延量を意識することなく解析を行うことが可能となる。これは、コントローラ、インターフェースを介してエミュレーション波形データを転送し、ホストコンピュータ処理を行い実現する。
なお図13において、1301はエミュレーション対象回路動作用のクロック波形、1302はシステムクロック波形、1303はエミュレーション・システムにおける遅延前の信号波形、1304はエミュレーション・システム内で遅延量#20に相当する時間遅延された信号波形、1305は解析用に合成されたエミュレーション対象回路の動作クロックの信号波形、1306は解析用に合成されたエミュレーション対象回路の遅延前の信号波形、1307は解析用に合成された遅延状態#20に相当する時間、遅延されたエミュレーション対象回路の信号波形である。
また、本実施の形態5の手法では、レジスタ・パス間における信号遅延フリップ・フロップの挿入段数に対し遅延状態を割り当てるため、システムクロック周期に対し、遅延単位を割り当てる方法に比べ、フリップ・フロップの挿入段数が少なくなる。また、分周率も低く抑えることができるため、実施の形態1に比べ高速なエミュレーションを行うことができるという利点がある。
本発明のハードウェア・エミュレーション・システムは、回路データ上に記述されている信号遅延情報をエミュレーション上に反映させることができ、信号遅延を考慮した機能検証を高速に行うことができるものであり、半導体集積回路の高速動的検証システムに適用することができる。
本発明の実施の形態1のハードウェア・エミュレーション・システムの概略構成を示すブロック図 同実施の形態1のハードウェア・エミュレーション・システムにおいて、レジスタ・パス間に信号遅延調整クロックで動作するフリップ・フロップを1段挿入した場合の一例を示す構成図 同実施の形態1のハードウェア・エミュレーション・システムにおいて、レジスタ・パス間にフリップ・フロップを挿入しない場合と1段挿入した場合の信号波形の比較説明図 同実施の形態1のハードウェア・エミュレーション・システムにおいて、レジスタ・パス間にフリップ・フロップを直列に3段挿入した場合の一例を示す構成図 同実施の形態1のハードウェア・エミュレーション・システムにおいて、レジスタ・パス間にフリップ・フロップを挿入しない場合と3段挿入した場合の信号波形の比較説明図 本発明の実施の形態2のハードウェア・エミュレーション・システムにおいて、システムクロック1周期に遅延値#1を割り当て、回路記述1をエミュレータに配置した場合を示す構成図 本発明の実施の形態3のハードウェア・エミュレーション・システムにおいて、始点レジスタと終点レジスタとの間にシステムクロックのポジティブエッジで動作する信号遅延フリップ・フロップとネガティブエッジで動作する信号遅延フリップ・フロップを交互に挿入した場合の一例を示す構成図 同実施の形態3のハードウェア・エミュレーション・システムにおいて、信号波形の遅延を示した波形図 本発明の実施の形態4のハードウェア・エミュレーション・システムにおけるエミュレーション・データ生成方法を示すフローチャート 同実施の形態4のハードウェア・エミュレーション・システムにおいて、入力回路データの例と工程901で生成される遅延情報リストの一例の説明図 同実施の形態4のハードウェア・エミュレーション・システムにおいて、VerilogHDLにおけるクロック記述の一例の説明図 本発明の実施の形態5のハードウェア・エミュレーション・システムにおいて、レジスタ・パス間における信号遅延状態に対しシステムクロックで動作するフリップ・フロップにより遅延された状態を仮想的に割り当てた場合のイメージを示す説明図 同実施の形態5のハードウェア・エミュレーション・システムにおいて、解析用に波形合成した場合の例を示す波形図
符号の説明
101 エミュレーション対象回路配置用可変論理デバイス
102 配線用可変論理デバイス
103 メモリデバイス
104 システムクロック発生装置
105 分周クロック生成装置(可変論理デバイス)
106 コントローラ
107 ホストコンピュータ
108 インターフェース
109 データ配線
110 システムクロック配線
111 エミュレーション対象回路クロック配線
112 コントロール線
201 始点レジスタ用フリップ・フロップ
202 終点レジスタ用フリップ・フロップ
203、204 論理回路
205 信号遅延用フリップ・フロップ
206 エミュレーション対象回路動作用クロック線
207 信号遅延用レジスタ動作用クロック線
208〜211 ノード
301 システムクロック波形
302 エミュレーション対象回路動作用クロック波形
303 ノード信号波形
304 ノード信号波形
305 ノード信号波形
306 ノード信号波形
307 ノード信号波形
401 始点レジスタ用フリップ・フロップ
402 終点レジスタ用フリップ・フロップ
403、404 論理回路
405 信号遅延用フリップ・フロップ
406 エミュレーション対象回路動作用クロック線
407 信号遅延用レジスタ動作用クロック線
408〜410 ノード
501 システムクロック波形
502 エミュレーション対象回路動作用クロック波形
503 ノード信号波形
504 ノード信号波形
505 ノード信号波形
506 ノード信号波形
601 ノード(a)
602 ノード(b)
603 ノード(c)
604 信号遅延用フリップ・フロップ
605 エミュレーション対象回路動作用クロック線
606 信号遅延用レジスタ動作用クロック線
607 論理回路網
608 論理回路網
609 論理回路網
701 始点レジスタ用フリップ・フロップ
702 終点レジスタ用フリップ・フロップ
703、704 論理回路
705 信号遅延用フリップ・フロップ
706 信号遅延用フリップ・フロップ
707 エミュレーション対象回路動作用クロック線
708 信号遅延用レジスタ動作用クロック線
709〜714 ノード
801 システムクロック波形
802 エミュレーション対象回路動作用クロック波形
803 ノード信号波形
804 ノード信号波形
805 ノード信号波形
806 ノード信号波形
807 ノード信号波形
808 ノード信号波形
906 遅延情報リスト
907 分周回路データ
908 エミュレーション用回路データ
1001 回路記述の例
1002 遅延情報リストの例
1101 クロック記述の例
1201 始点レジスタ用フリップ・フロップ
1202 終点レジスタ用フリップ・フロップ
1203 信号遅延用フリップ・フロップ
1204 信号遅延用レジスタ動作用クロック線
1205〜1210 ノード
1211 エミュレーション対象回路動作用クロック波形
1212 システムクロック波形
1213〜1218 ノード信号波形
1301 エミュレーション対象回路動作用クロック波形
1302 システムクロック波形
1303 信号波形
1304 信号波形
1305 エミュレーション対象回路動作用クロック波形
1306 信号波形
1307 信号波形

Claims (10)

  1. 複数のレジスタ間にエミュレーション対象となる論理回路を形成するためのプログラム可能な複数個の可変論理デバイスと、前記可変論理デバイス内のエミュレーション対象論理回路間を任意に接続可能な可変配線手段と、前記エミュレーション対象論理回路および前記可変配線手段の回路接続状態を示す各種データを蓄積するためのメモリデバイスと、前記エミュレーション対象論理回路に対するエミュレーション時の制御を指示するホストコンピュータとをインターフェース接続するインターフェース手段と、前記ホストコンピュータから前記インターフェース手段を通じて入力される指示に従って、エミュレーション動作を制御するコントローラとを備えたハードウェア・エミュレーション・システムにおいて、前記可変配線手段の任意接続により前記エミュレーション対象論理回路上に発生した複数のレジスタ・パス間およびクロック線の信号遅延量を調整する遅延調整回路を設け、前記コントローラは、前記エミュレーション動作時に、前記遅延調整回路による信号遅延量の調整を制御するよう構成したことを特徴とするハードウェア・エミュレーション・システム。
  2. 請求項1記載のハードウェア・エミュレーション・システムであって、前記遅延調整回路は、システム内の最速クロックで動作するフリップ・フロップで形成し、前記コントローラは、前記エミュレーション動作時に、前記エミュレーション対象論理回路の動作クロックとして、前記最速クロックよりも低速なクロックを使用し、前記フリップ・フロップを前記エミュレーション対象論理回路のデータ・パス間に信号遅延フリップ・フロップとして挿入し、前記信号遅延フリップ・フロップの出力信号を遅延信号として扱うように、制御するよう構成したことを特徴とするハードウェア・エミュレーション・システム。
  3. 請求項2記載のハードウェア・エミュレーション・システムであって、前記遅延調整回路は、前記最速クロックとして、システム内の発振回路から生成されるシステムクロックを使用するよう構成し、前記コントローラは、前記エミュレーション対象論理回路の動作クロックとして、前記システムクロックを分周した分周クロックを使用するように、制御するよう構成したことを特徴とするハードウェア・エミュレーション・システム。
  4. 請求項3記載のハードウェア・エミュレーション・システムであって、前記コントローラは、前記システムクロックの1周期を、ハードウェア記述言語で記述された遅延量の最小遅延単位に割り当て、前記信号遅延フリップ・フロップを、前記エミュレーション対象論理回路のデータ・パス間に必要な遅延量に相当する段数挿入するように、制御するよう構成したことを特徴とするハードウェア・エミュレーション・システム。
  5. 請求項3記載のハードウェア・エミュレーション・システムであって、前記コントローラは、回路記述やテスト記述に記述されている遅延値の最大公約数を算出し、その最大公約数を前記最小遅延単位として前記システムクロックの1周期に割り当て、前記信号遅延フリップ・フロップを、前記エミュレーション対象論理回路のデータ・パス間に必要な遅延量に相当する段数挿入するように、制御するよう構成したことを特徴とするハードウェア・エミュレーション・システム。
  6. 請求項3記載のハードウェア・エミュレーション・システムであって、前記コントローラは、前記システムクロックの半周期を、ハードウェア記述言語で記述された遅延量の最小遅延単位に割り当て、前記信号遅延フリップ・フロップとして、前記システムクロックのポジティブエッジで動作するフリップ・フロップと、前記システムクロックのネガティブエッジで動作するフリップ・フロップとを交互に多段接続し、前記信号遅延フリップ・フロップの挿入段数を変化させるように、制御するよう構成したことを特徴とするハードウェア・エミュレーション・システム。
  7. 請求項3記載のハードウェア・エミュレーション・システムであって、前記コントローラは、前記エミュレーション対象論理回路上のレジスタ・パス間に、前記システムクロックで動作する信号遅延フリップ・フロップを挿入して、時間軸上で独立した信号遅延状態を作り出し、その信号遅延状態に対して、前記レジスタ・パス間における信号遅延状態を遅延量の小さい状態から順に仮想的に割り当てるように、制御するよう構成したことを特徴とするハードウェア・エミュレーション・システム。
  8. 請求項7記載のハードウェア・エミュレーション・システムであって、前記レジスタ・パス間に多段挿入した前記信号遅延フリップ・フロップの出力ノードに信号観測用ノードを設け、前記コントローラは、前記ホストコンピュータに前記出力ノードにおける信号データを転送し、前記遅延状態の割り当て情報と前記エミュレーション対象論理回路の動作クロック周期情報とから、前記ハードウェア記述言語で記述された信号遅延状態を反映した波形を合成するように、制御するよう構成したことを特徴とするハードウェア・エミュレーション・システム。
  9. 請求項2記載のハードウェア・エミュレーション・システムであって、前記遅延調整回路は、前記最速クロックとして、外部装置から生成されるクロックを使用するよう構成し、前記コントローラは、前記エミュレーション対象論理回路の動作クロックとして、前記外部装置からのクロックを分周した分周クロックを使用するように、制御するよう構成したことを特徴とするハードウェア・エミュレーション・システム。
  10. 請求項1から請求項9のいずれかに記載のハードウェア・エミュレーション・システムにおける遅延エミュレーション用データ生成方法であって、前記エミュレーション対象論理回路の回路記述を解析し、記述されている信号遅延情報を抽出する信号遅延情報抽出工程と、前記エミュレーション対象論理回路のテスト記述を解析し、記述されているクロック情報を抽出するクロック情報抽出工程と、前記システムクロックに最小遅延単位を割り当てる最小遅延単位割り当て工程と、前記クロック情報と前記最小遅延単位割り当て結果から分周率を算出し、その分周率を実現するための分周回路を合成して生成する分周回路生成工程と、前記エミュレーション対象論理回路の回路データに、前記信号遅延フリップ・フロップを挿入する信号遅延フリップ・フロップ挿入工程とを有する遅延エミュレーション用データ生成方法。
JP2004073630A 2004-03-16 2004-03-16 ハードウェア・エミュレーション・システム Pending JP2005266838A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004073630A JP2005266838A (ja) 2004-03-16 2004-03-16 ハードウェア・エミュレーション・システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004073630A JP2005266838A (ja) 2004-03-16 2004-03-16 ハードウェア・エミュレーション・システム

Publications (1)

Publication Number Publication Date
JP2005266838A true JP2005266838A (ja) 2005-09-29

Family

ID=35091368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004073630A Pending JP2005266838A (ja) 2004-03-16 2004-03-16 ハードウェア・エミュレーション・システム

Country Status (1)

Country Link
JP (1) JP2005266838A (ja)

Similar Documents

Publication Publication Date Title
EP2145272B1 (en) Multiplexing of inputs and delayed inputs of a circuit emulation
US6058492A (en) Method and apparatus for design verification using emulation and simulation
EP2145273B1 (en) Computation of phase relationship by clock sampling
US10061883B2 (en) Reciprocal quantum logic (RQL) circuit synthesis
US8527972B2 (en) Method for forming a parallel processing system
US5649176A (en) Transition analysis and circuit resynthesis method and device for digital circuit modeling
CN109783954B (zh) 一种ies联合fpga硬件仿真加速系统
US6301553B1 (en) Method and apparatus for removing timing hazards in a circuit design
US20060074622A1 (en) Software state replay
KR20130081354A (ko) 분산 병렬 시뮬레이션에서의 통신 방법
US10185794B2 (en) Overlaying of clock and data propagation in emulation
JP3896177B2 (ja) エミュレーションシステム
US10664561B1 (en) Automatic pipelining of memory circuits
EP2541448A1 (en) Method and system for partial reconfiguration simulation
US7228513B2 (en) Circuit operation verification device and method
US8074192B2 (en) Verification support apparatus, verification support method, and computer product
US7992112B2 (en) Hardware verification programming description generation apparatus, high-level synthesis apparatus, hardware verification programming description generation method, hardware verification program generation method, control program and computer-readable recording medium
Sayinta et al. A mixed abstraction level co-simulation case study using systemc for system on chip verification
US7162403B2 (en) System and method for efficiently tracing simulation data in hardware acceleration simulation systems
US9223910B1 (en) Performance and memory efficient modeling of HDL ports for simulation
US7937259B1 (en) Variable clocking in hardware co-simulation
Kim et al. TPartition: testbench partitioning for hardware-accelerated functional verification
JP2005266838A (ja) ハードウェア・エミュレーション・システム
JP5328447B2 (ja) 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体
US7246053B2 (en) Method for transforming behavioral architectural and verification specifications into cycle-based compliant specifications