JP5450973B2 - 回路検証装置および回路検証方法 - Google Patents

回路検証装置および回路検証方法 Download PDF

Info

Publication number
JP5450973B2
JP5450973B2 JP2008092124A JP2008092124A JP5450973B2 JP 5450973 B2 JP5450973 B2 JP 5450973B2 JP 2008092124 A JP2008092124 A JP 2008092124A JP 2008092124 A JP2008092124 A JP 2008092124A JP 5450973 B2 JP5450973 B2 JP 5450973B2
Authority
JP
Japan
Prior art keywords
semiconductor device
circuit
unit
emulation
simulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008092124A
Other languages
English (en)
Other versions
JP2009245242A (ja
Inventor
晃平 細川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008092124A priority Critical patent/JP5450973B2/ja
Publication of JP2009245242A publication Critical patent/JP2009245242A/ja
Application granted granted Critical
Publication of JP5450973B2 publication Critical patent/JP5450973B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、半導体デバイスの検証技術に関し、特に、ハードウェア記述言語に基づく論理回路が形成されたデバイスの動作を検証する技術に関する。
半導体技術の進歩により、半導体デバイスにおける論理LSI(Large Scale Integrated circuit)の集積度が年々向上し、大規模なシステムを1チップに集積することが可能になっている。また、半導体デバイスの製造コストは、極めて高価であるとともに、その製造期間には1月以上を必要とするため、製造前に十分な検証を行うことが重要である。
半導体デバイスの検証は、設計の様々なフェーズで行われる。設計プロセスは、初期設計における抽象的なレベルから、最終段階における詳細な製造レベルに至るまで、各レベルに応じた論理情報を取り扱う。例えば、初期設計の段階では、入出力関係程度を確定する抽象レベルの論理情報を取り扱い、機能設計段階では、論理各部の機能を確定する機能レベルの論理情報を取り扱う。そして、最終的な詳細設計段階では、論理構造を確定する構造レベルの論理情報が取り扱われる。上述の各設計段階の論理情報は、一般に使用される各種ハードウェア記述言語(SystemC、SystemVerilog、Verilog-HDL、VHDL等)により表現することが可能である。
半導体デバイスの論理検証や、複数の半導体デバイスを使用したシステムの論理検証の方法には、ソフトウェアシミュレータによるものと、ハードウェアエミュレータによるもの、実際の半導体デバイスを利用したものがある。
ソフトウェアシミュレータは、ハードウェア記述言語で記述された論理情報をコンピュータプログラムとして実行するため、種々の設計段階において使用することができ、また、使用するハードウェア記述言語の変数等を容易に観測できるという利点を持っている。
一方、実際の半導体デバイスによる検証やハードウェアエミュレータは、ハードウェアを用いることから、論理検証をソフトウェアシミュレータよりも高速に実行することができる。ハードウェアエミュレータは、一般的に、FPGA(Field Programmable Gate Array)やFPID(Field Programmable Interconnect Device)などで構成され、外部からの入力信号により所望の論理構造を編成することができる。
ソフトウェアシミュレータの具体例としては、日本シノプシス株式会社のVCS(商標)やメンター・グラフィックス・ジャパンのModelSim(商標)などが挙げられる。ハードウェアエミュレータとしては、特許文献1や特許文献2に代表されるFPGAエミュレータが挙げられる。また、特許文献3には、ソフトウェアシミュレータとハードウェアエミュレータとを組み合わせた論理検証装置が開示されている。
ソフトウェアシミュレータの問題点は、動作速度が遅いということである。その理由は、回路全体の動作をコンピュータプログラムにより実現するため、クロックサイクルごとに変化する全ての値を計算しなければならないからである。近年、CPUの動作速度は高速化しているが、検証対象の回路規模も大型化しているため、ソフトウェアシミュレータの速度は遅くなるばかりで、最近では最大でも100Hz程度となっている。実際のLSIの動作速度を例えば1GHzとすると、そのシミュレーションの速度は、LSIの1/10,000,000の速度となる。よって、このLSIの1秒の動作をシミュレーションするためには、10,000,000秒=約115日が必要になる。
一方、実際の半導体デバイスによる検証や、FPGAを利用したハードウェアエミュレータは、回路の内部信号の観測性が悪い、すなわち回路内の信号の状態を外部から観測しにくいという問題点がある。実際の半導体デバイスの場合、一部の信号を観測するだけであれば、その信号を外部ピンから出力すればよいが、観測しようとする信号を変更することは困難である。なぜなら、それは、半導体デバイスの再製造を意味し、コストの面で現実的でないからである。
また、FPGAを利用したハードウェアエミュレータの場合は、特定の信号を観測するだけであれば、回路を動作させている速度と同じ速度で観測することは可能である。しかしながら、回路の動作途中で、例えば、観測する信号を追加する、あるいは、信号の値を変更することは困難である。なぜなら、そのためには、ハードウェア記述言語の修正、合成(ハードウェア記述言語で記載された内容をネットリストにする作業)、配置配線(ネットリストをFPGAに実装する形式にする作業)が必要となり、作業に膨大な時間を要するからである。
これらの問題点に対処するための手法が、例えば、特許文献4に記載されている。特許文献4に記載の手法は、エミュレーション中にエミュレーション装置の記憶素子の値を所定の間隔でダンプし、回路の動作に不具合が起きたとき、ダンプしたデータをシミュレーション装置に読み込み、シミュレーションを開始するというものである。
特開2000−132420号公報 特開2001−209556号公報 特開2000―215226号公報 特開平11―249930号公報 特願2006−553063号公報、段落0085 ザイリンクス株式会社、Virtex-4 Configuration Guide、2007年6月21日発行
上記特許文献4の手法では、シミュレーションに必要な記憶素子にスキャン用のフリップフロップ(SFF)を追加することで、上記動作が実現される。しかしながら、半導体デバイスのシミュレーションには、そのデバイスにある全ての記憶素子が持つパラメータを必要とする。したがって、上記特許文献4の手法にあっては、回路中のフリップフロップの数が元の2倍となる。そのため、回路の規模が大型化し、本来の回路レイアウトに影響を及ぼす可能性がある。
本発明の目的は、半導体デバイスのシミュレーションに必要なパラメータを読み出すための構成を簡素化することにある。
本発明に係る回路検証装置は、ハードウェア記述言語に基づく論理回路が形成された半導体デバイスの回路検証装置であって、前記半導体デバイスのエミュレーションを実行するための信号を含む制御信号を当該半導体デバイスへ入力するエミュレーション部と、前記半導体デバイスの論理回路に対応したハードウェア記述言語により当該論理回路のシミュレーションを実行するシミュレーション部と、前記半導体デバイスのエミュレーション開始後にシミュレーションに係るパラメータを当該半導体デバイスから取得する取得部と、前記取得部が取得したパラメータを前記シミュレーション部によるシミュレーションに適用する設定部と、前記半導体デバイスの論理回路を前記取得部によるパラメータ取得前に修正する回路修正部とを備え、前記回路修正部は、前記半導体デバイスの論理回路を修正するとき、当該論理回路にてパラメータを記憶する複数の記憶素子が前記制御信号によりリング型のシフトレジスタとして動作するためのバイパス配線と、前記バイパス配線を介して当該複数の記憶素子のパラメータを読み出し且つ該パラメータを前記取得部へ出力する読出部とを当該論理回路に付加する。
本発明に係る回路検証方法は、ハードウェア記述言語に基づく論理回路が形成された半導体デバイスにおいて該半導体デバイスのシミュレーションに係るパラメータを記憶する複数の記憶素子がリング型のシフトレジスタとして動作するための配線を当該論理回路に付加し、前記半導体デバイスのエミュレーションを開始し、前記エミュレーションの開始後、前記複数の記憶素子を前記リング型のシフトレジスタとして動作させて当該記憶素子のパラメータを読み出し、前記半導体デバイスの論理回路に対応したハードウェア記述言語に前記読み出したパラメータを適用して当該論理回路のシミュレーションを実行するという方法である。
本発明によれば、半導体デバイスのシミュレーションに必要なパラメータを読み出すための構成を簡素化することができる。これにより、論理回路の大型化を防ぐことができる。
図1に、本発明の第1の実施形態の構成を示す。本実施形態の回路検証装置1001は、ハードウェア記述言語に基づく論理回路が形成された半導体デバイスの動作を検証するための装置である。半導体デバイス102を除く図示の構成は、回路検証装置1001においてCPUのような制御IC(図示略)がプログラムを実行することにより実現される機能構成を表す。
ハードウェア記述言語100は、半導体デバイス102の論理回路に対応した、SystemC、SystemVerilog、Verilog、VHDLのようなハードウェア記述言語である。なお、JTAG(IEEE1149.1)やBIST(Build-In Self Test)のように、検証の対象外やシミュレーションに不要な回路モジュールはハードウェア記述言語100から除外しておいてもよい。
半導体デバイス102の論理回路は、上記のようなハードウェア記述言語で記述された回路をネットリストに変換し、そのネットリストをもとに作成されたマスクデータから形成される。半導体デバイス102の論理回路は、ハードウェア記述言語により動作が規定されたものであればよく、その形成過程は、上記のものに限定されない。ハードウェア記述言語による論理回路が、後述するエミュレーション制御部140からの入力信号やクロック信号に従って動作することで、半導体デバイス102のエミュレーションが実行される。
回路検証装置1001において、ユーザI/F部120は、回路検証装置1001に対する外部からの指示を入力するためのインターフェースである。外部からの指示としては、半導体デバイス102の動作の開始・停止、取得部107の動作の開始、シミュレーション部110の動作の開始・停止、設定部111の動作の開始・停止などがある。また、半導体デバイス102について、エミュレーションやシミュレーションの状況をディスプレイ装置(図示略)に表示する。
エミュレーション制御部140は、本発明におけるエミュレーション部に相当し、本実施形態では入力信号制御部104およびクロック信号制御部105から構成される。入力信号制御部104は、予め設定されている入力信号情報103に基づいて、半導体デバイス102のエミュレーションに必要な信号を入力する。クロック信号制御部105は、半導体デバイス102の動作基準となるクロック信号の入力を制御する。
取得部107は、後述する回路修正部130により半導体デバイス102に設けられる読出部101Bを利用して、エミュレーション時の動作に関わるパラメータを半導体デバイス102から取得し、それを読出パラメータ106として保存する。
制御部108は、半導体デバイス102が適正に動作するように入力信号及びクロック信号のタイミングを制御しながら、ユーザI/F部120から入力された指示を入力信号制御部104、クロック信号制御部105、取得部107へ伝える。なお、回路検証装置1001から制御部108を省略してもよい。その場合、入力信号制御部104とクロック信号制御部105とが協調して適切な信号を半導体デバイス102に与え、取得部107をユーザI/F部120から直接制御する。
シミュレーション部110は、日本シノプシス株式会社のVCS(商標)や、メンター・グラフィックス・ジャパン株式会社のModelSim(商標)などに代表される、いわゆるソフトウェアシミュレータである。シミュレーション部110は、ハードウェア記述言語100と入力信号情報103とを読み込み、半導体デバイス102が動作を停止した時点からのシミュレーションを実行する。
設定部111は、シミュレーション部110が使用するハードウェア記述言語100のパラメータに、取得部107が半導体デバイス102から取得した読出パラメータ106を設定する。この設定部111としては、ハードウェア記述言語100の規格が、例えばVerilogである場合、IEEE1164で定義されているVerilog PLI(Programming Language Interface)を適用することができる。また、ハードウェア記述言語100の規格が上記以外でも、シミュレーション部110が持つ同等の機能を用いて設定部111を実現することが出来る。例えば、シミュレーション部110がメンター・グラフィックス・ジャパン株式会社のModelSim(商標)であれば、設定部111としてSignal Spy(商標)を利用すればよい。
回路修正部130は、取得部107が半導体デバイス102からパラメータ(106)を取得するために、ハードウェア記述言語100を用いて半導体デバイス102の論理回路を修正する。この修正において、回路修正部130は、半導体デバイス102のフリップフロップ、ラッチ、RAM等の複数の記憶素子をシフトレジスタとして動作させるためのバイパス配線101Aおよび読出部101Bを付加する。
図2及び図3を参照して、回路修正部130による回路の修正に関し、例を挙げて説明する。図2は、半導体デバイス102における記憶素子周辺の修正前の構成である。図示の構成において、N個の記憶素子201-1〜201-Nは、クロック信号制御部105(図1)からの共通のクロック信号が供給され、また、組合せ回路を挟んで直列的に配置されている。かかる構成に対し、回路修正部130は、半導体デバイス102のシミュレーションが開始されるまでに、例えばエミュレーション開始時などに、図3に示すような修正を行う。
図3より、修正後の半導体デバイス102には、バイパス配線101A(101A-1〜101A-N)および読出部101Bが追加されている。記憶素子201-1〜201-Nは、バイパス配線101Aにより、各組合せ回路を迂回してリング状に接続される。また、各記憶素子(201-1〜201-N)の前段には、その記憶素子への入力を読出部101Bの制御により切り替えるためのセレクタ302-1〜302-Nが追加される。この修正後の半導体デバイス102の動作については、後に説明する。
図4に示すフローチャートに沿って、図1の構成による動作を説明する。回路検証装置1001は、半導体デバイス102の動作を検証するにあたり、まず、回路修正部130を起動し、半導体デバイス102における記憶素子周辺の回路をハードウェア記述言語100を用いて修正する(ステップS400)。ここでは、一例として、前述の図3に示す構成のように修正されたとする。
次に、制御部108が、ユーザI/F部120からの指示に従い、回路検証装置1001の各部が適切に動作するように初期設定を行う(ステップS401)。初期設定は、例えば、各部への起動指示や、起動に必要な情報の設定を行い、また読出部101Bは、組合せ回路からの出力を記憶素子(201-1〜201-N)へ入力するよう、各セレクタ(302-1〜302-N)を設定する。
初期設定が完了すると、ユーザI/F部120からの指定により、制御部108がエミュレーション制御部140を制御し、半導体デバイス102に適切な入力信号およびクロック信号を与える。これにより、半導体デバイス102のエミュレーションが開始する(ステップS402)。このとき、入力信号制御部104は、入力信号として入力信号情報103からデータを読み込み、値を設定する。
エミュレーション開始後、回路検証装置1001は、半導体デバイス102の詳細な動作状況を検証するために、ある時点までの動作、あるいは、ある時点から先の動作についてシミュレーションを行う。そのある時点、すなわちシミュレーションのタイミングは、例えば、オペレータからの指示、あるいは、タイマ制御により、ユーザI/F部120が認識できるようにしておく。ユーザI/F部120は、シミュレーションのタイミングが到来したことを認識すると、その旨を制御部108へ通知する。
制御部108は、エミュレーション制御部140に対し、エミュレーションのためのクロック信号および入力信号を停止するよう指示する。これにより、いったん半導体デバイス102のエミュレーションが停止する(ステップS403)。
続いて、制御部108は、取得部107を起動し、現時点で各記憶素子に保存されているパラメータを半導体デバイス102から取得するよう指示する。指示を受けた取得部107は、半導体デバイス102の読出部101Bに対し、パラメータの読み出しを要求する。
ここで、図3を参照して、半導体デバイス102の読出部101Bが各記憶素子(201-1〜201-N)のパラメータを読み出す動作を説明する。読出部101Bは、半導体デバイス102の通常の動作時、すなわちエミュレーション中は、組合せ回路からの出力を記憶素子(201-1〜201-N)へ入力するよう、各セレクタ(302-1〜302-N)を設定する。
一方、エミュレーション開始後、取得部107からパラメータの読み出し要求を受けたとき、読出部101Bは、記憶素子201-1〜201-N間をバイパス配線101Aにより接続するようセレクタ(302-1〜302-N)を切り替える。これにより、記憶素子201-1〜201-Nが、バイパス配線101Aを介してリング状に直列接続される。
続いて、読出部101Bは、記憶素子201-1〜201-Nをリング型のシフトレジスタとして動作させ、出力端が自身(101B)に接続されている特定の記憶素子201-Nからパラメータを順次読み込む。シフトレジスタとして動作させるために、読出部101Bは、各記憶素子(201-1〜201-N)に共通のクロック信号を与える。
各記憶素子(201-1〜201-N)は、1クロックごとに、自身で保持するパラメータを出力側のバイパス配線101Aを介して後段の記憶素子へ供給し、また、前段の記憶素子からのパラメータを入力側のバイパス配線101Aを介して受け取る。これにより、リング状の記憶素子201-1〜201-Nにおいて、パラメータの記憶場所が順次シフトする。
したがって、上記のクロック動作をN回繰り返すことにより、N個の記憶素子(201-1〜201-N)のパラメータを1つの記憶素子(201-N)から読み出すことができる。なお、前述したように、記憶素子201-1〜201-Nはリング状に接続されることから、例えば、図3の左端の記憶素子201-1が出力したパラメータは、右端の記憶素子201-Nへ到達した後、一巡して元の記憶素子201-1へ戻る。よって、パラメータの読み出し処理後に、各記憶素子のパラメータが変更されることはない。
上記動作により、読出部101Bが記憶素子から順次パラメータを読み出すと、それらが取得部107へ供給される。取得部107は、読出部101Bからのパラメータを読出パラメータ106として保存する(ステップS404)。
読出パラメータ106の保存が完了すると、ユーザI/F部120は、シミュレーション部110および設定部111を起動する。起動したシミュレーション部110は、ハードウェア記述言語100を読み込み、シミュレーションを準備する(ステップS405)。設定部111は、シミュレーション部110が読み込んだハードウェア記述言語100のパラメータに、半導体デバイス102からの読出パラメータ106を設定する(ステップS406)。
シミュレーション部110は、設定された読出パラメータ106により、半導体デバイス102の動作についてシミュレーションを実行する(ステップS407)。これにより、エミュレーション開始(S402)から停止(S403)までの半導体デバイス102の動作を省略することができ、さらに、エミュレーション停止後の半導体デバイス102の動作がシミュレートされ、その様子がユーザI/F部120により画面表示される。
このように、本実施形態は、半導体デバイス102の記憶素子をリング型のシフトレジスタとして動作させることで、各記憶素子のパラメータを読み出す。したがって、パラメータ読み出しのために論理回路が大型化することを防止できる。また、ハードウェアによるエミュレーションと、ソフトウェアシミュレーションとを併用することから、動作速度および動作の観測性の双方を満足させることができる。
本実施形態では、クロック信号が1種類の場合について説明したが、記憶素子によってクロック周波数が異なっていてもよい。その場合、エミュレーション中は、各記憶素子に対し本来のクロックを分配し、各記憶素子の値を取得するときは、共通のクロックを与えるようにする。これにより、クロック周波数が異なる記憶素子もバイパス配線101Aを介して、リング状に直接接続することができる。
また、記憶素子を複数のブロックに分け、ブロック単位でリングを構成することも可能である。このようにすることで、記憶素子のパラメータを取得するときに、複数のリングを同時に動かすことが可能となり、パラメータを取得するまでの時間を短縮することが可能となる。
本発明の第2の実施形態について説明する。図5に、本実施形態の回路検証装置1002の構成を示す。回路検証装置1002の構成は、前述の回路検証装置1001(図1)に停止判定部150を追加したものに相当する。図1の実施形態では、半導体デバイス102のエミュレーションの停止タイミングをユーザI/F部120から指示したが、本実施形態は停止判定部150により行う。
停止判定部150は、エミュレーション開始後に、半導体デバイス102の状態が所定条件を満たす場合に、そのエミュレーションを停止すると判定する。判定のための条件としては、1)ある信号の値が特定の値になった場合、2)ある信号の値が特定の値の範囲内・範囲外になった場合、3)前記1)または2)が所定回数発生した場合、4)ブレークが発生した場合、5)複数の信号に対して前記1)〜4)を組み合わせた場合等、検証内容に応じて適宜設定する。
停止判定部150は、上記のような判定を行うために、例えば、半導体デバイス102の一部のパラメータや動作状態を表す信号をデバイスの外部端子を通じて取得する。なお、本実施形態のように停止判定部150を半導体デバイス102の外部に設けることに代えて、半導体デバイス102内に停止判定部150と同等な機能を形成しておいてもよい。
回路検証装置1002の動作は、下記の点を除き、基本的には図4に沿ったものと同様である。本実施形態では、初期設定(ステップS400)において、停止判定部150に停止条件を設定する。また、条件が成立したことにより、エミュレーションを停止するとき(ステップS402)、停止判定部150が、エミュレーション制御部140に対し、半導体デバイス102への入力信号およびクロック信号を停止するよう指示する。
本実施形態によれば、エミュレーションの停止タイミングを、そのエミュレーションの実際の状況に応じて決定することができる。
本発明の第3の実施形態について説明する。図6に、本実施形態の回路検証装置1003の構成を示す。回路検証装置1003の構成は、前述の回路検証装置1001(図1)にシミュレーション判定部160を追加したものに相当する。シミュレーション判定部160は、取得部107が半導体デバイス102から取得した読出パラメータ106を用いて、シミュレーションの要否を判定する。
図7に示すフローチャートに沿って、本実施形態の動作を説明する。回路修正部130による回路の修正後、半導体デバイス102で開始したエミュレーションが停止し、その半導体デバイス102からパラメータを読み出すまでの手順(ステップS700〜S704)は、図4に沿った前述の手順(S400〜S404)と同様であり、説明を省略する。
パラメータの取得が完了すると、シミュレーション判定部160が、その読出パラメータ106を所定の判定基準に照らし合わせ、この時点でシミュレーションを行うべきか否かを判定する(ステップS705)。判定基準は、例えば、今回の読出パラメータ106の値が、1)特定の値になった場合、2)特定の値の範囲内・範囲外になった場合、3)前記1)または2)が所定回数発生した場合、4)ブレークが発生した場合、5)複数の信号に対して前記1)〜4)を組み合わせた場合等、検証内容に応じて適宜設定する。はシミュレーションを行うと判定するといったものである。
上記判定の結果、シミュレーションを行う場合は(ステップS706:Yes)、前述の実施形態(図4:S405〜S407)と同様に、シミュレーション部110を起動し、読出パラメータ106に基づくシミュレーションを実行する(ステップS707)。
一方、シミュレーションを行わないと判定した場合(ステップS706:No)、シミュレーション判定部160は、エミュレーション制御部140にエミュレーションの再開を指示する(ステップS708)。これにより、半導体デバイス102に対するクロック信号等の供給が再開されると共に、一旦停止していたエミュレーションが再開される。その後、エミュレーションが停止されたときは、上記と同様な手順で、シミュレーションの要否を判定する。
本実施形態によれば、シミュレーションするか否かを半導体デバイス102のパラメータの状態に応じて決定することができる。また、前述したように、半導体デバイス102からパラメータを読み出す際は、各記憶素子をリング状のシフトレジスタとして動作させることから(図3)、各記憶素子の記憶状態が、読み出し前と同じ状態に維持される。したがって、シミュレーションを行わない場合に、エミュレーションを直ちに再開させることができる。
本発明の第4の実施形態について説明する。図8に、本実施形態の回路検証装置1004の構成を示す。回路検証装置1004は、検証対象の半導体デバイス(102)が複数ある場合を想定したものである。本実施形態は、ハードウェア記述言語の種別が異なる2つの半導体デバイス(102-1,102-2)を検証する構成であるが、検証対象の数量は、図示のものに限定されず、3つ以上であってもよい。
回路検証装置1004は、半導体デバイス102-1のためのハードウェア記述言語100-1、取得部107-1および読出パラメータ106-1と、半導体デバイス102-2のためのハードウェア記述言語100-2、取得部107-2および読出パラメータ106-2とを備える。
図8の構成は、入力信号およびクロック信号を2つの半導体デバイス(102-1,102-2)で共通のものとする構成であるが、これに代えて、入力信号およびクロック信号を個別にする構成、あるいは、入力信号は個別であるがクロック信号は共通とした構成、もしくは、入力信号は共通であるがクロック信号は個別とした構成であってもよい。信号供給を個別にする場合、半導体デバイス別にエミュレーション制御部140を設ける構成となる。
本実施形態の動作は、回路検証装置1004が、各半導体デバイス(102-1,102-2)について、概ね図4に沿った前述の手順を実行することになる。なお、本実施形態では、複数のハードウェア記述言語(100-1,100-2)を取り扱うことから、シミュレーション部110が、シミュレーションに使用するハードウェア記述言語を事前に判別できるようにすることが望ましい。そのためには、例えば、使用すべきハードウェア記述言語をユーザI/F部120からシミュレーション部110へ指示する、あるいは、設定部111がシミュレーション部110に対し、今回の読出パラメータ(106-1,106-2)が何れのハードウェア記述言語(100-1,100-2)に対応するかの情報を通知すればよい。
本実施形態によれば、一つの半導体デバイスだけでなく、複数の半導体デバイスの検証も可能である。これにより、ハードウェア記述言語の種別が異なる複数のデバイスの検証を単一の回路検証装置により行うことができる。
上記の第2〜第4の実施形態は、個別に実施することに限らず、適宜組み合わせて実施してもよい。
(具体例1)
上記実施形態の構成について具体例を挙げる。図9に、第1の具体例の構成を示す。この構成は、一般的な計算機800と半導体テスト装置806とをPCI(Peripheral Component Interconnect)バス805により、相互にアクセス可能に接続したものである。計算機800は、CPU801、RAM802、ブリッジ803およびHDD804を含む。計算機800はブリッジ803を介して、前述のユーザI/F部(120)を実現する入力ユニット809および表示ユニット810が接続されている。
計算機800は、前述のシミュレーション部(110)、設定部(111)、回路修正部(130)の機能を実現する。計算機800のHDD804またはRAM802には、ハードウェア記述言語(100)と、取得部(107)により取得した読出パラメータ(106)を格納する。
半導体テスト装置806において、制御FPGA807は、前述のエミュレーション制御部(140)、制御部(108)および取得部(107)に対応する。メモリ808は、前述の入力信号情報(103)を格納する記憶手段である。
図9の構成において、ユーザから入力ユニット809を通じて動作の開始を指定されたとき、CPU801は、HDD804に格納されたプログラムにより初期設定を実行する(図4:S401)。この初期設定では、HDD804の入力信号情報(103)を半導体テスト装置806上のメモリ808に転送する。また、必要に応じて、制御FPGA807に対し、クロック数や周波数、位相関係の設定、半導体デバイス102に与える入力信号とメモリ808の値とに関する設定などを行う。
初期設定を終了したら、表示ユニット810に、半導体デバイス102のエミュレーションを開始できる状態になったことを表示し、ユーザが次のステップの実行を指示するまで待機する。
その後、ユーザからの指示により半導体デバイス102のエミュレーション開始が指示されたとき、CPU801は、制御FPGA807により半導体デバイス102の動作を開始する(図4:S402)。その後、ユーザが、計算機800に接続されたキーボードやマウスなどの入力ユニット809を通じて、半導体デバイス102の動作の停止を指示を行う。CPU801は、この指示を認識すると、制御FPGA807に対し半導体デバイス102の動作停止を指示する。これにより、半導体デバイス102のエミュレーションが停止する(図4:S403)。
CPU801は、エミュレーションの停止を認識すると、制御FPGA807に対し、半導体デバイス102の各記憶素子からパラメータを読み出すよう指示する。制御FPGA807は、半導体デバイス102の一連の記憶素子をシフトレジスタとして動作させることで、各記憶素子のパラメータを順次読み出し、それを計算機800へ転送する。CPU801は、制御FPGA807からのパラメータ(106)をHDD804あるいはRAM802に保存する(図4:S404)。なお、半導体デバイス102から読み出されるデータ量を考慮して、パラメータは、RAM802よりもHDD804に記憶するのが望ましい。
続いて、CPU801は、HDD804に記憶されているシミュレーション部110のプログラムを実行することで、シミュレータ(110)を起動する(図4:S405)。起動したシミュレータ(110)は、HDD804にあるハードウェア記述言語(100)および入力信号情報(103)を読み込む。また、半導体デバイス102から読み出されたパラメータ(106)をシミュレーションのパラメータとして設定する(図4:S406)。そして、シミュレーションを実行する(図4:S407)。
(具体例2)
半導体デバイス102として、汎用のFPGAを利用することができる。この場合の構成は、前述の図9のシステムにおいて、検証対象の半導体デバイス102をFPGAに置き換えた構成に相当する。一般的に、半導体デバイスは、動作周波数、電圧、入力I/F(LVTTL(Low Voltage TTL),HSTL(High Speed Transceiver Logic),LVDS(Low Voltage Differential Signaling)等)、パッケージ(DIP(Dual Inline Package),BGA(Ball Grid Array)等)などが異なるため、規格ごとに専用ボードを必要とすることが多い。一方で、FPGAを利用して半導体デバイス102をエミュレーションすることで、ハードウェア記述言語ごとの専用ボードが不要となる。
FPGAに関し、例えば、ザイリンクス株式会社のFPGAには、JTAGおよびSelectMAP(商標)用の端子から記憶素子を読み出すための機能を用意したものがある(特許文献5および非特許文献1を参照)。このようなFPGAを用いる場合、前述した回路修正部130による回路の修正(図4:S400)は省略することができる。すなわち、JTAGもしくはSelectMAPを操作するように取得部107を構成すれば、FPGA内の記憶素子の値を読み出すことが可能となる。
図10に、半導体デバイス102としてFPGAを用いた場合の構成を示す。図示の構成は、図9に示す前述の具体例における半導体テスト装置806をFPGAエミュレータ900に置き換えると共に、検証対象として複数のFPGA903.1〜903.Nを備えたものである。かかる構成の動作は、図8に沿って説明した第4の実施形態のものに準じる。
なお、先に述べたように、ザイリンクス株式会社などのFPGAには、本発明の読出部(101B)に相当する機能が実装されている。よって、この場合、例えば、図11に示すように、FPGA903.1〜903.NをJTAGで直列に接続して、シフトレジスタに準じた動作を行うよう指示することで、制御FPGA901により全てのFPGA903.1〜903.Nからパラメータを読み出すことができる。
また、図11の形態に代えて、図12のようにSelectMAPインターフェースを制御FPGA901に接続することでも、全てのFPGA903.1〜903.Nからパラメータを読み出すことができる。
半導体デバイス102にFPGAを利用する形態において、そのFPGAが、初期値を変更できる仕様である場合は、シミュレーション終了時点のパラメータをFPGAの新たな初期値としてもよい。この場合、新たな初期値を利用して、FPGAの構成データ(コンフィグレーションデータ)を作成し、そのコンフィグレーションデータをFPGAに書き込む。これにより、シミュレーションにより検証した動作を、FPGAエミュレータで再現することが可能になる。
なお、本発明は、デバイス内部でクロックを生成するためのPLL(Phase-Locked Loop)が搭載された半導体デバイスの検証にも適用可能である。PLLは、クロックに存在するジッタや周波数を逓倍する機能、位相シフトする機能などがあるため、多くの半導体デバイスで採用されている。PLLは、内部のVCO(Voltage Controlled Oscillator)によって自発的にクロック信号を生成するため、入力信号の周波数が制限される。原理上、その下限周波数は、0[Hz]より大きい値に設定される。
しかしながら、エミュレーションがいったん停止すると(図4:S403)、クロック周波数が0[Hz]になり、PLL動作に不都合が生じる。この問題を解決するためには、例えば、図13に示すような構成を半導体デバイス102に追加すればよい。
図13の構成は、PLL用の外部端子500とは別に、セレクタに直接アクセスするための外部端子501及び502を追加したものである。エミュレーション中は、外部端子500を通じてPLLを動作させてクロック信号をセレクタへ入力する。また、エミュレーションを停止してパラメータを読み出すときは、外部端子501からセレクタにクロック信号を直接入力する。この切り替えのために、例えば、入力信号制御部104(図1)などが、外部端子502を通じてセレクタに選択信号を与える。これにより、PLLを搭載した半導体デバイス102であっても、エミュレーション中およびパラメータ読み出し時の双方で、適正にクロック信号を供給することができる。
本発明の第1の実施形態の構成を示すブロック図である。 本発明の実施形態における回路修正部の動作例(修正前)に関する説明図である。 本発明の実施形態における回路修正部の動作例(修正後)に関する説明図である。 本発明の第1の実施形態の動作に関するフローチャートである。 本発明の第2の実施形態の構成を示すブロック図である。 本発明の第3の実施形態の構成を示すブロック図である。 本発明の第3の実施形態の動作に関するフローチャートである。 本発明の第4の実施形態の構成を示すブロック図である。 本発明の実施形態の第1の具体例の構成を示すブロック図である。 本発明の実施形態の第2の具体例の構成を示すブロック図である。 本発明の実施形態の第2の具体例の構成を示すブロック図である。 本発明の実施形態の第2の具体例の構成を示すブロック図である。 本発明の実施形態の応用例の構成を示すブロック図である。
符号の説明
1001,1002,1003,1004 回路検証装置
100:ハードウェア記述言語、101A:バイパス配線、101B:読出部、102:半導体デバイス、103:入力信号情報、104:入力信号制御部、105:クロック信号制御部、106:読出パラメータ、107:取得部、108:制御部、110:シミュレーション部、111:設定部、120:ユーザI/F部、130:回路修正部、140:エミュレーション制御部、150:停止判定部、160:シミュレーション判定部、201-1〜201-N:記憶素子、301-1〜301-N:セレクタ、

