JP2011203857A - 回路動作検証システム及び検証環境構築方法 - Google Patents

回路動作検証システム及び検証環境構築方法 Download PDF

Info

Publication number
JP2011203857A
JP2011203857A JP2010068732A JP2010068732A JP2011203857A JP 2011203857 A JP2011203857 A JP 2011203857A JP 2010068732 A JP2010068732 A JP 2010068732A JP 2010068732 A JP2010068732 A JP 2010068732A JP 2011203857 A JP2011203857 A JP 2011203857A
Authority
JP
Japan
Prior art keywords
function
hardware
software
operation verification
verification
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.)
Withdrawn
Application number
JP2010068732A
Other languages
English (en)
Inventor
Mitsunori Suwa
光範 諏訪
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010068732A priority Critical patent/JP2011203857A/ja
Priority to US13/064,357 priority patent/US20110239047A1/en
Publication of JP2011203857A publication Critical patent/JP2011203857A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31907Modular tester, e.g. controlling and coordinating instruments in a bus based architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】半導体集積回路に対する高速な動作検証を実現し、且つ、その動作検証に関して柔軟性及び制御性を確保する。
【解決手段】回路動作検証システムは、計算機と、被テスト回路が構成されたプログラマブルロジックデバイスと、被テスト回路の動作検証を行うテストベンチ部と、を備える。テストベンチ部は、計算機がソフトウェアを実行することにより実現されるソフトウェア部と、被テスト回路と共にプログラマブルロジックデバイス上に構成されたハードウェア部と、を備える。ハードウェア部は、テストパタンを生成し、テストパタンを被テスト回路に入力することによって動作検証を行うハードウェア機能を有する。そのハードウェア機能は、制御パラメータを変えることによって制御可能である。ソフトウェア部は、制御パラメータを可変に設定する。
【選択図】図1

Description

