JP2009009325A - Icエミュレーション装置およびicエミュレーション方法 - Google Patents

Icエミュレーション装置およびicエミュレーション方法 Download PDF

Info

Publication number
JP2009009325A
JP2009009325A JP2007169529A JP2007169529A JP2009009325A JP 2009009325 A JP2009009325 A JP 2009009325A JP 2007169529 A JP2007169529 A JP 2007169529A JP 2007169529 A JP2007169529 A JP 2007169529A JP 2009009325 A JP2009009325 A JP 2009009325A
Authority
JP
Japan
Prior art keywords
boundary scan
value table
program
output
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.)
Pending
Application number
JP2007169529A
Other languages
English (en)
Inventor
Ryuji Naito
竜治 内藤
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.)
TOKUSHU DENSHI KAIRO KK
Original Assignee
TOKUSHU DENSHI KAIRO KK
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 TOKUSHU DENSHI KAIRO KK filed Critical TOKUSHU DENSHI KAIRO KK
Priority to JP2007169529A priority Critical patent/JP2009009325A/ja
Publication of JP2009009325A publication Critical patent/JP2009009325A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】ICの設計ソースコードを論理合成することなく、ICの入出力端子がソースコードに記載された機能を模擬して動くようにするための、ICエミュレーション方法を提供する。
【解決手段】バウンダリスキャンを実行してICの入力信号を取得し、得られた入力信号と与えられたICのソースコードから出力信号を論理シミュレーションによって計算し、その出力結果をバウンダリスキャンの入力として用いることによって、ICの端子を操作する。
【選択図】 図2

Description