Claims (8)

  1. ハードウェア記述言語に基づく論理回路が形成された半導体デバイスの回路検証装置であって、
    前記半導体デバイスのエミュレーションを実行するための信号を含む制御信号を当該半導体デバイスへ入力するエミュレーション部と、前記半導体デバイスの論理回路に対応したハードウェア記述言語により当該論理回路のシミュレーションを実行するシミュレーション部と、前記半導体デバイスのエミュレーション開始後にシミュレーションに係るパラメータを当該半導体デバイスから取得する取得部と、前記取得部が取得したパラメータを前記シミュレーション部によるシミュレーションに適用する設定部と、前記半導体デバイスの論理回路を前記取得部によるパラメータ取得前に修正する回路修正部とを備え、
    前記回路修正部は、前記半導体デバイスの論理回路を修正するとき、当該論理回路にてパラメータを記憶する複数の記憶素子が前記制御信号によりリング型のシフトレジスタとして動作するためのバイパス配線と、前記バイパス配線を介して当該複数の記憶素子のパラメータを読み出し且つ該パラメータを前記取得部へ出力する読出部とを当該論理回路に付加することを特徴とする回路検証装置。
  2. さらに、前記半導体デバイスのエミュレーション中に当該半導体デバイスの信号が所定条件に該当する場合に前記エミュレーション部に対し当該エミュレーションの停止命令を発行する停止判定部を備え、
    前記取得部は、前記停止判定部により停止命令が発行されたとき、前記半導体デバイスからパラメータを取得することを特徴とする請求項1記載の回路検証装置。
  3. さらに、前記取得部が取得したパラメータと所定条件との照合により前記シミュレーション部によるシミュレーションを実行するか否かを判定するシミュレーション判定部を備えることを特徴とする請求項1又は2記載の回路検証装置。
  4. 前記エミュレーション部は、前記半導体デバイスがクロック信号を生成するPLL回路を具備する場合、前記半導体デバイスのエミュレーション中は前記PLL回路に対しクロック信号の出力を指示し、前記半導体デバイスからパラメータを取得する間は前記PLL回路に対しクロック信号の出力停止を指示することを特徴とする請求項1乃至3のいずれか1項に記載の回路検証装置。
  5. ハードウェア記述言語に基づく論理回路が形成された半導体デバイスにおいて該半導体デバイスのシミュレーションに係るパラメータを記憶する複数の記憶素子がリング型のシフトレジスタとして動作するための配線を当該論理回路に付加し、
    前記半導体デバイスのエミュレーションを開始し、
    前記エミュレーションの開始後、前記複数の記憶素子を前記リング型のシフトレジスタとして動作させて当該記憶素子のパラメータを読み出し、
    前記半導体デバイスの論理回路に対応したハードウェア記述言語に前記読み出したパラメータを適用して当該論理回路のシミュレーションを実行することを特徴とする回路検証方法。
  6. さらに、前記半導体デバイスのエミュレーション中に当該半導体デバイスの信号が所定条件に該当する場合に前記エミュレーションを停止し、前記エミュレーションの停止後に前記複数の記憶素子のパラメータを読み出すことを特徴とする請求項記載の回路検証方法。
  7. さらに、前記記憶素子から読み出したパラメータと所定条件とを照合し、当該パラメータが前記所定条件に対応する場合にシミュレーションを実行することを特徴とする請求項5又は6記載の回路検証方法。
  8. 前記半導体デバイスがクロック信号を生成するPLL回路を具備する場合、前記半導体デバイスのエミュレーション中は前記PLL回路に対しクロック信号の出力を指示し、前記半導体デバイスからパラメータを取得する間は前記PLL回路に対しクロック信号の出力停止を指示することを特徴とする請求項5乃至7のいずれか1項に記載の回路検証方法。