本発明は、半導体集積回路の動作検証を行う技術に関する。
半導体集積回路の動作検証(論理検証)を行うために、テストベンチが一般的に利用されている。動作検証の対象である被テスト回路は、以下「DUT(Device Under Test)」と参照される。DUTの大規模化・複雑化に伴い、テストベンチの開発も困難になってきている。
また、動作検証の一種として「ランダム検証」が知られている。ランダム検証では、DUTにランダムなテストパタンを与えることにより、動作検証が網羅的に実施される。ランダム検証において十分な網羅率(カバレッジ)を実現するためには、非常に多くのランダムテストパタンをDUTに与える必要がある。従って、動作検証を高速に実行できるテストベンチを開発することが重要である。
特許文献1(特開2006−79417号公報)によれば、テストベンチ部は、シミュレータ上に構築される。一方、DUTは、FPGA(Field Programmable Gate Array)上のハードウェアエミュレータで実現される。テストパタン及びクロック信号は、シミュレータ上のテストベンチ部から、FPGA上のDUTに供給される。
特許文献2(特開2005−251216号公報)によれば、テストベンチ記述構造の解析が行われ、テストベンチ機能の全てがハードウェアエミュレータで実現される。
特開2006−79417号公報 特開2005−251216号公報
上述の特許文献1によれば、テストパタン及びクロック信号は、シミュレータ上のテストベンチ部から、FPGA上のDUTに供給される。この場合、テストベンチ部自体のシミュレーション時間、及び、シミュレータとFPGAとの間のデータ通信時間が、ボトルネックとなる。よって、動作検証の高速化は困難である。
上述の特許文献2によれば、テストベンチ機能の全てがハードウェアエミュレータで実現される。この場合、テストパタンやシナリオといった検証条件が固定されてしまい、動作検証の柔軟性が損なわれる。検証条件を変更するためには、テストベンチ記述構造の作成及び解析を最初からやり直す必要があり、時間がかかる。
本発明の1つの観点において、回路動作検証システムが提供される。その回路動作検証システムは、計算機と、被テスト回路が構成されたプログラマブルロジックデバイスと、被テスト回路の動作検証を行うテストベンチ部と、を備える。テストベンチ部は、計算機がソフトウェアを実行することにより実現されるソフトウェア部と、被テスト回路と共にプログラマブルロジックデバイス上に構成されたハードウェア部と、を備える。ハードウェア部は、テストパタンを生成し、テストパタンを被テスト回路に入力することによって動作検証を行うハードウェア機能を有する。そのハードウェア機能は、制御パラメータを変えることによって制御可能である。ソフトウェア部は、制御パラメータを可変に設定する。
本発明の他の観点において、被テスト回路の動作検証を行う環境を構築する検証環境構築方法が提供される。検証環境構築方法は、(A)動作検証のシナリオを示すシナリオデータを記憶装置から読み出すステップを含む。シナリオは、プログラム言語で記述され、動作検証の機能を表す関数を含んでいる。関数及びそれに対応するハードウェアは、データベースにおいて定義されている。検証環境構築方法は、更に、(B)そのデータベースを参照しながらシナリオを分析することによって、動作検証の機能を、ソフトウェアにより実現されるソフトウェア機能と、ハードウェアにより実現されるハードウェア機能とに分類するステップを含む。ハードウェア機能は、テストパタンを生成し、テストパタンを被テスト回路に入力することによって動作検証を行う。そのハードウェア機能は、制御パラメータを変えることによって制御可能である。ソフトウェア機能は、制御パラメータを可変に設定する。検証環境構築方法は、更に、(C)計算機によって実行され、ソフトウェア機能を提供するソフトウェア実行データを生成するステップと、(D)ハードウェア機能及び被テスト回路をプログラマブルロジックデバイス上に構成するコンフィグレーションデータを生成するステップと、を含む。
本発明の更に他の観点において、被テスト回路の動作検証を行う回路動作検証方法が提供される。回路動作検証方法は、(a)動作検証のシナリオを示すシナリオデータを記憶装置から読み出すステップを含む。シナリオは、プログラム言語で記述され、動作検証の内容を表す関数を含んでいる。関数及びそれに対応するハードウェアは、データベースにおいて定義されている。回路動作検証方法は、更に、(b)そのデータベースを参照しながらシナリオを分析することによって、動作検証の機能を、ソフトウェアにより実現されるソフトウェア機能と、ハードウェアにより実現されるハードウェア機能とに分類するステップを含む。ハードウェア機能は、テストパタンを生成し、テストパタンを被テスト回路に入力することによって動作検証を行う。そのハードウェア機能は、制御パラメータを変えることによって制御可能である。ソフトウェア機能は、制御パラメータを可変に設定する。回路動作検証方法は、更に、(c)計算機によって実行され、ソフトウェア機能を提供するソフトウェア実行データを生成するステップと、(d)ハードウェア機能及び被テスト回路をプログラマブルロジックデバイス上に構成するコンフィグレーションデータを生成するステップと、を含む。回路動作検証方法は、更に、(e)コンフィグレーションデータをプログラマブルロジックデバイスに供給することによって、プログラマブルロジックデバイス上に被テスト回路及びハードウェア機能を構成するステップと、(f)プログラマブルロジックデバイスを動作させるステップと、(g)計算機でソフトウェア実行データを実行し、制御パラメータを可変に設定するステップと、を含む。
本発明によれば、半導体集積回路に対する高速な動作検証を実現し、且つ、その動作検証に関して柔軟性及び制御性を確保することが可能である。
図1は、本発明の実施の形態に係る回路動作検証システムの構成を示すブロック図である。 図2は、本発明の実施の形態におけるテストベンチハードウェア部の一例を示すブロック図である。 図3は、本発明の実施の形態に係る検証環境構築システムの構成を示すブロック図である。 図4は、本発明の実施の形態に係る検証環境構築処理及び動作検証処理を示すフローチャートである。 図5は、本発明の実施の形態における機能要素データベース及びシナリオデータを示す概念図である。 図6は、本発明の実施の形態における機能要素データベース及びシナリオデータの一例を示す概念図である。 図7は、本発明の実施の形態におけるステップS20を示すブロック図である。 図8は、本発明の実施の形態におけるアドレスマップの一例を示している。 図9は、本発明の実施の形態におけるSW機能データ中のシナリオ制御部の一例を示している。 図10は、本発明の実施の形態におけるSW機能データ中のパラメータ設定部の一例を示している。 図11は、本発明の実施の形態におけるHW機能データの一例を示す概念図である。 図12は、本発明の実施の形態におけるステップS30を示すブロック図である。 図13は、本発明の実施の形態におけるステップS40を示すブロック図である。
添付図面を参照して、本発明の実施の形態を説明する。
1.回路動作検証システム
図1は、本実施の形態において被テスト回路(DUT)の動作検証を行う回路動作検証システム100の構成を示すブロック図である。回路動作検証システム100は、計算機200及びプログラマブルロジックデバイス(PLD:Programmable Logic Device)を備えている。本実施の形態では、プログラマブルロジックデバイスとして例えばFPGA320が用いられる。
計算機200は、通信インタフェース210、メモリ220、及びCPU(Central Processing Unit)230を備えている。通信インタフェース210は、USB(Universal Serial Bus)やPCI(Peripheral Component Interconnect)等の汎用インタフェースである。
FPGAボード300上には、通信インタフェース310及びFPGA320が搭載されている。通信インタフェース310は、USBやPCI等の汎用インタフェースである。この通信インタフェース310は、FPGA320及び計算機200の通信インタフェース210と接続されている。DUTは、FPGA上に構成(構築)されている。
回路動作検証システム100は更に、DUTの動作検証を行うテストベンチ部を備えている。以下の説明では、動作検証の例として「ランダム検証」を考える。この場合、テストベンチ部は、ランダムなテストパタンを生成し、そのランダムテストパタンをDUTに入力することによってランダム検証を行う。
本実施の形態によれば、テストベンチ部は、ハードウェアにより実現されるテストベンチハードウェア部TBHWと、ソフトウェアにより実現されるテストベンチソフトウェア部TBSWとの組み合わせにより構成される。
ハードウェアであるテストベンチハードウェア部TBHWは、FPGA320上に構成される。つまり、FPGA320上には、DUTとテストベンチハードウェア部TBHWが構成される。より詳細には、DUTとテストベンチハードウェア部TBHWをFPGA320上に構成するためのFPGAデータ(コンフィグレーションデータ)DFPが作成され、そのFPGAデータDFPがFPGA320に入力される。それにより、DUT及びテストベンチハードウェア部TBHWがFPGA320上に構成(構築)される。
テストベンチハードウェア部TBHWは、DUTに接続されている。このテストベンチハードウェア部TBHWの機能は、ランダムテストパタンを生成し、そのランダムテストパタンをDUTに入力することによって動作検証を行うことである。このようなテストベンチハードウェア部TBHWの機能は、以下「ハードウェア機能」と参照される。ランダムテストパタンの生成や入力がFPGA320上のハードウェア機能により実行されるため、高速なランダム検証が可能となる。
その一方で、テストベンチハードウェア部TBHWのハードウェア機能は、制御パラメータに依存しており、制御パラメータを変えることによって制御可能である。例えば、制御パラメータを変えることによって、テストベンチハードウェア部TBHWが生成するランダムテストパタンの系列を変えることができる。そのような制御パラメータの設定を行うのが、テストベンチソフトウェア部TBSWである。
テストベンチソフトウェア部TBSWは、計算機200上に構築される。より詳細には、テストベンチソフトウェア部TBSWは、計算機200(CPU230)がソフトウェアを実行することにより実現される。図1に示されるSW実行データDSWは、そのソフトウェアの実行データである。SW実行データDSWは、メモリ220にロードされ、CPU230によって実行される。それにより、テストベンチソフトウェア部TBSWが実現される。
テストベンチソフトウェア部TBSWは、通信インタフェース210及び通信インタフェース310を介して、テストベンチハードウェア部TBHWと通信可能に接続されている。このテストベンチソフトウェア部TBSWは、通信インタフェースを介して、上述の制御パラメータをテストベンチハードウェア部TBHWに供給することができる。つまり、テストベンチソフトウェア部TBSWは、通信インタフェースを介して、制御パラメータを可変に設定することができる。これにより、動作検証に関して柔軟性(flexibiilty)及び制御性(controllability)を確保することが可能となる。
図2は、テストベンチハードウェア部TBHWの一例を示している。図2において、テストベンチハードウェア部TBHWは、アドレスデコーダ321、入力データ生成モジュール322、入力制御モジュール323、及び結果比較モジュール324を備えている。
入力データ生成モジュール322は、ランダムテストパタンを生成する回路であり、例えばシフトレジスタを含んでいる。入力制御モジュール323は、入力データ生成モジュール322によって生成されたランダムテストパタンをDUTに入力する回路である。結果比較モジュール324は、比較値の生成や、DUTからの出力値と比較値との比較などを行う回路であり、例えばCRC(Cyclic Redundancy Check)生成回路を含んでいる。アドレスデコーダ(アドレスメモリ)321は、後述されるアドレスマップに応じて各回路に接続されている。テストベンチソフトウェア部TBSWは、このアドレスデコーダ321を通して各回路に制御パラメータを供給することができる。
例えば、DUTはスキャンチェーンを含んでおり、スキャンテスト可能である。テストベンチソフトウェア部TBSWは、DUTの動作モードを切り替える。テストベンチハードウェア部TBHWは、スキャンチェーンにランダムテストパタンを入力し、スキャンテストを実施する。そして、そのスキャンテストの結果が、テストベンチソフトウェア部TBSWにフィードバックされる。テストベンチソフトウェア部TBSWは、そのスキャンテストの結果に基いて制御パラメータを変える。例えば、テストベンチソフトウェア部TBSWは、入力データ生成モジュール322に他の系列のランダムテストパタンを生成させる。
以上に説明されたように、本実施の形態によれば、テストパタンの生成や入力がFPGA320上のハードウェア機能により実行される。言い換えれば、ソフトウェア側からのパラメータ設定以外、全ての動作検証処理はハードウェア側で実行される。検証処理中に計算機200との同期処理は発生しない。従って、高速動作検証が可能となる。その一方で、生成されるテストパタンの系列などは、計算機200上のソフトウェア側から制御可能である。つまり、テストパタンやシナリオといった検証条件を柔軟に設定することが可能である。このように、本実施の形態によれば、半導体集積回路に対する高速な動作検証を実現し、且つ、その動作検証に関して柔軟性及び制御性を確保することが可能である。
2.動作検証環境の構築
次に、上述のSW実行データDSW及びFPGAデータDFPを作成し、動作検証環境を構築するための手法を詳細に説明する。
図3は、SW実行データDSW及びFPGAデータDFPを作成し、動作検証環境を構築する「検証環境構築システム1」の構成を示している。検証環境構築システム1は、コンピュータシステムであり、処理装置2、記憶装置3、入力装置4、及び出力装置5を備えている。処理装置2は、CPUを含んでいる。記憶装置3として、RAMやHDDが例示される。入力装置4として、キーボードやマウスが例示される。出力装置5として、ディスプレイが例示される。
記憶装置3には、DUT機能仕様データSPEC、機能要素データベースDB、シナリオデータSNR、SW機能データFSW、HW機能データFHW、SW実行データDSW、DUTデータDD、FPGAデータDFP等が格納される。各データの詳細は後述される。
処理装置2は、シナリオ作成部10、シナリオ分析部20、SW実行データ生成部30、FPGAデータ生成部40等の機能ブロックを備えている。これら機能ブロックは、典型的には、処理装置2が検証環境構築プログラムPROGを実行することにより実現される。検証環境構築プログラムPROGは、検証環境構築システム1(処理装置2)によって実行されるコンピュータプログラムであり、記憶装置3に格納される。検証環境構築プログラムPROGは、コンピュータ読み取り可能な記録媒体に記録されていてもよい。
図4は、本実施の形態に係る検証環境構築処理及び動作検証処理を示すフローチャートである。以下、本実施の形態に係る検証環境構築処理を詳細に説明する。尚、動作検証はランダム検証であるとする。
2−1.ステップS10:シナリオ作成
シナリオ作成部10は、動作検証のシナリオを示すシナリオデータSNRを作成し、そのシナリオデータSNRを記憶装置3に格納する。シナリオデータSNRの作成にあたり、シナリオ作成部10は、記憶装置3に格納されているDUT機能仕様データSPEC及び機能要素データベースDBを参照する。DUT機能仕様データSPECは、検証対象であるDUTの機能仕様を示す。機能要素データベースDBは、ランダム検証に必要な様々な検証機能が定義されたデータベースである。シナリオ作成部10は、ユーザとの対話を通して、必要な検証機能を選択し、シナリオに組み込んでいく。
図5は、機能要素データベースDB及びシナリオデータSNRを概念的に示している。図6は、機能要素データベースDB及びシナリオデータSNRの一例を示している。
2−1−1.機能要素データベースDB
機能要素データベースDBでは、ランダム検証毎に共通な機能要素が、関数やライブラリとして定義されている。また、それら機能要素に対応する機能要素ハードウェアや機能要素ソフトウェアも定義されている。尚、機能要素ハードウェアは、ソフトウェアからパラメータ設定可能である。まず、図5及び図6を参照して、機能要素データベースDBに含まれる様々な関数、ライブラリ、機能要素ハードウェア、機能要素ソフトウェアの例を説明する。
<ランダムパラメータ生成ライブラリ410>
ランダムパラメータ生成ライブラリ410は、例えば、DEFINE_RAND(ParamName,BitWidth)で表される。このランダムパラメータ生成ライブラリ410は、変数(ParamName)を定義し、指定されたビット幅(BitWidth)のランダム値を生成する。
<入力データ生成要素420>
入力データ生成要素420は、入力データ生成関数421及び入力データ生成ハードウェア422を含んでいる。入力データ生成関数421は、DUTに入力されるランダムテストパタンを生成する。例えば、入力データ生成関数421は、GenInputData(BitWidth,Size,RandSeq,Seed)で表される。ここで、“BitWidth”はデータ幅であり、“Size”はサイズであり、“RandSeq”はランダム系列であり、“Seed”はランダムシードである。入力データ生成ハードウェア422は、入力データ生成関数に対応する機能要素ハードウェアである。入力データ生成ハードウェア422は、例えば、シフトレジスタである。
<HW設定ライブラリ430>
HW設定ライブラリ430は、例えば、SetParam(ParamName)で表される。このHW設定ライブラリ430は、指定された変数(ParamName)にデータを設定する。
<実行制御ライブラリ440>
実行制御ライブラリ440は、シミュレーションを実行する。
<結果チェック要素450>
結果チェック要素450は、結果比較関数451及び比較値生成ハードウェア452を含んでいる。結果比較関数451は、動作検証の結果をチェックする。比較値生成ハードウェア452は、結果比較関数451に関連付けられた機能要素ハードウェアである。比較値生成ハードウェア452は、例えば、CRC生成回路である。
<HWアクセスライブラリ460>
HWアクセスライブラリ460は、例えば、HW_Write(Address,data)で表される。このHWアクセスライブラリ460は、指定されたアドレス(Address)に指定されたデータ(data)を書き込む。このHWアクセスライブラリ460は、入力データ生成関数421、HW設定ライブラリ430、実行制御ライブラリ440、結果比較関数451等に関連付けられている。
<通信IF要素470>
通信IF要素470は、通信IFソフトウェア471及び通信IFハードウェア472を含んでいる。通信IFソフトウェア471は、通信インタフェース用のソフトウェアである。通信IFソフトウェア471として、ドライバAPI(Application Program Interface)が例示される。通信IFハードウェア472は、通信インタフェース用のハードウェアである。通信IFハードウェア472として、PCIコントロールハードウェアが例示される。
2−1−2.シナリオデータSNR
シナリオデータSNRは、動作検証のシナリオを示す。シナリオとは、どのような順番でどのような検証を行うか、を意味する。シナリオデータSNRの作成にあたり、シナリオ作成部10は、上述の機能要素データベースDBを参照する。そして、シナリオ作成部10は、ユーザとの対話を通して、機能要素データベースDBから必要な検証機能を選択し、シナリオに組み込んでいく。つまり、シナリオは、上述の機能要素データベースDB中で定義されている関数やライブラリを用いることにより、プログラム言語で記述される。シナリオは、所望の動作検証の機能を表す関数を含んでいる。図5及び図6を参照して、シナリオの一例を説明する。
<ランダムパラメータ生成処理510>
ランダムパラメータ生成処理510は、ランダムパラメータを生成する。図5及び図6に示されるように、このランダムパラメータ生成処理510は、機能要素データベースDB中の上記ランダムパラメータ生成ライブラリ410を用いて記述される。例えば図6において“param1”はサイズである。
<入力データ生成設定処理520>
入力データ生成設定処理520は、DUTに入力されるランダムテストパタンを生成する。図5及び図6に示されるように、入力データ生成設定処理520は、機能要素データベースDB中の上記入力データ生成関数421を用いて記述される。例えば図6のGenInputData(32,param1,1,0x12345678)において、“32”はデータ幅(bit)であり、“param1”はサイズであり、“1”はランダム系列であり、“0x12345678”はランダムシードである。また、GenInputData(32,param1,X,XXX)において、ランダム系列=“X”及びランダムシード=“XXX”は、フィードバックを考慮した値に設定される。尚、図6に示されるように、入力データ生成関数421において、HWアクセスライブラリ460(HW_Write)が4回使用されている。従って、入力データ生成設定処理520におけるアドレス使用数は4個である。
<HW(DUT)パラメータ設定処理530>
HW(DUT)パラメータ設定処理530は、DUTのパラメータを設定する。図5及び図6に示されるように、HW(DUT)パラメータ設定処理530は、機能要素データベースDB中の上記HW設定ライブラリ430を用いて記述される。尚、図6に示されるように、HW設定ライブラリ430において、HWアクセスライブラリ460(HW_Write)が1回使用されている。また、HW(DUT)パラメータ設定処理530において、HW設定ライブラリ430(SetParam)がN回使用されている。従って、HW(DUT)パラメータ設定処理530におけるアドレス使用数はN個である。
<シミュレーション実行処理540>
シミュレーション実行処理540は、シミュレーションを実行する。図5に示されるように、シミュレーション実行処理540は、機能要素データベースDB中の上記実行制御ライブラリ440を用いて記述される。
<結果チェック処理550>
結果チェック処理550は、動作検証の結果をチェックする。図5に示されるように、結果チェック処理550は、機能要素データベースDB中の上記結果比較関数451を用いて記述される。
尚、シナリオデータSNRは、DUTに関する情報560(接続情報やアドレス情報)も含んでいる。
2−2.ステップS20:シナリオ分析
図7は、ステップS20を示している。ステップS20において、シナリオ分析部20は、上述のシナリオデータSNRを記憶装置3から読み出す。そして、シナリオ分析部20は、機能要素データベースDBを参照しながら、シナリオに含まれる機能要素を分析する。それにより、シナリオ分析部20は、シナリオで示される動作検証の機能を、ソフトウェアにより実現されるソフトウェア機能と、ハードウェアにより実現可能なハードウェア機能とに分類する。
上述の通り、ハードウェア機能は、ランダムテストパタンを生成し、そのランダムテストパタンをDUTに入力することによってランダム検証を行う。そのハードウェア機能は、制御パラメータに依存しており、制御パラメータを変えることによって制御可能である。ソフトウェア機能は、制御パラメータを可変に設定する。シナリオ分析部20は、シナリオを分析することによってソフトウェア機能及びハードウェア機能を抽出し、それぞれを示すSW機能データFSW及びHW機能データFHWを作成する。SW機能データFSW及びHW機能データFHWは、記憶装置3に格納される。
より詳細には、シナリオ分析部20はまず、アドレスマップ600を生成する。図8は、図6で示された例の場合に生成されるアドレスマップ600を示している。上述の通り、入力データ生成設定処理520におけるアドレス使用数は4個であり、HW(DUT)パラメータ設定処理530におけるアドレス使用数はN個である。シナリオ分析部20は、シナリオに含まれる処理(機能要素)毎のアドレス使用数に基づきオフセット値を適宜算出し、アドレスマップ600を生成する。その結果、図6及び図8で示される例では、HW(DUT)パラメータ設定処理530で用いられる変数“param1”〜“paramN”がそれぞれアドレス1〜Nにマッピングされ、また、入力データ生成設定処理520(入力データ生成関数421)で用いられる変数“Adr1”〜“Adr4”がそれぞれアドレスN+1〜N+4にマッピングされている。
シナリオ分析部20は、アドレスマップ600、シナリオデータSNR及び機能要素データベースDBに基いて、SW機能データFSWを作成する。図7に示されるように、SW機能データFSWは、シナリオ制御部710、パラメータ設定部720、及び通信IFソフトウェア部730を含んでいる。
シナリオ制御部710は、シナリオデータSNRで示されるシナリオシーケンスを抽出したものに相当する。図9は、図6で示された例の場合のシナリオ制御部710を示している。パラメータ設定部720は、テストベンチハードウェア部TBHWやDUTに各種制御パラメータを設定する。図10は、図6で示された例の場合のパラメータ設定部720を示しており、シナリオデータSNRで示される入力データ生成設定処理520及びHW(DUT)パラメータ設定処理530に対応している。図10に示されるように、アドレスマップ600で示されるアドレス情報がパラメータ設定部720に反映されている。通信IFソフトウェア部730は、DUT情報560(アドレス情報)、アドレスマップ600、及び機能要素データベースDB中の通信IFソフトウェア471から生成される。
また、シナリオ分析部20は、アドレスマップ600、シナリオデータSNR及び機能要素データベースDBに基いて、HW機能データFHWを作成する。図7に示されるように、HW機能データFHWは、通信IFハードウェア部810及び機能要素ハードウェア部820を含んでいる。通信IFハードウェア部810は、DUT情報560(アドレス情報)、アドレスマップ600、及び機能要素データベースDB中の通信IFハードウェア472から生成される。機能要素ハードウェア部820は、シナリオで使用されている各機能要素に対応する機能要素ハードウェア(入力データ生成ハードウェア422、比較値生成ハードウェア452、等)とDUT情報560(アドレス情報、接続情報)を組み合わせることによって生成される。
図11は、HW機能データFHWの一例を概念的に示しており、既出の図2で示された回路に相当している。シナリオで使用されている機能要素に対応する機能要素ハードウェアは、シナリオに応じて、DUTや他の機能要素ハードウェアと接続されている。例えば、入力データ生成ハードウェア422に対応する入力データ生成モジュール322は、アドレスデコーダ321に接続されている。この入力データ生成モジュール322は、制御パラメータ(BitWidth,Size,RandSeq,Seed)に応じたランダムテストパタンを生成する。それら制御パラメータは、アドレスデコーダ321(アドレスマップ600)を通して、ソフトウェア側(入力データ生成設定処理520)から制御可能である。ソフトウェア側からは、個々にマッピングされたアドレスにアクセスすることで、値の読み出しや書き込みが可能である。
2−3.ステップS30:SW実行データの生成
図12は、ステップS30を示している。ステップS30において、SW実行データ生成部30は、記憶装置3からSW機能データFSWを読み出し、そのSW機能データFSWをSW実行データDSWに変換する。図1で示されたように、SW実行データDSWは、動作検証時に計算機200によって実行され、上述のソフトウェア機能を提供する。生成されたSW実行データDSWは、記憶装置3に格納される。
2−4.ステップS40:FPGAデータの生成
図13は、ステップS40を示している。ステップS40において、FPGAデータ生成部40は、記憶装置3からHW機能データFHW及びDUTデータDDを読み出す。DUTデータDDは、DUTの設計機能を示すデータである。FPGAデータ生成部40は、それらHW機能データFHW及びDUTデータDDに対して、論理合成処理及び配置配線処理を施すことにより、FPGAデータDFPを生成する。上述の通り、FPGAデータDFPは、DUTとハードウェア機能をFPGA320上に構築するためのコンフィグレーションデータである。生成されたFPGAデータDFPは、記憶装置3に格納される。
2−5.ステップS50:動作検証処理
以上のようにSW実行データDSW及びFPGAデータDFPが用意されると、図1で示された動作検証が可能となる。まず、FPGAデータDFPがFPGA320に供給され、それにより、DUT及びテストベンチハードウェア部TBHWがFPGA320上に構成(構築)される。続いて、FPGA320が動作させられる。また、計算機200が、SW実行データDSWを実行し、制御パラメータを可変に設定する。このようにして、本実施の形態に係る動作検証処理が実現される。
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
1 検証環境構築システム
2 処理装置
3 記憶装置
4 入力装置
5 出力装置
10 シナリオ作成部
20 シナリオ分析部
30 SW実行データ生成部
40 FPGAデータ生成部
100 回路動作検証システム
200 計算機
210 通信インタフェース
220 メモリ
230 CPU
300 FPGAボード
310 通信インタフェース
320 FPGA
321 アドレスデコーダ
322 入力データ生成モジュール
323 入力制御モジュール
324 結果比較モジュール
410 ランダムパラメータ生成ライブラリ
420 入力データ生成要素
421 入力データ生成関数
422 入力データ生成ハードウェア
430 HW設定ライブラリ
440 実行制御ライブラリ
450 結果チェック要素
451 結果比較関数
452 比較値生成ハードウェア
460 HWアクセスライブラリ
470 通信IF要素
471 通信IFソフトウェア
472 通信IFハードウェア
510 ランダムパラメータ生成処理
520 入力データ生成処理
530 HW(DUT)パラメータ設定処理
540 シミュレーション実行処理
550 結果チェック処理
560 DUT情報
600 アドレスマップ
710 シナリオ制御部
720 パラメータ設定部
730 通信IFソフトウェア部
810 通信IFハードウェア部
820 機能要素ハードウェア部
DUT 被テスト回路
DSW SW実行データ
DFP FPGAデータ
TBSW テストベンチソフトウェア部
TBHW テストベンチハードウェア部
SPEC DUT機能仕様データ
DB 機能要素データベース
SNR シナリオデータ
FSW SW機能データ
FHW HW機能データ
DD DUTデータ
PROG 検証環境構築プログラム