本発明は、ICの動作をエミュレーションする装置に関する。また、ICの動作をエミュレーションする装置のプログラムに関する。さらにICの動作をエミュレーションする方法に関するものである。
近年の電子回路基板とりわけ組み込みシステム用の回路基板は、一般的にFPGAやCPLDやASICやCPUなど能動的に動作する機能を持った大規模LSI(以下、FPGA等と略す)を中心として、コネクタや受動部品、電源、各種インタフェースIC、メモリIC、アナログIC、その他のIC(以下、各種ICと略す)などの電子部品を周辺に配置した構成となっている。
このような回路基板を設計し、FPGAやCPU内部の回路やプログラムを開発する段階においては、回路の中心となるFPGA等と、基板上の各種ICとの論理的な接続を確立する作業が行われる。
FPGA等と各種ICとの間で論理的な接続を確立するためには、FPGA等は、各種ICが規定する手順で電気信号を入出力しなければならない。FPGA等の設計者は、各種ICが目的の機能を果たすよう動作することが確認できるまで、FPGA等のソースコードを修正あるいは加筆して論理合成を行うという作業を繰り返し行うことになる。
FPGAの設計においては論理シミュレータが使われることがある。論理シミュレータはFPGA内部の回路の動作をコンピュータ上で模擬するものである。論理シミュレータはハードウェア記述言語で記述されたFPGAの設計ソースコードに基づいて、FPGAの内部信号と出力信号の論理値を計算するプログラムである。FPGA外部の各種ICとの接続シーケンスを含めた回路全体をシミュレーションするためには、それらの各種ICが入出力するであろうと予測される信号のパターンを記述したテストベクタというものを、人が作成する必要があった。
しかしながら、テストベクタはあくまでも、FPGA外の回路の動作を人が予測して記述するものであるため、必ずしも周辺回路の動作をすべて正確に記述したものではない。したがって、シミュレーション後には実機を用いて、周囲の各種ICを動作させる動作確認が行われてきた。
実機での動作確認を行うためには、FPGAの論理合成とダウンロードという作業を行う必要があった。一般にFPGAの論理合成は長時間を要するものである。ソースコードを修正して論理合成を行うという作業を何度も繰り返した場合、論理合成に要する時間長いと作業効率が低下した。
さて、近年のFPGAやCPLD、ASIC、CPUなどの大規模LSIは、バウンダリスキャンに対応しているものが多い。バウンダリスキャンとは、IEEE1149.1で規格化されたスキャンテスト方式である。IEEE1149.1はJTAG(ジェイタグ)とも呼ばれる。JTAGおよびバウンダリスキャンについては非特許文献1に詳しい解説がある。
バウンダリスキャンを利用すると、FPGA等が入出力する信号端子の論理状態を、そのFPGA等に設けられたJTAG信号端子を介して、外部のコンピュータから自由に観測したり操作したりすることができる。
従来の技術においては、バウンダリスキャンはプリント基板の実装検査などの分野で応用されてきた。これは、バウンダリスキャン対応ICの端子が出力する信号の論理値を、テスト技術者があらかじめ作成したテストパターンにしたがって順番に操作し、その結果周囲の回路から返される各種信号の論理をコンピュータ上に取り込み、それを人またはコンピュータが解析して良否を判定するものである。
バウンダリスキャン以外のJTAGの活用方法としてはJTAG−ICEが挙げられる。JTAG−ICEとは、ターゲットCPUの動作をエミュレーションする技術である。この方法は、JTAGポートを介してホストコンピュータとCPU内部のテスト回路間で通信し、CPUの命令実行ユニットなど遠隔制御して任意の機械語命令を実行させる方法である。したがって、実際の制御手順はCPUの品種ごとに異なる。JTAG−ICEの説明および実現方法については特許文献1に詳しい解説がある。
特開2004−280588号公報 JTAGテストの基礎と応用、1998年、CQ出版社
本発明が解決しようとする課題は、ICの設計ソースコードを論理合成することなく、ICの入出力端子がソースコードに記載された機能を模擬して動くようにするための、ICエミュレーション方法を提供することである。
バウンダリスキャンプログラムと、論理シミュレーションプログラムを用意し、バウンダリスキャンプログラムはICから得たバウンダリスキャンビット列をもとにICが入力する信号の論理値の一覧を記載したテーブルを作成し、論理シミュレーションプログラムは前記テーブルとICの設計ソースコードを用いて論理シミュレーションを実行し、その結果得られた出力信号の論理値をテーブルとして出力し、バウンダリスキャンプログラムは前記の出力信号テーブルをもとにバウンダリスキャンビット列を生成し、JTAGポートを介してそのビット列をICのバウンダリスキャンにセットすることによって、ICの端子を操作する。
すなわち、本発明は、ターゲットICから取得したバウンダリスキャンレジスタビット列に基づいて当該ICの入力信号論理値テーブルを生成するバウンダリスキャンプログラムと、前記入力信号論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成する論理シミュレーションプログラムと、前記出力信号論理値テーブルに基づいてバウンダリスキャンビット列を生成して当該ICのバウンダリスキャンレジスタにセットする前記バウンダリスキャンプログラムとを用いて当該ICの動作を模擬することを特徴としたICエミュレーション装置である。
また、本発明は、バウンダリスキャンプログラムにおいて、ターゲットICから取得したバウンダリスキャンレジスタビット列を解析して当該ICの入力信号論理値テーブルを生成して論理シミュレーションプログラムの入力に与える機能と、前記論理シミュレーションプログラムが生成する出力信号論理値テーブルに基づいて当該ICのバウンダリスキャンビット列を生成する機能を備えたバウンダリスキャンプログラムである。
また、本発明は、論理シミュレーションプログラムにおいて、バウンダリスキャンプログラムがターゲットICから取得したバウンダリスキャンレジスタビット列に基づいて生成した入力信号論理値テーブルと、当該ICの設計ソースコードとを入力として、論理シミュレーションを行い、その結果を出力信号論理値テーブルとして前記バウンダリスキャンプログラムに与えることを特徴とした論理シミュレーションプログラムである。
また、本発明は、ターゲットICから取得したバウンダリスキャンレジスタビット列に基づいて当該ICの入力信号論理値テーブルを生成するバウンダリスキャンプログラムと、前記入力信号論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成する論理シミュレーションプログラムとから構成され、前記バウンダリスキャンプログラムは前記出力信号論理値テーブルに基づいて当該ICに出力するバウンダリスキャンビット列を生成することを特徴とするICエミュレーションプログラムである。
また、本発明は、バウンダリスキャンプログラムがターゲットICから取得したバウンダリスキャンレジスタビット列を解析して当該ICの入力信号論理値テーブルを生成し、論理シミュレーションプログラムが前記入力信号論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成し、前記バウンダリスキャンプログラムが前記出力信号論理値テーブルに基づいてバウンダリスキャンビット列を生成することによって、当該ICの動作を模擬するICエミュレーション方法である。
また、本発明は、ターゲットICから取得したバウンダリスキャンレジスタビット列を解析して当該ICの入力信号論理値テーブルを生成するバウンダリスキャンプログラムと、前記入力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて入力信号修正論理値テーブルを作成する入力信号修正プログラムと、前記の入力信号修正論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成する論理シミュレーションプログラムと、前記出力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて出力信号修正論理値テーブルを作成する出力信号修正プログラムと、前記出力信号修正論理値テーブルに基づいてバウンダリスキャンビット列を生成して当該ICのバウンダリスキャンレジスタにセットする機能を備えた前記バウンダリスキャンプログラム、を用いて当該ICの動作を模擬することを特徴としたICエミュレーション装置である。
また、本発明は、ターゲットICから取得したバウンダリスキャンレジスタビット列を解析して当該ICの入力信号論理値テーブルを生成するバウンダリスキャンプログラムと、前記入力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて入力信号修正論理値テーブルを作成する入力信号修正プログラムと、前記の入力信号修正論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成する論理シミュレーションプログラムと、前記出力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて出力信号修正論理値テーブルを作成する出力信号修正プログラムと、前記出力信号修正論理値テーブルに基づいてバウンダリスキャンビット列を生成して当該ICのバウンダリスキャンレジスタにセットする機能を備えた前記バウンダリスキャンプログラム、から構成されるICエミュレーションプログラムである。
また、本発明は、バウンダリスキャンプログラムがターゲットICから取得したバウンダリスキャンレジスタビット列を解析して当該ICの入力信号論理値テーブルを生成し、入力信号修正プログラムが前記入力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて入力信号修正論理値テーブルを生成し、論理シミュレーションプログラムが前記入力信号修正論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成し、
出力信号修正プログラムが前記出力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて出力信号修正論理値テーブルを生成し、前記バウンダリスキャンプログラムが前記出力信号修正論理値テーブルに基づいてバウンダリスキャンビット列を生成して当該ICのバウンダリスキャンレジスタにセットすることによって、当該ICの動作を模擬するICエミュレーション方法である。
好適には、本発明は、上記ICエミュレーション装置において、入力信号修正論理値テーブルには、当該ICの入力信号が前回取得した状態と異なる場合のみ記載することを特徴としたICエミュレーション装置である。
また、好適には、本発明は、上記ICエミュレーションプログラムにおいて、入力信号修正論理値テーブルには、当該ICの入力信号が前回取得した状態と異なる場合のみ記載することを特徴とした、ICエミュレーションプログラムである。
また、好適には、本発明は、上記ICエミュレーション方法において、入力信号修正論理値テーブルには、当該ICの入力信号が前回取得した状態と異なる場合のみ記載することを特徴とした、ICエミュレーション方法である。
本発明を用いれば、バウンダリスキャンに対応したICの入出力端子を、バウンダリスキャンを用いて操作することによって、ICの論理合成を行うことなく、かつソースコードで記述したとおりに動作させることができ、コンピュータで計算したとおりにICの動作をエミュレーションできるようになる。
図1は、本発明を実施する際のシステム構成の例を示したものである。
検査対象ターゲット回路基板上には、JTAGバウンダリスキャンに対応したICとして、FPGAが実装されており、FPGAの入出力端子には不揮発性メモリICとLED、コネクタ、スイッチなどが接続されている。FPGAのJTAG端子は回路基板上に設置されたJTAGコネクタを介して基板外に出力されている。
本発明のICエミュレーション装置は、このFPGAをバウンダリスキャンで操作することによって、FPGA内部の論理回路は停止させたまま、FPGAの端子のみをコンピュータから制御するものである。このことによって、回路基板上の不揮発性メモリICなどを操作する機能を持ったFPGAのソースコードのデバッグを支援することを目的とする。
コンピュータとターゲット回路基板との間は、JTAG信号入出力装置を用いて接続する。JTAG信号入出力装置は、コンピュータ上のUSBポートもしくはパラレルポートに接続する。コンピュータ上のプログラムは、JTAG信号入出力装置を介してTDI、TDO、TCK、TMSの4本のJTAG信号を操作する。JTAG信号入出力装置内にはマイコンなどを搭載して、JTAG信号をより高速に生成する機能を備えても良い。
コンピュータにはキーボードとマウスが接続され、オペレータが操作することができるようになっている。このコンピュータは本発明に係る手順を実行するためのプログラムが格納されている。コンピュータはネットワーク接続機能を備えていてもよい。なお、このコンピュータは一般的なパソコンでよい。
ターゲット基板上のFPGAを論理合成するためのソースコードファイルは、前記コンピュータのハードディスク装置に格納されている。当然ながら、コンピュータがネットワークに接続されている場合は、このファイルは他のサーバ上にあってもよい。
ターゲット基板上のFPGAのJTAGに関する情報が記述されたファイル、すなわちIEEE1149.1で規定するところのBSDLファイルは、前記コンピュータのハードディスク装置に格納されている。コンピュータがネットワークに接続されている場合は、このファイルは他のサーバ上にあってもよい。
次に図2を用いて本発明に係る装置の動作を説明する。本発明はバウンダリスキャンプログラム、論理シミュレーションプログラムから構成される。バウンダリスキャンプログラムはJTAG信号入出力装置を操作して、ターゲットIC内のバウンダリスキャンレジスタを読み込み、またはセットする。バウンダリスキャンプログラムは入力ビット列を生成して、論理シミュレーションプログラムに与える。論理シミュレーションプログラムは入力信号論理値テーブルと当該ICに係る設計ソースコードを読み込み、論理シミュレーションを実行する。その結果を出力信号論理値テーブルとしてバウンダリスキャンプログラムに与える。バウンダリスキャンプログラムは与えられた出力信号論理値テーブルに基づいてビット列を生成し、JTAG信号入出力装置を介して当該ICへ送信する。
図3は、バウンダリスキャンプログラムのより詳細な構成を表したものである。バウンダリスキャンプログラムは、BSDLファイルを読み込んで解釈する「BSDL解釈ルーチン」と、JTAG信号入出力装置を操作する「JTAG入出力ルーチン」と、バウンダリスキャンで取得したビット列から入力信号の論理値を記載したテーブルを生成する「バウンダリスキャン入力ルーチン」と、出力信号の論理値を記載したテーブルからバウンダリスキャンで出力するビット列を生成する「バウンダリスキャン出力ルーチン」から構成される。
図4は本発明を実施するより発展的な構成である。図2の構成と比べると、バウンダリスキャンプログラムが出力した入力信号論理値テーブルの中にある特定の信号の状態を、入力値修正手順に従って修正する「入力信号修正プログラム」と、論理シミュレーションの結果得られた出力信号論理値テーブルを出力値修正手順に従って修正する「出力信号修正プログラム」が追加されている。図4で追加されたこれらのプログラムの効果については、後で説明する。
次に、図3に戻ってバウンダリスキャンプログラムの動作について説明する。バウンダリスキャンプログラム内のBSDL解釈ルーチンは、ターゲット基板上のFPGAに関する情報が記述されたBSDLファイルを読み込み、解釈する機能を持つ。BSDLファイルには、当該FPGAのJTAGコマンドの一覧、当該FPGAのバウンダリスキャンレジスタ長と、バウンダリスキャンレジスタの各ビットと端子の対応などが記述されている。本プログラムはBSDLファイルに記述されたこれらの情報を読み込み、「内部端子名−セル番号・機能対応テーブル」を作成して格納する。
一般的に、BSDLファイルの前半には、入出力端子の名称と入出力端子の番号が一覧として記述されている。BSDLの後半には、入出力端子の名称と、当該入出力端子から出力する値を保持するバウンダリスキャンセルの番号と、当該入出力端子から入力された値を保持するバウンダリスキャンセルの番号と、当該入出力端子の入出力方向を設定する値を保持するバウンダリスキャンセルの番号と、前記セルの意味付けとが一覧表として記載されている。
JTAG入出力制御ルーチンは、コンピュータに接続されたJTAG信号入出力装置を操作して、FPGAのTAPステートマシンを操作するためのTMS信号とTCK信号を送出する制御を行う。また、バウンダリスキャンルーチンから受け取った出力ビット列を、JTAG信号入出力装置を介してFPGAのTDI端子に送信し、TDO端子から受信したビット列をバウンダリスキャン入力ルーチンに送る機能を持つ。
JTAG入出力制御ルーチンの動作を、図5に示した一般的なJTAG対応ICの構造を用いて説明する。JTAG対応ICは、各種のシフトレジスタと、TAPステートマシン、DRマルチプレクサ、IRマルチプレクサなどから構成されている。各種のシフトレジスタには、命令レジスタとデータ系レジスタがある。データ系レジスタには、バウンダリスキャンレジスタ、バイパスレジスタ、IDCODEレジスタ、および各種のオプションレジスタなどがある。これらのビット長はICごとに異なるが、その長さについてはBSDLファイルに記載されている。
図5に示したように、TDI端子とTDO端子の間には各種のシフトレジスタとマルチプレクサがあり、いずれかひとつのシフトレジスタが選択して接続されている。命令レジスタとデータ系レジスタの選択は、TAPステートマシンの状態によって決定される。データ系レジスタの中のいずれのレジスタが選択されるかは、一般的には命令レジスタにセットされている命令コードの値によって決定される。
JTAG入出力制御ルーチンは動作開始後、最初のステップで、FPGA内のTAPステートマシンを、SHIFT_IR状態に遷移させるための信号を出力する。SHIFT_IRなどのTAPステートについてはIEEE1149.1で規定されている。具体的な手順としては、TMS信号をH→H→H→H→H→L→H→L→Lの順に指定しながらTCK信号にクロックを出力すればよい。その後、BSDLファイルに記載されたEXTEST命令ビット列を調べてTDI信号に送出する。例えば、当該FPGAの命令ビット長が5ビットであって、EXTEST命令のビット列が“00000”であれば、TDIをLレベルに保ったまま、TCKに5回のクロックを与えることでEXTEST命令を与えることができる。
EXTEST命令を与えた後、TAPステートマシンをUPDATE_IR状態に遷移させると、当該FPGAはEXTESTモードに遷移する。FPGAはそのときにプログラムされている論理回路コアの状態に関わらず、各入出力端子は内部の論理回路コアから切り離される。
FPGAがEXTEST状態にあるとき、ICのTDI端子とTDO端子の間にはバウンダリスキャンレジスタが接続される。TAPステートマシンがUPDATE_IRステートにある場合、TMS信号をH→H→L→Lと遷移させながらTCKにクロックを与えると、TAPステートマシンはSHIFT_DRステートに遷移する。この過程ではCAPTURE_DRステートを経由するので、バウンダリスキャンレジスタにはその時点での入出力端子の状態が取り込まれることになる。ICがSHIFT_DRステートにある時に、バウンダリスキャンレジスタ長の数だけTCKにクロックを与えると、TDO端子からバウンダリスキャンレジスタの値がシフト出力される。JTAG信号入出力装置はこのTDO端子の状態をキャプチャし、パソコン上のプログラムへ送信する。
本発明で用いたバウンダリスキャンプログラムは、上記のような手順でJTAG信号を操作することができる。なお、TDO端子をキャプチャして得られたバウンダリスキャンレジスタのビット列は、CAPTURE_DRステートを通過した時点での端子の状態が反映されたものである。バウンダリスキャンレジスタの何ビット目がどの端子に接続されているか、という情報は前記BSDLファイルから抽出した「内部端子名−バウンダリスキャンセル機能対応テーブル」を参照することで判明する。
IC内部のロジックが入出力する信号は出力バッファと入力バッファを介して入出力端子と接続されるのが一般的であるが、バウンダリスキャン対応ICでは図6に示したように、内部回路と入出力バッファ間にバウンダリスキャンセルが挿入されている。ICが通常動作を行っている時は、バウンダリスキャンセルは信号を通過させるだけである。ICがバウンダリスキャンモードでは、内部回路と入出力のバッファ間の信号は電気的に切り離される。バウンダリスキャンセルは前述したシフトレジスタであるため、TDI端子とTDO端子を通じてバウンダリスキャンセルの値をシリアルに入出力することによって、当該ICが入出力する信号を自由に調べ、または設定することができる。バウンダリスキャン対応ICの中には、出力ができない入力専用構造の端子を持つものや、複数の端子で入出力の方向を決めるセルを共有しているものなど例外はあるが、1つの端子あたり3つのバウンダリスキャンセルを用いて制御しているものが多い。
例えば図6に例示した入出力端子は、EXTESTモード時にCTRLセルに1、OUTPUTセルに1というデータを与えた場合は出力状態となり、Hレベルを出力する。一方、CTRLセルを0に設定した場合は、この端子は入力状態となって、現在の端子の値がINPUTセルに格納される。
バウンダリスキャン入力ルーチンは、前記の「内部端子名−バウンダリスキャンセル機能対応テーブル」を参照することで、まず内部端子名とその論理値を把握する。このテーブルは図10のような構造をしている。
バウンダリスキャン入力ルーチンは、次に図9に示した「端子番号−内部端子名対応テーブル」を参照することで、内部端子名を端子番号に変換し、端子番号と入力信号の論理値を把握する。さらにその次に図8の「信号名−端子番号対応テーブル」を参照することによって、端子番号を信号名に変換し、信号名とその信号の論理値を把握する。
このようにして、ユーザが設定した信号の名前と、その信号名の端子からICが入力した論理値を対応付けるデータが作成される。この手順を繰り返し行うことによって、シミュレーションに必要なすべての端子の状態を調べ、図7に示した入力信号情報テーブルが作成される。
次に、論理シミュレーションプログラムの動作を説明する。
論理シミュレーションプログラムは、入力端子状態に記載された情報と、与えられたソースコードから次の出力状態を計算するプログラムである。論理シミュレーションの方法には、イベントドリブン型、サイクルベース型、コンパイラ型など様々な方法がある。イベントドリブン型は入力信号が変化した場合に計算を行う方式で、非同期式回路にも適用できるという特徴がある。サイクルベース型は同期式回路に特化された方式で、クロックが変化した時点で計算を行う方式である。コンパイラ型は、VHDLやVerilogやSystemC言語などのハードウェア記述言語で与えられたソースコードを、C言語やC++言語に変換して、ソフトウェアとしてコンパイルして実行するものである。
いずれの方式の論理シミュレーションであっても本発明の方法は適用できるが、ここではイベントドリブン型のシミュレーションプログラムのある実装例を用いて説明する。
論理シミュレーションプログラムは、ソースコード中に記載された変数や、出力端子の状態を内部変数として持つ。またシミュレーションとして計算している時刻を変数として持つ。論理シミュレーションプログラムはハードウェア記述言語で記述されたソースコードを字句軸解析および構文解析して、AND文やOR文などの論理演算、IF文などの条件分岐、FOR文WHILE文などのループ構造、<=文などの代入式、およびクロック同期文を認識する。
論理シミュレーションプログラムは、ソースコードに記載された入力信号が変化すると、「変化した信号名と、シミュレーション時刻と、変化後の論理値」の組みを記載したイベントという事象を発生させる。発生したイベントはイベントキューに登録される。
論理シミュレーションプログラムは、イベントキューから順番にイベントを取り出し、そのイベントに記載されたシミュレーション時刻が、現在のシミュレーション時刻である場合に、当該信号が変化したと判断する。信号の状態が変化するとソースコードを調べて、当該信号が、論理式の各入力項か、IF文などの条件文の条件式か、もしくは代入式の右辺にある場合に論理計算を実行し、代入式の左辺にある内部変数の値を更新する。他の変数や出力値に影響を及ぼさないイベントは何も影響を与えずに終了する。
内部変数の値が変更されると、それに伴って新規のイベントが発生し、イベントキューに登録される。そして、その内部変数を参照する論理式や代入式、条件式を探し、さらに次の内部変数を変化させる。このように入力信号の変化によって連鎖的にイベントが発生して内部変数が変化する。最終的にすべての内部変数が定常状態に落ち着くまでイベントの発生と処理が繰り返される。
すべてのイベントが処理され、イベントキューが空になると、入力の変化に対応した出力値の計算が完了したことになる。このような手順によって、回路における非同期回路と組み合わせ回路の部分は計算される。
論理シミュレーションは基本的には上記の手順を利用して行うことができるが、クロック同期文を解釈できるものや、論理圧縮を行ってからシミュレーションを行うもの、ネットリストに翻訳してから実行するもの、ソフトウェアに変換してコンパイルして実行するものなど様々な実装方法がある。しかしながら、いずれの方式も本質的には与えられたソースコードと端子の入力状態から、次の出力状態を計算するという点では一致しており、本発明に適用することができる。
前記の論理シミュレーションの手順によって、当該FPGAにおけるすべての出力端子状態が計算されたら、バウンダリスキャン出力ルーチンに渡される。
次に、バウンダリスキャン出力ルーチンが、出力用のバウンダリスキャンビット列を作成する方法を説明する。本発明でいうところの、入力信号情報テーブルと出力信号情報テーブルとは、具体的には図7に例示するようなユーザが設定した信号名とその論理値の羅列されたテーブルである。
このテーブルはすべての信号を記載するのではなく、信号の値が前回の値から変化のあった部分だけを記載することで、データ量を削減してもよい。データ量を削減することは演算回数を低減する効果もある。
バウンダリスキャン出力ルーチンは、出力信号情報テーブルの中にある信号名と論理値をから、前記の「信号名−端子番号対応テーブル」を参照することにより、FPGAの端子番号と論理値の組を作成する。次いで、「端子番号−内部端子名対応テーブル」を参照することによって内部端子名と論理値の組のデータを作成する。こうして信号名から内部端子名が得られたら、「内部端子名−バウンダリスキャンセル機能対応テーブル」を参照することによって、当該端子の入力出力の方向を設定するためのCTRLセルの番号と、目的の出力を行うためのOUTPUTセルの番号を知ることができる。これらの情報からバウンダリスキャン出力ルーチンは、出力ビット列中の目的のビットを設定する。
図7〜図10に示した各種テーブルを例に、上記の手順の具体な計算手順を説明する。いま、得られたバウンダリスキャンビット列中の11番目のビットが0であったとする。図10のテーブルを参照することで、ビット11は内部端子名IOPAD_99を持つ端子の入力状態を保持したビットであることがわかる。次に図9のテーブルを参照することで、IOPAD_99という内部信号名の端子は、99番の端子であることがわかる。さらに、図8のテーブルを参照することでPUSHSWという信号は、当該FPGAの99番の端子に接続されていることがわかる。したがって、PUSHSWという名前の信号は0を入力していることがわかる。入力ビット列中のすべてビットについて同様の計算を行うと、図7に示したような、入力信号情報テーブルが作成できる。
論理シミュレーションを行うと、図7の出力信号情報テーブルが作成される。今度はADDR(2)信号について注目して出力ビット列を作る過程を説明する。図8のテーブルを参照すると、ADDR(2)信号はFPGAの124番の端子に接続されていることがわかる。図9のテーブルを参照すると、FPGAの124番の端子はIOPAD_124という内部名を持つことがわかる。図10のテーブルを参照すると、IOPAD_124番の信号は、51番目のセルで方向を制御し、50番目のセルで出力値を設定することがわかる。こうして、目的の信号を出力するための出力ビット列をセットする。
上記のような手順を必要なだけ繰り返し、すべての出力端子に対応するビットを設定したら、目的の出力用バウンダリスキャンビット列が生成できたことになる。このビット列をJTAG入出力制御ルーチンに渡すことによって、JTAG入出力装置から信号が出力され、対象としているFPGA内のバウンダリスキャンレジスタに出力ビット列がセットされる。この手順を実行するときFPGAはEXTESTモードであるため、FPGAの各入出力端子は論理シミュレータが計算した出力状態にセットされることになる。
なお、上に述べた、出力端子状態からバウンダリスキャンビット列の生成する手順の説明は、説明のために最も原理的な方法を用いた。高速化のためには複数のテーブルを1つに纏めてテーブルを参照する回数を減らすのも有効である。
上記の手順を繰り返し実行することによって、FPGAの入力端子をバウンダリスキャンで調べ、論理シミュレーションの実行により出力端子が出力すべき状態を得て、バウンダリスキャンで出力する、という操作を連続して実行することが可能になる。また繰り返しのステップを任意のタイミングで停止したり、あるいはオペレータの指示によって1ステップづつ実行したりする手段を設ければ、FPGAの動作を一時停止あるいはステップ実行することができる。また、論理シミュレータの内部変数をコンピュータの画面に表示することによって、FPGAが入出力する信号を容易に観測できるようになる。こうしてBGAパッケージや多層基板を用いたにおいても信号観測が容易に行えるようになる。
図11は本ICエミュレーション装置が表示する画面の例である。図10の上部には、当該FPGAが出力する信号(アドレス信号の一部とリード信号)が、画面下部には当該FPGAが入力する信号(データ信号の一部とプッシュスイッチ入力)の波形が記載されている。図の下にある、「実行」「一時停止」「停止」「閉じる」は画面上に設置されたボタンである。「実行」ボタンを押すことにより、エミュレーションを開始あるいは再開することができる。「一時停止」ボタンは、エミュレーションのサイクルを一時的に停止し、または1サイクルだけ実行することによってステップ実行を行うために用いられる。図11に示した画面の例は、FPGAがアドレス信号とリード信号を出力して、周囲の回路がそれに応答してデータ信号を送信してきたものを、FPGAでサンプリングした場合の波形を例示している。
上記の手順は、説明を簡略化するためいくつかの付加的な手順を省いて行った。以下に本発明を実行するのにより望ましい方法をいくつか示す。
JTAG信号を入出力する速度は、FPGAのバウンダリスキャンレジスタ長をTCK速度で割った値となる。仮にバウンダリスキャン長が3000ビット、TCK速度が30MHzの場合、理論上は毎秒10000回のバウンダリスキャンが可能である。しかしながら、USBやパラレルインタフェースの問題、ソフトウェアの処理速度の問題などにより、実際はそれよりも遅くなる。実際には、バウンダリスキャンが可能な速度は、毎秒数百から数千回程度である。それに対してFPGAのクロックは数十MHzから数百MHzで動作しているため、クロック信号のように、バウンダリスキャンのサイクルよりも高速に動作している信号をバウンダリスキャンによってサンプリングした場合は、正しくその信号の遷移を見ることができない。したがって、そのような信号、とりわけクロック信号の入力状態を調べる際には、バウンダリスキャン入力ルーチンは、実際のFPGAから得られた値を無視して入力端子状態の当該信号に0と1を交互に設定し、見かけ上0と1が交互に入力されたように見せて、シミュレーションプログラムに渡してもよい。
また、FPGAが外部にクロック信号を出力するような場合や、ソースコードに記載されたとおりの結果ではなく一時的に任意の値を出力させたいような場合は、バウンダリスキャン出力ルーチンは論理シミュレーションで得られた出力端子情報のうち当該端子の状態を変更して出力してもよい。本発明にはこのような操作を行う出力信号修正プログラムを付加することができる。
また、JTAG対応デバイスはEXTESTモードに移行すると、その時点でバウンダリスキャンレジスタに設定されている値にしたがって、各入出力端子から出力が行われてしまう。バウンダリスキャンレジスタの初期値は不定であることがあるため、ICが出力してはならない値を出力する可能性がある。したがって、EXTESTモードに移行する前に一度SAMPLE/PRELOADモードに移行させるのが望ましい。SAMPLE/PRELOADモードでも、EXTESTと同様にICの入出力端子の状態を調べることができる。逆に、EXTESTとは異なりバウンダリスキャンレジスタにセットした内容は実際の端子から出力されない。したがって、SAMPLE/PRELOADモードではバウンダリスキャンレジスタを安全な値にセットした後、EXTESTモードに移行させるのが望ましい。
なお、バウンダリスキャンレジスタの入力と出力は同時に行われる。したがって、バウンダリスキャンレジスタへ値を設定すると、目的の信号をFPGAから出力することができるが、その時点で入力として得られたバウンダリスキャンレジスタの値は、FPGAの出力が更新される前の状態に対応した、周囲の回路の状態である。すなわち、FPGAの出力が変化してから周囲の回路の状態が変化し、それによってFPGAの入力が変化するため、FPGAの出力結果に対応した外部の回路からの反応を得るには、バウンダリスキャンを同じ出力データを用いて2回実行する必要がある。1度目のバウンダリスキャンはFPGAの出力端子から信号を出力するため、2度目のバウンダリスキャンはFPGAの入力端子から信号を入力するために行われる。
入力信号論理値テーブルを修正する際の効果を以下に述べる。例えば、入力信号のうちCLKという名称の端子は、FPGAが入力するクロック信号であるとあらかじめ指定しておく。前述したように、通常FPGAのクロック入力はバウンダリスキャンの周期よりもはるかに短い時間で遷移しているため、バウンダリスキャンを行うごとにHとLが交互に入力される保証はない。したがって、入力信号修正プログラムは、入力されたCLK端子の状態を変更して、強制的に交互にHとLを設定する。これによって、HとLとが交互に入力されるクロック入力をエミュレーションすることが可能になる。FPGAが複数のクロックを入力している場合は、それらのタイミングと位相を考えて入力信号を修正するとより効果的である。
また、ある周辺ICとの接続方法を調べる際に、そのICが持つRDという名前の信号が本来負論理であったのに、FPGAの設計者は間違えて正論理として回路を設計してしまっていたような場合を考える。この場合は単純な誤りであり、FPGAのソースコードを修正してもよいが、より簡単に動作確認を継続するには出力信号修正プログラムを用いて強制的に反転出力させてしまうように設定すると便利である。
本発明を用いることで、与えられたソースコードで動作するFPGAが外部の回路との間でやりとりする信号を調べることができる。本発明の手順によれば論理合成を行う必要がないため、ICの設計者は論理合成に要する時間を気にすることなく、ソースコードを修正して周囲の回路の動作を確認する、という作業を気軽に行うことができるようになる。その結果、開発効率の向上に寄与することになる。
本発明は、当然ながらバウンダリスキャンに対応したICであれば何に対しても適用できる。FPGAだけではなく、CPLDにも、CPUにもASICにも適用できる。その際に、従来の論理シミュレーションや基板検査で用いられてきたような、テストベクタを作成する必要は全くない。また本方式のICエミュレーションは、JTAG−ICEやフルICEとは異なり特定のCPUだけを対象としたものでもない。
また、本発明は、FPGAの論理合成ツールが入手できない場合や、論理合成ツールが何らかの事情により使用できない場合でも、回路基板上のFPGAを動作させて周囲の回路の動作確認するような状況にも活用できる。
次に、本発明を用いることで、FPGAの開発手順がどのように変化するかを示す。
図12は、従来のFPGAの開発手順をフローチャートで表したものである。従来、FPGAを開発するには、まずソースコードを入力し、その後テストベクタを作成し、論理シミュレーションを行っていた。テストベクタはFPGA外の回路がFPGAに与える信号を、人が予測して記述したものである。これらを用いて論理シミュレーションを行い、その結果が設計者の予想したとおりであれば論理合成へと進む。もし、結果が予想と異なる場合には再度ソースコードの入力から繰り返すことになる。従来の論理シミュレーションでは、ソースコードとテストベクタのどちらかに誤りがあると正しい結果が得られない。論理合成は一般に非常に長い時間を要する。数100万ゲート規模のFPGAでは数十分から数時間かかることも珍しくない。論理合成が完了したら、FPGAに回路データをダウンロードし、実機での動作確認を行うことになる。実機での動作確認には、オシロスコープやロジックアナライザを使って波形を観測することや、LED等の表示を確認すること、メモリの内容や通信状況から判断するなど様々な方法で行われる。それらの確認の結果、設計者の予想したとおりにFPGAと周囲の回路が連携して動作していれば、当該FPGAの当該ソースコードは正常に作成されたと判断され、設計完了となる。もし動作結果が予想と異なれば、再度ソースコードの入力から上記のステップを繰り返すことになる。この場合、論理合成に要する時間が長いと、開発効率が低下するという欠点があった。
図13は、本発明のICエミュレーション方法を用いたFPGA開発手順である。従来の手順とは異なり、テストベクタを作成する手順と論理合成の手順は必要ない。ソースコードを入力したら、即座にエミュレーションを行って、波形の観測と動作確認を行うことができる。論理合成に要する時間が省略できるので、従来の方法と比べて開発効率は向上する。また、FPGAが入出力する波形は、本装置内の論理シミュレータが入出力する信号であるため、コンピュータ上で把握されている。したがって、オシロスコープやロジックアナライザを使用しなくとも、コンピュータ上で波形を観測することができる。
その後、本発明を用いた場合でも最終的には論理合成を行って実機での動作確認を行うわけであるが、ソースコードの変更を伴う設計のやり直しを行う際に毎回すべて論理合成を行うわけではない。周囲のICとの論理的な接続方法が判明して、FPGAの正しいコードができた設計の最終段階のみで、論理合成を行えばよくなるという点が大きなメリットである。
本発明が有益な効果を生じる理由としては、従来の技術ではFPGAを設計どおりに動作させるためには論理合成という一種のコンパイラ的な処理を行うしか方法がなかったのに対し、本発明を用いればインタプリタ的な処理手順で、実際のFPGAが動作しているように見せることができるようになるためである。
従来の技術では、論理合成時間の時間の問題や、テストベクタを作成する手間の問題、シミュレーションと実機の動作が一致しない問題、FPGAの動作を途中で停止させるには内部に特殊な回路を作りこまなければならないこと、高密度実装基板では信号の観測が困難であること、FPGAの出力信号を気軽に変更できないこと、などデバッグ上の様々な問題があったが、本発明の実施例はこれらの問題を解決するものである。
結論として本発明を用いることにより、回路基板上のICの動作をソフトウェアで操作することによって、汎用のICエミュレーション装置を構築することができるようになる。本発明の方法を用いれば、回路基板の不良検証や各種の周辺ICの使用方法を検証することが容易になる。
図1は、ICエミュレーション装置を実施するためのハードウェア構成を示す図である。 図2は、ICエミュレーション装置の構成を示す図である。 図3は、バウンダリスキャンプログラムの詳細な構成を示す図である。 図4は、ICエミュレーション装置の構成を示す図である。 図5は、バウンダリスキャン対応ICの内部構造を示す図である。 図6は、バウンダリスキャン対応ICの入出力端子構造を示す図である。 図7は、入力信号情報テーブルおよび出力信号情報テーブルを示す図である。 図8は、信号名−端子番号対応テーブルを示す図である。 図9は、端子番号−内部端子名対応テーブルを示す図である。 図10は、内部端子名−セル番号・機能対応テーブルを示す図である。 図11は、ICエミュレーション装置の実行結果例を示す図である。 図12は、従来のFPGA開発手順を示す図である。 図13は、本発明によるFPGAの開発手順を示す図である。