JP2008092124A 2008-03-31 2008-03-31 回路検証装置および回路検証方法 Active JP5450973B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008092124A JP5450973B2 (ja) 2008-03-31 2008-03-31 回路検証装置および回路検証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008092124A JP5450973B2 (ja) 2008-03-31 2008-03-31 回路検証装置および回路検証方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012284817A Division JP2013093041A (ja) 2012-12-27 2012-12-27 回路検証装置および回路検証方法

Publications (2)

Publication Number Publication Date
JP2009245242A JP2009245242A (ja) 2009-10-22
JP5450973B2 true JP5450973B2 (ja) 2014-03-26

Family

ID=41307042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008092124A Active JP5450973B2 (ja) 2008-03-31 2008-03-31 回路検証装置および回路検証方法

Country Status (1)

Country Link
JP (1) JP5450973B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3396549A1 (de) 2017-04-28 2018-10-31 dSPACE digital signal processing and control engineering GmbH Adapter für die verbindung eines eingebetteten systems mit einem bedienrechner und verfahren zum anpassen eines adapters

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652259A (ja) * 1992-08-04 1994-02-25 Nec Eng Ltd スキャン挿入方法
JPH06195416A (ja) * 1992-12-17 1994-07-15 Nec Eng Ltd 集積回路設計装置
JPH11249930A (ja) * 1998-03-04 1999-09-17 Mitsubishi Electric Corp システム検証方法及びシステム検証装置
JP2003503791A (ja) * 1999-06-26 2003-01-28 セイ−ヤン ヤン、 入出力探針装置及びこれを用いた入出力探針方法と、これを基盤とする混合エミュレーション/シミュレーション方法
JP2001209556A (ja) * 1999-11-18 2001-08-03 Yokogawa Electric Corp 検証支援システム
KR100536293B1 (ko) * 2004-02-17 2005-12-12 박현주 칩 설계 검증 장치 및 방법
JP4667206B2 (ja) * 2005-10-31 2011-04-06 富士通セミコンダクター株式会社 マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法
JP4890086B2 (ja) * 2006-04-21 2012-03-07 アオイ電子株式会社 回路検証装置及び回路検証方法