Claims (6)

  1. 計算機と、
    被テスト回路が構成されたプログラマブルロジックデバイスと、
    前記被テスト回路の動作検証を行うテストベンチ部と
    を備え、
    前記テストベンチ部は、
    前記計算機がソフトウェアを実行することにより実現されるソフトウェア部と、
    前記被テスト回路と共に前記プログラマブルロジックデバイス上に構成されたハードウェア部と
    を備え、
    前記ハードウェア部は、テストパタンを生成し、前記テストパタンを前記被テスト回路に入力することによって前記動作検証を行うハードウェア機能を有し、
    前記ハードウェア機能は、制御パラメータを変えることによって制御可能であり、
    前記ソフトウェア部は、前記制御パラメータを可変に設定する
    回路動作検証システム。
  2. 請求項1に記載の回路動作検証システムであって、
    前記テストパタンは、ランダムなテストパタンであり、
    前記動作検証は、ランダム検証である
    回路動作検証システム。
  3. 被テスト回路の動作検証を行う環境を構築する検証環境構築方法であって、
    (A)前記動作検証のシナリオを示すシナリオデータを記憶装置から読み出すステップと、
    ここで、
    前記シナリオは、プログラム言語で記述され、前記動作検証の機能を表す関数を含んでおり、
    前記関数及びそれに対応するハードウェアは、データベースにおいて定義されており、
    (B)前記データベースを参照しながら前記シナリオを分析することによって、前記動作検証の機能を、ソフトウェアにより実現されるソフトウェア機能と、ハードウェアにより実現されるハードウェア機能とに分類するステップと、
    ここで、
    前記ハードウェア機能は、テストパタンを生成し、前記テストパタンを前記被テスト回路に入力することによって前記動作検証を行い、
    前記ハードウェア機能は、制御パラメータを変えることによって制御可能であり、
    前記ソフトウェア機能は、前記制御パラメータを可変に設定し、
    (C)計算機によって実行され、前記ソフトウェア機能を提供するソフトウェア実行データを生成するステップと、
    (D)前記ハードウェア機能及び前記被テスト回路をプログラマブルロジックデバイス上に構成するコンフィグレーションデータを生成するステップと
    を含む
    検証環境構築方法。
  4. 請求項3に記載の検証環境構築方法であって、
    前記テストパタンは、ランダムなテストパタンであり、
    前記動作検証は、ランダム検証である
    検証環境構築方法。
  5. 請求項3又は4に記載の検証環境構築方法をコンピュータに実行させる
    検証環境構築プログラム。
  6. 被テスト回路の動作検証を行う回路動作検証方法であって、
    (a)前記動作検証のシナリオを示すシナリオデータを記憶装置から読み出すステップと、
    ここで、
    前記シナリオは、プログラム言語で記述され、前記動作検証の内容を表す関数を含んでおり、
    前記関数及びそれに対応するハードウェアは、データベースにおいて定義されており、
    (b)前記データベースを参照しながら前記シナリオを分析することによって、前記動作検証の機能を、ソフトウェアにより実現されるソフトウェア機能と、ハードウェアにより実現されるハードウェア機能とに分類するステップと、
    ここで、
    前記ハードウェア機能は、テストパタンを生成し、前記テストパタンを前記被テスト回路に入力することによって前記動作検証を行い、
    前記ハードウェア機能は、制御パラメータを変えることによって制御可能であり、
    前記ソフトウェア機能は、前記制御パラメータを可変に設定し、
    (c)計算機によって実行され、前記ソフトウェア機能を提供するソフトウェア実行データを生成するステップと、
    (d)前記ハードウェア機能及び前記被テスト回路をプログラマブルロジックデバイス上に構成するコンフィグレーションデータを生成するステップと、
    (e)前記コンフィグレーションデータを前記プログラマブルロジックデバイスに供給することによって、前記プログラマブルロジックデバイス上に前記被テスト回路及び前記ハードウェア機能を構成するステップと、
    (f)前記プログラマブルロジックデバイスを動作させるステップと、
    (g)前記計算機で前記ソフトウェア実行データを実行し、前記制御パラメータを可変に設定するステップと
    を含む
    回路動作検証方法。
