JP2002259157A - 回路内エミュレーション装置及びそのチップ設計方法、及び回路内エミュレーションシステム - Google Patents

回路内エミュレーション装置及びそのチップ設計方法、及び回路内エミュレーションシステム

Info

Publication number
JP2002259157A
JP2002259157A JP2001295226A JP2001295226A JP2002259157A JP 2002259157 A JP2002259157 A JP 2002259157A JP 2001295226 A JP2001295226 A JP 2001295226A JP 2001295226 A JP2001295226 A JP 2001295226A JP 2002259157 A JP2002259157 A JP 2002259157A
Authority
JP
Japan
Prior art keywords
design
interface
circuit emulation
pin signal
language
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
JP2001295226A
Other languages
English (en)
Inventor
Chong Min Kyung
宗 旻 慶
In Cheol Park
仁 哲 朴
Seung Jong Lee
承 鍾 李
An Do Ki
安 度 奇
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.)
DYNALITH SYSTEMS CO Ltd
Korea Advanced Institute of Science and Technology KAIST
Original Assignee
DYNALITH SYSTEMS CO Ltd
Korea Advanced Institute of Science and Technology KAIST
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 DYNALITH SYSTEMS CO Ltd, Korea Advanced Institute of Science and Technology KAIST filed Critical DYNALITH SYSTEMS CO Ltd
Publication of JP2002259157A publication Critical patent/JP2002259157A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • 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
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

Landscapes

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

Abstract

