JP2004164056A - 検証環境構築方法および検証環境構築システム - Google Patents
検証環境構築方法および検証環境構築システム Download PDFInfo
- Publication number
- JP2004164056A JP2004164056A JP2002326349A JP2002326349A JP2004164056A JP 2004164056 A JP2004164056 A JP 2004164056A JP 2002326349 A JP2002326349 A JP 2002326349A JP 2002326349 A JP2002326349 A JP 2002326349A JP 2004164056 A JP2004164056 A JP 2004164056A
- Authority
- JP
- Japan
- Prior art keywords
- verification
- data
- interface
- information
- output
- 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
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】論理回路を検証するシステムを構築するに際し、テスト用データの入出力インタフェース数の適正化を簡易かつ低コストで実現できるようにする。
【解決手段】インタフェース数決定装置100 として、データ方向性情報J2、システム動作の周波数を示すクロック情報J4、検証項目ごとの検証モード情報J6、データの入出力が行なわれている時刻に関するアクセス情報J8をそれそれ取得する情報取得部112 〜118 を設ける。また、各情報取得部112 〜118 にて取得された各情報J2〜J8を用いて、システム検証に必要かつ適正なインタフェース数を決定するインタフェース数決定部120 を設ける。インタフェース数決定部120 は、複数の異なったデータが同一インタフェース上で入出力可能か否かを判定することで、競合が起きない範囲でインタフェースを共用し、データ用I/F部96a ,96b にて使用される必要最低限のデータ入出力数を決定する。
【選択図】 図2
【解決手段】インタフェース数決定装置100 として、データ方向性情報J2、システム動作の周波数を示すクロック情報J4、検証項目ごとの検証モード情報J6、データの入出力が行なわれている時刻に関するアクセス情報J8をそれそれ取得する情報取得部112 〜118 を設ける。また、各情報取得部112 〜118 にて取得された各情報J2〜J8を用いて、システム検証に必要かつ適正なインタフェース数を決定するインタフェース数決定部120 を設ける。インタフェース数決定部120 は、複数の異なったデータが同一インタフェース上で入出力可能か否かを判定することで、競合が起きない範囲でインタフェースを共用し、データ用I/F部96a ,96b にて使用される必要最低限のデータ入出力数を決定する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、半導体装置の論理検証を行なうための検証システム(エミュレータシステム)を構築する方法およびシステムに関する。
【0002】
【従来の技術】
半導体技術の進歩により、論理ICの集積度は益々向上し、大規模システムを1チップに集積することが可能となり、また1チップまたは複数のLSI(Large Scale Integrated Circuit:大規模集積回路)で電子機器などのシステムを構築することが可能になりつつある。
【0003】
1チップLSIやASIC(Application Specific IC :特定用途向け集積回路)などの半導体装置を開発する場合、一般的には、半導体装置(ターゲット回路)の内部の論理回路の論理動作を検証(デバッグ)した後に、実際のデバイス(チップ)を製造することが行なわれている。
【0004】
この論理検証の手法としては、たとえば、論理シミュレーション(ソフトウェアシミュレーション)がある。これは、論理検証の対象となる論理回路の動作を電子計算機(たとえばワークステーションなどのコンピュータ)で実現し、所定の入力パターンに対する出力を予想して解析する(ソフトウェア的に波形解析をする)の仕組みのものである。
【0005】
しかし、この論理シミュレーションでは、実際の論理回路に比べて動作速度が遅く、論理回路の規模が大きくなるとステップ数が非常に膨大となり論理検証時間が長時間に亘るという問題や、回路部材のソフトウェアモデリングが困難で、必ずしも実回路の動作と等価にはならず、システム全体を忠実にシミュレーションすることは難しいという問題がある。このため、論理シミュレーションのみでシステム全体の論理回路検証を行なうことは事実上不可能である。
【0006】
また、論理検証の他の手法として、ターゲット回路に対応するハードウェア要素としての試作LSIや基板による試作品を用いて検証を行なう手法もある。この手法では、たとえば試作LSIのパターンニングなどを要するため試作品を得るために数週間を要するので、繰り返して試作品を作り検証を行なうことは難しい。
【0007】
上記の検証手法の問題を解消するものとして、今日では、論理エミュレーション(ハードウェアエミュレーション/ロジックエミュレーション)による論理検証が注目されている(たとえば、特許文献1参照)。
【0008】
【特許文献1】
特開2002−229813号公報
【0009】
この論理エミュレーションは、ターゲット回路についての論理動作を、ターゲット回路とは別種のハードウェア要素を使用して論理検証するもので、たとえば、LSIや電子計算機などの論理回路と等価な動作をプリント基板上に搭載した複数の電子部品(ターゲット回路に対応する別種のハードウェア要素)で実現し、実際の論理回路に近い動作速度で回路を動作させて論理回路を検証するものである。
【0010】
たとえば、LSI設計データを読込みLSIと等価な動作を行なうプログラマブルに構成可能な半導体集積回路(FPGA;Filed Programmable Gate Alley:フィールドプログラマブルゲートアレイ)などで構成されたエミュレータによって実現され、CPU(Central Processing Unit ;中央演算処理装置)やメモリなどの汎用部品を外部のプリント基板に実装し、エミュレータとプリント基板を接続し、実際の論理回路に近い動作速度で回路を動作させて論理回路を検証する。
【0011】
この論理エミュレーションの手法によれば、数100万ゲート規模のシステムを構成することができ、システム全体として実速度に近い動作速度での検証が可能であり、コンピュータを用いたソフトウェアシミュレーションよりも数千分の1程度の時間で検証結果が得られる。また、FPGAは回路構成が可変であるので、検証中にFPGAの回路構成を変更して機能確認を行ない最終の回路を決定した後、システム全体の論理回路検証(評価)を実回路に近い動作速度で行なうこともできる。このとき、FPGAを用いて回路構成を変更しながら論理回路検証することによって、新規に設計する特定機能の論理回路やユーザ個別の論理回路を確定することもできる。これによって、特定用途向け集積回路ASICを比較的短期間に提供することも可能となる。
【0012】
【発明が解決しようとする課題】
一方、近年の半導体装置は、回路が複雑化し、プロセッサやメモリを内蔵することが可能となり、またシステムも大規模になっており、CPU、論理回路、記憶装置などの機能をそれぞれ単体で有するだけではなく、それらを1つのチップ上に搭載して所望のシステムを実現するSOC(System On Chip:システムオンチップ)化が進んでいる。
【0013】
このため、SOCを検証対象とした場合、検証項目も急激に増加している。この場合、当然、ソフトウェアシミュレーションでは検証時間が長期に亘るため検証できない項目も出てくる。よって、試作チップなどを搭載する試作基板を用いてシステム検証を行なうことや、さらに好ましくは、論理エミュレーションを用いてシステム検証を行なうことが必要となる。
【0014】
ここで、ソフトウェアシミュレーションの検証環境を試作基板や論理エミュレーションを用いた検証環境に適応した場合、ソフトウェアシミュレーションのデータ入出力の仕様はそれぞれ異なるため、従来の検証手法では、仕様に合わせて専用のインタフェースを構築していた。
【0015】
しかし、異なる仕様に合わせて別々に専用のインタフェースを用意する場合、そのボードを開発する工数が増大する。また、過去に作成したインタフェースボードを活用することができない。つまり、共有できるインタフェースボードがあり得るにも関わらず、常に専用のインタフェースを構築してしまいコスト増加が問題となってくる。また、検証環境の大規模化は、開発期間を長期化させ、意図しない問題を発生させる要因ともなる。
【0016】
さらに、設計者は経験的に独自の条件でインタフェースの数(ボードの場合はボード数)を決定しているため、決定したデータ入出力数が適切な数(好ましくは必要最低数)になるとは限らない。また、適正数(好ましくは必要最低限の数)のインタフェース数を決定する処理手順や条件が明確でないため、経験の少ない設計者は、適正数を決定することができないという問題もある。
【0017】
このように、ソフトウェアシミュレーションの検証環境を試作基板や論理エミュレーションを用いた検証環境に適応させる場合、従来の手法では、開発工数とコストの点で難がある。
【0018】
なお、エミュレーションに関する技術として特許文献2に記載のものがある。特許文献2に記載の技術は、たとえば、比較的簡易なプログラムを実行する1チップマイクロコンピュータなどのターゲットシステムによるシステム運用開始後のプログラムのバグに対し、パッチを当てるためのエミュレーションを実行するターゲットデバッグ支援に関するものである。
【0019】
【特許文献2】
特開2001−306357号公報
【0020】
この特許文献2の手法では、エミュレーションを実行時に、ターゲットシステムにおける演算制御装置が、エミュレータ用インタフェースとメモリとの通信を行なうための比較的簡易プログラムを、エミュレータがターゲットシステムのワーキング用メモリの空き記憶エリアにロードさせることで、ターゲットシステムの中央演算処理装置がメモリとの通信を行なうようにし、これにより、エミュレータ用インタフェースを簡易化し、効率的なプログラム修正を可能にしている。
【0021】
しかしながら、特許文献2の手法は、ソフトウェアデバッグに関わるもので、ソフトウェアシミュレーションの検証環境を試作基板や論理エミュレーションを用いた検証環境に適応させる場合に、特許文献2に記載の技術を適用してエミュレータ用インタフェースを簡易化する仕組みを講じることは難しい。
【0022】
本発明は、上記事情に鑑みてなされたものであり、ターゲット回路についての論理動作をこのターゲット回路に対応するハードウェア要素を使用して論理検証する際に必要かつ適正なインタフェース数を簡易に決定することのできる方法およびシステムを提供することを目的とする。
【0023】
【課題を解決するための手段】
すなわち、本発明に係る検証環境構築方法は、ターゲット回路についての論理動作を当該ターゲット回路に対応するハードウェア要素を使用してターゲット回路と略同様の動作速度で検証する環境を構築するための検証環境構築方法であって、検証システム本体への検証データの入出力に関する情報に基づいて、検証に必要かつ適正な検証データ用のインタフェース数を決定することとした。
【0024】
ターゲット回路に対応するハードウェア要素は、半導体などのターゲット回路に相当する試作品であってもよいし、半導体の回路を回路基板上に構成したものであってもよい。また、半導体などのターゲット回路そのものとは別種のハードウェア要素(FPGAやメモリなど)にて構成したものであってもよい。
【0025】
本発明に係る検証環境構築システムは、本発明に係る検証環境構築方法を実施するのに好適なシステムであって、ターゲット回路についての論理動作を検証する際に使用される検証データを検証システム本体へインタフェースするインタフェース部と、検証システム本体へインタフェースされる検証データに関する情報を取得する検証情報取得部と、検証情報取得部により取得された検証データに関する情報に基づいて、インタフェース部における、検証に必要かつ適正な検証データ用のインタフェース数を決定するインタフェース数決定部とを備えるものとした。
【0026】
また、従属項に記載された発明は、本発明に係る検証環境構築システムのさらなる有利な具体例を規定する。
【0027】
たとえば、インタフェース数決定部は、複数の異なった検証データが同一インタフェース上で入出力可能か否かに基づいてインタフェース数を決定するものとすることが望ましい。
【0028】
また、検証情報取得部は、それぞれ検証データに関する情報の一例である、検証項目ごとの検証データの使用状況を示す情報である検証モード情報、検証データの入出力が行なわれる時刻に関する情報であるアクセス情報、および検証動作中の検証データの周波数を示すクロック情報、のうちの少なくとも1つの情報を取得する機能要素を備えているものとするとよい。さらに好ましくは、検証データに関する情報の一例である、検証システム本体への検証データの方向に関するデータ方向性情報を取得する機能要素を備えているものとするとよい。
【0029】
また、インタフェース部は、ISAバスやPCIバス、あるいはUSBやIEEE1394などのように、ある一定の規格を満足する標準インタフェースの機構を持つものであることが望ましい。
【0030】
なお、本発明に係る検証環境構築方法およびシステムを、電子計算機(コンピュータ)を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできる。なお、プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。
【0031】
【作用】
上記構成においては、先ず、検証システム本体への検証データの入出力に関する情報を入手する。たとえば、ソフトウェアシミュレーションにて用いられていた検証データに関する情報を入手する。そして、この情報に基づいて、競合(データの衝突)が起きないように、システム検証に必要かつ適正なインタフェース数を決定する。たとえば、希望するインタフェース数になるまで、インタフェース数を削減するための条件設定にしたがって、複数ある入出力データのインタフェースが、同一インタフェースを使用可能かどうかを判定する。あるいは、必要最小限のインタフェース数を求める。
【0032】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【0033】
図1は、論理エミュレーションを行なうための検証システム(論理エミュレーションシステム)の概略構成を示す図である。
【0034】
検証システム1は、エミュレータ本体10、SOCに内蔵するCPUやテストチップ22を搭載したCPUボード20、SOCに内蔵する大規模メモリや高性能メモリ32を搭載した外部メモリボード30を備える。
【0035】
エミュレータ本体(検証システム本体)10には、LSI設計データを読込みLSIと等価な動作を行なうプログラマブルに構成可能なFPGA(Field Programmable Gate Array )12で構成されたロジック回路14、メモリ16、テストベンチ回路18などで構成されている。
【0036】
メモリ16としては、たとえば、SRAM(Static Random Access Memory )やDRAM(Dynamic Random Access Memory)などの、随時書込みおよび随時読出しが可能な記憶保持動作をするメモリを使用するとよい。なお、FPGA12やメモリ16は、検証対象となるターゲット回路のシステム規模が小さければ1個でもよいが、システム規模が大きくなれば各々複数個が使用される。
【0037】
CPUボード20や外部メモリボード30は、必要に応じて複数枚が用意されるようになっている。エミュレータ本体10と、これらCPUボード20および外部メモリボード30との間は、インタフェース(I/F)部90を構成する外部ボード接続用I/F部92にて接続されるようになっている。
【0038】
また、検証システム1は、エミュレータ本体10の周辺に、FPGA12の論理機能を決定する論理機能定義データをFPGA12にロード(供給)したり、あるいは検証システム全体を監視若しくは制御したりするためのコントローラPC(PC;Personal Computer )80、論理設計データを生成するワークステーション82、検証用のテストデータ(入力データ)をエミュレータ本体10にロードしたり検証結果のデータ(出力データ)を読み込み保持したりするためのデータ入出力用PC84,86、および検証中のロジックデータを監視するためのロジックアナライザ(以下ロジアナという)88を備える。
【0039】
なお、検証用のテストデータ(入力データ)は、ソフトウェアシミュレーションにおいて使用するものと同様のものを使用すればよい。この検証用のテストデータは、エミュレータ本体10のテストベンチ回路18を介してFPGA12に供給されることで、ソフトウェアシミュレーションの検証環境を論理エミュレーションを用いたシステム検証装置(すなわち検証システム1)で実現するようになる。また、その検証結果のデータ(出力データ)がテストベンチ回路18を介してデータ入出力用PC84,86に出力され、所定の記憶媒体(たとえばハードディスク装置など)に格納される。なお、この場合の検証用のテストデータ(入力データ)と検証結果のデータ(出力データ)とを纏めて、以下「ソフトウェアシミュレーション用入出力データ」という。
【0040】
コントローラPC80はコントローラ用I/F部94にて専用ケーブルで、データ入出力用PC84,86はデータ用I/F部96a,96bにてPCI(Peripheral Component Interconnect )バス若しくはISA(Industry Standard Architecture)バスで、ロジアナ88はロジアナ用I/F部98にて専用プローブで、それぞれエミュレータ本体10と接続されるようになっている。
【0041】
検証データのエミュレータ本体10へのインタフェースをなすデータ用I/F部96a,96bとして、PCIバスやISAバスなど共通のインタフェース機構を持たせることで、複数の異なったデータが同一インタフェース上で入出力可能となる。
【0042】
なお、データ用I/F部96a,96bとしては、PCIバスやISAバス以外のパラレルの標準インタフェースを使用してもよい。また、パラレルバスインタフェースに限らず、たとえばIEEE(Institute of Electrical and Electronics Engineers, Inc. ;米国電気電子学会)1394規格やUSB(Universal Serial Bus)1.0/2.0規格、もしくはPCI規格の一例である“PCIExpress(商標)”(ピーシーアイエクスプレス)などのシリアルインタフェースであってもよい。標準インタフェースを使用すれば、汎用のパソコンなどをデータ入出力装置として利用することができ、データインタフェースの共通化や汎用化を進めることが可能となる。
【0043】
PCIバスやISAバスなどのパラレルバスインタフェースやUSBやIEEE1394などのシリアルインタフェースをはじめとする標準インタフェースは、IEEEやJIS(日本工業規格)などの非商業的組織または政府組織(公的な規格団体)によって認められた正当な(法律上の)技術的ガイドラインに従った、ハードウェア開発またはソフトウェア開発の領域において均一性を確立するために使用される公的なインタフェースであるのがよい。
【0044】
また、このような公的なインタフェースに限らず、民間団体や単一の会社にて取り纏められた私的な標準インタフェース、いわゆる業界標準インタフェース(工業標準インタフェース)であってもかまわない。何れにしても、標準インタフェースは、ある一定の規格を満足する接続インタフェースであればよい。
【0045】
たとえば、ある会社によって製品または理念が開発され、成功と模倣を通じて標準からの逸脱が互換性の問題を引き起こすか、または市場性を制限する程広く使用されるようになる場合に生じるハードウェア開発またはソフトウェア開発に関する事実上の(de facto)技術的ガイドライン(非公式な規格)が、本実施形態の標準インタフェースとして採用されてもよい。
【0046】
コントローラPC80とワークステーション82とは、ネットワークLAN(Local Area Network)で接続されている。ワークステーション82は、たとえばRTL(Register Transfer Level )若しくはHDL(Hardware Description Language )といわれる形式で論理記述された論理設計データを生成する。また、ワークステーション82は、その論理設計データの対応回路部分の記述データまたはその記述データを所定のデータフォーマットに変換したデータをコントローラPC80に渡す。コントローラPC80は、このデータを解読して、FPGA12に論理機能を設定するのに必要な論理機能定義データを生成し、これをFPGA12にロードすることで、ASICやSOCなどに対応するターゲット回路を実装(インプリメント)する。
【0047】
また、ワークステーション82は、ターゲット回路評価のために生成したロードモジュールをコントローラPC80に渡す。このロードモジュールは、FPGA12を有するエミュレータ本体10やエミュレータ本体10に接続されたCPUボード20などに供給され、インサーキットエミュレーションのように、開発対象とされるターゲット回路上でFPGA12を実際の論理回路(ターゲット回路に対応するASICやSOCなど)に近い動作速度で動作させることで、システムデバッグやソフトウェアデバッグなどの検証あるいはテストを行なうために利用される。
【0048】
この検証システム1の周辺システムとして、システム検証に必要かつ適正なインタフェース数を決定するための検証環境構築システム3が用意される。この検証環境構築システム3は、それぞれネットワークLANで接続されたインタフェース数決定装置100と、ワークステーション82と、データ入出力用PC84,86とで構成される。なお、たとえば、ワークステーション82にインタフェース数決定装置100の機能を持たせてもよい。
【0049】
図2は、インタフェース数決定装置100の機能ブロック図の一例である。図示するように、インタフェース数決定装置100は、エミュレータ本体10とデータ入出力用PC84,86との間の検証データの方向に関するデータ方向性情報J2を取得するデータ方向性情報取得部112、エミュレータ本体10の検証動作中の検証データの周波数を示すクロック情報J4を取得するクロック情報取得部114、検証項目ごとの検証データの使用状況を示す情報(以下検証モード情報という)J6を取得する検証モード情報取得部116、およびデータの入出力が行なわれている時刻に関する情報(以下アクセス情報という)J8を取得するアクセス情報取得部118を備える。
【0050】
また、インタフェース数決定装置100は、各情報取得部112,114,116,118(纏めて検証情報取得部110ともいう)にて取得された各情報(ソフトウェアシミュレーション用入出力データに関する情報)J2〜J8を用いて、データ競合が生じることなくシステム検証に必要かつ適正なインタフェース数を決定するインタフェース数決定部120を備える。インタフェース数決定部120は、検証情報取得部110にて取得された各情報に基づき、複数の異なったデータが同一インタフェース上で入出力可能か否かを判定することで、データ用I/F部96a,96bにて使用される適切なインタフェース数を決定する。たとえば、競合が起きない範囲で、できるだけインタフェースを共用するようにすることで、必要最低限のデータ入出力数(インタフェース数)を決定する。
【0051】
図3は、ソフトウェアシミュレーションの検証環境の一例を示す図である。図示した例では、回路情報D200に対して、異なる8種類のテストデータD210(具体的には、D212,D214,D216,D218,D220,D222,D224,D226)が存在し、それぞれ異なるデータ入出力(テストデータA〜H)の仕様がある。仕様に合わせた専用インタフェースを作製するのではなく、たとえば、PCIバスを利用したI/FボードやISAバスを利用したI/Fボードなどの共通のインタフェース機構を有したボードを作製する。これにより、データ入出力のフォーマットを共通化することができ、複数のデータ入出力を同一インタフェースで実現が可能となる。
【0052】
図4は、インタフェース数決定装置100におけるインタフェース数決定の処理手順の第1例の概要を示すフローチャートである。この第1例は、データ用I/F部96a,96bが双方向のデータ入出力が可能である場合の例である。
【0053】
始めに、検証情報取得部110内の各部は、データ入出力用PC84,86からソフトウェアシミュレーションのデータに関する情報の入力を受けて、それぞれ所定の情報(J4,J6,J8)を取得し、インタフェース数決定部120に通知する。
【0054】
これを受けて、インタフェース数決定部120は、ソフトウェアシミュレーションのデータ入出力数をインタフェース数の暫定数とする(S100)。なお、この第1例では、データ用I/F部96a,96bが双方向性を有することがはじめから分かっているので、データ方向性情報取得部112を介したデータ方向性情報J2の取得は不要である。
【0055】
次に、インタフェース数決定部120は、各情報取得部114,116,118を介して取得したクロック情報J4,検証モード情報J6,アクセス情報J8を参照して、データ入出力の実現方法を決定する(S110)。そして、最後にデータ入出力の仕様から必要な転送レートやプロトコルに適応したインタフェースを採用する(S140)。
【0056】
図5は、インタフェース数決定部120に通知されるクロック情報J4の一例を示す図表である。この図表は、ソフトウェアシミュレーションに対応した論理シミュレーションを行なう際、すべての検証項目に対して各々が使用すべきクロック周波数を明示し、リスト化したものを示している。この図表例では、クロック周波数として、A−IFおよびB−IF用の33MHz,C−IFおよびD−IF用の50MHz,E−IFおよびF−IF用の100MHz,G−IFおよびF−IF用の133MHzの4種類が存在している。
【0057】
図6は、インタフェース数決定部120に通知される検証モード情報J6の一例を示す図表である。この図表では、検証項目がMode1からMode6まであり、データ入出力数は、A−IF(テストデータD212)からH−IF(テストデータD226)まで8つ存在する。この図表は、ソフトウェアシミュレーションを行なう際、すべての検証項目に対して使用しているデータと使用していないデータがどれであるかを明示し、リスト化したものを示している。
【0058】
図7は、インタフェース数決定部120に通知されるデータアクセス情報J8の一例を示す図表である。この図表では、検証項目Mode1のソフトウェアシミュレーションの結果などから各データの入出力が連続で行なわれている開始時刻と終了時刻の情報を算出し、リスト化したものを示している。
【0059】
図8は、図4に示したデータ入出力の実現方法を決定するステップS110(インタフェース数決定処理)の詳細例を示すフローチャートである。インタフェース数決定部120は、先ず、ソフトウェアシミュレーション用テストデータ(テストデータD212〜D226)をクロック周波数ごとに分類する(S112)。
【0060】
検証データ入出力用のインタフェース部であるデータ用I/F部96a,96bとして、検証データのクロック周波数に適応した回路を使用するようにするためである。より具体的には、複数ある検証データのうちの最大周波数に合わせて全てのインタフェース回路を構成することも考えられるが、この場合、低周波数で十分な検証データ用に高周波数対応可能なインタフェース回路を用いることはコストの点で不利となるので、個々の検証データのクロック周波数に適応したインタフェース回路を使用するようにするためである。
【0061】
次に、インタフェース数決定部120は、検証モード情報J6から分類されたデータが同一検証モードで使用するかどうかを判定する(S114)。分類されたデータが異なる検証モードで使用する場合は(S114−NO)、同一インタフェースで入出力が可能となり、インタフェースを同一ボードで実現することでインタフェース数を削減することができる(S124)。
【0062】
一方、分類されたデータが同一検証モードで使用する場合は(S114−YES)、インタフェース数決定部120は、アクセス情報J8から分類されたデータが同時刻にアクセスがあるか否かを判定する(S118)。同時刻にアクセスが存在しなければ(S118−NO)、分類されたデータは同一インタフェースでデータ入出力が可能となり、インタフェースを同一ボードで実現可能となる(S120)。分類されたデータが同時刻にアクセスが存在する場合は(S118−YES)、データ入出力は別々のインタフェースで実現することになるので、インタフェースを別IFボードで実現する(S122)。
【0063】
このように、第1例のインタフェース数決定処理では、データ入出力が双方向に対応しているインタフェースの場合、検証項目に応じたクロック情報J4と検証項目ごとのデータの情報である検証モード情報J6とデータの入出力が行なわれている時刻情報であるアクセス情報J8とを用いて、複数の異なったデータが同一インタフェース上で入出力可能か否かを決定することで、システム検証用に適正なインタフェース数を決定する。
【0064】
図9は、インタフェース数決定装置100におけるインタフェース数決定の処理手順の第2例の概要を示すフローチャートである。第2例は、データ用I/F部96a,96bが単方向のみのデータ入出力が可能である場合の例である。
【0065】
始めに、検証情報取得部110内の各部は、データ入出力用PC84,86からソフトウェアシミュレーションのデータに関する情報の入力を受けて、それぞれ所定の情報(J2,J4,J6,J8)を取得し、インタフェース数決定部120に通知する。これを受けて、インタフェース数決定部120は、ソフトウェアシミュレーションのデータ入出力数をインタフェース数の暫定数とする(S200)。
【0066】
次に、インタフェース数決定部120は、各情報取得部112,114,116,118を介して取得したデータ方向性情報J2,クロック情報J4,検証モード情報J6,アクセス情報J8を参照して、データ入出力の実現方法を決定する(S210)。そして、最後にデータ入出力の仕様から必要な転送レートやプロトコルに適応したインタフェースを採用する(S240)。
【0067】
図10は、インタフェース数決定部120に通知されるデータ方向性情報J2の一例を示す図表である。この図表では、検証項目がMode1からMode6まで6モードあり、データ数はA−IFからH−IFまで8つ存在する。すべての検証項目に対して、ソフトウェアシミュレーションを行なう際、データ入出力がINPUTおよびOUTPUTの何れであるかを明示し、リスト化したものを示している。
【0068】
図11は、図9に示したデータ入出力の実現方法を決定するステップS210(インタフェース数決定処理)の詳細例を示すフローチャートである。このステップS210の処理は第1例におけるステップS110の処理に対応するものである。
【0069】
インタフェース数決定部120は、先ず、ソフトウェアシミュレーション用テストデータ(テストデータD212〜D226)をクロック周波数ごとに分類する(S212)。次に、インタフェース数決定部120は、検証モード情報J6から分類されたデータが同一検証モードで使用するか否かを判定する(S214)。分類されたデータが同一検証モードで使用しない場合(異なる検証モードで使用する場合)は(S214−NO)、同一インタフェースで入出力が可能となり、インタフェースを同一ボードで実現することでインタフェース数を削減することができる(S224)。
【0070】
一方、分類されたデータが同一検証モードで使用する場合は(S214−YES)、インタフェース数決定部120は、データ方向性情報J2から分類されたデータが同一方向であるか否かを判定する(S216)。データが同一方向である場合(S216−YES)、インタフェース数決定部120は、アクセス情報J8から分類されたデータが同時刻にアクセスがあるか否かを判定する(S218)。同時刻にアクセスが存在しなければ(S218−NO)、分類されたデータは同一インタフェースでデータ入出力が可能となり、インタフェースを同一ボードで実現することでインタフェース数を削減することができる(S220)。
【0071】
データが同一方向でない場合や(S216−NO)、分類されたデータが同時刻にアクセスが存在する場合は(S218−YES)、データ入出力は別々のインタフェースで実現することになるので、インタフェースを別IFボードで実現する(S222)。
【0072】
このように、第2例のインタフェース数決定処理では、データ入出力が単方向のみに対応しているインタフェースの場合、検証項目に応じたクロック情報J4と検証項目ごとのデータの情報である検証モード情報J6とデータの入出力が行なわれている時刻情報であるアクセス情報J8とに加えて、検証モードごとの各データの向き(INPUTとOUTPUT)をリスト化したデータ方向性情報J2も用いて、複数の異なったデータが同一インタフェース上で入出力可能か否かを決定することで、システム検証用に適正なインタフェース数を決定する。つまり、データ方向性情報J2から分類されたデータが同一方向であるか否かを判定するステップS216の処理が追加されている点で第1例と異なる。
【0073】
上記のように、第1例および第2例の何れの手法によっても、論理シミュレーションを構築する際のインタフェース数やインタフェースボードの数を適切かつ容易に決定することができる。たとえば、検証環境を最小限で構築することができる。この結果、検証環境の構築に要する開発工数を最小限に抑えることや、短期間で検証環境を構築することも可能となる。加えて、検証環境を最小限で構築することができるので、開発費を低減することも可能となる。
【0074】
さらに、データ入出力のインタフェース機構をPCIバスやISAバスなどの標準バスを利用して共通化すれば、インタフェースの再利用が可能となり、開発すべきインタフェース機構の種類を減らし、開発工数を削減でき、コストダウンが可能となる。
【0075】
このように、上記実施形態で示したインタフェース数決定処理の手法を適用することで、試作基板やロジックエミュレータの検証環境を簡易かつ効率的かつ低コストで構築することができるようになる。
【0076】
図12は、図3に示したソフトウェアシミュレーションの検証環境に対して、図6に示した検証モード情報J6および図7に示したアクセス情報J8を用いて、図4および図8で示したデータインタフェース数を決定する処理手順を実行した結果による論理回路エミュレータの検証システムの一例を示す図である。
【0077】
この検証システム5を構築した事例におけるインタフェース数決定処理の手順を具体的に説明する。試作基板ロジックエミュレータ130(エミュレータ本体10に相当)には、ソフトウェアシミュレーション用テストデータA〜Hが入出力される。
【0078】
先ず、インタフェース数決定部120は、ソフトウェアシミュレーションのデータ入出力数が8つ存在するため、暫定数を“8”とする(S100)。そして、データインタフェースの実現方法の決定するステップS110に進む。
【0079】
ステップS110(インタフェース数決定処理)にて、インタフェース数決定部120は、各データをクロック周波数ごとに分類する(S112)。たとえば、A−IFとB−IF、C−IFとD−IF、E−IFとF−IF、G−IFとH−IFの4グループに分かれるとする。
【0080】
インタフェース数決定部120は、図6に示した検証モード情報J6から、A−IFとB−IFが、同一検証モードで使用することを検出する(S114−YES)。また、図7に示したアクセス情報J8から、A−IFとB−IFは、同時刻にデータアクセスがないことを検出する(S118−NO)。よって、この2つのデータは、同一インタフェース(AB−IF)で入出力が実現可能となる(S120)。この結果、A−IFとB−IFを共通のデータ格納部242に用意することができる。
【0081】
インタフェース数決定部120は、C−IFとD−IFについても同様な処理を実行する。C−IFとD−IFは異なる検証モードで使用するため(S114−NO)、同一インタフェース(CD−IF)で実現可能となる(S124)。この結果、C−IFとD−IFを共通のデータ格納部244に用意することができる。
【0082】
次に、インタフェース数決定部120は、E−IFとF−IFについても同様な処理を実行する。ここで、E−IFとF−IFでは、同一検証モードで使用するが(S114−YES)、データアクセス情報から同時刻のアクセスがあるため(S118−YES)、別々のインタフェース(E−IFとF−IF)を用いて実現する。この結果、E−IFとF−IFを別のデータ格納部246,248に用意することになる。
【0083】
最後に、インタフェース数決定部120は、G−IFとH−IFについても同様な処理を実行する。ここで、G−IFとH−IFでは、C−IFとD−IFと同様、異なる検証モードで使用するため(S114−NO)、同一インタフェース(GH−IF)で実現可能となる(S124)。この結果、G−IFとH−IFを共通のデータ格納部250に用意することができる。
【0084】
これらの結果より、試作ボードや論理エミュレーション(600)を用いたシステム検証を行なうために必要最低限のインタフェース数は“5”となる。このような処理を用いることで、インタフェース数を暫定数の“8”から“5”に削減することが可能であり、たとえばインタフェースボードを5枚にするなど、容易にインタフェース数を決定することが可能である。
【0085】
なお、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、たとえば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0086】
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc−Read Only Memory )、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc )を含む)、もしくは半導体メモリなどよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供されてもよいし、プログラムが記録されているROMやハードディスクなどで構成されてもよい。あるいは、ソフトウェアを構成するプログラムが、通信網を介して提供されてもよい。
【0087】
たとえば、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、上記実施形態で述べた効果は達成される。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合であってもよい。
【0088】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって前述の実施形態の機能が実現される場合であってもよい。
【0089】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。
【0090】
また、上記の実施形態は、クレーム(請求項)にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
【0091】
たとえば、上述した実施形態では、論理エミュレータシステムを構築する際のデータ入出力用のインタフェース数の削減決定処理の手法について説明したが、実チップなどを搭載する試作基板を用いてシステム検証を行なうシステムにおける、データ入出力用のインタフェース数を決定する際に、上述した処理手順を利用することも可能である。
【0092】
また、上述した2つのインタフェース数決定処理手順では、エミュレータ本体に入出力される複数のデータについて、インタフェース数が最も少なくなるインタフェースを決定するようにしていたが、必ずしも最低数を求めるものでなくてもよい。たとえば、事前に削減希望のインタフェース数を設定し、順に上述した判定処理を進めて、その設定数に達した段階で、決定処理を停止してもよい。これにより、試作基板やロジックエミュレータの検証環境を効率的に構築することができるとともに、その決定処理の処理時間を短縮することができる。
【0093】
また、上記実施形態では、先ず、クロック情報J4を参照して検証データをクロック周波数ごとに分類した後に、検証モード情報J6やアクセス情報J8を参照して、データの衝突(競合)が起きない範囲で、できるだけインタフェースを共用するように、インタフェース数を決定していたが、たとえば、全てのインタフェース回路を高周波数対応可能なものとすることで、クロック周波数も含めて、データの衝突が起きない範囲で、できるだけインタフェースを共用するように、インタフェース数を決定してもよい。こうすることで、インタフェース数をさらに削減可能となる。
【0094】
【発明の効果】
以上のように、本発明によれば、検証システム本体への検証データの入出力に関する情報(たとえば、ソフトウェアシミュレーション用入出力データに関する情報)に基づいて、ターゲット回路に対応するハードウェア要素を利用した論理検証に必要な検証データのインタフェース数を決定するようにしたので、インタフェース数の適正化が簡易な手法で実現可能となる。そしてこれにより、試作基板やロジックエミュレータの検証環境を簡易かつ効率的かつ低コストで構築することができるようになる。
【図面の簡単な説明】
【図1】論理エミュレーションシステムの概略構成を示す図である。
【図2】インタフェース数決定装置の機能ブロック図の一例である。
【図3】ソフトウェアシミュレーションの検証環境の一例を示す図である。
【図4】インタフェース数決定装置におけるインタフェース数決定の処理手順の第1例の概要を示すフローチャートである。
【図5】インタフェース数決定部に通知されるクロック情報の一例を示す図表である。
【図6】インタフェース数決定部に通知される検証モード情報の一例を示す図表である。
【図7】インタフェース数決定部に通知されるデータアクセス情報の一例を示す図表である。
【図8】第1例のインタフェース数決定処理の詳細例を示すフローチャートである。
【図9】インタフェース数決定装置におけるインタフェース数決定の処理手順の第2例の概要を示すフローチャートである。
【図10】インタフェース数決定部に通知されるデータ方向性情報の一例を示す図表である。
【図11】第2例のインタフェース数決定処理の詳細例を示すフローチャートである。
【図12】第1例のインタフェース数決定処理を実行した結果による論理回路エミュレータの検証システムの一例を示す図である。
【符号の説明】
1,5…検証システム、3…検証環境構築システム、10…エミュレータ本体、12…FPGA、14…ロジック回路、16…メモリ、18…テストベンチ回路、20…CPUボード、22…CPU、30…外部メモリボード、32…メモリ32、80…コントローラPC、82…ワークステーション、84…データ入出力用PC、86…データ入出力用PC、88…ロジアナ、90…インタフェース部、92…外部ボード接続用I/F部、94…コントローラ用I/F部、96a,96b…データ用I/F部、98…ロジアナ用I/F部、100…インタフェース数決定装置、110…検証情報取得部、112…データ方向性情報取得部、114…クロック情報取得部、116…検証モード情報取得部、118…アクセス情報取得部、120…インタフェース数決定部、130…試作基板ロジックエミュレータ、J2…データ方向性情報、J4…クロック情報、J6…検証モード情報、J8…アクセス情報
【発明の属する技術分野】
本発明は、半導体装置の論理検証を行なうための検証システム(エミュレータシステム)を構築する方法およびシステムに関する。
【0002】
【従来の技術】
半導体技術の進歩により、論理ICの集積度は益々向上し、大規模システムを1チップに集積することが可能となり、また1チップまたは複数のLSI(Large Scale Integrated Circuit:大規模集積回路)で電子機器などのシステムを構築することが可能になりつつある。
【0003】
1チップLSIやASIC(Application Specific IC :特定用途向け集積回路)などの半導体装置を開発する場合、一般的には、半導体装置(ターゲット回路)の内部の論理回路の論理動作を検証(デバッグ)した後に、実際のデバイス(チップ)を製造することが行なわれている。
【0004】
この論理検証の手法としては、たとえば、論理シミュレーション(ソフトウェアシミュレーション)がある。これは、論理検証の対象となる論理回路の動作を電子計算機(たとえばワークステーションなどのコンピュータ)で実現し、所定の入力パターンに対する出力を予想して解析する(ソフトウェア的に波形解析をする)の仕組みのものである。
【0005】
しかし、この論理シミュレーションでは、実際の論理回路に比べて動作速度が遅く、論理回路の規模が大きくなるとステップ数が非常に膨大となり論理検証時間が長時間に亘るという問題や、回路部材のソフトウェアモデリングが困難で、必ずしも実回路の動作と等価にはならず、システム全体を忠実にシミュレーションすることは難しいという問題がある。このため、論理シミュレーションのみでシステム全体の論理回路検証を行なうことは事実上不可能である。
【0006】
また、論理検証の他の手法として、ターゲット回路に対応するハードウェア要素としての試作LSIや基板による試作品を用いて検証を行なう手法もある。この手法では、たとえば試作LSIのパターンニングなどを要するため試作品を得るために数週間を要するので、繰り返して試作品を作り検証を行なうことは難しい。
【0007】
上記の検証手法の問題を解消するものとして、今日では、論理エミュレーション(ハードウェアエミュレーション/ロジックエミュレーション)による論理検証が注目されている(たとえば、特許文献1参照)。
【0008】
【特許文献1】
特開2002−229813号公報
【0009】
この論理エミュレーションは、ターゲット回路についての論理動作を、ターゲット回路とは別種のハードウェア要素を使用して論理検証するもので、たとえば、LSIや電子計算機などの論理回路と等価な動作をプリント基板上に搭載した複数の電子部品(ターゲット回路に対応する別種のハードウェア要素)で実現し、実際の論理回路に近い動作速度で回路を動作させて論理回路を検証するものである。
【0010】
たとえば、LSI設計データを読込みLSIと等価な動作を行なうプログラマブルに構成可能な半導体集積回路(FPGA;Filed Programmable Gate Alley:フィールドプログラマブルゲートアレイ)などで構成されたエミュレータによって実現され、CPU(Central Processing Unit ;中央演算処理装置)やメモリなどの汎用部品を外部のプリント基板に実装し、エミュレータとプリント基板を接続し、実際の論理回路に近い動作速度で回路を動作させて論理回路を検証する。
【0011】
この論理エミュレーションの手法によれば、数100万ゲート規模のシステムを構成することができ、システム全体として実速度に近い動作速度での検証が可能であり、コンピュータを用いたソフトウェアシミュレーションよりも数千分の1程度の時間で検証結果が得られる。また、FPGAは回路構成が可変であるので、検証中にFPGAの回路構成を変更して機能確認を行ない最終の回路を決定した後、システム全体の論理回路検証(評価)を実回路に近い動作速度で行なうこともできる。このとき、FPGAを用いて回路構成を変更しながら論理回路検証することによって、新規に設計する特定機能の論理回路やユーザ個別の論理回路を確定することもできる。これによって、特定用途向け集積回路ASICを比較的短期間に提供することも可能となる。
【0012】
【発明が解決しようとする課題】
一方、近年の半導体装置は、回路が複雑化し、プロセッサやメモリを内蔵することが可能となり、またシステムも大規模になっており、CPU、論理回路、記憶装置などの機能をそれぞれ単体で有するだけではなく、それらを1つのチップ上に搭載して所望のシステムを実現するSOC(System On Chip:システムオンチップ)化が進んでいる。
【0013】
このため、SOCを検証対象とした場合、検証項目も急激に増加している。この場合、当然、ソフトウェアシミュレーションでは検証時間が長期に亘るため検証できない項目も出てくる。よって、試作チップなどを搭載する試作基板を用いてシステム検証を行なうことや、さらに好ましくは、論理エミュレーションを用いてシステム検証を行なうことが必要となる。
【0014】
ここで、ソフトウェアシミュレーションの検証環境を試作基板や論理エミュレーションを用いた検証環境に適応した場合、ソフトウェアシミュレーションのデータ入出力の仕様はそれぞれ異なるため、従来の検証手法では、仕様に合わせて専用のインタフェースを構築していた。
【0015】
しかし、異なる仕様に合わせて別々に専用のインタフェースを用意する場合、そのボードを開発する工数が増大する。また、過去に作成したインタフェースボードを活用することができない。つまり、共有できるインタフェースボードがあり得るにも関わらず、常に専用のインタフェースを構築してしまいコスト増加が問題となってくる。また、検証環境の大規模化は、開発期間を長期化させ、意図しない問題を発生させる要因ともなる。
【0016】
さらに、設計者は経験的に独自の条件でインタフェースの数(ボードの場合はボード数)を決定しているため、決定したデータ入出力数が適切な数(好ましくは必要最低数)になるとは限らない。また、適正数(好ましくは必要最低限の数)のインタフェース数を決定する処理手順や条件が明確でないため、経験の少ない設計者は、適正数を決定することができないという問題もある。
【0017】
このように、ソフトウェアシミュレーションの検証環境を試作基板や論理エミュレーションを用いた検証環境に適応させる場合、従来の手法では、開発工数とコストの点で難がある。
【0018】
なお、エミュレーションに関する技術として特許文献2に記載のものがある。特許文献2に記載の技術は、たとえば、比較的簡易なプログラムを実行する1チップマイクロコンピュータなどのターゲットシステムによるシステム運用開始後のプログラムのバグに対し、パッチを当てるためのエミュレーションを実行するターゲットデバッグ支援に関するものである。
【0019】
【特許文献2】
特開2001−306357号公報
【0020】
この特許文献2の手法では、エミュレーションを実行時に、ターゲットシステムにおける演算制御装置が、エミュレータ用インタフェースとメモリとの通信を行なうための比較的簡易プログラムを、エミュレータがターゲットシステムのワーキング用メモリの空き記憶エリアにロードさせることで、ターゲットシステムの中央演算処理装置がメモリとの通信を行なうようにし、これにより、エミュレータ用インタフェースを簡易化し、効率的なプログラム修正を可能にしている。
【0021】
しかしながら、特許文献2の手法は、ソフトウェアデバッグに関わるもので、ソフトウェアシミュレーションの検証環境を試作基板や論理エミュレーションを用いた検証環境に適応させる場合に、特許文献2に記載の技術を適用してエミュレータ用インタフェースを簡易化する仕組みを講じることは難しい。
【0022】
本発明は、上記事情に鑑みてなされたものであり、ターゲット回路についての論理動作をこのターゲット回路に対応するハードウェア要素を使用して論理検証する際に必要かつ適正なインタフェース数を簡易に決定することのできる方法およびシステムを提供することを目的とする。
【0023】
【課題を解決するための手段】
すなわち、本発明に係る検証環境構築方法は、ターゲット回路についての論理動作を当該ターゲット回路に対応するハードウェア要素を使用してターゲット回路と略同様の動作速度で検証する環境を構築するための検証環境構築方法であって、検証システム本体への検証データの入出力に関する情報に基づいて、検証に必要かつ適正な検証データ用のインタフェース数を決定することとした。
【0024】
ターゲット回路に対応するハードウェア要素は、半導体などのターゲット回路に相当する試作品であってもよいし、半導体の回路を回路基板上に構成したものであってもよい。また、半導体などのターゲット回路そのものとは別種のハードウェア要素(FPGAやメモリなど)にて構成したものであってもよい。
【0025】
本発明に係る検証環境構築システムは、本発明に係る検証環境構築方法を実施するのに好適なシステムであって、ターゲット回路についての論理動作を検証する際に使用される検証データを検証システム本体へインタフェースするインタフェース部と、検証システム本体へインタフェースされる検証データに関する情報を取得する検証情報取得部と、検証情報取得部により取得された検証データに関する情報に基づいて、インタフェース部における、検証に必要かつ適正な検証データ用のインタフェース数を決定するインタフェース数決定部とを備えるものとした。
【0026】
また、従属項に記載された発明は、本発明に係る検証環境構築システムのさらなる有利な具体例を規定する。
【0027】
たとえば、インタフェース数決定部は、複数の異なった検証データが同一インタフェース上で入出力可能か否かに基づいてインタフェース数を決定するものとすることが望ましい。
【0028】
また、検証情報取得部は、それぞれ検証データに関する情報の一例である、検証項目ごとの検証データの使用状況を示す情報である検証モード情報、検証データの入出力が行なわれる時刻に関する情報であるアクセス情報、および検証動作中の検証データの周波数を示すクロック情報、のうちの少なくとも1つの情報を取得する機能要素を備えているものとするとよい。さらに好ましくは、検証データに関する情報の一例である、検証システム本体への検証データの方向に関するデータ方向性情報を取得する機能要素を備えているものとするとよい。
【0029】
また、インタフェース部は、ISAバスやPCIバス、あるいはUSBやIEEE1394などのように、ある一定の規格を満足する標準インタフェースの機構を持つものであることが望ましい。
【0030】
なお、本発明に係る検証環境構築方法およびシステムを、電子計算機(コンピュータ)を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできる。なお、プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。
【0031】
【作用】
上記構成においては、先ず、検証システム本体への検証データの入出力に関する情報を入手する。たとえば、ソフトウェアシミュレーションにて用いられていた検証データに関する情報を入手する。そして、この情報に基づいて、競合(データの衝突)が起きないように、システム検証に必要かつ適正なインタフェース数を決定する。たとえば、希望するインタフェース数になるまで、インタフェース数を削減するための条件設定にしたがって、複数ある入出力データのインタフェースが、同一インタフェースを使用可能かどうかを判定する。あるいは、必要最小限のインタフェース数を求める。
【0032】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【0033】
図1は、論理エミュレーションを行なうための検証システム(論理エミュレーションシステム)の概略構成を示す図である。
【0034】
検証システム1は、エミュレータ本体10、SOCに内蔵するCPUやテストチップ22を搭載したCPUボード20、SOCに内蔵する大規模メモリや高性能メモリ32を搭載した外部メモリボード30を備える。
【0035】
エミュレータ本体(検証システム本体)10には、LSI設計データを読込みLSIと等価な動作を行なうプログラマブルに構成可能なFPGA(Field Programmable Gate Array )12で構成されたロジック回路14、メモリ16、テストベンチ回路18などで構成されている。
【0036】
メモリ16としては、たとえば、SRAM(Static Random Access Memory )やDRAM(Dynamic Random Access Memory)などの、随時書込みおよび随時読出しが可能な記憶保持動作をするメモリを使用するとよい。なお、FPGA12やメモリ16は、検証対象となるターゲット回路のシステム規模が小さければ1個でもよいが、システム規模が大きくなれば各々複数個が使用される。
【0037】
CPUボード20や外部メモリボード30は、必要に応じて複数枚が用意されるようになっている。エミュレータ本体10と、これらCPUボード20および外部メモリボード30との間は、インタフェース(I/F)部90を構成する外部ボード接続用I/F部92にて接続されるようになっている。
【0038】
また、検証システム1は、エミュレータ本体10の周辺に、FPGA12の論理機能を決定する論理機能定義データをFPGA12にロード(供給)したり、あるいは検証システム全体を監視若しくは制御したりするためのコントローラPC(PC;Personal Computer )80、論理設計データを生成するワークステーション82、検証用のテストデータ(入力データ)をエミュレータ本体10にロードしたり検証結果のデータ(出力データ)を読み込み保持したりするためのデータ入出力用PC84,86、および検証中のロジックデータを監視するためのロジックアナライザ(以下ロジアナという)88を備える。
【0039】
なお、検証用のテストデータ(入力データ)は、ソフトウェアシミュレーションにおいて使用するものと同様のものを使用すればよい。この検証用のテストデータは、エミュレータ本体10のテストベンチ回路18を介してFPGA12に供給されることで、ソフトウェアシミュレーションの検証環境を論理エミュレーションを用いたシステム検証装置(すなわち検証システム1)で実現するようになる。また、その検証結果のデータ(出力データ)がテストベンチ回路18を介してデータ入出力用PC84,86に出力され、所定の記憶媒体(たとえばハードディスク装置など)に格納される。なお、この場合の検証用のテストデータ(入力データ)と検証結果のデータ(出力データ)とを纏めて、以下「ソフトウェアシミュレーション用入出力データ」という。
【0040】
コントローラPC80はコントローラ用I/F部94にて専用ケーブルで、データ入出力用PC84,86はデータ用I/F部96a,96bにてPCI(Peripheral Component Interconnect )バス若しくはISA(Industry Standard Architecture)バスで、ロジアナ88はロジアナ用I/F部98にて専用プローブで、それぞれエミュレータ本体10と接続されるようになっている。
【0041】
検証データのエミュレータ本体10へのインタフェースをなすデータ用I/F部96a,96bとして、PCIバスやISAバスなど共通のインタフェース機構を持たせることで、複数の異なったデータが同一インタフェース上で入出力可能となる。
【0042】
なお、データ用I/F部96a,96bとしては、PCIバスやISAバス以外のパラレルの標準インタフェースを使用してもよい。また、パラレルバスインタフェースに限らず、たとえばIEEE(Institute of Electrical and Electronics Engineers, Inc. ;米国電気電子学会)1394規格やUSB(Universal Serial Bus)1.0/2.0規格、もしくはPCI規格の一例である“PCIExpress(商標)”(ピーシーアイエクスプレス)などのシリアルインタフェースであってもよい。標準インタフェースを使用すれば、汎用のパソコンなどをデータ入出力装置として利用することができ、データインタフェースの共通化や汎用化を進めることが可能となる。
【0043】
PCIバスやISAバスなどのパラレルバスインタフェースやUSBやIEEE1394などのシリアルインタフェースをはじめとする標準インタフェースは、IEEEやJIS(日本工業規格)などの非商業的組織または政府組織(公的な規格団体)によって認められた正当な(法律上の)技術的ガイドラインに従った、ハードウェア開発またはソフトウェア開発の領域において均一性を確立するために使用される公的なインタフェースであるのがよい。
【0044】
また、このような公的なインタフェースに限らず、民間団体や単一の会社にて取り纏められた私的な標準インタフェース、いわゆる業界標準インタフェース(工業標準インタフェース)であってもかまわない。何れにしても、標準インタフェースは、ある一定の規格を満足する接続インタフェースであればよい。
【0045】
たとえば、ある会社によって製品または理念が開発され、成功と模倣を通じて標準からの逸脱が互換性の問題を引き起こすか、または市場性を制限する程広く使用されるようになる場合に生じるハードウェア開発またはソフトウェア開発に関する事実上の(de facto)技術的ガイドライン(非公式な規格)が、本実施形態の標準インタフェースとして採用されてもよい。
【0046】
コントローラPC80とワークステーション82とは、ネットワークLAN(Local Area Network)で接続されている。ワークステーション82は、たとえばRTL(Register Transfer Level )若しくはHDL(Hardware Description Language )といわれる形式で論理記述された論理設計データを生成する。また、ワークステーション82は、その論理設計データの対応回路部分の記述データまたはその記述データを所定のデータフォーマットに変換したデータをコントローラPC80に渡す。コントローラPC80は、このデータを解読して、FPGA12に論理機能を設定するのに必要な論理機能定義データを生成し、これをFPGA12にロードすることで、ASICやSOCなどに対応するターゲット回路を実装(インプリメント)する。
【0047】
また、ワークステーション82は、ターゲット回路評価のために生成したロードモジュールをコントローラPC80に渡す。このロードモジュールは、FPGA12を有するエミュレータ本体10やエミュレータ本体10に接続されたCPUボード20などに供給され、インサーキットエミュレーションのように、開発対象とされるターゲット回路上でFPGA12を実際の論理回路(ターゲット回路に対応するASICやSOCなど)に近い動作速度で動作させることで、システムデバッグやソフトウェアデバッグなどの検証あるいはテストを行なうために利用される。
【0048】
この検証システム1の周辺システムとして、システム検証に必要かつ適正なインタフェース数を決定するための検証環境構築システム3が用意される。この検証環境構築システム3は、それぞれネットワークLANで接続されたインタフェース数決定装置100と、ワークステーション82と、データ入出力用PC84,86とで構成される。なお、たとえば、ワークステーション82にインタフェース数決定装置100の機能を持たせてもよい。
【0049】
図2は、インタフェース数決定装置100の機能ブロック図の一例である。図示するように、インタフェース数決定装置100は、エミュレータ本体10とデータ入出力用PC84,86との間の検証データの方向に関するデータ方向性情報J2を取得するデータ方向性情報取得部112、エミュレータ本体10の検証動作中の検証データの周波数を示すクロック情報J4を取得するクロック情報取得部114、検証項目ごとの検証データの使用状況を示す情報(以下検証モード情報という)J6を取得する検証モード情報取得部116、およびデータの入出力が行なわれている時刻に関する情報(以下アクセス情報という)J8を取得するアクセス情報取得部118を備える。
【0050】
また、インタフェース数決定装置100は、各情報取得部112,114,116,118(纏めて検証情報取得部110ともいう)にて取得された各情報(ソフトウェアシミュレーション用入出力データに関する情報)J2〜J8を用いて、データ競合が生じることなくシステム検証に必要かつ適正なインタフェース数を決定するインタフェース数決定部120を備える。インタフェース数決定部120は、検証情報取得部110にて取得された各情報に基づき、複数の異なったデータが同一インタフェース上で入出力可能か否かを判定することで、データ用I/F部96a,96bにて使用される適切なインタフェース数を決定する。たとえば、競合が起きない範囲で、できるだけインタフェースを共用するようにすることで、必要最低限のデータ入出力数(インタフェース数)を決定する。
【0051】
図3は、ソフトウェアシミュレーションの検証環境の一例を示す図である。図示した例では、回路情報D200に対して、異なる8種類のテストデータD210(具体的には、D212,D214,D216,D218,D220,D222,D224,D226)が存在し、それぞれ異なるデータ入出力(テストデータA〜H)の仕様がある。仕様に合わせた専用インタフェースを作製するのではなく、たとえば、PCIバスを利用したI/FボードやISAバスを利用したI/Fボードなどの共通のインタフェース機構を有したボードを作製する。これにより、データ入出力のフォーマットを共通化することができ、複数のデータ入出力を同一インタフェースで実現が可能となる。
【0052】
図4は、インタフェース数決定装置100におけるインタフェース数決定の処理手順の第1例の概要を示すフローチャートである。この第1例は、データ用I/F部96a,96bが双方向のデータ入出力が可能である場合の例である。
【0053】
始めに、検証情報取得部110内の各部は、データ入出力用PC84,86からソフトウェアシミュレーションのデータに関する情報の入力を受けて、それぞれ所定の情報(J4,J6,J8)を取得し、インタフェース数決定部120に通知する。
【0054】
これを受けて、インタフェース数決定部120は、ソフトウェアシミュレーションのデータ入出力数をインタフェース数の暫定数とする(S100)。なお、この第1例では、データ用I/F部96a,96bが双方向性を有することがはじめから分かっているので、データ方向性情報取得部112を介したデータ方向性情報J2の取得は不要である。
【0055】
次に、インタフェース数決定部120は、各情報取得部114,116,118を介して取得したクロック情報J4,検証モード情報J6,アクセス情報J8を参照して、データ入出力の実現方法を決定する(S110)。そして、最後にデータ入出力の仕様から必要な転送レートやプロトコルに適応したインタフェースを採用する(S140)。
【0056】
図5は、インタフェース数決定部120に通知されるクロック情報J4の一例を示す図表である。この図表は、ソフトウェアシミュレーションに対応した論理シミュレーションを行なう際、すべての検証項目に対して各々が使用すべきクロック周波数を明示し、リスト化したものを示している。この図表例では、クロック周波数として、A−IFおよびB−IF用の33MHz,C−IFおよびD−IF用の50MHz,E−IFおよびF−IF用の100MHz,G−IFおよびF−IF用の133MHzの4種類が存在している。
【0057】
図6は、インタフェース数決定部120に通知される検証モード情報J6の一例を示す図表である。この図表では、検証項目がMode1からMode6まであり、データ入出力数は、A−IF(テストデータD212)からH−IF(テストデータD226)まで8つ存在する。この図表は、ソフトウェアシミュレーションを行なう際、すべての検証項目に対して使用しているデータと使用していないデータがどれであるかを明示し、リスト化したものを示している。
【0058】
図7は、インタフェース数決定部120に通知されるデータアクセス情報J8の一例を示す図表である。この図表では、検証項目Mode1のソフトウェアシミュレーションの結果などから各データの入出力が連続で行なわれている開始時刻と終了時刻の情報を算出し、リスト化したものを示している。
【0059】
図8は、図4に示したデータ入出力の実現方法を決定するステップS110(インタフェース数決定処理)の詳細例を示すフローチャートである。インタフェース数決定部120は、先ず、ソフトウェアシミュレーション用テストデータ(テストデータD212〜D226)をクロック周波数ごとに分類する(S112)。
【0060】
検証データ入出力用のインタフェース部であるデータ用I/F部96a,96bとして、検証データのクロック周波数に適応した回路を使用するようにするためである。より具体的には、複数ある検証データのうちの最大周波数に合わせて全てのインタフェース回路を構成することも考えられるが、この場合、低周波数で十分な検証データ用に高周波数対応可能なインタフェース回路を用いることはコストの点で不利となるので、個々の検証データのクロック周波数に適応したインタフェース回路を使用するようにするためである。
【0061】
次に、インタフェース数決定部120は、検証モード情報J6から分類されたデータが同一検証モードで使用するかどうかを判定する(S114)。分類されたデータが異なる検証モードで使用する場合は(S114−NO)、同一インタフェースで入出力が可能となり、インタフェースを同一ボードで実現することでインタフェース数を削減することができる(S124)。
【0062】
一方、分類されたデータが同一検証モードで使用する場合は(S114−YES)、インタフェース数決定部120は、アクセス情報J8から分類されたデータが同時刻にアクセスがあるか否かを判定する(S118)。同時刻にアクセスが存在しなければ(S118−NO)、分類されたデータは同一インタフェースでデータ入出力が可能となり、インタフェースを同一ボードで実現可能となる(S120)。分類されたデータが同時刻にアクセスが存在する場合は(S118−YES)、データ入出力は別々のインタフェースで実現することになるので、インタフェースを別IFボードで実現する(S122)。
【0063】
このように、第1例のインタフェース数決定処理では、データ入出力が双方向に対応しているインタフェースの場合、検証項目に応じたクロック情報J4と検証項目ごとのデータの情報である検証モード情報J6とデータの入出力が行なわれている時刻情報であるアクセス情報J8とを用いて、複数の異なったデータが同一インタフェース上で入出力可能か否かを決定することで、システム検証用に適正なインタフェース数を決定する。
【0064】
図9は、インタフェース数決定装置100におけるインタフェース数決定の処理手順の第2例の概要を示すフローチャートである。第2例は、データ用I/F部96a,96bが単方向のみのデータ入出力が可能である場合の例である。
【0065】
始めに、検証情報取得部110内の各部は、データ入出力用PC84,86からソフトウェアシミュレーションのデータに関する情報の入力を受けて、それぞれ所定の情報(J2,J4,J6,J8)を取得し、インタフェース数決定部120に通知する。これを受けて、インタフェース数決定部120は、ソフトウェアシミュレーションのデータ入出力数をインタフェース数の暫定数とする(S200)。
【0066】
次に、インタフェース数決定部120は、各情報取得部112,114,116,118を介して取得したデータ方向性情報J2,クロック情報J4,検証モード情報J6,アクセス情報J8を参照して、データ入出力の実現方法を決定する(S210)。そして、最後にデータ入出力の仕様から必要な転送レートやプロトコルに適応したインタフェースを採用する(S240)。
【0067】
図10は、インタフェース数決定部120に通知されるデータ方向性情報J2の一例を示す図表である。この図表では、検証項目がMode1からMode6まで6モードあり、データ数はA−IFからH−IFまで8つ存在する。すべての検証項目に対して、ソフトウェアシミュレーションを行なう際、データ入出力がINPUTおよびOUTPUTの何れであるかを明示し、リスト化したものを示している。
【0068】
図11は、図9に示したデータ入出力の実現方法を決定するステップS210(インタフェース数決定処理)の詳細例を示すフローチャートである。このステップS210の処理は第1例におけるステップS110の処理に対応するものである。
【0069】
インタフェース数決定部120は、先ず、ソフトウェアシミュレーション用テストデータ(テストデータD212〜D226)をクロック周波数ごとに分類する(S212)。次に、インタフェース数決定部120は、検証モード情報J6から分類されたデータが同一検証モードで使用するか否かを判定する(S214)。分類されたデータが同一検証モードで使用しない場合(異なる検証モードで使用する場合)は(S214−NO)、同一インタフェースで入出力が可能となり、インタフェースを同一ボードで実現することでインタフェース数を削減することができる(S224)。
【0070】
一方、分類されたデータが同一検証モードで使用する場合は(S214−YES)、インタフェース数決定部120は、データ方向性情報J2から分類されたデータが同一方向であるか否かを判定する(S216)。データが同一方向である場合(S216−YES)、インタフェース数決定部120は、アクセス情報J8から分類されたデータが同時刻にアクセスがあるか否かを判定する(S218)。同時刻にアクセスが存在しなければ(S218−NO)、分類されたデータは同一インタフェースでデータ入出力が可能となり、インタフェースを同一ボードで実現することでインタフェース数を削減することができる(S220)。
【0071】
データが同一方向でない場合や(S216−NO)、分類されたデータが同時刻にアクセスが存在する場合は(S218−YES)、データ入出力は別々のインタフェースで実現することになるので、インタフェースを別IFボードで実現する(S222)。
【0072】
このように、第2例のインタフェース数決定処理では、データ入出力が単方向のみに対応しているインタフェースの場合、検証項目に応じたクロック情報J4と検証項目ごとのデータの情報である検証モード情報J6とデータの入出力が行なわれている時刻情報であるアクセス情報J8とに加えて、検証モードごとの各データの向き(INPUTとOUTPUT)をリスト化したデータ方向性情報J2も用いて、複数の異なったデータが同一インタフェース上で入出力可能か否かを決定することで、システム検証用に適正なインタフェース数を決定する。つまり、データ方向性情報J2から分類されたデータが同一方向であるか否かを判定するステップS216の処理が追加されている点で第1例と異なる。
【0073】
上記のように、第1例および第2例の何れの手法によっても、論理シミュレーションを構築する際のインタフェース数やインタフェースボードの数を適切かつ容易に決定することができる。たとえば、検証環境を最小限で構築することができる。この結果、検証環境の構築に要する開発工数を最小限に抑えることや、短期間で検証環境を構築することも可能となる。加えて、検証環境を最小限で構築することができるので、開発費を低減することも可能となる。
【0074】
さらに、データ入出力のインタフェース機構をPCIバスやISAバスなどの標準バスを利用して共通化すれば、インタフェースの再利用が可能となり、開発すべきインタフェース機構の種類を減らし、開発工数を削減でき、コストダウンが可能となる。
【0075】
このように、上記実施形態で示したインタフェース数決定処理の手法を適用することで、試作基板やロジックエミュレータの検証環境を簡易かつ効率的かつ低コストで構築することができるようになる。
【0076】
図12は、図3に示したソフトウェアシミュレーションの検証環境に対して、図6に示した検証モード情報J6および図7に示したアクセス情報J8を用いて、図4および図8で示したデータインタフェース数を決定する処理手順を実行した結果による論理回路エミュレータの検証システムの一例を示す図である。
【0077】
この検証システム5を構築した事例におけるインタフェース数決定処理の手順を具体的に説明する。試作基板ロジックエミュレータ130(エミュレータ本体10に相当)には、ソフトウェアシミュレーション用テストデータA〜Hが入出力される。
【0078】
先ず、インタフェース数決定部120は、ソフトウェアシミュレーションのデータ入出力数が8つ存在するため、暫定数を“8”とする(S100)。そして、データインタフェースの実現方法の決定するステップS110に進む。
【0079】
ステップS110(インタフェース数決定処理)にて、インタフェース数決定部120は、各データをクロック周波数ごとに分類する(S112)。たとえば、A−IFとB−IF、C−IFとD−IF、E−IFとF−IF、G−IFとH−IFの4グループに分かれるとする。
【0080】
インタフェース数決定部120は、図6に示した検証モード情報J6から、A−IFとB−IFが、同一検証モードで使用することを検出する(S114−YES)。また、図7に示したアクセス情報J8から、A−IFとB−IFは、同時刻にデータアクセスがないことを検出する(S118−NO)。よって、この2つのデータは、同一インタフェース(AB−IF)で入出力が実現可能となる(S120)。この結果、A−IFとB−IFを共通のデータ格納部242に用意することができる。
【0081】
インタフェース数決定部120は、C−IFとD−IFについても同様な処理を実行する。C−IFとD−IFは異なる検証モードで使用するため(S114−NO)、同一インタフェース(CD−IF)で実現可能となる(S124)。この結果、C−IFとD−IFを共通のデータ格納部244に用意することができる。
【0082】
次に、インタフェース数決定部120は、E−IFとF−IFについても同様な処理を実行する。ここで、E−IFとF−IFでは、同一検証モードで使用するが(S114−YES)、データアクセス情報から同時刻のアクセスがあるため(S118−YES)、別々のインタフェース(E−IFとF−IF)を用いて実現する。この結果、E−IFとF−IFを別のデータ格納部246,248に用意することになる。
【0083】
最後に、インタフェース数決定部120は、G−IFとH−IFについても同様な処理を実行する。ここで、G−IFとH−IFでは、C−IFとD−IFと同様、異なる検証モードで使用するため(S114−NO)、同一インタフェース(GH−IF)で実現可能となる(S124)。この結果、G−IFとH−IFを共通のデータ格納部250に用意することができる。
【0084】
これらの結果より、試作ボードや論理エミュレーション(600)を用いたシステム検証を行なうために必要最低限のインタフェース数は“5”となる。このような処理を用いることで、インタフェース数を暫定数の“8”から“5”に削減することが可能であり、たとえばインタフェースボードを5枚にするなど、容易にインタフェース数を決定することが可能である。
【0085】
なお、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、たとえば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0086】
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc−Read Only Memory )、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc )を含む)、もしくは半導体メモリなどよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供されてもよいし、プログラムが記録されているROMやハードディスクなどで構成されてもよい。あるいは、ソフトウェアを構成するプログラムが、通信網を介して提供されてもよい。
【0087】
たとえば、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、上記実施形態で述べた効果は達成される。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合であってもよい。
【0088】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって前述の実施形態の機能が実現される場合であってもよい。
【0089】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。
【0090】
また、上記の実施形態は、クレーム(請求項)にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
【0091】
たとえば、上述した実施形態では、論理エミュレータシステムを構築する際のデータ入出力用のインタフェース数の削減決定処理の手法について説明したが、実チップなどを搭載する試作基板を用いてシステム検証を行なうシステムにおける、データ入出力用のインタフェース数を決定する際に、上述した処理手順を利用することも可能である。
【0092】
また、上述した2つのインタフェース数決定処理手順では、エミュレータ本体に入出力される複数のデータについて、インタフェース数が最も少なくなるインタフェースを決定するようにしていたが、必ずしも最低数を求めるものでなくてもよい。たとえば、事前に削減希望のインタフェース数を設定し、順に上述した判定処理を進めて、その設定数に達した段階で、決定処理を停止してもよい。これにより、試作基板やロジックエミュレータの検証環境を効率的に構築することができるとともに、その決定処理の処理時間を短縮することができる。
【0093】
また、上記実施形態では、先ず、クロック情報J4を参照して検証データをクロック周波数ごとに分類した後に、検証モード情報J6やアクセス情報J8を参照して、データの衝突(競合)が起きない範囲で、できるだけインタフェースを共用するように、インタフェース数を決定していたが、たとえば、全てのインタフェース回路を高周波数対応可能なものとすることで、クロック周波数も含めて、データの衝突が起きない範囲で、できるだけインタフェースを共用するように、インタフェース数を決定してもよい。こうすることで、インタフェース数をさらに削減可能となる。
【0094】
【発明の効果】
以上のように、本発明によれば、検証システム本体への検証データの入出力に関する情報(たとえば、ソフトウェアシミュレーション用入出力データに関する情報)に基づいて、ターゲット回路に対応するハードウェア要素を利用した論理検証に必要な検証データのインタフェース数を決定するようにしたので、インタフェース数の適正化が簡易な手法で実現可能となる。そしてこれにより、試作基板やロジックエミュレータの検証環境を簡易かつ効率的かつ低コストで構築することができるようになる。
【図面の簡単な説明】
【図1】論理エミュレーションシステムの概略構成を示す図である。
【図2】インタフェース数決定装置の機能ブロック図の一例である。
【図3】ソフトウェアシミュレーションの検証環境の一例を示す図である。
【図4】インタフェース数決定装置におけるインタフェース数決定の処理手順の第1例の概要を示すフローチャートである。
【図5】インタフェース数決定部に通知されるクロック情報の一例を示す図表である。
【図6】インタフェース数決定部に通知される検証モード情報の一例を示す図表である。
【図7】インタフェース数決定部に通知されるデータアクセス情報の一例を示す図表である。
【図8】第1例のインタフェース数決定処理の詳細例を示すフローチャートである。
【図9】インタフェース数決定装置におけるインタフェース数決定の処理手順の第2例の概要を示すフローチャートである。
【図10】インタフェース数決定部に通知されるデータ方向性情報の一例を示す図表である。
【図11】第2例のインタフェース数決定処理の詳細例を示すフローチャートである。
【図12】第1例のインタフェース数決定処理を実行した結果による論理回路エミュレータの検証システムの一例を示す図である。
【符号の説明】
1,5…検証システム、3…検証環境構築システム、10…エミュレータ本体、12…FPGA、14…ロジック回路、16…メモリ、18…テストベンチ回路、20…CPUボード、22…CPU、30…外部メモリボード、32…メモリ32、80…コントローラPC、82…ワークステーション、84…データ入出力用PC、86…データ入出力用PC、88…ロジアナ、90…インタフェース部、92…外部ボード接続用I/F部、94…コントローラ用I/F部、96a,96b…データ用I/F部、98…ロジアナ用I/F部、100…インタフェース数決定装置、110…検証情報取得部、112…データ方向性情報取得部、114…クロック情報取得部、116…検証モード情報取得部、118…アクセス情報取得部、120…インタフェース数決定部、130…試作基板ロジックエミュレータ、J2…データ方向性情報、J4…クロック情報、J6…検証モード情報、J8…アクセス情報
Claims (9)
- ターゲット回路についての論理動作を当該ターゲット回路に対応する所定のハードウェア要素を使用して前記ターゲット回路と略同様の動作速度で検証する環境を構築するための検証環境構築方法であって、
検証システム本体への検証データの入出力に関する情報に基づいて、前記検証に必要かつ適正な前記検証データ用のインタフェース数を決定することを特徴とする検証環境構築方法。 - ターゲット回路についての論理動作を当該ターゲット回路に対応する所定のハードウェア要素を使用して前記ターゲット回路と略同様の動作速度で検証する環境を構築するための検証環境構築システムであって、
前記ターゲット回路についての論理動作を検証する際に使用される検証データを検証システム本体へインタフェースするインタフェース部と、
前記検証システム本体へインタフェースされる前記検証データに関する情報を取得する検証情報取得部と、
前記検証情報取得部により取得された前記検証データに関する情報に基づいて、前記インタフェース部における、前記検証に必要かつ適正な前記検証データ用のインタフェース数を決定するインタフェース数決定部と
を備えたことを特徴とする検証環境構築システム。 - 前記インタフェース数決定部は、複数の異なった前記検証データが同一インタフェース上で入出力可能か否かに基づいて前記インタフェース数を決定することを特徴とする請求項2に記載の検証環境構築システム。
- 前記検証情報取得部は、それぞれ前記検証データに関する情報の一例である、検証項目ごとの前記検証データの使用状況を示す情報である検証モード情報、および前記検証データの入出力が行なわれる時刻に関する情報であるアクセス情報、のうちの少なくとも1つの情報を取得する機能要素を備えていることを特徴とする請求項3に記載の検証環境構築システム。
- 前記検証情報取得部は、前記検証データに関する情報の一例である、前記検証システム本体への前記検証データの方向に関するデータ方向性情報を取得する機能要素を備えていることを特徴とする請求項4に記載の検証環境構築システム。
- 前記検証情報取得部は、前記検証データに関する情報の一例である、検証動作中の前記検証データの周波数を示すクロック情報を取得する機能要素を備えていることを特徴とする請求項3に記載の検証環境構築システム。
- 前記インタフェース部は、ある一定の規格を満足する標準インタフェースであることを特徴とする請求項2に記載の検証環境構築システム。
- 前記標準インタフェースは、ISAバスおよびPCIバスのうちの少なくとも一方であることを特徴とする請求項7に記載の検証環境構築システム。
- 前記標準インタフェースは、USBインタフェースおよびIEEE1394インタフェースのうちの少なくとも一方である
ことを特徴とする請求項7に記載の検証環境構築システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002326349A JP2004164056A (ja) | 2002-11-11 | 2002-11-11 | 検証環境構築方法および検証環境構築システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002326349A JP2004164056A (ja) | 2002-11-11 | 2002-11-11 | 検証環境構築方法および検証環境構築システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004164056A true JP2004164056A (ja) | 2004-06-10 |
Family
ID=32805280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002326349A Pending JP2004164056A (ja) | 2002-11-11 | 2002-11-11 | 検証環境構築方法および検証環境構築システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004164056A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015018541A (ja) * | 2013-07-12 | 2015-01-29 | ハミルトン・サンドストランド・コーポレイションHamilton Sundstrand Corporation | 航空機搭載電子システムの多段フィールド・プログラマブル・ゲート・アレイのハードウェア要件の評価および検証 |
CN114860519A (zh) * | 2022-04-08 | 2022-08-05 | 中国人民解放军国防科技大学 | 一种面向大规模asic芯片的多芯片联合验证方法及装置 |
-
2002
- 2002-11-11 JP JP2002326349A patent/JP2004164056A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015018541A (ja) * | 2013-07-12 | 2015-01-29 | ハミルトン・サンドストランド・コーポレイションHamilton Sundstrand Corporation | 航空機搭載電子システムの多段フィールド・プログラマブル・ゲート・アレイのハードウェア要件の評価および検証 |
CN114860519A (zh) * | 2022-04-08 | 2022-08-05 | 中国人民解放军国防科技大学 | 一种面向大规模asic芯片的多芯片联合验证方法及装置 |
CN114860519B (zh) * | 2022-04-08 | 2022-12-23 | 中国人民解放军国防科技大学 | 一种面向大规模asic芯片的多芯片联合验证方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6678645B1 (en) | Method and apparatus for SoC design validation | |
Mehta | ASIC/SoC functional design verification | |
US6347395B1 (en) | Method and arrangement for rapid silicon prototyping | |
TW594513B (en) | Apparatus and method for in-circuit emulation using high-level programming language | |
US6917998B1 (en) | Reusable complex multi-bus system hardware prototype system | |
JP2001060219A (ja) | エミュレーションとシミュレーションを用いた設計検証のための方法および装置 | |
US7333909B1 (en) | Method of and circuit for verifying a data transfer protocol | |
WO1994019741A2 (en) | Real-time rule based processing system | |
US8000950B2 (en) | Random initialization of latches in an integrated circuit design for simulation | |
US7043596B2 (en) | Method and apparatus for simulation processor | |
US20210406443A1 (en) | Verification platform for system on chip and verification method thereof | |
US6510541B1 (en) | Database having a hierarchical structure utilized for designing system-on-chip integrated circuit devices and a method of designing the same | |
US6820219B1 (en) | Integrated testing method for concurrent testing of a number of computer components through software simulation | |
JP2004164056A (ja) | 検証環境構築方法および検証環境構築システム | |
US7627794B2 (en) | Apparatus and method for discrete test access control of multiple cores | |
Ke et al. | Verification of AMBA bus model using SystemVerilog | |
US11662383B2 (en) | High-speed functional protocol based test and debug | |
US7146303B2 (en) | Technique for incorporating power information in register transfer logic design | |
JP2004178267A (ja) | メモリ回路生成方法および装置、メモリ回路、回路モデル検証方法および装置、回路モデル生成方法および装置 | |
JP2004361171A (ja) | 半導体集積回路および半導体集積回路の機能検証方法 | |
JP3667146B2 (ja) | メモリ用内蔵自己テスト回路 | |
Choi et al. | Early HW/SW Co-Verification Using Virtual Platforms | |
JP5407257B2 (ja) | 回路試験装置及び回路試験システム | |
US7447960B2 (en) | Method of efficiently loading scan and non-scan memory elements | |
JP2007156728A (ja) | 論理検証方法及び論理検証システム |