JP2010068732A 2010-03-24 2010-03-24 回路動作検証システム及び検証環境構築方法 Withdrawn JP2011203857A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010068732A JP2011203857A (ja) 2010-03-24 2010-03-24 回路動作検証システム及び検証環境構築方法
US13/064,357 US20110239047A1 (en) 2010-03-24 2011-03-21 Circuit operation verification system and verification environment creation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010068732A JP2011203857A (ja) 2010-03-24 2010-03-24 回路動作検証システム及び検証環境構築方法

Publications (1)

Publication Number Publication Date
JP2011203857A true JP2011203857A (ja) 2011-10-13

Family

ID=44657733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010068732A Withdrawn JP2011203857A (ja) 2010-03-24 2010-03-24 回路動作検証システム及び検証環境構築方法

Country Status (2)

Country Link
US (1) US20110239047A1 (ja)
JP (1) JP2011203857A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693343A (zh) * 2012-05-25 2012-09-26 青岛海信信芯科技有限公司 片上系统验证装置和片上系统验证方法
JP7446123B2 (ja) 2020-02-19 2024-03-08 三菱電機株式会社 制御装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120265515A1 (en) * 2011-04-12 2012-10-18 Reuven Weintraub Method and system and computer program product for accelerating simulations
US9152520B2 (en) * 2013-09-26 2015-10-06 Texas Instruments Incorporated Programmable interface-based validation and debug
CN110781637B (zh) * 2019-10-14 2023-05-02 珠海泰芯半导体有限公司 一种芯片验证辅助环境以及芯片验证系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240303B1 (en) * 1999-11-30 2007-07-03 Synplicity, Inc. Hardware/software co-debugging in a hardware description language
US7257524B2 (en) * 2001-09-19 2007-08-14 Quickturn Design Systems, Inc. Simulation and timing control for hardware accelerated simulation
US7209851B2 (en) * 2003-02-14 2007-04-24 Advantest America R&D Center, Inc. Method and structure to develop a test program for semiconductor integrated circuits
US7225416B1 (en) * 2004-06-15 2007-05-29 Altera Corporation Methods and apparatus for automatic test component generation and inclusion into simulation testbench

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693343A (zh) * 2012-05-25 2012-09-26 青岛海信信芯科技有限公司 片上系统验证装置和片上系统验证方法
JP7446123B2 (ja) 2020-02-19 2024-03-08 三菱電機株式会社 制御装置

