(57)【要約】【課題】論理エミュレータ上にモデリングされるメモリ回路を簡易かつ効率的に構築することができるようにする。【解決手段】ターゲットメモリの所望のメモリ動作を、予めエミュレータ本体１０上に搭載されているメモリ１６と書換可能な論理デバイスであるＦＰＧＡ１２に組み込んだラッパー回路５００とからなるメモリ回路で実現する。メモリ周辺回路の変更をエミュレータ装置に組み込まれているラッパー回路５００にて対応を採ることができ、事実上、メモリ周辺回路のハード的な変更を不要化することができる。【選択図】        図９
2004178267.tif 000002
【特許請求の範囲】
【請求項１】
代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路のモデルを生成するメモリ回路生成方法であって、
前記代替品メモリと接続されるとともに、当該代替品メモリと協働することで前記メモリ回路に前記ターゲットメモリと略等価な動作をさせるラッパー回路を、書換可能な論理デバイスに組み込む
ことを特徴とするメモリ回路生成方法。
【請求項２】
前記ターゲットメモリの容量を、単一の前記代替品メモリの容量により担当するように、前記ラッパー回路を構築する
ことを特徴とする請求項１に記載のメモリ回路生成方法。
【請求項３】
前記ターゲットメモリの容量を、複数の前記代替品メモリの容量を組み合わせて担当するように、前記ラッパー回路を構築する
ことを特徴とする請求項１に記載のメモリ回路生成方法。
【請求項４】
前記代替品メモリとして、前記論理デバイスの外部に設けられたメモリセルを使用する
ことを特徴とする請求項１に記載のメモリ回路生成方法。
【請求項５】
代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路のモデルを生成するメモリ回路生成装置であって、
前記ターゲットメモリメモリの種別に関するメモリ種別情報を取得する種別情報取得部と、
前記ターゲットメモリメモリの性能に関するメモリ仕様情報を取得する仕様情報取得部と、
前記種別情報取得部が取得した前記メモリ種別情報と、前記仕様情報取得部が取得した前記メモリ仕様情報とに基づいて、前記代替品メモリと接続されるとともに、当該代替品メモリと協働することで前記メモリ回路に前記ターゲットメモリと略等価な動作をさせるラッパー回路のモデルを生成するラッパー回路生成部と
を備えたことを特徴とするメモリ回路生成装置。
【請求項６】
代替品メモリを使用してターゲットメモリと略等価な動作をするメモリ回路であって、
前記代替品メモリと接続されるとともに書換可能な論理デバイスに組み込まれたラッパー回路を含み、
前記ラッパー回路は、前記代替品メモリと協働することで、前記メモリ回路に前記ターゲットメモリと略等価な動作をさせる機能部分を含む
ことを特徴とするメモリ回路。
【請求項７】
前記ラッパー回路は、前記ターゲットメモリの容量を、単一の前記代替品メモリの容量により担当するように当該代替品メモリを制御する機能部分を含む
ことを特徴とする請求項６に記載のメモリ回路。
【請求項８】
前記ラッパー回路は、前記ターゲットメモリの容量を、複数の前記代替品メモリの容量により担当するように当該複数の代替品メモリの使用を切り替えつつ当該代替品メモリを制御する機能部分を含む
ことを特徴とする請求項６に記載のメモリ回路。
【請求項９】
ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路の動作を検証する回路モデル検証方法であって、
前記論理検証システムによる検証結果であるエミュレーション結果と、前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第２の検証結果とを比較することで、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する
ことを特徴とする回路モデル検証方法。
【請求項１０】
前記第２の検証結果としての、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果、および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方と比較する
ことを特徴とする請求項９に記載の回路モデル検証方法。
【請求項１１】
前記第２の検証結果を示す出力ファイルの形式が前記論理検証システムによる検証にて取扱い可能なファイル形式と異なる場合には、
前記第２の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換し、
この変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
ことを特徴とする請求項９に記載の回路モデル検証方法。
【請求項１２】
前記個別回路は、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路である
ことを特徴とする請求項１１に記載の回路モデル検証方法。
【請求項１３】
ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路の動作を検証する回路モデル検証装置であって、
前記論理検証システムによる検証結果であるエミュレーション結果を取得する論理検証部と、
前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第２の検証結果を取得する第２の検証部と、
前記論理検証部が取得した前記エミュレーション結果と前記第２の検証部が取得した前記第２の検証結果とを比較することにより、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する検証結果比較部と
を備えたことを特徴とする回路モデル検証装置。
【請求項１４】
前記第２の検証部は、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果、および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方を前記第２の検証結果として取得するものである
ことを特徴とする請求項１３に記載の回路モデル検証装置。
【請求項１５】
前記第２の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換するファイル変換部を備え、
前記検証結果比較部は、前記ファイル変換部による変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
ことを特徴とする請求項１３に記載の回路モデル検証装置。
【請求項１６】
ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路のモデルを生成する回路モデル生成方法であって、
前記個別回路は、代替品を使用してターゲット回路と略等価な動作をするように構成されたものであり、
前記論理検証システムによる検証結果であるエミュレーション結果と、前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第２の検証結果とを比較する第１の工程と、
前記検証結果の比較に基づいて、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する第２の工程と
を有し、
前記元の回路と同じ動作をしない場合には、前記第１の工程の比較結果を参照して、前記論理検証システム上にモデリングした前記個別回路のモデルを修正し、この修正後のモデルについて前記第１の工程と前記第２の工程とを繰り返すことにより、前記個別回路のモデルを決定する
ことを特徴とする回路モデル生成方法。
【請求項１７】
前記第１の工程は、前記第２の検証結果としての、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方と、前記エミュレーション結果とを比較する
ことを特徴とする請求項１６に記載の回路モデル生成方法。
【請求項１８】
前記第２の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換する第３の工程を有し、
前記第１の工程は、前記第３の工程による変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
ことを特徴とする請求項１６に記載の回路モデル生成方法。
【請求項１９】
前記個別回路は、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路である
ことを特徴とする請求項１６に記載の回路モデル生成方法。
【請求項２０】
ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路であって、代替品を使用してターゲット回路と略等価な動作をするように構成された個別回路のモデルを生成する回路モデル生成装置であって、
前記論理検証システムによる検証結果であるエミュレーション結果を取得する論理検証部と、
前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第２の検証結果を取得する第２の検証部と、
前記論理検証部が取得した前記エミュレーション結果と前記第２の検証部が取得した前記第２の検証結果とを比較する第１の工程と、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する第２の工程とを実施する検証結果比較部と、
前記検証結果比較部における前記第２の工程による判定結果が前記元の回路と同じ動作をしない旨を示していることを条件として、前記検証結果比較部における前記第１の工程による比較結果を参照して前記論理検証システム上にモデリングした前記個別回路のモデルを修正し、この修正後のモデルについて前記第１の工程と前記第２の工程とを繰り返すように制御する制御部と
を備えたことを特徴とする回路モデル生成装置。
【請求項２１】
前記検証結果比較部は、前記第１の工程として、前記第２の検証結果としての、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方と、前記エミュレーション結果とを比較する
ことを特徴とする請求項２０に記載の回路モデル生成装置。
【請求項２２】
前記第２の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換するファイル変換部を備え、
前記検証結果比較部は、前記第１の工程として、前記ファイル変換部による変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
ことを特徴とする請求項２０に記載の回路モデル生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、たとえば半導体装置の論理検証を行なうための検証システム（エミュレータシステム）などに利用されるメモリ回路、およびこのメモリ回路の生成方法および装置に関する。また本発明は、メモリ回路をはじめとする検証システム上にモデリングされる個別回路の検証方法および装置、並びに、回路モデルの生成方法および装置に関する。
【０００２】
【従来の技術】
半導体技術の進歩により、論理ＩＣの集積度は益々向上し、大規模システムを１チップに集積することが可能となり、また１チップまたは複数のＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：大規模集積回路）で電子機器などのシステムを構築することが可能になりつつある。
【０００３】
１チップＬＳＩやＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  ＩＣ  ：特定用途向け集積回路）などの半導体装置を開発する場合、一般的には、半導体装置（ターゲット回路）の内部の論理回路の論理動作を検証（デバッグ）した後に、実際のデバイス（チップ）を製造することが行なわれている。
【０００４】
この論理検証の手法としては、たとえば、論理シミュレーション（ソフトウェアシミュレーション）がある。これは、論理検証の対象となる論理回路の動作を電子計算機（たとえばワークステーションなどのコンピュータ）で実現し、所定の入力パターンに対する出力を予想して解析する（ソフトウェア的に波形解析をする）の仕組みのものである。
【０００５】
しかし、この論理シミュレーションでは、実際の論理回路に比べて動作速度が遅く、論理回路の規模が大きくなるとステップ数が非常に膨大となり論理検証時間が長時間に亘るという問題や、回路部材のソフトウェアモデリングが困難で、必ずしも実回路の動作と等価にはならず、システム全体を忠実にシミュレーションすることは難しいという問題がある。このため、論理シミュレーションのみでシステム全体の論理回路検証を行なうことは事実上不可能である。
【０００６】
また、論理検証の他の手法として、ターゲット回路に対応するハードウェア要素としての試作ＬＳＩや基板による試作品を用いて検証を行なう手法もある。この手法では、たとえば試作ＬＳＩのパターンニングなどを要するため試作品を得るために数週間を要するので、繰り返して試作品を作り検証を行なうことは難しい。
【０００７】
上記の検証手法の問題を解消するものとして、今日では、論理エミュレーション（ハードウェアエミュレーション／ロジックエミュレーション）による論理検証が注目されている（たとえば、特許文献１参照）。
【０００８】
【特許文献１】
特開２００２−２２９８１３号公報
【０００９】
この論理エミュレーションは、ターゲット回路についての論理動作を、ターゲット回路とは別種のハードウェア要素を使用して論理検証するもので、たとえば、ＬＳＩや電子計算機などの論理回路と等価な動作をプリント基板上に搭載した複数の電子部品（ターゲット回路に対応する別種のハードウェア要素）で実現し、実際の論理回路に近い動作速度で回路を動作させて論理回路を検証するものである。
【００１０】
たとえば、ＬＳＩ設計データを読込みＬＳＩと等価な動作を行なうプログラマブルに構成可能な半導体集積回路（ＦＰＧＡ；Ｆｉｌｅｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｌｌｅｙ：フィールドプログラマブルゲートアレイ）などで構成されたエミュレータによって実現され、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ；中央演算処理装置）やメモリなどの汎用部品を外部のプリント基板に実装し、エミュレータとプリント基板を接続し実際の論理回路に近い動作速度で回路を動作させて論理回路を検証する。
【００１１】
この論理エミュレーションの手法によれば、数１００万ゲート規模のシステムを構成することができ、システム全体として実速度に近い動作速度での検証が可能であり、コンピュータを用いたソフトウェアシミュレーションよりも数千分の１程度の時間で検証結果が得られる。また、ＦＰＧＡは回路構成が可変であるので、検証中にＦＰＧＡの回路構成を変更して機能確認を行ない最終の回路を決定した後、システム全体の論理回路検証（評価）を実回路に近い動作速度で行なうこともできる。このとき、ＦＰＧＡを用いて回路構成を変更しながら論理回路検証することによって、新規に設計する特定機能の論理回路やユーザ個別の論理回路を確定することもできる。これによって、特定用途向け集積回路ＡＳＩＣを比較的短期間に提供することも可能となる。
【００１２】
【発明が解決しようとする課題】
一方、近年の半導体装置は、回路が複雑化し、プロセッサやメモリを内蔵することが可能となり、またシステムも大規模になっており、ＣＰＵ、論理回路、記憶装置（メモリ）などの機能をそれぞれ単体で有するだけではなく、それらを１つのチップ上に搭載して所望のシステムを実現するＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  ａ  Ｃｈｉｐ：システムオンチップ）化が進んでいる。
【００１３】
このため、システムオンチップＳＯＣを検証対象とした場合、検証項目も急激に増加している。この場合、当然、ソフトウェアシミュレーションでは検証時間が長期に亘るため検証できない項目も出てくる。よって、試作チップなどを搭載する試作基板を用いてシステム検証を行なうことや、さらに好ましくは、論理エミュレーションを用いてシステム検証を行なう実機ベースのシステム検証が必要となる。
【００１４】
なお、試作基板や論理エミュレーションを用いた実機ベースのシステム検証では、試作基板や検証システム本体を構成するＦＰＧＡなどの書換可能なデバイスやメモリセルにプロセッサやメモリ回路を実装することで機能を実現するが、最新プロセッサや高機能メモリあるいは大規模メモリは、検証システム本体内に収容することが難しく、本体とは別に接続する個別の接続ボード（外部ボード）を用いて専用プロセッサチップや外部メモリなど（これらよりなる回路を外部回路という）を搭載することで具現化することもある。こうすることで、大規模な回路であっても、設計した論理回路を、ＦＰＧＡなどの書換可能なデバイスや専用プロセッサチップあるいは外部メモリに実装して、実際のチップと機能的に等価な動作をエミュレーションして確認することができる。
【００１５】
たとえば、論理エミュレーションを用いた実機ベースのシステム検証では、論理回路以外のたとえばＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ  ）やＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）といったメモリは、エミュレータ内部のメモリセルや外部ボードに実装されたＳＲＡＭなどの外部メモリを用いてシステムオンチップＳＯＣ内部のメモリと等価な動作になるようメモリを制御する外部回路（Ｗｒａｐｐｅｒ回路；ラッパー回路）と組み合わせてメモリ回路を実現する。従来このモデルの動作を検証する場合、メモリの仕様書と同じ動作をすることを確認することでモデルの動作検証とすることが多かった。
【００１６】
しかしながら、最近のシステムオンチップＳＯＣ設計ではＶｅｒｉｌｏｇ−ＨＤＬやＶＨＤＬといったＲＴＬ（レジスタ・トランスファ・レベル）の機能記述言語（ＨＤＬ）を用いずにＳｙｓｔｅｍＣ（商標）やＳｐｅｃＣあるいはＣｏＷａｒｅＣ（商標）といったＣ言語を基本としたシステムレベル言語で設計することも多くなってきている。この場合、メモリ単体の詳細な動作仕様はシミュレーション結果以外にない場合が多い。また、これらのシミュレーション結果の多くはファイル形式が異なるために、そのままでは論理シミュレーション、論理エミュレーションの結果と比較することが困難もしくは事実上不可能である。
【００１７】
そのため、動作検証を十分に行なえないままで論理エミュレータに回路を実装して検証することが多く、その場合、メモリモデルの動作不具合による不整合が多く発生し、高速動作検証環境構築上の問題になってきている。
【００１８】
また、ＳＤＲＡＭやＳＲＡＭなどのメモリを使用したメモリ回路は、論理エミュレーションにてモデリングされるメモリ回路に限らず、電気回路内においてデータの一時格納などのために多用されている。しかしながら、使用予定のメモリの調達が難しいために、回路検討を行なえないということがよくある。このような場合には、メモリを入手するまで検討を遅らせたり、代替品のメモリを用いて検討を行なわせたりせざるを得ない。
【００１９】
しかしながら、検討を遅らせる方法では、検討期間が長期化するという問題が発生する。また、代替品メモリを用いた検討では、代替品メモリと元のメモリ（ターゲットメモリ）の動作が必ずしも一致しないため、代替品メモリが動作するようにメモリ周辺の回路（ラッパー回路）の変更が必要になるという問題が発生することある。
【００２０】
また、この場合、メモリ周辺回路を変更して代替品メモリを使用してメモリ回路全体を構築する場合でも、前述のように、その回路のメモリモデルの構築と動作検証を如何に行なうかが問題となる。なぜなら、代替品メモリとラッパー回路とで構成したメモリ回路が元のターゲットメモリと同じ動作をしなければ、想定しているターゲットメモリのモデルを用いた論理検証（論理エミュレーション）に破綻を来すからである。従来は、このような場合の検証の仕組みが確立していないので、適切な検証を行なうことは困難であった。
【００２１】
このように、メモリ回路を取り扱う上では、設計期間短縮が求められている今日、使用予定のメモリの調達が難しいということが、種々の面で、大きな課題になっている。
【００２２】
なお、メモリ回路のテスト手法に関する技術として、不良メモリや不良ビットを特定するものが提案されている（たとえば特許文献２参照）。
【００２３】
【特許文献２】
特開２０００−３３１４９９号公報
【００２４】
この特許文献２の手法は、ビットごとに不一致信号を保持する回路を設けることで、不良ビットの特定の容易化を図ったり、アドレス構成が同一のメモリを同時に試験し、その結果を１度のスキャンアウトで正否を観測したりすることで、メモリテスト時間を削減することを目的としたものである。
【００２５】
しかしながら、特許文献２の手法は、前述のように、メモリ不良やテスト時間削減に関するものであり、代替品を用いたメモリ回路の構築やそのメモリモデルが元のメモリと同じ動作をするか否かの検証に利用することは困難である。
【００２６】
なお、論理エミュレーションにおいては、メモリ回路に限らず、モデリングした個別回路が、代替品を用いた等価回路である場合には、代替品メモリとラッパー回路とで構成したメモリ回路を用いた論理検証の場合と同様の問題を生じる。
【００２７】
本発明は、上記事情に鑑みてなされたものであり、ターゲットメモリと同様の動作をするメモリ回路を効率的あるいは簡易に生成することが可能なメモリ回路の生成方法および装置、並びにこれにより生成されるメモリ回路を提供することを目的とする。
【００２８】
また本発明は、論理エミュレーションシステム上にモデリングされるメモリ回路などの個別回路を確実かつ簡易に代替品にて構成することのできる回路モデルの生成方法および装置を提供することを目的とする。
【００２９】
また本発明は、論理エミュレーションシステム上にモデリングされるメモリ回路などの個別回路を代替品にて構成するに際し、このような個別回路のモデルを確実かつ簡易に検証することのできる検証方法および装置を提供することを目的とする。
【００３０】
【課題を解決するための手段】
すなわち、本発明に係るメモリ回路の生成方法は、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路のモデルを生成する方法であって、代替品メモリと接続されるとともに、この代替品メモリと協働することでメモリ回路にターゲットメモリと略等価な動作をさせるラッパー回路を、書換可能な論理デバイスに組み込むようにした。代替品メモリとしては、論理デバイスに内蔵されているメモリではなく、論理デバイスの外部に設けられたメモリセルを使用するとよい。
【００３１】
ここで、ターゲットメモリの容量が代替品メモリの容量よりも少ない場合には、ターゲットメモリの容量を単一の代替品メモリの容量により担当するようにラッパー回路を構築することが好ましい。
【００３２】
また、ターゲットメモリの容量が代替品メモリの容量よりも多い場合には、ターゲットメモリの容量を、複数の代替品メモリの容量を組み合わせて担当するように、ラッパー回路を構築することが好ましい。
【００３３】
本発明に係るメモリ回路の生成装置は、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路のモデルを生成する装置であって、ターゲットメモリメモリの種別に関するメモリ種別情報を取得する種別情報取得部と、ターゲットメモリメモリの性能に関するメモリ仕様情報を取得する仕様情報取得部と、種別情報取得部が取得したメモリ種別情報と仕様情報取得部が取得したメモリ仕様情報とに基づいて、代替品メモリと接続されるとともにこの代替品メモリと協働することでメモリ回路にターゲットメモリと略等価な動作をさせるラッパー回路のモデルを生成するラッパー回路生成部とを備えるものとした。
【００３４】
また、本発明に係るメモリ回路は、本発明に係るメモリ回路の生成方法や装置を利用して生成されるものであり、代替品メモリと接続されるとともに書換可能な論理デバイスに組み込まれたラッパー回路を含むものとする。ここで、ラッパー回路は、代替品メモリと協働することでメモリ回路にターゲットメモリと略等価な動作をさせる機能部分を含むものとする。
【００３５】
また、ラッパー回路は、ターゲットメモリの容量を単一の代替品メモリの容量により担当するように代替品メモリを制御する機能部分、あるいはターゲットメモリの容量を複数の代替品メモリの容量により担当するように複数の代替品メモリの使用を切り替えつつ個々の代替品メモリを制御する機能部分を含むものとすることが望ましい。
【００３６】
本発明に係る回路モデル検証方法は、ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路の動作を検証する方法であって、論理検証システムによる検証結果であるエミュレーション結果と論理検証システムによる検証手法とは異なる検証手法による検証結果である第２の検証結果とを比較することで、論理検証システム上にモデリングした個別回路がこの個別回路と対応する元の回路（ターゲット回路）と同じ動作をするか否かを判定することとした。
【００３７】
個別回路としては、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路が、その代表例である。もちろん、このようなメモリ回路に限らず、代替品を用いたその他の等価回路であってもよい。
【００３８】
ここで、第２の検証結果としては、システムレベル言語で設計されたターゲット回路上にモデリングされる個別回路のシステムレベルのシミュレーション結果（システムレベル検証結果）、および機能記述言語で作成されたターゲット回路上にモデリングされる個別回路の機能記述言語レベルのシミュレーション結果（機能記述言語レベル検証結果）のうちの少なくとも一方であることが好ましい。システムレベル検証結果および機能記述言語レベル検証結果の双方とエミュレーション結果とを比較するものとすれば一層好ましい。
【００３９】
なお、第２の検証結果を示す出力ファイルの形式が論理検証システムによる検証にて取扱い可能なファイル形式と異なる場合には、第２の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換してからエミュレーション結果とを比較するとよい。
【００４０】
本発明に係る回路モデル検証装置は、発明に係る回路モデル検証方法を実施する装置であって、論理検証システムによる検証結果であるエミュレーション結果を取得する論理検証部と、論理検証システムによる検証手法とは異なる検証手法による検証結果である第２の検証結果を取得する第２の検証部と、論理検証部が取得したエミュレーション結果と第２の検証部が取得した第２の検証結果とを比較することにより、論理検証システム上にモデリングした個別回路がこの個別回路と対応する元の回路（ターゲット回路）と同じ動作をするか否かを判定する検証結果比較部とを備えるものとした。
【００４１】
ここで、第２の検証部は、システムレベル言語で設計されたターゲット回路上にモデリングされる個別回路のシステムレベルのシミュレーション結果、および機能記述言語で作成されたターゲット回路上にモデリングされる個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方を第２の検証結果として取得するものであることが好ましい。
【００４２】
また、本発明に係る回路モデル検証装置においては、第２の検証結果を示す出力ファイルの形式を論理検証システムによる検証にて取扱い可能なファイル形式に変換するファイル変換部を備えるものとするとともに、検証結果比較部を、ファイル変換部による変換後の出力ファイルにより示される検証結果とエミュレーション結果とを比較するものとすることが好ましい。
【００４３】
本発明に係る回路モデル生成方法は、本発明に係る回路モデル検証方法を利用して、ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路であって、代替品を使用してターゲット回路と略等価な動作をするように構成された個別回路のモデルを生成する方法であり、論理検証システムによる検証結果であるエミュレーション結果と論理検証システムによる検証手法とは異なる検証手法による検証結果である第２の検証結果とを比較する第１の工程と、検証結果の比較に基づいて論理検証システム上にモデリングした個別回路がこの個別回路と対応する元の回路（ターゲット回路）と同じ動作をするか否かを判定する第２の工程とを有するものとした。
【００４４】
そして、元の回路と同じ動作をしない場合には、第１の工程の比較結果を参照して論理検証システム上にモデリングした個別回路のモデルを修正し、この修正後のモデルについて第１の工程と第２の工程とを繰り返すことにより個別回路のモデルを決定することとした。
【００４５】
個別回路としては、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路が、その代表例である。もちろん、このようなメモリ回路に限らず、代替品を用いたその他の等価回路であってもよい。
【００４６】
ここで、第１の工程は、システムレベル言語で設計されたターゲット回路上にモデリングされる個別回路のシステムレベルのシミュレーション結果および機能記述言語で作成されたターゲット回路上にモデリングされる個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方を第２の検証結果として取得し、このような第２の検証結果とエミュレーション結果とを比較するものであるとよい。
【００４７】
また、本発明に係る回路モデル生成方法においては、第２の検証結果を示す出力ファイルの形式を論理検証システムによる検証にて取扱い可能なファイル形式に変換する第３の工程を有するものとするとともに、第１の工程を、この第３の工程による変換後の出力ファイルにより示される検証結果とエミュレーション結果とを比較するものとすることが好ましい。
【００４８】
本発明に係る回路モデル生成装置は、本発明に係る回路モデル生成方法を実施する装置であって、論理検証システムによる検証結果であるエミュレーション結果を取得する論理検証部と、論理検証システムによる検証手法とは異なる検証手法による検証結果である第２の検証結果を取得する第２の検証部と、論理検証部が取得したエミュレーション結果と第２の検証部が取得した第２の検証結果とを比較する第１の工程および論理検証システム上にモデリングした個別回路がこの個別回路と対応する元の回路と同じ動作をするか否かを判定する第２の工程とを実施する検証結果比較部とを備えるものとした。
【００４９】
また、検証結果比較部における第２の工程による判定結果が元の回路と同じ動作をしない旨を示していることを条件として、検証結果比較部における第１の工程による比較結果を参照して論理検証システム上にモデリングした個別回路のモデルを修正し、この修正後のモデルについて第１の工程と第２の工程とを繰り返すように制御する制御部を備えるものとした。
【００５０】
ここで、検証結果比較部は、第１の工程として、システムレベル言語で設計されたターゲット回路上にモデリングされる個別回路のシステムレベルのシミュレーション結果および機能記述言語で作成されたターゲット回路上にモデリングされる個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方を第２の検証結果としてエミュレーション結果とを比較するものとすることが好ましい。
【００５１】
また、本発明に係る回路モデル生成装置においては、第２の検証結果を示す出力ファイルの形式を論理検証システムによる検証にて取扱い可能なファイル形式に変換するファイル変換部を備えるものとするとともに、検証結果比較部を、第１の工程として、ファイル変換部による変換後の出力ファイルにより示される検証結果とエミュレーション結果とを比較するものとすることが好ましい。
【００５２】
なお、上述した各種方法および装置を、電子計算機（コンピュータ）を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできる。なお、プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。
【００５３】
【作用】
上記構成のメモリ回路生成方法および装置においては、メモリとＦＰＧＡなどの書換可能な論理デバイスとを用いてターゲットメモリと略等価な動作をするメモリ回路を構築する。そして、論理デバイス内にメモリと接続するラッパー回路を実装する。
【００５４】
また、上記構成の回路モデル検証方法および装置においては、論理エミュレータ上にモデリング（実装）した回路が元の回路（ターゲット回路）と同じ動作をするか否かを、論理エミュレーションによる検証結果と他の検証手法による検証結果と比較することで確認する。
【００５５】
また、上記構成の回路モデル生成方法および装置においては、前述の回路モデル検証方法および装置の手法を利用し、比較結果が一致しなければ、比較結果を参照して回路モデルを修正し、再度、論理エミュレーションによる検証結果と他の検証手法による検証結果と比較する。これを、比較結果が一致するまで繰り返すことで、代替品を用いて、ターゲット回路と等価な個別回路を作成する。
【００５６】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【００５７】
図１は、論理エミュレーションを行なうための検証システム（論理エミュレーションシステム）の概略構成を示す図である。
【００５８】
検証システム１は、エミュレータ本体１０、ＳＯＣに内蔵するＣＰＵやテストチップ２２を搭載したＣＰＵボード２０、ＳＯＣに内蔵する大規模メモリや高性能メモリ３２を搭載した外部メモリボード３０を備える。
【００５９】
エミュレータ本体（検証システム本体）１０には、ＬＳＩ設計データを読込みＬＳＩと等価な動作を行なうプログラマブルに構成可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ  ）１２で構成されたロジック回路１４、メモリ１６、テストベンチ回路１８などで構成されている。
【００６０】
メモリ１６としては、たとえば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ  ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの、随時書込みおよび随時読出しが可能な記憶保持動作をするメモリを使用するとよい。なお、ＦＰＧＡ１２やメモリ１６は、検証対象となるターゲット回路のシステム規模が小さければ１個でもよいが、システム規模が大きくなれば各々複数個が使用される。
【００６１】
ＣＰＵボード２０や外部メモリボード３０は、必要に応じて複数枚が用意されるようになっている。エミュレータ本体１０と、これらＣＰＵボード２０および外部メモリボード３０との間は、インタフェース（Ｉ／Ｆ）部９０を構成する外部ボード接続用Ｉ／Ｆ部９２にて接続されるようになっている。
【００６２】
また、検証システム１は、エミュレータ本体１０の周辺に、ＦＰＧＡ１２の論理機能を決定する論理機能定義データをＦＰＧＡ１２にロード（供給）したり、あるいは検証システム全体を監視若しくは制御したりするためのコントローラＰＣ（ＰＣ；Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  ）８０、論理設計データを生成するワークステーション８２、検証用のテストデータ（入力データ）をエミュレータ本体１０にロードしたり検証結果のデータ（出力データ）を読み込み保持したりするためのデータ入出力用ＰＣ８４，８６、および検証中のロジックデータを監視するためのロジックアナライザ（以下ロジアナという）８８を備える。
【００６３】
なお、検証用のテストデータ（入力データ）は、ソフトウェアシミュレーションにおいて使用するものと同様のものを使用すればよい。この検証用のテストデータは、エミュレータ本体１０のテストベンチ回路１８を介してＦＰＧＡ１２に供給されることで、ソフトウェアシミュレーションの検証環境を論理エミュレーションを用いたシステム検証装置（すなわち検証システム１）で実現するようになる。
【００６４】
また、その検証結果のデータ（出力データ）がテストベンチ回路１８を介してデータ入出力用ＰＣ８４，８６に出力され、所定の記憶媒体（たとえばハードディスク装置など）に格納される。なお、この場合の検証用のテストデータ（入力データ）と検証結果のデータ（出力データ）とを纏めて、以下「ソフトウェアシミュレーション用入出力データ」という。
【００６５】
コントローラＰＣ８０はコントローラ用Ｉ／Ｆ部９４にて専用ケーブルで、データ入出力用ＰＣ８４，８６はデータ用Ｉ／Ｆ部９６ａ，９６ｂにてＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ）バス若しくはＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バスで、ロジアナ８８はロジアナ用Ｉ／Ｆ部９８にて専用プローブで、それぞれエミュレータ本体１０と接続されるようになっている。
【００６６】
検証データのエミュレータ本体１０へのインタフェースをなすデータ用Ｉ／Ｆ部９６ａ，９６ｂとして、ＰＣＩバスやＩＳＡバスなど共通のインタフェース機構を持たせることで、複数の異なったデータが同一インタフェース上で入出力可能となる。
【００６７】
なお、データ用Ｉ／Ｆ部９６ａ，９６ｂとしては、ＰＣＩバスやＩＳＡバス以外のパラレルの標準インタフェースを使用してもよい。また、パラレルバスインタフェースに限らず、たとえばＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ，  Ｉｎｃ．  ；米国電気電子学会）１３９４規格やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）１．０／２．０規格、もしくはＰＣＩ規格の一例である“ＰＣＩＥｘｐｒｅｓｓ（商標）”（ピーシーアイエクスプレス）などのシリアルインタフェースであってもよい。
【００６８】
ＰＣＩバスやＩＳＡバスなどのパラレルバスインタフェースをはじめとする標準インタフェースは、ＩＥＥＥやＪＩＳ（日本工業規格）などの非商業的組織または政府組織（公的な規格団体）によって認められた正当な（法律上の）技術的ガイドラインに従った、ハードウェア開発またはソフトウェア開発の領域において均一性を確立するために使用される公的なインタフェースであるのがよい。
【００６９】
また、このような公的なインタフェースに限らず、民間団体や単一の会社にて取り纏められた私的な標準インタフェース、いわゆる業界標準インタフェース（工業標準インタフェース）であってもかまわない。何れにしても、標準インタフェースは、ある一定の規格を満足する接続インタフェースであればよい。
【００７０】
たとえば、ある会社によって製品または理念が開発され、成功と模倣を通じて標準からの逸脱が互換性の問題を引き起こすか、または市場性を制限する程広く使用されるようになる場合に生じるハードウェア開発またはソフトウェア開発に関する事実上の（ｄｅ  ｆａｃｔｏ）技術的ガイドライン（非公式な規格）が、本実施形態の標準インタフェースとして採用されてもよい。
【００７１】
コントローラＰＣ８０とワークステーション８２とは、ネットワークＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）で接続されている。ワークステーション８２は、たとえばＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ  ）若しくはＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ  ）といわれる形式で論理記述された論理設計データを生成する。また、ワークステーション８２は、その論理設計データの対応回路部分の記述データまたはその記述データを所定のデータフォーマットに変換したデータをコントローラＰＣ８０に渡す。コントローラＰＣ８０は、このデータを解読して、ＦＰＧＡ１２に論理機能を設定するのに必要な論理機能定義データを生成し、これをＦＰＧＡ１２にロードすることで、ＡＳＩＣやＳＯＣなどに対応するターゲット回路を実装（インプリメント）する。
【００７２】
また、ワークステーション８２は、ターゲット回路評価のために生成したロードモジュールをコントローラＰＣ８０に渡す。このロードモジュールは、ＦＰＧＡ１２を有するエミュレータ本体１０やエミュレータ本体１０に接続されたＣＰＵボード２０などに供給され、インサーキットエミュレーションのように、開発対象とされるターゲット回路上でＦＰＧＡ１２を実際の論理回路（ターゲット回路に対応するＡＳＩＣやＳＯＣなど）に近い動作速度で動作させることで、システムデバッグやソフトウェアデバッグなどの検証あるいはテストを行なうために利用される。
【００７３】
この検証システム１の周辺システムとして、ＦＰＧＡ１２に内蔵している内部メモリＬＰＭ（Ｌｏｃａｌ  Ｐｌａｃｅ  Ｍｅｍｏｒｙ）やメモリ１６（本例ではＳＲＡＭ）あるいは外部メモリボード３０上のメモリ３２を利用して、ターゲット回路であるシステムオンチップＳＯＣ内部のメモリ（たとえばＤＲＡＭ；以下ターゲットメモリともいう）と実質的に等価な動作をさせるためのラッパー回路を生成するためのメモリ回路構築システム７が用意される。このメモリ回路構築システム７は、それぞれネットワークＬＡＮで接続されたメモリ回路生成装置４００とワークステーション８２とで構成される。ワークステーション８２からは、ターゲットメモリに関する情報（メモリ種別や容量など）がメモリ回路生成装置４００に通知される。
【００７４】
また、検証システム１の周辺システムとして、メモリ回路構築システム７のメモリ回路生成装置４００にて生成されたラッパー回路、あるいはこのラッパー回路やメモリ１６などの代替品を用いて構成されるメモリ回路の動作を検証するための回路モデル検証システム９が用意される。この回路モデル検証システム９は、それぞれネットワークＬＡＮで接続された回路モデル検証装置４５０とワークステーション８２と、データ入出力用ＰＣ８６やロジアナ８８などとで構成される。回路モデル検証装置４５０は、本発明に係る回路モデル生成装置の機能を備える。
【００７５】
回路モデル検証装置４５０には、ワークステーション８２からターゲットメモリに関する情報（メモリ種別や容量など）が通知され、メモリ回路生成装置４００からは、生成されたラッパー回路の回路情報が通知される。また、エミュレータ本体１０や外部ボード１１などからなる論理エミュレータ装置５を利用した論理エミュレーションの検証結果もデータ入出力用ＰＣ８６やロジアナ８８から通知される。
【００７６】
メモリ回路生成装置４００にて生成されたラッパー回路の回路情報は、回路モデル検証装置４５０に入力され、生成されたラッパー回路を含む代替品のメモリを用いたメモリ回路が実際のメモリ（ターゲットメモリ）と同様の動作をするか否かが検証される。この検証に問題がなければ、生成されたラッパー回路の回路情報がワークステーション８２に通知され、ＦＰＧＡ１２に対する通常の回路情報の書込みと同様に、コントローラＰＣ８０を介してＦＰＧＡ１２に、メモリ回路生成装置４００にて生成されたラッパー回路が組み込まれる。回路モデル検証装置４５０による検証で問題が発見された場合には、所用の対処をするのはいうまでもない。
【００７７】
＜＜代替品メモリを用いたメモリ回路の構築手法＞＞
図２は、図１に示した検証システム１において利用されているメモリ回路とこのメモリ回路の構築手法に着目した概略図である。
【００７８】
図示するように、エミュレータ本体１０は、エミュレータ基板１０ａ上に、ＦＰＧＡ１２（図では１個で示すが複数個でもよい）で構成されたロジック回路１４と、４個のＳＲＡＭからなるメモリ部１７と、ＣＰＵボード２０や外部メモリボード３０などの外部ボード１１（何れも図１参照）など他の基板と接続可能な外部ボード接続用Ｉ／Ｆ部９２（図１参照）の一部をなすコネクタ４６、ＦＰＧＡ１２に回路データをロードするためのコントローラ用Ｉ／Ｆ部９４の一部をなすコネクタ４８が搭載されて構成されている。
【００７９】
図１にても示したように、このエミュレータ本体１０は、回路データを生成するためのソフトウェアと回路をロードする機構を備えたコントローラＰＣ８０とコネクタ４８を介して接続される。
【００８０】
エミュレータ基板１０ａ上に搭載されたＦＰＧＡ１２内には、このＦＰＧＡ１２に内蔵している内部メモリＬＰＭ（Ｌｏｃａｌ  Ｐｌａｃｅ  Ｍｅｍｏｒｙ）やメモリ１６（本例ではＳＲＡＭ）あるいはコネクタ４６にて接続された外部メモリボード３０上の図示しない外部メモリを利用して、ターゲット回路であるシステムオンチップＳＯＣ内部のメモリ（たとえばＤＲＡＭ）と実質的に等価な動作をさせるためのラッパー回路が組み込まれる。図１にても説明したように、このラッパー回路は、メモリ回路生成装置４００にて生成されるものである。
【００８１】
図３は、外部メモリボード３０を用いた場合のメモリ回路の構成を示す。この場合、ラッパー回路は、エミュレータ本体１０のＦＰＧＡ１２内に実装される。
【００８２】
図４は、メモリ回路生成装置４００の機能ブロック図の一例である。図示するように、メモリ回路生成装置４００は、システムオンチップＳＯＣに使用するターゲットメモリの種別（たとえばＳＤＲＡＭかＳＲＡＭ）に関するメモリ種別情報Ｊ１２を取得する種別情報取得部４１２、たとえばデータのビット数やメモリ深さ（ワード；Ｗｏｒｄ）あるいはメモリ容量（メモリサイズ）などの、システムオンチップＳＯＣに使用するターゲットメモリの性能に関するメモリ仕様情報Ｊ１４を取得する仕様情報取得部４１４を備える。
【００８３】
また、メモリ回路生成装置４００は、各情報取得部４１２，４１４（纏めてメモリ情報取得部４１０ともいう）にて取得された各情報Ｊ１２，Ｊ１４を用いて、ラッパー回路を生成するラッパー回路生成部４２０を備える。ラッパー回路生成部４２０は、メモリ情報取得部４１０にて取得された各情報Ｊ１２，Ｊ１４に基づき、エミュレータ基板１０ａ上に搭載されたＦＰＧＡ１２内に内蔵している内部メモリＬＰＭやメモリ１６あるいはコネクタ４６にて接続された外部メモリボード３０上のメモリ３２（これらのメモリを纏めて以下代替品メモリともいう）を利用して、たとえばＤＲＡＭやＳＤＲＡＭなどのターゲットメモリと実質的に等価な動作をさせるためのラッパー回路を生成する。
【００８４】
上記構成において、メモリ回路生成装置４００は、たとえば、ラッパー回路を生成する機能をなす専用のハードウェア回路で構成してもよいし、パソコンやワークステーションなどの汎用のコンピュータを利用して構成してもよい。つまり、ラッパー回路生成の一連の処理をハードウェアにより実行させることもできるが、ソフトウェアを利用して実行させることもできる。たとえば、図１に示したワークステーション８２やコントローラＰＣ８０にメモリ回路生成装置４００の機能を持たせてもよい。
【００８５】
ラッパー回路生成処理をソフトウェアにより実行させる場合には、全体の動作を制御するソフトウェアであるＯＳ（オペレーティングシステム）と、前述のラッパー回路生成機能をなすためのソフトウェアであるアプリケーションプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで各種の機能を実行することが可能なたとえば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる（組み込まれる）。これにより、本発明に係るメモリ回路生成装置を、プログラムに基づいてソフトウェア的に実現するようになる。
【００８６】
記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ  ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）を含む）、光磁気ディスク（ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ  ）を含む）、もしくは半導体メモリなどよりなるパッケージメディア（可搬型の記憶媒体）により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供されてもよいし、プログラムが記録されているＲＯＭやハードディスクなどで構成されてもよい。あるいは、ソフトウェアを構成するプログラムが、有線あるいは無線による通信手段を介して配信されてもよい。
【００８７】
たとえば、ラッパー回路生成機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、ラッパー回路生成処理の効果は達成される。この場合、記憶媒体から読み出されたプログラムコード自体がラッパー回路生成機能を実現することになる。
【００８８】
また、コンピュータが読み出したプログラムコードを実行することにより、ラッパー回路生成機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステムＯＳなどが実際の処理の一部または全部を行ない、その処理によってラッパー回路生成機能が実現される場合であってもよい。
【００８９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によってラッパー回路生成機能が実現される場合でもよい。
【００９０】
図５は、メモリ回路生成装置４００における、ラッパー回路を生成するための処理手順の一例を示すフローチャートである。
【００９１】
まず、種別情報取得部４１２は、システムオンチップＳＯＣ内部に使用を希望するメモリの種類として、ＳＤＲＡＭかＳＲＡＭかを示すメモリ種別情報Ｊ１２を取得する（Ｓ１００）。このメモリ種別情報Ｊ１２の取得に際しては、ユーザによる入力を介するものであってもよい。あるいは、システムオンチップＳＯＣの設計仕様書を解読して自動的に取得する仕組みを設けてもよい。
【００９２】
ＳＲＡＭが選択された場合には（Ｓ１００−ＳＲＡＭ）、仕様情報取得部４１４は、先ずメモリ仕様情報Ｊ１４の一例として、データのビット数を示す情報を取得する（Ｓ１１０）。また、仕様情報取得部４１４はメモリ仕様情報Ｊ１４の他の一例として、メモリ深さを示す情報を取得する（Ｓ１１２）。このメモリ仕様情報Ｊ１４の取得に際しても、ユーザによる入力を介するものであってもよい。あるいは、システムオンチップＳＯＣの設計仕様書を解読して自動的に取得する仕組みを設けてもよい。
【００９３】
次に、ラッパー回路生成部４２０は、種別情報取得部４１２により取得されたメモリ種別情報Ｊ１２が示すメモリ種別と仕様情報取得部４１４により取得されたメモリ仕様情報Ｊ１４が示すビット数およびメモリ深さの各値に基づいて、ＦＰＧＡ１２内の内部メモリＬＰＭやメモリ１６（本例ではＳＲＡＭ）などの代替品メモリを利用してターゲットメモリを構成するために必要となる、代替品メモリの個数（メモリ数）を決定する（Ｓ１１４）。
【００９４】
たとえば、ラッパー回路生成部４２０は、決定したメモリ数が“１”の場合には（Ｓ１１６−ＹＥＳ）、そのメモリだけを制御する回路でよいので、直ちにラッパー回路を出力する（Ｓ１２０）。一方、メモリ数が複数の場合には（Ｓ１１６−ＮＯ）、メモリ間のインタフェースを考慮しないといけないので、ラッパー回路生成部４２０は、そのためのインタフェース回路を先ず生成する（Ｓ１１８）。この後、ラッパー回路生成部４２０は、インタフェース回路を追加したラッパー回路として出力する（Ｓ１２０）。
【００９５】
他方、ＳＤＲＡＭが選択された場合には（Ｓ１００−ＳＤＲＡＭ）、基本的な処理手順はＳＲＡＭが選択された場合と同様であるが、仕様情報取得部４１４によるメモリ深さに関する情報の取得（Ｓ１１２）の代わりに、メモリ仕様情報Ｊ１４の一例であるメモリ容量に関する情報を取得する点（Ｓ１３２）が異なる。
【００９６】
図６は、エミュレータ基板１０ａ上に搭載したメモリ１６単体の動作仕様の一例である。また、図７は、メモリ１６単体の各信号の詳細な説明を示した図表である。
【００９７】
個々のメモリ１６（本例ではＳＲＡＭ）のサイズ（メモリ容量）は、３２ビット×１２８キロバイトで、これがエミュレータ基板１０ａ上では４個実装されて全体として１２８ビット×１２８キロバイトという大きさとなっている。この単体メモリ（ＳＲＡＭ）とラッパー回路を用いて、他のメモリ（本例ではシステムオンチップＳＯＣに使用されるターゲットメモリ）の動作を実現していく。
【００９８】
図７に示した信号において、“ＡＤＶＬｎ”は、チップ固有のものであり、本実施形態では使わないので、“０（Ｌ；ロー）”に固定する。また、“ＣＥ１ｎ＠”（＠は１〜４）は、４個あるメモリ１６の使用を制御するもので、ターゲットメモリとの兼ね合いで、“０”または“１（Ｈ；ハイ）”に設定する。
【００９９】
図８は、ターゲットメモリの一例としてのＳＲＡＭのメモリモデル（メモリ動作のタイミングチャート）の一例を示す図である。この図８に示した例のＳＲＡＭモデルは、８ビット×３６７２０ワードのものである。
【０１００】
図９は、図８に示したＳＲＡＭモデルの動作を、メモリ１６などの代替品メモリやラッパー回路にて実現するために生成されたメモリ回路のモデル（以下メモリモデルともいう）の一例を示す図である。図９において、メモリ部１７内には、メモリ１６として４個のＳＲＡＭが搭載されている。なお、メモリ部１７のＡＤＶＬＤｎ、ＣＥＮｎ，ＭＯＤＥに設定されている“１‘ｂ０”は、１ビットバイナリ“０”が各端子に設定されていることを示す。
【０１０１】
メモリ部１７周辺のラッパー回路５００は、メモリ回路生成装置４００にて上述したステップＳ１００〜Ｓ１２０の手順を踏んで生成されたもので、論理エミュレーションを行なう際には、このラッパー回路５００が、好ましくはＦＰＧＡ１２にインプリメント（実装）される。
【０１０２】
図９に示すように、ラッパー回路５００は、ターゲットメモリである図８に示したメモリモデルの動作と、これと等価な動作をするように実装される代替品メモリ（本例では図６に示したメモリ１６としてのＳＲＡＭ）のタイミングとの比較に基づいて、ラッパー回路５００が構成されている。
【０１０３】
たとえば、ラッパー回路５００は、データ、制御信号とアドレス間の位相調整とデータをＦＰＧＡ１２の内部メモリＬＰＭが取り込むタイミング調整を行なうためのフリップフロップ（ＦＦ）５１０がデータ入力（Ｉ［７：０］）に１段ずつ追加されている。
【０１０４】
また、ラッパー回路５００は、データ出力（Ａ［７：０］）をメモリ１６のリード（Ｒｅａｄ）出力（ｄａｔａ  Ｏｕｔ［７：０］）とホールド（Ｈｏｌｄ）した出力の何れか一方を選択して出力する選択回路（ＳＥＬ）５１４も追加されている。さらに、入力アドレス（ＩＡ［１５：０］）のビット数がラッパー回路５００の入力（Ａ［１６：０］）よりも１ビット少ないので、図中Ａ印で示すように、入力アドレスの最上位ビットＭＳＢ側に“０”を追加してある。
【０１０５】
なお、先にも述べたように、メモリ部１７としてはエミュレータ基板１０ａ上にメモリ１６としてのＳＲＡＭが４個搭載されているが、図８に示したＳＲＡＭモデルの動作を実現するには、１個使用でよいので、１番目（図中（１）で示すもの）のＳＲＡＭのみを使用する。よって、図７の図表にも示したように、１番目のＳＲＡＭに対応するチップイネーブルＣＥ１ｎ１のみを“０”に設定し、残り（図中（２）〜（４）で示すもの）のチップイネーブルＣＥ１ｎ２〜ＣＥ１ｎ４は、“１”に固定する。
【０１０６】
なお、出力イネーブルＯＥｎに設けられているインバータ５１２は、ライトイネーブルＷＥｎを出力イネーブルＯＥｎにも利用する場合に、アクティブ極性を合わせるために設けられたものである。このインバータ５１２の出力は選択回路５１４の切替入力端子に入力されており、選択回路５１４の選択切替信号としても利用されるようになっている。
【０１０７】
図１０および図１１は、ターゲットメモリの一例としてのＳＤＲＡＭのメモリモデル（メモリ動作のタイミングチャート）の一例を示す図である。ここで、図１０は、ライト（Ｗｒｉｔｅ  ）動作時のタイミングチャートであり、図１１は、リード（Ｒｅａｄ）動作時のタイミングチャートである。なお、この図１０および図１１に示した例のＳＤＲＡＭモデルは、記憶容量が４Ｍ（メガ）のものである。
【０１０８】
図１２は、図１０および図１１に示した４ＭＳＤＲＡＭモデルの動作を、メモリ１６などの代替品メモリやラッパー回路にて実現するために生成されたメモリ回路の一例を示す図である。図１３は、このメモリ回路の各信号の状態とステートの関係を示した図表である。
【０１０９】
メモリ部１７周辺のラッパー回路５２０は、メモリ回路生成装置４００にて上述したステップＳ１００〜Ｓ３４０の手順を踏んで生成されたもので、論理エミュレーションを行なう際には、このラッパー回路５２０が、好ましくはＦＰＧＡ１２にインプリメント（実装）される。
【０１１０】
図１２に示すように、ラッパー回路５２０は、ターゲットメモリである図１０および図１１に示したメモリモデルの動作と、これと等価な動作をするように実装される代替品メモリ（本例では図６に示したメモリ１６としてのＳＲＡＭ）のタイミングとの比較に基づいて、ラッパー回路５２０が構成されている。
【０１１１】
たとえば、図６と図１０との比較により、ライトデータのタイミングが実際のメモリモデルより１Ｔ（１クロック分）だけ遅れていることが分かる。また、図６と図１１との比較により、リードデータの出力タイミングが実際のメモリモデルよりも２Ｔ（２クロック分）だけ早まっていることが分かる。メモリ回路生成装置４００は、これらの遅延量（クロック差）を加味してラッパー回路５２０を構成することとなる。
【０１１２】
たとえば、ライトデータの１Ｔ遅延に対応した回路要素として、データの下位１６ビットを制御するためのデータ１６ビット単位の書込許可信号ＤＱＭを１Ｔだけ遅延させるフリップフロップ５３２、並びに入力データＤを２Ｔだけ遅延させるフリップフロップ５３４，５３６が設けられ、後段の出力がデータ入力（ｄａｔａ  Ｉｎ  ［３１：０］）に入力されるようにしている。また、リードデータの２Ｔ遅延に対応した回路要素として、メモリ部１７のデータ出力（ｄａｔａ  Ｏｕｔ［３１：０］）を１Ｔだけ遅延させるフリップフロップ５３８が設けられている。
【０１１３】
なお、先にも述べたように、メモリ部１７としてはエミュレータ基板１０ａ上にメモリ１６としてのＳＲＡＭが４個搭載されているが、図１０および図１１に示したＳＤＲＡＭモデルの動作を実現するには、１個使用でよいので、１番目（図中（１）で示すもの）のＳＲＡＭのみを使用する。よって、図７の図表にも示したように、１番目のＳＲＡＭに対応するチップイネーブルＣＥ１ｎ１のみを使用することとし、残り（図中（２）〜（４）で示すもの）のチップイネーブルＣＥ１ｎ２〜ＣＥ１ｎ４は、“１”に固定する。
【０１１４】
また、このラッパー回路５２０は、ターゲットメモリである４ＭＳＤＲＡＭの動作と同様に、バーストの区間でライト（書込み）およびリード（読込み）の各動作（纏めてＷｒｉｔｅ／Ｒｅａｄという）を４個単位で行なわせるために、ライトイネーブルＸＷＥ（参照子Ｘはオリジナル入力の意味；以下同様）から幅４ＴのライトイネーブルパルスＷｅｎｎを生成するライトイネーブル信号発生回路５３０が追加されている。このライトイネーブルパルスＷｅｎｎがメモリ部１７のライトイネーブルＷＥｎとして使用される。
【０１１５】
また、ラッパー回路５２０は、Ｒｅａｄ／Ｗｒｉｔｅ動作時のチップイネーブルＣＥ１ｎ＠（本例では＠は１のみ）も４個単位で制御するために、チップセレクトＸＣＳから４Ｔ幅の出力イネーブルＯＥｎおよびチップイネーブルＣＥ１ｎ１を生成するための回路要素が追加されている。
【０１１６】
また、ラッパー回路５６０は、読出し時の処理対応のため、書込み時と同様に、インクリメントされた読出アドレスの最上位ビットＭＳＢを使って出力を制御する回路として、先ずチップイネーブルＣＥ１ｎ１，ＣＥ１ｎ３とＡＤＶＬＤｎ信号を制御する回路要素として、コマンドデコーダ５４０、ステートマシン５４２、ＡＤＶＬ信号生成回路５４４を追加し、さらに出力イネーブル信号ＯＥｎを制御する回路要素として、出力イネーブル信号生成回路５４６およびフリップフロップ５４８を追加している。
【０１１７】
また、本実施形態のラッパー回路５２０のアドレスバス入力（Ａ［１６：０］）には、Ｒｅａｄ／Ｗｒｉｔｅ動作時のバースト動作（４個単位での動作）のためにアドレスＡｄｄｒをインクリメントする回路要素として、Ｘ方向アドレス入力ＡＸおよびＹ方向アドレス入力ＡＹをメモリ１６のアドレスＡｄｄｒと対応付けるアドレス信号生成回路（ｍａｋｅ  Ａｄｄｒｅｓｓ）５５０、およびＲｅａｄ／Ｗｒｉｔｅ動作時に４個単位でアドレスを制御するためのアドレス加算回路（Ａｄｄｒ１＝Ａｄｄｒ１＋１）５５２が追加されている。
【０１１８】
アドレス加算回路５５２は、アドレス信号生成回路５５０にて生成されたアドレスＡｄｄｒに基づき、“Ａｄｄｒ１＝Ａｄｄｒ１＋１”を順に３回実行し、計４つのアドレス（Ａｄｄｒ，Ａｄｄｒ＋１，Ａｄｄｒ＋２，Ａｄｄｒ＋３）をメモリ部１７のアドレス入力（Ａ［１６：０］）に設定する。
【０１１９】
たとえば、１番目のＳＲＡＭに対応するチップイネーブルＣＥ１ｎ１およびＡＤＶＬｎに追加されているコマンドデコーダ（Ｃｏｍｍａｎｄ  Ｄｅｃｏｄｅｒ  ）５４０、ステートマシン５４２、およびＡＤＶＬ信号生成回路５４４は、チップセレクトＸＣＳから４Ｔ幅のチップイネーブルＣＥ１ｎ１を生成するためのものである。また、出力イネーブルＯＥｎに追加されている出力イネーブル信号生成回路（ＯＥｎ＿Ｇｅｎ  ）５４６およびフリップフロップ５４８は、チップセレクトＸＣＳから４Ｔ幅の出力イネーブル信号ＯＥｎを生成するためのものである。
【０１２０】
ここで、コマンドデコーダ５４０は、それぞれメモリ回路外部から入力されるチップセレクトＸＣＳ、ライトイネーブルＸＷＥ、ローアドレスストローブＸＲＡＳ（Ｒｏｗ  Ａｄｄｒｅｓｓ  Ｓｔｒｏｂｅ）、カラムアドレスストローブＸＣＡＳ（Ｃｏｌｕｍｎ  Ａｄｄｒｅｓｓ  Ｓｔｒｏｂｅ  ）、リフレッシュＸＲＦＳＨ（Ｒｅｆｒｅｓｈ  ）、およびプリチャージＸＰＲＥ（Ｐｒｅｃｈａｒｇｅ  ）の各オリジナルの信号に基づいて出力すべきコマンドを判断し、図１３に示す各コマンド（Ｃｏｍｍａｎｄ  ）を図１０や図１１に示すタイミングで出力する。
【０１２１】
ステートマシン５３６は、コマンドデコーダ５３０から出力されたコマンドに基づき、メモリ回路全体の動作中における動作状態を示すステート情報を出力する。すなわち、図１３に示すように、チップセレクトＸＣＳ、ライトイネーブルＸＷＥ、ローアドレスストローブＸＲＡＳ、カラムアドレスストローブＸＣＡＳ、リフレッシュＸＲＦＳＨ、およびプリチャージＸＰＲＥの状態の組合せでステート情報が決定される。
【０１２２】ステートマシン５４２は、コマンドデコーダ５４０から出力されたコマンドを用いてステートを判断する。ここで出力されたステートとアドレス加算回路５５２で生成されたアドレスの最上位ビットを用いてＡＤＶＬ信号生成回路５４４でチップイネーブルＣＥ１ｎ１信号とＡＤＶＬＤｎ信号を生成する。
【０１２３】
ＡＤＶＬ信号生成回路５４４は、ステートマシン５３６から出力されたステート情報に基づき、１番目のＳＲＡＭに対応するチップイネーブル信号ＣＥ１ｎ１を、アクティブ期間のみ４Ｔ単位で“０”とする。また、ＡＤＶＬ信号生成回路５４４は、ＡＤＶＬＤｎ信号を、書込み時と読出し時に４Ｔ単位で“０”とし、それ以外の状態では“１”とする。
【０１２４】
出力イネーブル信号生成回路５４６は、コマンドデコーダ５４０から出力されたコマンドを用いてパルス幅が４クロック分ある出力イネーブル信号ＯＥｎを出力する。ライトイネーブル信号発生回路５３０は、１Ｔ（１ｃｌｋ）の幅しか持たないライトイネーブル信号ＸＷＥから４Ｔの幅のライトイネーブル信号ＷＥｎを生成する。
【０１２５】
書込み時は、図１０のタイミングチャートにおいて、ＤＥＳＬコマンドが発行されてから次のＡＣＴのタイミングでのＡＸをＸ方向のアドレスとして取り込むとともに、１クロック遅れたタイミングのＡＹをＹ方向のアドレスとして取り込む。そしてＡＣＴの次にＷＲＩＴＥコマンドを取り込み、次のサイクルから書込み動作が始まる。この場合、アドレスとして取り込むのは図１０のタイミングチャート中ＡｄｄｒからＡｄｄｒ＋３までの区間で、実際に書き込まれるのはＤａｔａ１からＤａｔａ４までである。そしてＰＡＬＬ（ＰＲＥＣＨＡＲＧＥ  ＡＬＬ  ）が読み込まれたところで書込み動作は終了する。別のアドレスに書き込む場合は引き続きＡＣＴコマンドからの工程を繰り返す。
【０１２６】
読出し時は、図１１のタイミングチャートにおいて、ＤＥＳＬコマンドが発行されてから次に発行されたＡＣＴコマンドでＡＸを取り込み、次のクロックでＡＹを取り込む。そして次のＲＥＡＤコマンドが取り込まれてから次のタイミングで読み込んだアドレスＡＤＤＲに格納されている値Ｄａｔａ１を読み出す。同様な読出し動作をＡＤＤＲ＋３まで実施する。そしてＰＡＬＬ（ＰＲＥＣＨＡＲＧＥ  ＡＬＬ  ）が読み込まれたところで読出し動作は終了する。別のアドレスを読み出す場合は引き続きＡＣＴコマンドからの工程を繰り返す。
【０１２７】
図１４は、メモリモデルの動作を、メモリ１６などの代替品メモリやラッパー回路にて実現するために生成されたメモリ回路の他の一例を示す図である。図１２に示したラッパー回路５２０は、エミュレータ基板１０ａ上に搭載されたメモリ１６としての４個のＳＲＡＭのうちの１個のみを使用してターゲットメモリとしての図１０および図１１に示した４ＭＳＤＲＡＭモデルと等価な動作をするメモリ回路を構成する際のラッパー回路であった。これに対して、図１４に示すラッパー回路５６０は、複数のメモリを使用することで、ターゲットメモリモデルと等価な動作をするメモリ回路を構成する際のラッパー回路である。なお、ここでは、ターゲットメモリモデルとして、８ＭのＳＤＲＡＭを設計する場合について説明する。
【０１２８】
この８ＭＳＤＲＡＭの基本的な動作は４ＭＳＤＲＡＭと同様であるが、エミュレータ基板１０ａ上に実装された１つのメモリ１６（ＳＲＡＭ）では全てのデータを格納することができない。このために、アドレスによってアクセスする実装メモリが変わるような処理回路を設けている点に特徴を有する。本実施形態では、１番目（図中（１）で示すもの）のＳＲＡＭと３番目（図中（３）で示すもの）のＳＲＡＭを使用することとする。以下具体的に説明する。
【０１２９】
本実施形態のラッパー回路５６０は、バースト動作（４個単位での動作）のためにアドレスＡｄｄｒをインクリメントするアドレス加算回路５５２のカウンタ出力の最上位ビット側ＭＳＢをみてデータの格納先を決定する回路構成としている。具体的には、アドレス加算回路５５２の最上位ビット出力Ａｄｄｒ１［１７］をＡＤＶＬ信号生成回路５４４に入力していることが、図１２で示した構成と異なる。また、ＡＤＶＬ信号生成回路５４４は、１番目（図中（１）で示すもの）のＳＲＡＭに対応するチップイネーブルＣＥ１ｎ１だけでなく、３番目（図中（３）で示すもの）のＳＲＡＭに対応するチップイネーブルＣＥ１ｎ３も制御するようにしていることが、図１２で示した構成と異なる。
【０１３０】
ＡＤＶＬ信号生成回路５４４は、アドレス加算回路５５２から入力されたアドレス（Ａｄｄｒ１［１７］）に応じてチップイネーブルＣＥ１ｎ１，ＣＥ１ｎ３を切り替えることで、データ格納先のメモリ１６を選択する。たとえば、アドレスＡｄｄｒ１［１７］＝０のときはチップイネーブルＣＥ１ｎ１のみをアクティブ“０”に設定することで１番目のＳＲＡＭを使用し、アドレスＡｄｄｒ１［１７］＝１のときはチップイネーブルＣＥ１ｎ３のみをアクティブ“０”に設定することで３番目のＳＲＡＭを使用する。
【０１３１】
このような構成により、読出し時にも、書込み時と同様に、インクリメントされた読出アドレスの最上位ビット（Ａｄｄｒ１［１７］）を使うことができ、書込み時および読出し時の何れにおいても、２個のＳＲＡＭを切替使用することで、容量８Ｍへの対応を採ることができる。
【０１３２】
以上のように、ターゲットメモリと同様の動作を、代替品メモリおよびラッパー回路を用いて実現する３つの事例（ターゲットメモリとしのＳＲＡＭ対応とＳＤＲＡＭ対応）を説明したが、ターゲットメモリの種別は、ＳＲＡＭやＳＤＲＡＭに限定されるものではない。
【０１３３】
また、ターゲットメモリのメモリサイズ（メモリ容量）に関しても、上記実施形態では４Ｍや８Ｍの事例を説明したが、他のメモリ容量であってもかまわない。たとえば、１６Ｍに対応するには、エミュレータ基板１０ａに搭載されている４個のＳＲＡＭをアドレスの最上位側の２ビット分の値（００，０１，１０，１１）に応じて切替使用する構成とすることで対応を採ることが可能である。
【０１３４】
また、上記実施形態では、エミュレータ基板１０ａ上のメモリ１６を使用する例で説明したが、外部メモリボード３０に搭載されているメモリ３２を使用してもよいのはいうまでもない。特に、エミュレータ基板１０ａ上に搭載されているメモリ１６の全容量でターゲットメモリの全容量分を賄いきれなくなったときには、外部メモリボード３０上のメモリ３２を使用することが必須となる。
【０１３５】
以上説明したように、上記実施形態の構成によれば、使用予定のメモリ（すなわちターゲットメモリ）を入手していなくても、動作仕様が分かっている限り、エミュレータ装置に使用しているメモリ（実施形態ではメモリ１６やメモリ３２）と、このメモリにターゲットメモリの動作と等価な動作をさせるためのラッパー回路を作成することで、メモリ周辺回路の検討が可能になる。加えて、ラッパー回路を、エミュレータ装置に使用している書換可能な論理デバイス（実施形態ではＦＰＧＡ１２）に組み込むことも可能で、便利である。
【０１３６】
すなわち、使用予定のメモリと置き換える機構をエミュレータ装置に用意してあるので、本物のメモリを入手した時点で置き換えることができ、検討作業を円滑に進めることができる。また、製品化した後も、生産中止などで他のメモリに置き換える際の検討作業にも容易に用いることができ、検討期間の短縮やコストダウンなどに寄与することもできる。
【０１３７】
＜＜ラッパー回路およびメモリ回路の検証並びに生成の手法＞＞
次に、メモリ回路生成装置４００にて生成されたラッパー回路やこのラッパー回路を備えたメモリ回路の検証手法並びにメモリ回路のモデルを生成する手法について説明する。
【０１３８】
図１５は、図１に示した回路モデル検証システム９に着目した概略図である。論理エミュレーションを行なうためのエミュレータ本体１０には書換可能なデバイスであるＦＰＧＡ１２が実装されている。エミュレータ本体１０は、外部のメモリ３２を実装した基板である外部メモリボード３０と外部ボード接続用Ｉ／Ｆ部９２を介して接続されている。なお、エミュレータ本体１０には、ＦＰＧＡ１２の他に、メモリ１６も実装されている。
【０１３９】
ＦＰＧＡ１２に実装する回路データは、エミュレータ本体１０と接続されているコントローラＰＣ８０やワークステーション８２などの制御用コンピュータ４９０からケーブルを介して送られる。また、エミュレーションのテストベクタ（検証データ）は、エミュレータ本体１０と接続されているデータ入出力用ＰＣ８６からケーブルを介して送られる。また、論理エミュレーションの検証結果（エミュレーション結果）も同様に、ケーブルを介してデータ入出力用ＰＣ８６に送られる。なお、論理エミュレーション時のデジタルパターンの観測結果はロジアナ８８にて取得される。
【０１４０】
本実施形態の回路モデル検証装置４５０は、ラッパー回路やメモリ回路の検証時に論理エミュレーションの検証結果も参照するようになっている。このため、回路モデル検証装置４５０と制御用コンピュータ４９０とはケーブルにて接続されており、必要なときに論理エミュレーションの実行を制御用コンピュータ４９０に指示可能に構成されている。制御用コンピュータ４９０は、論理エミュレーション実行時に、論理エミュレーションのテストベクタ（検証データ）をエミュレータ本体１０に送るようデータ入出力用ＰＣ８６を制御する。論理エミュレーションの検証結果（エミュレーション結果）は、データ入出力用ＰＣ８６やロジアナ８８とケーブルにて接続された回路モデル検証装置４５０に送られる。
【０１４１】
なお、回路モデル検証装置４５０は、データ入出力用ＰＣ８６や制御用コンピュータ４９０などと兼用されるものであってもよい。つまり、１つのコンピュータで構成してもよい。
【０１４２】
図１６は、回路モデル検証装置４５０の機能ブロック図の一例である。図１６（Ａ）に示すように、回路モデル検証装置４５０は、システムオンチップＳＯＣに使用するメモリの種別（たとえばＳＤＲＡＭかＳＲＡＭ）に関するメモリ種別情報Ｊ１２を取得する種別情報取得部４６２、たとえばデータのビット数やメモリ深さ（ワード；Ｗｏｒｄ）あるいはメモリ容量（メモリサイズ）などの、システムオンチップＳＯＣに使用するメモリ（ターゲットメモリ）の性能に関するメモリ仕様情報Ｊ１４を取得する仕様情報取得部４６４を備える。
【０１４３】
また、回路モデル検証装置４５０は、各情報取得部４６２，４６４（纏めてメモリ情報取得部４６０ともいう）にて取得された各情報Ｊ１２，Ｊ１４を用いて、メモリ回路生成装置４００にて生成されたラッパー回路がターゲットメモリと同様の動作をするか否かを検証する動作検証部４７０を備える。
【０１４４】
さらに、回路モデル検証装置４５０は、個別回路のモデルを生成する回路モデル生成装置の機能をなすように、動作検証部４７０における判定結果が元の回路（ターゲットメモリなどのターゲット回路）と同じ動作をしない旨を示していることを条件として、比較結果を参照して論理検証システム上にモデリングした回路モデルを修正し、この修正後のモデルについて同様の処理を繰り返すように制御する制御部４８８を備える。
【０１４５】
図１６（Ｂ）に示すように、動作検証部４７０は、各情報Ｊ１２，Ｊ１４からシステムレベル設計モデル６０２と検証用テストベクタ６０４とを抽出し、抽出した各モデル６０２，６０４を用いてシステムレベルのシミュレーションを行なう第２の検証部の一例であるシステムレベル検証部４７２を有する。
【０１４６】
また動作検証部４７０は、各情報Ｊ１２，Ｊ１４からターゲットメモリの機能記述言語モデルによるメモリ回路モデル６１２を抽出し、抽出したメモリ回路モデル６１２とシステムレベル検証部４７２にて取得された検証用テストベクタ６１４とを用いて機能記述レベルのシミュレーションを行なう第２の検証部の他の一例である機能記述レベル検証部４７４を有する。
【０１４７】
さらに動作検証部４７０は、システムレベル検証部４７２にて取得された検証用テストベクタ６２４とメモリ回路生成装置４００にて設計したエミュレーション用モデリング回路の情報６２４とを用いて動作確認を行なうことでエミュレーション結果を取得する論理検証部（エミュレート部）４７６を有する。
【０１４８】
なお、本実施形態の回路モデル検証装置４５０は、ラッパー回路やメモリ回路の検証時に論理エミュレータ装置５による論理エミュレーションの検証結果を参照するようになっている。このため、論理検証部４７６は、実際には論理エミュレーションを行なう必要はなく、その指示と検証結果の取得を行なうものであればよい。
【０１４９】
また、動作検証部４７０は、システムレベル検証部４７２、機能記述レベル検証部４７４、および動作検証部４７６にて得られた検証結果を比較することで、メモリ回路生成装置４００にて生成されたラッパー回路がターゲットメモリと同様の動作をするか否かを判定する検証結果比較部４７８を有する。
【０１５０】
なお、検証結果比較部４７８は、各検証結果のファイル出力が何れも同じファイル形式でないと比較ができないため、異なるファイル形式を特定のファイル形式に変換するファイル変換部４８０を内部に備える。
【０１５１】
本実施形態では、システムレベル検証部４７２から出力される出力パターンファイルが、他の機能記述レベル検証部４７４や論理検証部４７６から出力される出力ファイルの形式と異なるものとなっている。このため、本実施形態のファイル変換部４８０は、システムレベル検証部４７２による検証結果として得られる出力パターンファイルを残りの検証部４７４，４７６の出力ファイルの形式に合うようにファイル変換処理を実行する。
【０１５２】
上記構成において、回路モデル検証装置４５０は、たとえばラッパー回路やメモリ回路の検証機能をなす専用のハードウェア回路で構成してもよいし、パソコンやワークステーションなどの汎用のコンピュータを利用して構成してもよい。つまり、ラッパー回路やメモリ回路の検証ための一連の処理をハードウェアにより実行させることもできるが、ソフトウェアを利用して実行させることもできる。たとえば、図１に示したワークステーション８２やコントローラＰＣ８０に回路モデル検証装置４５０の機能を持たせてもよい。さらに、メモリ回路生成装置４００と回路モデル検証装置４５０とは、一体的に構成されたものであってもよい。
【０１５３】
メモリ回路などの検証処理をソフトウェアにより実行させる場合には、全体の動作を制御するソフトウェアであるＯＳ（オペレーティングシステム）と、前述のメモリ回路などの検証機能をなすためのソフトウェアであるアプリケーションプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで各種の機能を実行することが可能なたとえば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる（組み込まれる）。これにより、本発明に係る回路モデル検証装置を、プログラムに基づいてソフトウェア的に実現するようになる。
【０１５４】
記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ  ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）を含む）、光磁気ディスク（ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ  ）を含む）、もしくは半導体メモリなどよりなるパッケージメディア（可搬型の記憶媒体）により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供されてもよいし、プログラムが記録されているＲＯＭやハードディスクなどで構成されてもよい。あるいは、ソフトウェアを構成するプログラムが、有線あるいは無線による通信手段を介して配信されてもよい。
【０１５５】
たとえば、メモリ回路などの検証機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、メモリ回路などの検証処理の効果は達成される。この場合、記憶媒体から読み出されたプログラムコード自体が検証処理機能を実現することになる。
【０１５６】
また、コンピュータが読み出したプログラムコードを実行することにより、ラッパー回路生成機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステムＯＳなどが実際の処理の一部または全部を行ない、その処理によってラッパー回路生成機能が実現される場合であってもよい。
【０１５７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によってラッパー回路生成機能が実現される場合でもよい。
【０１５８】
図１７は、ファイル変換部４８０の処理機能を説明する図である。ここで、図１７（Ａ）は、ファイル変換部４８０の詳細例を示す機能ブロック図である。また、図１７（Ｂ）は、ファイル変換部４８０におけるファイル変換の処理手順の一例を示すフローチャートである。
【０１５９】
また、図１８は、ファイル変換部４８０にて生成される結合ファイルの一例を示す図１８（Ａ）、および図１８（Ａ）の結合ファイルについて、機能記述レベル検証部４７４や論理検証部４７６の出力ファイルの形式と合致するようにファイル変換されたファイルの一例を示す図１８（Ｂ）である。
【０１６０】
図１７（Ａ）に示すように、ファイル変換部４８０は、システムレベル検証部４７２による検証結果として得られる出力パターンファイルを取得するシステムレベル出力ファイル取得部４８２と、システムレベル出力ファイル取得部４８２が取得した出力パターンファイルに含まれている各種ファイルを結合するファイル結合部４８４と、ファイル結合部４８４にて結合された結合ファイルのファイル形式が、残りの検証部４７４，４７６の出力ファイルの形式に合うようにファイル変換処理を実行し、シミュレーション結果ファイルとして出力する変換実行部４８６とを備える。
【０１６１】
図１７（Ｂ）に示すように、システムレベル出力ファイル取得部４８２は、先ず、システムレベル検証部４７２から検証結果として得られる出力パターンファイルを取得する（Ｓ３００）。システムレベル検証部４７２によるシステムレベルシミュレータの出力パターンファイルは、基本情報ファイル、信号情報ファイル、および信号ファイルの３種類を含む。基本情報ファイルには、作成日時やタイムスケールなどの情報が含まれている。信号情報ファイルには、シミュレーション結果をプローブした信号の名前が記されている。信号ファイルには、時間ごとの信号の動作情報が含まれている。
【０１６２】
ここで、本実施形態の機能記述レベル検証部４７４や論理検証部４７６が取り扱うことのできるファイル形式は、図１８（Ｂ）に示すファイルと同様に、同一時点のデータがその時点の時間情報に対して纏まった形式のものでなければならない。よって、基本情報ファイル、信号情報ファイル、および信号ファイルの３種類のファイルをそのまま機能記述レベル検証部４７４や論理検証部４７６の検証用テストベクタとして入力しても、適切な比較検証ができない。
【０１６３】
そこで、先ず、ファイル結合部４８４は、これらの３種類のファイルを結合して、結合ファイル（図１８（Ａ）を参照）を出力する（Ｓ３１０）。この結合ファイルには、時間情報が全ての信号の変化に付加されているが、これでもなお残りの検証部４７４，４７６が取り扱うことができるファイル形式（図１８（Ｂ）を参照）と合致していないので、機能記述レベル検証部４７４や論理検証部４７６にて適切な比較検証ができない。つまり、この結合ファイルのままでは、依然として、機能記述レベル検証部４７４や論理検証部４７６に入力することができない。
【０１６４】
たとえば、図１８（Ａ）に示す結合ファイルでは、時間情報（＃の後の数値が時間；単位ピコ秒）とデータとを１つずつ対にして順次並べる形式でファイル出力されており、図１８（Ｂ）に示すファイルのように、同一時点のデータがその時点の時間情報に対して纏まった形式にはなっていない。本実施形態の機能記述レベル検証部４７４や論理検証部４７６における比較検証では、回路モデルのファイル形式も図１８（Ｂ）に示すファイルと同様の形式であり、比較対象のファイル形式が共通のものなければ、適切な比較検証ができない。
【０１６５】
そこで、変換実行部４８６は、ファイル結合部４８４から出力された結合ファイルのファイル形式を、残りの検証部４７４，４７６が取り扱うことができるように、同じ時間情報をもつデータを纏めた形式に変換する（Ｓ３２０）。この後、変換実行部４８６は、ファイル変換後のシミュレーション結果ファイルを、機能記述レベルシミュレータ用の検証用テストベクタ６１４として機能記述レベル検証部４７４に入力するとともに、エミュレータ用の検証用テストベクタ６２４として論理検証部４７６に入力する（Ｓ３２２）。
【０１６６】
図１９は、回路モデル検証装置４５０における、メモリ回路生成装置４００にて生成されたラッパー回路やラッパー回路を備えたメモリ回路についての検証手順およびメモリ回路の生成手順の一例を示すフローチャートである。
【０１６７】
先ず、システムレベル検証部４７２は、ＳｙｓｔｅｍＣ（商標）やＳｐｅｃＣあるいはＣｏＷａｒｅＣといったＣ言語を基本としたシステムレベル言語で設計されたシステムレベル設計モデル（システム言語回路モデル）６０２と検証用テストベクタ６０４とを用いて、システムレベルシミュレーションを行なう（Ｓ４００）。そして、このシミュレーションで得られた出力パターンファイルを機能記述レベルシミュレータおよびエミュレータ用の検証用テストベクタとする。
【０１６８】
なお、図１７にても説明したように、各検証結果のファイル出力は何れも同じファイル形式でないと比較ができないため、他と異なるファイル形式であるシステムレベルシミュレーションの検証結果の出力パターンファイルをファイル変換部４８０にてファイル変換してから、機能記述レベルシミュレータ用の検証用テストベクタ６１４として機能記述レベル検証部４７４に入力するとともに、エミュレータ用の検証用テストベクタ６２４として論理検証部４７６に入力する（Ｓ４０２）。
【０１６９】
次に、機能記述レベル検証部４７４は、Ｖｅｒｉｌｏｇ−ＨＤＬやＶＨＤＬといったＲＴＬ（レジスタ・トランスファ・レベル）の機能記述言語（ＨＤＬ）で設計された、実際のシステムオンチップＳＯＣに搭載される機能記述言語モデルによるメモリ回路モデル（機能記述言語回路モデル）６１２と検証用テストベクタ６１４とを用いて論理シミュレーション（機能記述レベルシミュレート）を実施する（Ｓ４１０）。
【０１７０】
次に、論理検証部４７６は、検証用テストベクタ６２４とメモリ回路生成装置４００にて設計したエミュレーション用モデリング回路（エミュレータ用回路モデル）６２２とを用いて動作確認を行なう（Ｓ４２０）。ただし、実際には、論理検証部４７６は、エミュレート処理を論理エミュレータ装置５に指示し、その検証結果を取得すればよい。
【０１７１】
次に、検証結果比較部５７８は、このエミュレータにて得られた検証結果（エミュレーション結果）６２６を、システムレベルシミュレーションの検証結果（第２の検証結果の一例）６０６および論理シミュレーション（機能記述レベルシミュレート）の検証結果（第２の検証結果の他の一例）６１６と、それぞれ比較する（Ｓ４３０）。
【０１７２】
制御部４８８は、検証結果比較部５７８による比較結果出力が同一であれば（Ｓ４３２−ＹＥＳ）、メモリ回路生成装置４００にて生成したモデルが元のメモリ（ターゲットメモリ）と同じ動作をするものと判断し、検証処理や回路モデルの生成処理を終了させる。結果が異なった場合には（Ｓ４３２−ＮＯ）、制御部４８８は、比較結果をメモリ回路生成装置４００に通知し、回路モデルの再構成を指示する。
【０１７３】
メモリ回路生成装置４００は、回路モデル検証装置４５０から通知された比較結果を参照して、ラッパー回路のモデルを修正する。これを受けて、回路モデル検証装置４５０は、再度動作確認をする。回路モデル検証システム９の各機能要素は、このような処理を出力結果が一致するまで実施する。
【０１７４】
なお、上記実施形態では、システムレベルシミュレーションおよび論理シミュレーションの検証結果と、論理エミュレータ装置５を利用した検証結果とを比較評価して、ターゲットメモリと同様の動作をメモリ回路生成装置４００にて生成した回路が実行するか否かを判定していたが、判定手法は、これに限定されるものではない。
【０１７５】
たとえば、システムレベルシミュレーションおよび論理シミュレーションの検証結果の何れか一方のみと論理エミュレータ装置５を利用した検証結果とを比較評価してターゲットメモリと同様の動作をメモリ回路生成装置４００にて生成した回路が実行するか否かを判定してもよい。ただし、判定精度、つまりメモリ回路生成装置４００にて生成したラッパー回路やメモリ回路の回路モデルの品質が低下することに注意する必要がある。
【０１７６】
また、論理エミュレーションによる検証結果と他の検証手法による検証結果と比較することで、論理エミュレータ上にモデリングした回路がターゲット回路と同じ動作をするか否かを確認するようにしているので、メモリモデルに限らず、複数の検証結果の整合を取ることができ、生成された回路モデルの品質の信頼性を高めることができる。
【０１７７】
また、上記実施形態では、論理エミュレータ装置にモデリングされる個別回路として、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路を対象とし、このメモリ回路のモデルの検証や回路モデルの生成について説明したが、個別回路は、このようなメモリ回路に限定されるものではない。個別回路は、代替品メモリとラッパー回路とにより構成されるメモリ回路に限らず、代替品を用いたその他の等価回路に上記実施形態を適用しても、上記で述べたと同様の効果を享受することができる。
【０１７８】
また、上記実施形態では、ファイル変換部４８０によるファイル変換の対象をシステムレベル検証部４７２からの出力ファイルに対して行なうものとして説明したが、ファイル変換の対象は、システムレベル検証部４７２からの出力ファイルに限定されるものではない。各検証部が取り扱うことのできるファイル形式は、各々の検証システムに依存するからである。
【０１７９】
何れにしても、各検証部が取り扱うことのできるファイル形式が異なる場合に、統一したファイル形式となるように、何れかの（あるいは全ての）出力ファイルに対してファイル変換処理を加えることで、全体を統一（共通）したファイル形式にするものであればよい。
【０１８０】
以上説明したように、上記実施形態の構成によれば、共通のテストパターンによるシステムレベルシミュレーションおよび論理シミュレーションとの結果とメモリ回路生成装置４００にて生成されたラッパー回路の論理エミュレータ装置５を利用した検証結果との整合を取ることで、メモリ回路生成装置４００にて生成したラッパー回路やこのラッパー回路を含むメモリ回路の回路モデルの品質の信頼性が高まる。
【０１８１】
また、検証結果にて問題が発見された場合には、その結果を反映させた修正モデルを再構成し、検証システムに組み込まれているエミュレータ装置により再度検証することができる。ここで、メモリ回路生成装置４００にて生成されたラッパー回路を、論理エミュレータ装置５の回路構成が可変であるＦＰＧＡ１２に組み込むようにしているので、検証中にＦＰＧＡ１２の回路構成を変更して機能確認を繰り返し行ない、最終のラッパー回路やメモリ回路を決定することができる。これによって、ラッパー回路やメモリ回路を比較的短期間に決定することも可能となる。
【０１８２】
加えて、ラッパー回路やメモリ回路の繰返し検証と合わせて、システム全体（上記実施形態ではシステムオンチップＳＯＣ）の論理回路検証（評価）を実回路に近い動作速度で行なうこともできる。
【０１８３】
また、各検証結果の出力ファイルの形式が異なるものである場合には、異なる検証手段の結果を共通のデータ形式に変換し、テストパターンとして取り扱うようにすることで、テストパターンの作成も一度で済み、設計期間短縮が期待できる。
【０１８４】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。
【０１８５】
また、上記の実施形態は、クレーム（請求項）にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
【０１８６】
たとえば、上記実施形態では、論理エミュレータ装置に組み込むメモリ回路の生成手法や検証手法に関して説明したが、上記実施形態の適用範囲は、論理エミュレータ装置上のメモリ回路に限らず、電気回路内においてデータの一時格納などのために使用されるあらゆるメモリ回路に適用可能である。
【０１８７】
【発明の効果】
以上のように、本発明によれば、ターゲットメモリの所望のメモリ動作を、予め論理エミュレータ装置を構成するボード上に搭載されているメモリあるいは外部メモリと書換可能な論理デバイス（たとえばＦＰＧＡ）に組み込んだラッパー回路とで実現するようにしたので、メモリ周辺回路の変更をエミュレータ装置に組み込まれているラッパー回路にて対応を採ることができ、事実上、メモリ周辺回路のハード的な変更を不要化することができる。
【０１８８】
また、使用予定のメモリと置き換える機構をエミュレータ装置に組み込んであるので、本物のメモリを入手した時点での置換や製品化後の生産中止などによる他メモリへの置換の際の検討作業が容易であり、検討期間の短縮やコストダウンに寄与することができる。
【０１８９】
また、生成されたラッパー回路やこのラッパー回路を含むメモリ回路の動作検証する際には、論理エミュレータ装置による検証結果とこの論理エミュレータ装置を用いた検証手法以外の手法による検証結果と比較することで、論理エミュレータ上のメモリモデルが元のメモリ（ターゲットメモリ）と同じ動作をするか否かを判定するようにしたので、複数の検証結果の整合を取ることができ、生成されたメモリモデルの品質の信頼性を高めることができるようになった。
【０１９０】
また、論理エミュレーションによる検証結果と他の検証手法による検証結果と比較することで、論理エミュレータ上にモデリングした回路がターゲット回路と同じ動作をするか否かを確認するようにしているので、メモリモデルに限らず、複数の検証結果の整合を取ることができ、生成された回路モデルの品質の信頼性を高めることができる。
【０１９１】
また、このような回路モデル検証方法および装置の手法を利用し、比較結果が一致しなければ、比較結果を参照して回路モデルを修正し、再度、論理エミュレーションによる検証結果と他の検証手法による検証結果と比較するようにすれば、ターゲット回路と等価な代替品を用いた個別回路のモデルを簡易かつ確実に生成することができる。これにより、論理エミュレーションの精度も向上する。
【図面の簡単な説明】
【図１】論理エミュレーションシステムの概略構成を示す図である。
【図２】図１に示した検証システムにおいて利用されているメモリ回路とこのメモリ回路の構築手法に着目した概略図である。
【図３】外部メモリボードを用いた場合のメモリ回路の構成を示す。
【図４】メモリ回路生成装置の機能ブロック図の一例である。
【図５】メモリ回路生成装置における、ラッパー回路を生成するための処理手順の一例を示すフローチャートである。
【図６】エミュレータ基板上に搭載したメモリ単体の動作仕様の一例である。
【図７】メモリ単体の各信号の詳細な説明を示した図表である。
【図８】ターゲットメモリの一例としてのＳＲＡＭのメモリモデル（メモリ動作のタイミングチャート）の一例を示す図である。
【図９】図８に示したＳＲＡＭモデルの動作を、代替品メモリやラッパー回路にて実現するために生成されたメモリ回路の一例を示す図である。
【図１０】ターゲットメモリの一例としてのＳＤＲＡＭのライト動作時におけるメモリモデルの一例を示す図である。
【図１１】ターゲットメモリの一例としてのＳＤＲＡＭのリード動作時におけるメモリモデルの一例を示す図である。
【図１２】図１０および図１１に示した４ＭＳＤＲＡＭモデルの動作を、代替品メモリやラッパー回路にて実現するために生成されたメモリ回路の一例を示す図である。
【図１３】図１２のメモリ回路の各信号の状態とステートの関係を示した図表である。
【図１４】８ＭＳＤＲＡＭモデルの動作を、代替品メモリやラッパー回路にて実現するために生成されたメモリ回路の一例を示す図である。
【図１５】図１に示した回路モデル検証システムに着目した概略図である。
【図１６】回路モデル検証装置の機能ブロック図の一例である。
【図１７】ファイル変換部の処理機能を説明する図である。
【図１８】結合ファイルの一例を示す図（Ａ）、および図（Ａ）の結合ファイルをファイル変換したファイルの一例を示す図（Ｂ）である。
【図１９】回路モデル検証装置における、ラッパー回路やラッパー回路を備えたメモリ回路についての検証手順およびメモリ回路の生成手順の一例を示すフローチャートである。
【符号の説明】
１…検証システム、５…論理エミュレータ装置、７…メモリ回路構築システム、９…回路モデル検証システム、１０…エミュレータ本体、１１…外部ボード、１２…ＦＰＧＡ、１４…ロジック回路、１６…メモリ、１８…テストベンチ回路、２０…ＣＰＵボード、２２…ＣＰＵ、３０…外部メモリボード、３２…メモリ３２、８０…コントローラＰＣ、８２…ワークステーション、８４…データ入出力用ＰＣ、８６…データ入出力用ＰＣ、８８…ロジアナ、９０…インタフェース部、９２…外部ボード接続用Ｉ／Ｆ部、９４…コントローラ用Ｉ／Ｆ部、９６ａ，９６ｂ…データ用Ｉ／Ｆ部、９８…ロジアナ用Ｉ／Ｆ部、４００…メモリ回路生成装置、４１０…メモリ情報取得部、４１２…種別情報取得部、４１４…仕様情報取得部、４２０…ラッパー回路生成部、４５０…回路モデル検証装置（回路モデル生成装置）、４６２…種別情報取得部、４６２…仕様情報取得部、４７０…動作検証部、４７２…システムレベル検証部、４７４…機能記述レベル検証部、４７６…論理検証部、４７８…検証結果比較部、４８０…ファイル変換部、４８２…システムレベル出力ファイル取得部、４８４…ファイル結合部、４８６…変換実行部、４８８…制御部、５００…ラッパー回路、５１４…選択回路、５２０…ラッパー回路、５３０…ライトイネーブル信号発生回路、５６０…ラッパー回路、５７８…検証結果比較部、Ｊ１２…メモリ種別情報、Ｊ１４…メモリ仕様情報
【図１】
2004178267.tif 000003
【図２】
2004178267.tif 000004
【図３】
2004178267.tif 000005
【図４】
2004178267.tif 000006
【図５】
2004178267.tif 000007
【図６】
2004178267.tif 000008
【図７】
2004178267.tif 000009
【図８】
2004178267.tif 000010
【図９】
2004178267.tif 000011
【図１０】
2004178267.tif 000012
【図１１】
2004178267.tif 000013
【図１２】
2004178267.tif 000014
【図１３】
2004178267.tif 000015
【図１４】
2004178267.tif 000016
【図１５】
2004178267.tif 000017
【図１６】
2004178267.tif 000018
【図１７】
2004178267.tif 000019
【図１８】
2004178267.tif 000020
【図１９】
2004178267.tif 000021