Claims (11)

  1. ターゲットICから取得したバウンダリスキャンレジスタビット列に基づいて当該ICの入力信号論理値テーブルを生成するバウンダリスキャンプログラムと、
    前記入力信号論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成する論理シミュレーションプログラムと、
    前記出力信号論理値テーブルに基づいてバウンダリスキャンビット列を生成して当該ICのバウンダリスキャンレジスタにセットする前記バウンダリスキャンプログラム、
    を用いて当該ICの動作を模擬することを特徴としたICエミュレーション装置。
  2. バウンダリスキャンプログラムにおいて、ターゲットICから取得したバウンダリスキャンレジスタビット列を解析して当該ICの入力信号論理値テーブルを生成して論理シミュレーションプログラムの入力に与える機能と、前記論理シミュレーションプログラムが生成する出力信号論理値テーブルに基づいて当該ICのバウンダリスキャンビット列を生成する機能を備えたバウンダリスキャンプログラム。
  3. 論理シミュレーションプログラムにおいて、バウンダリスキャンプログラムがターゲットICから取得したバウンダリスキャンレジスタビット列に基づいて生成した入力信号論理値テーブルと、当該ICの設計ソースコードとを入力として、論理シミュレーションを行い、その結果を出力信号論理値テーブルとして前記バウンダリスキャンプログラムに与えることを特徴とした論理シミュレーションプログラム。
  4. ターゲットICから取得したバウンダリスキャンレジスタビット列に基づいて当該ICの入力信号論理値テーブルを生成するバウンダリスキャンプログラムと、
    前記入力信号論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成する論理シミュレーションプログラム、から構成され、
    前記バウンダリスキャンプログラムは前記出力信号論理値テーブルに基づいて当該ICに出力するバウンダリスキャンビット列を生成することを特徴とするICエミュレーションプログラム。
  5. バウンダリスキャンプログラムがターゲットICから取得したバウンダリスキャンレジスタビット列を解析して当該ICの入力信号論理値テーブルを生成し、
    論理シミュレーションプログラムが前記入力信号論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成し、
    前記バウンダリスキャンプログラムが前記出力信号論理値テーブルに基づいてバウンダリスキャンビット列を生成することによって、当該ICの動作を模擬するICエミュレーション方法。
  6. ターゲットICから取得したバウンダリスキャンレジスタビット列を解析して当該ICの入力信号論理値テーブルを生成するバウンダリスキャンプログラムと、
    前記入力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて入力信号修正論理値テーブルを作成する入力信号修正プログラムと、
    前記の入力信号修正論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成する論理シミュレーションプログラムと、
    前記出力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて出力信号修正論理値テーブルを作成する出力信号修正プログラムと、
    前記出力信号修正論理値テーブルに基づいてバウンダリスキャンビット列を生成して当該ICのバウンダリスキャンレジスタにセットする機能を備えた前記バウンダリスキャンプログラム、
    を用いて当該ICの動作を模擬することを特徴とした、ICエミュレーション装置。
  7. ターゲットICから取得したバウンダリスキャンレジスタビット列を解析して当該ICの入力信号論理値テーブルを生成するバウンダリスキャンプログラムと、
    前記入力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて入力信号修正論理値テーブルを作成する入力信号修正プログラムと、
    前記の入力信号修正論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成する論理シミュレーションプログラムと、
    前記出力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて出力信号修正論理値テーブルを作成する出力信号修正プログラムと、
    前記出力信号修正論理値テーブルに基づいてバウンダリスキャンビット列を生成して当該ICのバウンダリスキャンレジスタにセットする機能を備えた前記バウンダリスキャンプログラム、から構成されるICエミュレーションプログラム。
  8. バウンダリスキャンプログラムがターゲットICから取得したバウンダリスキャンレジスタビット列を解析して当該ICの入力信号論理値テーブルを生成し、
    入力信号修正プログラムが前記入力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて入力信号修正論理値テーブルを生成し、
    論理シミュレーションプログラムが前記入力信号修正論理値テーブルと当該ICの設計ソースコードに基づいて当該ICが出力する信号を計算してそれを出力信号論理値テーブルとして生成し、
    出力信号修正プログラムが前記出力信号論理値テーブルに記載された特定の信号の論理値を指定された手順で書き換えて出力信号修正論理値テーブルを生成し、
    前記バウンダリスキャンプログラムが前記出力信号修正論理値テーブルに基づいてバウンダリスキャンビット列を生成して当該ICのバウンダリスキャンレジスタにセットすることによって、当該ICの動作を模擬するICエミュレーション方法。
  9. 請求項6に記載するICエミュレーション装置において、入力信号修正論理値テーブルには、当該ICの入力信号が前回取得した状態と異なる場合のみ記載することを特徴とした、ICエミュレーション装置。
  10. 請求項7に記載するICエミュレーションプログラムにおいて、入力信号修正論理値テーブルには、当該ICの入力信号が前回取得した状態と異なる場合のみ記載することを特徴とした、ICエミュレーションプログラム。
  11. 請求項8に記載するICエミュレーション方法において、入力信号修正論理値テーブルには、当該ICの入力信号が前回取得した状態と異なる場合のみ記載することを特徴とした、ICエミュレーション方法。