(57)【要約】 【課題】 望む目標システムと関連したチップ設計にお
いて、チップ設計の初期段階にてロジック関数を高速に
検証するための装置及びその方法を提供する。 【解決手段】 内部ロジック設計と、少なくとも一つ
のインターフェースプロトコルによって目標システム1
2と通信するための外部インターフェース設計とに分か
れるチップ設計を検証する回路内エミュレータ10は、
内部ロジックの設計によってロジック関数のアルゴリズ
ムを処理するプロセシングエンジン101と、外部イン
ターフェースの設計によって複数のピン信号を生成する
ピン信号生成部102とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にエミュレ
ーションによるロジック関数の検証に関し、特にチップ
設計の際、ロジック関数を高水準のプログラミング言語
で記述してエミュレーションを行う装置及びその方法に
関する。
【0002】
【従来の技術】集積回路付き半導体チップ(以下「チッ
プ」と称す)を成功的に設計するためには、そのような
チップや該チップを集積するシステム等の複雑さが顕著
に増大するほど、より莫大な努力や時間を必要とする。
そのようなチップの製造の際、チップ設計過程における
エラーを予め取り除くことが望ましいので、チップ設計
際のロジック設計の検証が幅広く採択されている。多様
な検証技法の中の一例として、目標システムで用いるた
めに設計したチップのロジック関数の論理的正確さを検
証するエミュレーション技法がある。
【0003】通常、ロジック関数の検証はソフトウェア
モデリング、ハードウェアモデリング、またはこれらの
組合せによって行われている。ソフトウェアモデリング
とは、C/C++等の高水準プログラミング言語、また
はVHDL,バーリログ(Verilog)等のハード
ウェア記述言語(HDL)のいずれかを用いて、ソフト
ウェアによるロジック挙動を記述するものを言う。米国
特許第6,009,256号においては、HDL言語で
回路の構造と機能を特定して該回路のソフトウェアモデ
ルまたはハードウェアモデルを生成する、「SEmul
ation system」との発明が開示されてい
る。また、米国特許第6,058,592号には、HD
L言語に基づいたもので、前掲の特許と類似したロジッ
クエミュレータが開示されている。
【0004】しかしながら、特に、システムオンチップ
の発展に伴いロジック設計がさらに複雑となり、ロジッ
ク設計やシステム内のロジック検証に要求される時間を
短縮させることが極めて重大となる。ロジック設計の初
期段階にて、コーディングやデバッギングが容易で且つ
HDL言語に比べて実行速度が速い、CやC++のよう
なソフトウェアプログラミング言語を用いてロジックに
対してエミュレーションを行うことが望ましい。
【0005】周りのハードウェアシステムまたは目標シ
ステムに接続してロジックの機能的挙動を検証した後、
ロジックは受動または自動化装置によってハードウェア
及びソフトウェアとして具現できる複数の部分に細分化
され得る。このような方法によって、従来のHDLに基
づいたエミュレーション方法に比べて設計や検証に要す
る時間を大幅に減少させる。
【0006】米国特許第4,901,259号には、H
DLのモデルだけではなく、ソフトウェアプログラミン
グ言語のモデルもインターフェースを通じて目標システ
ムに接続された汎用コンピュータ上で動作できるように
する、「ASIC emulator」が開示されてい
る。これは、基本的に、ソフトウェアモデリングによっ
て行われる全ての外部回路とのインターフェースの際に
生成される、全てのピン信号を受け取る汎用ピンI/O
同期装置である。ASICエミュレータシステムはモデ
リングに含まれたピン信号値を計算し、その計算値を電
気信号に変換して目標システムのソケットに送り出す。
ホストコンピュータとASICエミュレータとの間の通
信は、全てのピンに対して必要とする多数のピン信号値
で構成される。
【0007】しかし、高速エミュレーションを必要とす
る場合、米国特許第4,901,259号の「ASIC
エミュレータ」はいくつかの問題点を有する。第一、ホ
ストコンピュータの用いるソフトウェアは外部インター
フェース部のために用いるピン信号の生成に係わる全プ
ロセスを実行させるのに遅い。第二、一つの完全なホス
トコンピュータのI/Oポートを通じた通信速度は一般
的にプロセッサの速度に比べて極めて遅い。第三、ホス
トコンピュータが汎用オペレーティングシステムを用い
て、演算能力をアルゴリズムの実行だけに焦点を当てら
れないので、ロジックのアルゴリズムの実行速度が遅い
という点である。
【0008】一方、C言語記述のチップ設計をレジスタ
転送レベル(RTL)記述に自動変換するツールが開発
されている。しかし、そのようなツールはエーシック
(ASIC:特定用途向け集積回路)等の複雑なチップ
を検査するのに個別的に使用されてきた。換言すれば、
目標システムと共にチップを検証するためには該目標シ
ステムによって多様な外部装置とのインターフェースを
要するので、目標システムに取り付けられているC記述
チップの検証が不可能であった。
【0009】従って、目標ハードウェアシステムの環
境、即ち回路内(in−circuit)環境におい
て、CやC++のような高水準プログラミング言語で記
述したチップ設計に対するエミュレーションを高速で且
つ效果的に行うことができるエミュレータが依然に必要
となる。
【0010】
【発明が解決しようとする課題】本発明の主な目的は、
望む目標システムに係わるチップ設計において、チップ
設計の初期段階にてロジック関数を高速に検証するため
の装置及びその方法を提供することにある。
【0011】
【課題を解決するための手段】このため、ロジック関数
のアルゴリズム挙動はCやC++等の高水準プログラミ
ング言語で記述される。その後、ロジック関数のアルゴ
リズムはホストコンピュータにてコンパイルされ、本発
明のエミュレータへダウンロードされる。本発明の一実
施例によるエミュレータは、少なくとも一つのプロセッ
サを有するプロセシングエンジン部と、現場でプログラ
ム可能なゲートアレイまたは現場でプログラム可能な論
理デバイスのような少なくとも一つのプログラム可能な
論理デバイスを有するピン信号生成部とから構成され
る。プロセシングエンジン部は、高水準プログラミング
言語で記述したアルゴリズムのコンパイルコードを実行
させ、ピン信号生成部は目標ロジックの外部インターフ
ェースと互換され得るピン信号を生成する。また、本発
明のエミュレーションはピン信号の波形を容易に観察す
るためのデバッギングまたはモニターリング部をも含
む。
【0012】本発明の他の実施例による方法において
は、I/O変数をI/O関数に変換するチップ設計フロ
ーが提供される。I/O変数は、チップの機能をモデル
したアルゴリズムにおいて外部の目標システムとの相互
作用に必要となるソフトウェア変数を表す。I/O変数
は対応するI/O関数に変換され、それによって、アル
ゴリズムはピン信号生成部で外部インターフェースを用
いることができる。
【0013】
【発明の実施の形態】以下、本発明の好適実施例につい
て、添付図面を参照しながらより詳しく説明する。
【0014】図1は、本発明によるエミュレーション環
境の略示模式図である。このエミュレーション環境は、
プロセシングエンジン101及びピン信号生成部(PS
G)102を有するエミュレータ10を含む。このエミ
ュレータ10はホストコンピュータ11と通信し、ホス
トコンピュータ11はCやC++のようなプログラミン
グ言語で作成したアルゴリズムをコンパイルしてコンパ
イルコードを生成する。その後、生成されたコンパイル
コードは通信ポート14を通じてエミュレータ10のメ
モリ(図示せず)に伝送される。この場合、コンパイル
コードのエミュレータ10への伝送は他の通信プロトコ
ルまたは通信方式を用いてもよい。
【0015】また、本発明のエミュレーション環境は設
計したチップが取り付けられるべき目標システム12を
含む。この目標システム12は通常、エミュレータ10
との通信のためのソケット121、他のエミュレータ1
3、IC124及び別々のロジック123との通信する
ためのソケット122を含む。エミュレータ13は本発
明のものであるか、またはそれと類似なものであっても
よい。
【0016】プロセシングエンジン101は目標チップ
の用途によって、信号処理、変復調、または暗/復号化
等、目標ロジックの内部ロジック関数を行う。PSG1
02は現場でプログラム可能なゲートアレイ(FPG
A)、現場でプログラム可能な論理デバイス(PLD)
等の少なくとも一つのプログラム可能な論理素子を有
し、目標システム12における他のIC124及び他の
ロジック123とインターフェースできるように構成さ
れ得る。そのような構成によって、PSG102は読取
り信号、書込み信号及び制御信号を目標システムへ発生
する。プロセシングエンジン101とPSG102との
間の通信はPCIバス、グラフィック専用高速バス(A
GP)等、専用または通常の通信メカニズムに基づいた
チャンネル15を介して行われる。
【0017】PSG102によって生成したピン信号は
目標システム12のソケット121に送られる。ソケッ
ト121のピン構成は目標システム12によって異なる
ので、ソケットアダプター16がPSG102のピンと
ソケット121の対応ピンとの間の接続に用いられ得
る。
【0018】図2は、本発明の好適実施例によるプロセ
シングエンジン101の詳細なブロック図である。プロ
セシングエンジン101はコンパイルコードを実行させ
る一つまたはそれ以上のプロセッサ201、202と、
該コンパイルコードの実行の際、ダウンロードしたコン
パイルコード及び一時的なデータを格納する一つまたは
それ以上のメモリ203、204とから構成される。ま
た、プロセシングエンジン101はプロセッサ201、
202とメモリ201、202とを接続するホストバス
205をも有する。コンパイルコードは通信ポート14
を通じてホストコンピュータ11からメモリ203、2
04へダウンロードされる。
【0019】また、プロセシングエンジン101はPS
G初期化器214をも備える。このPSG初期化器21
4によって、PSG102のFPGAまたはPLDは目
標システム12に対して少なくとも一つの外部インター
フェースとして機能を果たすこととなる。また、プロセ
シングエンジン101は割込み制御器213を含み、こ
れはPSG102を始めてプロセシングエンジン101
における各構成要素からの割込み要求を受取って、該割
込み要求の内容を解明する。PCIバス206はPSG
初期化器214と割込み制御器213とを接続する。ま
た、プロセシングエンジン101はクロック発生部(図
示せず)、電源制御器(図示せず)等を有する補助ロジ
ック212をも組み込む。
【0020】プロセシングエンジン101において、ホ
ストブリッジ208はプロセッサ201、202及びメ
モリ201、202に接続されたホストバス205とP
CIバス206との間の通信を支援し、X−バスブリッ
ジ209はPCIバス206とX−バス207との間の
通信を支援する。このX−バス207はISA(業界標
準アーキテクチャ)バス等の産業標準バスでもよい。シ
ステムROM211はプロセシングエンジン101にお
ける全てのハードウェア構成要素に対する初期化コード
またはブーティングコードを格納する。通信ポート14
を提供する通信装置210により、プロセシングエンジ
ン101はホストコンピュータ11と通信できる。この
通信装置210は例えば万能非同期送受信機(UAR
T)、ユニバーサルシリアルバス(USB)、並列通信
装置等の従来通信装置であってもよい。
【0021】図3は、図1中のPSG102の詳細なブ
ロック図である。同図において、プロセシングエンジン
101とPSG102との間にはチャンネルとしてのP
CIバス15が介在する。PSG初期化器214の初期
化によって、PSG102はPCI制御部300、復号
化部301、割込み処理部302、デバッギング部30
3、及び一つまたはそれ以上のインターフェースライブ
ラリ部304,305から構成される。PCI制御部3
00はPCIバス206を制御して、外部のプロセシン
グエンジン101と、アドレス/データバス306及び
制御バス307を通じて接続されている内部の各構成要
素301,302,303,304,305との間のデ
ータ通信を制御する。
【0022】PSG102に対してデータの読取りまた
は書込みが要求される時、プロセシングエンジン101
は標準PCIプロトコルを用いてPSG102内の各構
成要素301,302,303,304,305をアド
レスする。その後、PCI制御部300はPCIバス2
06上のアドレスがPSG102内の各構成要素の中の
いずれに対するものかをモニターリングする。そうであ
れば、復号化部301は予め決められたアドレスマップ
テーブルに基づいて、どの構成要素がアドレス指定され
たのかを判定する。アドレス指定された構成要素が選択
されると、プロセシングエンジン101からのデータは
PCIバス206を通じて該構成要素へ送られる。
【0023】デバッギング部303は、C/C++で作
成したチップのソフトウェアモデル及び/または目標シ
ステム12のハードウェアをデバッギングモデルするた
めに、インターフェースライブラリ部304,305の
I/O信号を格納する。割込み処理部302によって、
PSG102における各構成要素303,304,30
5はプロセシングエンジン101との実質的な通信が可
能となる。インターフェースライブラリ部304,30
5は少なくとも一つの外部インターフェースモデルによ
って構成され、目標システム12とインターフェースす
るのに要求される実際のピン信号を発生する。
【0024】図4は図3中の復号化部301の詳細なブ
ロック図であって、アドレスデコーダ40及び制御ロジ
ック41を有する。アドレスデコーダ40はアドレス/
データバス306を通じてアドレス入力信号を受信し、
制御信号42をPSG102内の該当構成要素へ送る。
制御ロジック41はアドレスストローブ43及びデータ
要求44で示されたような制御信号を制御バス307を
通じて受信し、アドレスデコーダ40を制御してデータ
受信通知信号45を発生する。
【0025】図5は図3中の割込み処理部302の詳細
なブロック図であって、デバッギング部303及びイン
ターフェースライブラリ部304からの状態情報57を
受取る。この割込み処理部302は、割込み要求53及
び割込みベクトル52を図3中のPCI制御部300を
通じて図2中のプロセシングエンジン101内の割込み
制御器213に伝送する。ここで、割込みベクトル52
は複数の割込みベクトル中から選択される。
【0026】上記においては、優先順位エンコーダ50
を用いて多重要求の状態情報57から最高優先度の割込
みベクトル52を選択する実施例に対して説明されてい
る。また、上記では決まった優先順位メカニズムを示し
たが、当業者ならば、ラウンドロビン方式(round
−robin)または公正な優先順位方式(fairn
ess−based priority)のような優先
順位選択メカニズムを適用できることは勿論である。制
御ロジック51は優先順位エンコーダ50を制御し、割
込み要求53を発生し、割込み受信通知54を受取る。
【0027】図6は図3中のデバッギング部303の詳
細なブロック図である。同図のように、デバッギング部
303はインターフェースライブラリ部304,305
からのI/O信号をサンプリングし、それらをサンプル
データ格納器62に格納する。このサンプルデータ格納
器62はメモリ、循環キュータイプ格納器またはその他
のタイプの格納器でも具現されることができる。ピン信
号取得制御器60はトリガーイベント制御器61及びサ
ンプルデータ格納器62を各々信号線66,67を通じ
て制御する。ピン信号取得制御器61はプロセッサ20
1、202の制御下で、予め定められた信号パターンの
うちの一つまたはそれらの信号の組合せが発生する時、
トリガーイベント信号を生成するようにトリガーイベン
ト制御器61を制御する。トリガーイベント信号の発生
の際、ピン信号取得制御器60はサンプルデータのサン
プルデータ格納器62への格納を中止させ、その状態を
表す状態信号63を割込み処理部302に伝送する。結
局、サンプルデータ格納器62に格納されたサンプルデ
ータはI/O信号及びソフトウェア変数をモニターリン
グするPCI制御部300において用いられる。
【0028】図7は図3中のインターフェースライブラ
リ部304,305の詳細なブロック図である。これら
のインターフェースライブラリ部304,305は目標
システム12に設けられたピンとのインターフェースと
して機能を果たす。プロセシングエンジン101から各
々PCIバス15及びPCI制御部300を通じて入力
されたインターフェース制御コマンド及び出力データ
は、コマンドキュー71及び出力キュー72に各々格納
される。ピン信号78は制御ロジック70からの一連の
制御信号によって生成される。目標システム12から伝
送される入力信号は入力キュー73に格納され、プロセ
シングエンジン101に送られる。入力キュー73の状
態情報74及び出力キュー72の状態情報75は該当バ
ッファの状態を表し、制御バス307を通じて割込み処
理部302に送られる。
【0029】図8は、本発明の好適実施例によってコン
パイルエミュレーションモデルを具現する過程を説明す
るための流れ図である。
【0030】設計中のチップのロジック関数を記述する
プログラムが目標システム内の実際ハードウェアと相互
作用をするためには、適切な組のインターフェース関数
が必要となる。これらのインターフェース関数はプログ
ラムと通信し、目標システム内のハードウェアに対して
ピン信号の発生及び受信をどうするかを予め設定した規
格に基づいてハードウェアと相互作用をする。プログラ
ムにおいて、ハードウェアへのゲートウェーを示す各変
数はI/O変数という。インターフェース関数と通信す
るハードウェアの具現はインターフェースライブラリと
いう。
【0031】チップの行うアルゴリズムのモデリングは
高水準プログラミング言語で記述されるが、アルゴリズ
ムその自体が処理データのソースまたはあて先と関連が
ないので、処理するべきデータが外部装置に対して入力
または出力されるかが区別できない。また、インターフ
ェースの規格、即ち外部装置/回路との相互作用方式は
実際にチップの内部関数を示すアルゴリズムと関係がな
い。従って、本発明によれば、ユーザーは外部装置と通
信する部分を高水準プログラミング言語プログラム上で
I/O変数を通じて指定することができる。このような
過程は、アプリケーションプログラミングインターフェ
ース(API)の挿入と称す。
【0032】I/O変数に関して、インターフェース情
報は、一つまたはそれ以上のI/Oプロトコル、読取り
バス周期、書込みバス周期、及びプロトコルがアドレス
バスを要求する時、メモリの位置を指示するベースアド
レスを有する。このような情報によって、I/O変数は
各々I/O関数に変換されてインターフェースライブラ
リに送られる。チップの各インターフェースに対して、
I/O関数が生成される。
【0033】例えば、I/O変数「a」を読取る必要が
ある場合、I/O変数「a」に割当てられたプロトコル
によって目標システムからのデータの読取りは、「da
ta=a+b」は「data=io_read(POR
T_A)+b」に変換れ、「a=data」は「io_
write(PORT_A,data)」に変換される
という方式によって行われる。ここで、「a」はI/O
変数であり、「io_read( )」及び「io_w
rite( )」の両方はI/O関数である。このよう
な変換方式によって、変数へのアクセスは該当関数を実
行することによって行われる。
【0034】APIプログラムがI/O変数をI/O関
数に変換する間、ドライバビルダはI/O関数のコード
を生成し、I/O関数の同時実行特性を支援する多重ス
レッディング(multi−threading)のよ
うな別度の関数を準備する。
【0035】各I/O変数はPSG102に後続プロト
コルを知らせるために、PSG102に対して(上記
「PORT_A」のような)固有のポート(これをイン
ターフェースライブラリともいう)が割り当てられる。
即ち、I/O変数をアクセスすると、エミュレーション
チップにおける一つまたはそれ以上のピンが活性化され
る。I/O変数のアクセスパターンによって、I/Oの
方向が決定される。即ち、読取りアクセスは入力インタ
ーフェースプロトコルによって伝送されるべきデータを
表し、書込みアクセスは目標システム内の構成要素に出
力されるべきデータを表す。
【0036】インターフェースモデルはHDL基盤ハー
ドウェアモデルに変換された後、PSG102構造と関
連して前述したように、PSG102のPLDに合成ま
たはマッピングされる。以上の過程を図8を通じて詳細
に説明する。
【0037】第一、従来のテキストエディタ800を用
いて、目標チップで具体化されるロジック関数のアルゴ
リズム801をC/C++またはそれと類似な高水準プ
ログラミング言語で記述して作成する。ここで、高水準
プログラミング言語はシステムシー(SystemC)
またはスペックシー(SpecC)のような種々のC言
語であり得る。外部インターフェースが標準外部装置に
対するものであれば、インターフェースライブラリはハ
ードウェア記述言語(HDL)コード813によって用
意される。ユーザ定義標準の場合は、従来のテキストエ
ディタ812または有限状態マシン(FSM)エディタ
814を用いるFSMモデル815によって、インター
フェースの挙動が記述される。目標チップは様々な方式
にて目標システム12における他の部分とデータまたは
信号を交換するので、目標チップが目標システム120
にインストールされると、相互同意プロトコル(mut
ually−agreed protocol)を通じ
てデータの交換ができるように多くのインターフェース
ライブラリが必要である。このようなインターフェース
ライブラリが完成されれば、これらのライブラリはイン
ターフェースライブラリマネジャー816によってイン
ターフェースライブラリデータベース(DB)817に
登録される。
【0038】続けて、ステップ802にて、I/O変数
とそれらに対応するインターフェースライブラリとが指
定、決定される。
【0039】次に、トランスレター803はCコードに
基づいたアルゴリズム801を修正して、該アルゴリズ
ムがステップ802にて指定されたインターフェース関
数を有するようにする。
【0040】その後、ホストコンピュータ11における
Cコンパイラ805にて、修正済みのCコード804は
エミュレータ10のプロセシングエンジン102によっ
て実行され得るコード、即ち、コンパイルコード806
にコンパイルされる。
【0041】上記の手続きと併せて、PSGビルダー8
07はステップ802にて指定されたインターフェース
ライブラリをHDLコード808として生成する。ロジ
ック合成器809にて、HDLコード808はネットリ
スト810に順に合成されて、PSG102のPLDま
たはFPGAにマッピングされる。
【0042】上記において、本発明の好適な実施の形態
について説明したが、本発明の請求範囲を逸脱すること
なく、当業者は種々の改変をなし得るであろう。
【0043】
【発明の効果】従って、本発明によれば、外部インター
フェースによって要求されるピン信号を適切に生成する
ことによって、チップ設計に対するエミュレーションを
高速で且つ効果的に行うことができる。さらに、本発明
によれば、チップ設計の初期段階にて、チップ設計に対
するエミュレーションを行うことによって、チップ設計
やシステム開発に掛かる時間を大幅に減らすことができ
る。また、本発明によるエミュレーションを、MPEG
2ビデオデコーダ、MP3デコーダ及び無線モデムのよ
うな多様なアプリケーションにおける多様なチップ設計
検証の際に適用した結果、成功的な検証結果が得られ
た。
【図面の簡単な説明】
【図1】本発明によるエミュレーション環境の略示模式
図である。
【図2】本発明の好適実施例によるプロセシングエンジ
ンの詳細なブロック図である。
【図3】図1中のピン信号生成部(PSG)の詳細なブ
ロック図である。
【図4】図3中の復号化部の詳細なブロック図である。
【図5】図3中の割込み処理部の詳細なブロック図であ
る。
【図6】図3中のデバッギング部の詳細なブロック図で
ある。
【図7】図3中のインターフェースライブラリ部の詳細
なブロック図である。
【図8】本発明の好適実施例によってコンパイルエミュ
レーションモデルを具現する過程を説明するための流れ
図である。
【符号の説明】
10、13 エミュレータ 11 ホストコンピュータ 12 目標システム 101 プロセシングエンジン 102 ピン信号生成部(PSG) 121、122 ソケット 123 ロジック 124 IC
───────────────────────────────────────────────────── フロントページの続き (72)発明者 慶 宗 旻 大韓民国大田広域市儒城区漁隠洞99番地ハ ンビットアパート135棟901号 (72)発明者 朴 仁 哲 大韓民国大田広域市儒城区田民洞エクスポ アパート403棟1403号 (72)発明者 李 承 鍾 大韓民国京畿道高陽市一山区朱葉2洞文村 タウン大圓アパート1807棟1001号 (72)発明者 奇 安 度 大韓民国大田広域市儒城区漁隠洞99番地ハ ンビットアパート121棟501号 Fターム(参考) 2G132 AA01 AC12 AE14 AE18 AE23 AE24 AL09 5B046 AA08 BA02 CA04 GA01 JA03 JA05 5B048 AA20 BB02 DD15

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】内部ロジック設計と、少なくとも一つのイ
    ンターフェースプロトコルによって目標システムと通信
    するための外部インターフェース設計とに分かれるチッ
    プ設計を検証する回路内エミュレーション装置であっ
    て、 前記内部ロジックの設計によってコアアルゴリズムを処
    理する処理手段と、 前記外部インターフェースの設計によって複数のピン信
    号を生成するピン信号生成手段と、を含む回路内エミュ
    レーション装置。
  2. 【請求項2】前記処理手段が、少なくとも一つのマイク
    ロプロセッサを含むことを特徴とする請求項1に記載の
    回路内エミュレーション装置。
  3. 【請求項3】前記処理手段が、ホストコンピュータと通
    信するための通信手段をさらに含むことを特徴とする請
    求項1に記載の回路内エミュレーション装置。
  4. 【請求項4】前記処理手段が、前記ピン信号生成手段を
    構成するための初期化器を含むことを特徴とする請求項
    1に記載の回路内エミュレーション装置。
  5. 【請求項5】前記ピン信号生成手段が、現場でプログラ
    ム可能なゲートアレイ(FPGA)によって具現される
    ことを特徴とする請求項1に記載の回路内エミュレーシ
    ョン装置。
  6. 【請求項6】前記ピン信号生成手段が、現場でプログラ
    ム可能な論理デバイス(PLD)によって具現されるこ
    とを特徴とする請求項1に記載の回路内エミュレーショ
    ン装置。
  7. 【請求項7】前記少なくとも一つのインターフェースプ
    ロトコルが、標準インターフェースプロトコルを含むこ
    とを特徴とする請求項1に記載の回路内エミュレーショ
    ン装置。
  8. 【請求項8】前記少なくとも一つのインターフェースプ
    ロトコルが、ユーザ定義プロトコルを含むことを特徴と
    する請求項1に記載の回路内エミュレーション装置。
  9. 【請求項9】前記ピン信号生成手段が、前記ユーザ定義
    プロトコルを登録するための有限状態マシン(FSM)
    を含むことを特徴とする請求項8に記載の回路内エミュ
    レーション装置。
  10. 【請求項10】前記処理手段と前記ピン信号生成手段と
    の間の通信が、制御パケットによって行われることを特
    徴とする請求項1に記載の回路内エミュレーション装
    置。
  11. 【請求項11】前記処理手段と前記ピン信号生成手段と
    の間に、インターフェース制御パケットを交換するため
    のバスをさらに含むことを特徴とする請求項1に記載の
    回路内エミュレーション装置。
  12. 【請求項12】前記ピン信号生成手段が、 前記処理手段と通信する制御部と、 前記ピン信号生成手段における各構成要素の中のいずれ
    か一つを選択するためのアドレス復号化部と、 前記ピン信号生成手段の前記各構成要素からの多数の割
    込み要求の中から一つを選択するための割込み処理部
    と、 前記外部インターフェース設計の各々に対して構成さ
    れ、前記目標システムにおける外部回路に対するピン信
    号の送受信を行うインターフェースライブラリ部と、 前記ピン信号生成手段の内外部信号の両方を格納するた
    めのデバッギング部と、を含むことを特徴とする請求項
    1に記載の回路内エミュレーション装置。
  13. 【請求項13】回路内エミュレーションを通じてチップ
    設計を検証するチップ設計検証方法であって、 前記チップ設計をコアアルゴリズムに対する内部ロジッ
    ク設計とインターフェースプロトコルに対する外部イン
    ターフェース設計とに分ける第1段階と、 ハードウェア記述言語(HDL)を用いて前記インター
    フェースプロトコルを指定する第2段階と、 高水準プログラミング言語を用いて前記コアアルゴリズ
    ムを指定する第3段階と、 前記指定されたインターフェースプロトコルによってプ
    ログラム可能な論理デバイスをプログラミングして、適
    切なピン信号を生成する第4段階と、 マイクロプロセッサをプログラミングして前記コアアル
    ゴリズムを実行させる第5段階と、を含むチップ設計検
    証方法。
  14. 【請求項14】前記HDLが、VHDL言語であること
    を特徴とする請求項13に記載のチップ設計検証方法。
  15. 【請求項15】前記HDLが、バーリログ(Veril
    og)言語であることを特徴とする請求項13に記載の
    チップ設計検証方法。
  16. 【請求項16】前記高水準プログラミング言語が、C言
    語であることを特徴とする請求項13に記載のチップ設
    計検証方法。
  17. 【請求項17】前記高水準プログラミング言語が、C+
    +言語であることを特徴とする請求項13に記載のチッ
    プ設計検証方法。
  18. 【請求項18】前記高水準プログラミング言語が、シス
    テムシー(SystemC)言語であることを特徴とす
    る請求項13に記載のチップ設計検証方法。
  19. 【請求項19】前記高水準プログラミング言語が、スペ
    ックシー(SpecC)言語であることを特徴とする請
    求項13に記載のチップ設計検証方法。
  20. 【請求項20】内部ロジック設計と目標システムに係わ
    る外部インターフェース設計とに分けられるチップ設計
    を検証するチップ設計検証方法であって、 高水準プログラミング言語を用いて前記内部ロジック設
    計をモデリングする第1段階と、 ハードウェア記述言語を用いて前記外部インターフェー
    ス設計をモデリングする第2段階と、 有限状態マシン(FSM)のエディタを用いて外部イン
    ターフェースプロトコルをモデリングする第3段階と、 インターフェースライブラリ管理プログラムの制御下
    で、前記外部インターフェースプロトコルにおける各イ
    ンターフェースライブラリを管理する第4段階と、 前記目標システムに対して読取られるか書込まれるべき
    ソフトウェア変数としての入出力変数を定義する第5段
    階と、 前記入出力変数を各々、前記目標システムに対するデー
    タの読取り及び書込みを行う入出力関数に変換する第6
    段階と、を含むチップ設計検証方法。
  21. 【請求項21】コアアルゴリズムを実行させる内部ロジ
    ック設計と、目標システムとの通信のための外部インタ
    ーフェース設計とに分けられる、チップ設計を検証する
    エミュレータプログラムを記録したコンピュータ読取り
    可能な記録媒体であって、 前記コアアルゴリズムにインターフェースコードを挿入
    するアプリケーションプログラミングインターフェース
    (API)構成手段、 前記コアアルゴリズムと独立して実行できるスレッディ
    ングを用いて前記インターフェースコードを生成するド
    ライバ構成手段、 再構成可能なハードウェアを構成するコードを生成し
    て、前記外部インターフェース設計に要求されるピン信
    号を生成するピン信号生成構成手段、としてコンピュー
    タを機能させるためのエミュレータプログラムを記録し
    たコンピュータ読取り可能な記録媒体。
  22. 【請求項22】前記API構成手段が、入出力関数に変
    換されるべき入出力変数を用いることを特徴とする請求
    項21に記載のコンピュータ読取り可能な記録媒体。
  23. 【請求項23】目標システムで用いられるチップの設計
    を検証する回路内エミュレーションシステムであって、 前記チップのソフトウェアモデルをコンパイルしてコン
    パイルコードを生成するホストコンピュータと、 前記ホストコンピュータから前記コンパイルコードをダ
    ウンロードして前記目標システムと相互作用するエミュ
    レータとを含み、 前記ソフトウェアモデルが高水準プログラミング言語で
    記述される回路内エミュレーションシステム。
  24. 【請求項24】前記エミュレータが、 前記コンパイルコードを実行させる処理手段と、 前記目標システムとインターフェースするのに要求され
    るピン信号を生成するピン信号生成手段と、をさらに含
    むことを特徴とする請求項25に記載の回路内エミュレ
    ーションシステム。
  25. 【請求項25】前記ピン信号生成手段が、多数の機能部
    で構成されることを特徴とする請求項26に記載の回路
    内エミュレーションシステム。
  26. 【請求項26】前記エミュレータが、ピン信号及びソフ
    トウェア変数をモニターリングし、デバッギングするピ
    ン信号分析器を、さらに含むことを特徴とする請求項2
    5に記載の回路内エミュレーションシステム。