Also Published As

Publication number Publication date
US20110239047A1 (en) 2011-09-29

Similar Documents

Publication Publication Date Title
US8146061B2 (en) Systems and methods for graphics hardware design debugging and verification
US7730353B2 (en) Memory-based trigger generation scheme in an emulation environment
KR100858382B1 (ko) 테스터 구축 데이터의 생성방법 및 테스터의 구축방법 및테스트회로
US20130227367A1 (en) Test IP-Based A.T.E. Instrument Architecture
US20070033552A1 (en) Method for detecting flaws in a functional verification plan
US10657207B1 (en) Inter-cell bridge defect diagnosis
JP4427002B2 (ja) 半導体試験用プログラムデバッグ装置
EP1913410B1 (en) Method and system for debug and test using replicated logic
US7228262B2 (en) Semiconductor integrated circuit verification system
JP2011203857A (ja) 回路動作検証システム及び検証環境構築方法
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
US9235670B2 (en) Method and an apparatus for automatic generation of verification environment for processor design and verification
US9690681B1 (en) Method and system for automatically generating executable system-level tests
US20130024178A1 (en) Playback methodology for verification components
US7539900B1 (en) Embedded microprocessor for integrated circuit testing and debugging
US20020188432A1 (en) Circuit model generation and circuit model testing
JP6959624B2 (ja) セキュリティアセスメントシステム
US10579761B1 (en) Method and system for reconstructing a graph presentation of a previously executed verification test
US10481969B2 (en) Configurable system wide tests
TW515964B (en) Development method of data processing system and appraisal substrate
JP5310397B2 (ja) 動作合成検証補助装置、動作合成検証補助方法、プログラム、及び記録媒体
JP2021534427A (ja) デジタル回路試験及び分析モジュール、システム及びそれの方法
JP6147094B2 (ja) 情報処理装置及び情報処理方法及びプログラム
US20130262932A1 (en) Stream Generation
JP2013228780A (ja) 情報処理装置及び情報処理方法及びプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130604