JP2007169529A 2007-06-27 2007-06-27 Icエミュレーション装置およびicエミュレーション方法 Pending JP2009009325A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007169529A JP2009009325A (ja) 2007-06-27 2007-06-27 Icエミュレーション装置およびicエミュレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007169529A JP2009009325A (ja) 2007-06-27 2007-06-27 Icエミュレーション装置およびicエミュレーション方法

Publications (1)

Publication Number Publication Date
JP2009009325A true JP2009009325A (ja) 2009-01-15

Family

ID=40324354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007169529A Pending JP2009009325A (ja) 2007-06-27 2007-06-27 Icエミュレーション装置およびicエミュレーション方法

Country Status (1)

Country Link
JP (1) JP2009009325A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117692344A (zh) * 2024-02-02 2024-03-12 成都大征创智科技有限公司 一种基于fpga代码编译的网络设备仿真方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001249826A (ja) * 2000-03-03 2001-09-14 Rooran:Kk システムlsi開発支援システムとその開発支援用プログラムを記録した記録媒体
JP2002014837A (ja) * 2000-03-02 2002-01-18 Texas Instr Inc <Ti> 信号オーバーレイを許容する時分割多重化機能を備えたスキャン・インタフェース
JP2002108645A (ja) * 2000-09-29 2002-04-12 Pacific Design Kk エミュレーション装置およびその制御方法
WO2006101836A2 (en) * 2005-03-16 2006-09-28 Gaterocket, Inc. Fpga emulation system
WO2006117377A1 (en) * 2005-05-02 2006-11-09 Accemic Gmbh & Co. Kg Procedure and device for emulating a programmable unit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014837A (ja) * 2000-03-02 2002-01-18 Texas Instr Inc <Ti> 信号オーバーレイを許容する時分割多重化機能を備えたスキャン・インタフェース
JP2001249826A (ja) * 2000-03-03 2001-09-14 Rooran:Kk システムlsi開発支援システムとその開発支援用プログラムを記録した記録媒体
JP2002108645A (ja) * 2000-09-29 2002-04-12 Pacific Design Kk エミュレーション装置およびその制御方法
WO2006101836A2 (en) * 2005-03-16 2006-09-28 Gaterocket, Inc. Fpga emulation system
WO2006117377A1 (en) * 2005-05-02 2006-11-09 Accemic Gmbh & Co. Kg Procedure and device for emulating a programmable unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117692344A (zh) * 2024-02-02 2024-03-12 成都大征创智科技有限公司 一种基于fpga代码编译的网络设备仿真方法
CN117692344B (zh) * 2024-02-02 2024-04-16 成都大征创智科技有限公司 一种基于fpga代码编译的网络设备仿真方法