JP2001295226A 2001-02-27 2001-09-27 回路内エミュレーション装置及びそのチップ設計方法、及び回路内エミュレーションシステム Pending JP2002259157A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2001-0009918A KR100434240B1 (ko) 2001-02-27 2001-02-27 고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법
KR2001-9918 2001-02-27

Publications (1)

Publication Number Publication Date
JP2002259157A true JP2002259157A (ja) 2002-09-13

Family

ID=19706298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001295226A Pending JP2002259157A (ja) 2001-02-27 2001-09-27 回路内エミュレーション装置及びそのチップ設計方法、及び回路内エミュレーションシステム

Country Status (5)

Country Link
EP (1) EP1235152A2 (ja)
JP (1) JP2002259157A (ja)
KR (1) KR100434240B1 (ja)
CN (1) CN1229721C (ja)
TW (1) TW594513B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266416B2 (en) 2007-12-19 2012-09-11 Fujitsu Limited Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117324A1 (en) * 2002-12-19 2006-06-01 Koninklijke Philips Electronics N.V. System and method for controlling a robot
CN100450041C (zh) * 2004-02-21 2009-01-07 华为技术有限公司 一种信息传输的方法和装置
CN100367228C (zh) * 2004-07-31 2008-02-06 华为技术有限公司 一种集成电路的仿真方法
CN100412874C (zh) * 2004-11-26 2008-08-20 鸿富锦精密工业(深圳)有限公司 延时器仿真模型设计装置及方法
US8001505B2 (en) 2008-09-15 2011-08-16 Synopsys, Inc. Method and apparatus for merging EDA coverage logs of coverage data
DE102009048746B4 (de) * 2009-10-08 2013-10-24 Netstal-Maschinen Ag Verfahren zur Steuerung und Bedienung einer Produktionszelle sowie eine Steuereinrichtung
CN102377655A (zh) * 2010-08-19 2012-03-14 盛科网络(苏州)有限公司 软件仿真asic转发的系统和方法
KR101678480B1 (ko) * 2015-07-08 2016-11-22 주식회사 유비콤테크놀로지 R 언어 기반 빅데이터 처리용 fpga 시스템 및 방법
CN105070127A (zh) * 2015-08-11 2015-11-18 武汉美 一种交互式实训教学系统以及方法
US10552190B2 (en) 2017-01-16 2020-02-04 International Business Machines Corporation Precise error injection for driver testing
TWI670617B (zh) * 2018-10-31 2019-09-01 財團法人工業技術研究院 模擬系統與方法
US20220128980A1 (en) * 2019-02-18 2022-04-28 Siemens Aktiengesellschaft Automation code generator for interoperability across industrial ecosystems
KR20200139525A (ko) 2019-06-04 2020-12-14 삼성전자주식회사 Fpga를 포함하는 전자 시스템 및 이의 동작 방법
CN110851516B (zh) * 2019-11-07 2022-04-19 中国银行股份有限公司 主机运控系统及方法
CN112329369B (zh) * 2020-11-09 2024-04-12 安徽芯纪元科技有限公司 一种在芯片仿真模型上进行软件调试的方法
CN113219853A (zh) * 2021-04-09 2021-08-06 北京国电思达科技有限公司 Plc控制器的半物理仿真平台搭建方法及装置
CN112949234A (zh) * 2021-04-14 2021-06-11 山东高云半导体科技有限公司 Fpga物理模型的软件建模方法及装置
CN113742280B (zh) * 2021-07-14 2023-07-28 江西昌河航空工业有限公司 能够自定义通信协议的双arm系统
CN114861581B (zh) * 2022-04-26 2024-03-08 河南科技大学 基于图像识别的可编程逻辑器件的辅助编程设计方法
CN116090403B (zh) * 2023-02-13 2023-12-26 上海合见工业软件集团有限公司 支持多仿真器的命令处理系统
CN116562203B (zh) * 2023-04-10 2023-10-20 合芯科技有限公司 一种调试系统中数据的处理方法、装置、设备及存储介质
CN116384305B (zh) * 2023-06-05 2023-08-01 英诺达(成都)电子科技有限公司 数据通信方法、装置、系统、设备及计算机存储介质
CN117194276B (zh) * 2023-11-06 2024-01-23 沐曦集成电路(上海)有限公司 芯片软硬件联合仿真调试系统
CN117521583A (zh) * 2023-11-17 2024-02-06 中科苏州智能计算技术研究院 一种时钟驱动的软硬件联合仿真方法、系统及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266416B2 (en) 2007-12-19 2012-09-11 Fujitsu Limited Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system