Also Published As

Publication number Publication date
JP2009245242A (ja) 2009-10-22

Similar Documents

Publication Publication Date Title
US6701491B1 (en) Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
US8775986B1 (en) Software debugging of synthesized hardware
US11386250B2 (en) Detecting timing violations in emulation using field programmable gate array (FPGA) reprogramming
CN102831272A (zh) 用于双边沿触发器的可测试性设计方法
US11216607B2 (en) Double glitch capture mode power integrity analysis
US7822909B2 (en) Cross-bar switching in an emulation environment
KR100794916B1 (ko) 에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을위한 설계검증 장치 및 이를 이용한 설계 검증 방법
JP2006343151A (ja) スキャンテスト回路及びその配置方法
JP2007292492A (ja) 回路検証装置及び回路検証方法
US7100140B2 (en) Generation of graphical congestion data during placement driven synthesis optimization
JP5450973B2 (ja) 回路検証装置および回路検証方法
KR100812938B1 (ko) 초대규모급 설계 검증을 위한 하드웨어적으로 구현된대규모 디지털 시스템과 시뮬레이션을 이용하는 디버깅장치 및 이를 이용한 디버깅 방법
US12015411B2 (en) Testable time-to-digital converter
CN114186523B (zh) 基于异步电路的数模混合设计方法及工艺移植方法
JP2013093041A (ja) 回路検証装置および回路検証方法
US7937259B1 (en) Variable clocking in hardware co-simulation
Pang et al. Design and application of Ip core in soc technology
US7640151B2 (en) Asynchronous clock domain crossing jitter randomiser
US11853668B1 (en) FPGA implementation interleaved with FPGA overlay architectures for emulation
Siripokarpirom et al. Hardware-assisted simulation and evaluation of IP cores using FPGA-based rapid prototyping boards
JP2013036960A (ja) 遅延スキャンテスト方法、半導体装置及び半導体装置の設計方法
US11921160B2 (en) Using scan chains to read out data from integrated sensors during scan tests
US10977404B1 (en) Dynamic scan chain and method
US20230409788A1 (en) Synchronizing distributed simulations of a circuit design
US20220137126A1 (en) Reformatting scan patterns in presence of hold type pipelines

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100729

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100729

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120514

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121227

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130108

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131226

R150 Certificate of patent or registration of utility model

Ref document number: 5450973

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150