Similar Documents

Publication Publication Date Title
EP2145273B1 (en) Computation of phase relationship by clock sampling
US6678643B1 (en) Event based semiconductor test system
US7908574B2 (en) Techniques for use with automated circuit design and simulations
KR100858382B1 (ko) 테스터 구축 데이터의 생성방법 및 테스터의 구축방법 및테스트회로
US6061283A (en) Semiconductor integrated circuit evaluation system
EP2165280B1 (en) Recording of emulation states using replicated memory elements
US7124342B2 (en) Smart capture for ATPG (automatic test pattern generation) and fault simulation of scan-based integrated circuits
US20070174805A1 (en) Debugging system for gate level IC designs
JP2014067436A (ja) 複数のプロセッサを使用するシステム・テスティングの方法および装置
WO2004042787A2 (en) Method and apparatus for testing asynchronous set/reset faults in a scan-based integrated circuit
CN112444731B (zh) 芯片测试方法、装置、处理器芯片及服务器
US6970815B1 (en) Method of discriminating between different types of scan failures, computer readable code to cause a display to graphically depict one or more simulated scan output data sets versus time and a computer implemented circuit simulation and fault detection system
Gurumurthy et al. Automatic generation of instructions to robustly test delay defects in processors
Lingappan et al. Satisfiability-based automatic test program generation and design for testability for microprocessors
US6269463B1 (en) Method and system for automatically determining transparency behavior of non-scan cells for combinational automatic test pattern generation
JP2009009325A (ja) Icエミュレーション装置およびicエミュレーション方法
Balston et al. Emulation in post-silicon validation: It's not just for functionality anymore
Siripokarpirom et al. Hardware-assisted simulation and evaluation of IP cores using FPGA-based rapid prototyping boards
Akpan Model-based FPGA embedded-processor systems design methodologies: Modeling, syntheses, implementation and validation
JP2004280588A (ja) システムlsi設計支援装置およびシステムlsi設計支援プログラム
McKay et al. Debugging techniques for dynamically reconfigurable hardware
Chakrabarty A synthesis-for-transparency approach for hierarchical and system-on-a-chip test
Ravi et al. A framework for testing core-based systems-on-a-chip
Das et al. Implementation of a testing environment for digital IP cores
Bernardi et al. Hardware-accelerated path-delay fault grading of functional test programs for processor-based systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100430

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121002