Also Published As

Publication number Publication date
KR100434240B1 (ko) 2004-06-04
CN1372193A (zh) 2002-10-02
KR20020069631A (ko) 2002-09-05
CN1229721C (zh) 2005-11-30
EP1235152A2 (en) 2002-08-28
TW594513B (en) 2004-06-21
EP1235152A8 (en) 2003-01-22

Similar Documents

Publication Publication Date Title
JP2002259157A (ja) 回路内エミュレーション装置及びそのチップ設計方法、及び回路内エミュレーションシステム
US9311437B2 (en) Modeling a bus for a system design incorporating one or more programmable processors
JP4112886B2 (ja) デバイスのバス・プロトコル準拠試験方法およびシステム
US6571204B1 (en) Bus modeling language generator
US20050039174A1 (en) Apparatus and method for co-simulating processors and DUT modules
EP1299826A1 (en) Circuit component interface
US20060195812A1 (en) Designing system and method for designing a system LSI
US7584456B1 (en) Method and apparatus for debugging embedded systems having read only memory
US10255400B1 (en) Debugging system and method
CN115146568B (zh) 一种基于uvm的芯片验证系统及验证方法
JP2006285333A (ja) 動作合成装置及び方法
US6810373B1 (en) Method and apparatus for modeling using a hardware-software co-verification environment
US20060282586A1 (en) Bus system design method and apparatus
CN115017845A (zh) 用于ip单元级别验证的总线驱动式芯片仿真激励模型
US20050144436A1 (en) Multitasking system level platform for HW/SW co-verification
EP3532936B1 (en) Debugging system and method
Kim et al. Virtual chip: making functional models work on real target systems
US10409935B2 (en) Modeling a bus for a system design incorporating one or more programmable processors
US20080294421A1 (en) Hard Disk Drive Adapter For Emulating Hard Disk Drive Interface
US7228513B2 (en) Circuit operation verification device and method
US7096440B2 (en) Methods and systems for automatic verification of specification document to hardware design
JP2002366602A (ja) ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム
JP4589255B2 (ja) ハードウェア/ソフトウェア協調検証装置
US20060161422A1 (en) Virtual emulation modules, virtual development systems and methods for system-on-chip development
US20040204928A1 (en) Simulator apparatus and related technology

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040629

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041130