JP2004178267A - Memory circuit creation method and device, memory circuit, circuit model verification method and device, and circuit model creation method and device - Google Patents
Memory circuit creation method and device, memory circuit, circuit model verification method and device, and circuit model creation method and device Download PDFInfo
- Publication number
- JP2004178267A JP2004178267A JP2002343660A JP2002343660A JP2004178267A JP 2004178267 A JP2004178267 A JP 2004178267A JP 2002343660 A JP2002343660 A JP 2002343660A JP 2002343660 A JP2002343660 A JP 2002343660A JP 2004178267 A JP2004178267 A JP 2004178267A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- memory
- verification
- result
- logic
- 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
Abstract
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 a Chip:システムオンチップ)化が進んでいる。
【0013】
このため、システムオンチップSOCを検証対象とした場合、検証項目も急激に増加している。この場合、当然、ソフトウェアシミュレーションでは検証時間が長期に亘るため検証できない項目も出てくる。よって、試作チップなどを搭載する試作基板を用いてシステム検証を行なうことや、さらに好ましくは、論理エミュレーションを用いてシステム検証を行なう実機ベースのシステム検証が必要となる。
【0014】
なお、試作基板や論理エミュレーションを用いた実機ベースのシステム検証では、試作基板や検証システム本体を構成するFPGAなどの書換可能なデバイスやメモリセルにプロセッサやメモリ回路を実装することで機能を実現するが、最新プロセッサや高機能メモリあるいは大規模メモリは、検証システム本体内に収容することが難しく、本体とは別に接続する個別の接続ボード(外部ボード)を用いて専用プロセッサチップや外部メモリなど(これらよりなる回路を外部回路という)を搭載することで具現化することもある。こうすることで、大規模な回路であっても、設計した論理回路を、FPGAなどの書換可能なデバイスや専用プロセッサチップあるいは外部メモリに実装して、実際のチップと機能的に等価な動作をエミュレーションして確認することができる。
【0015】
たとえば、論理エミュレーションを用いた実機ベースのシステム検証では、論理回路以外のたとえばSRAM(Static Random Access Memory )やSDRAM(Synchronous Dynamic Random Access Memory)といったメモリは、エミュレータ内部のメモリセルや外部ボードに実装されたSRAMなどの外部メモリを用いてシステムオンチップSOC内部のメモリと等価な動作になるようメモリを制御する外部回路(Wrapper回路;ラッパー回路)と組み合わせてメモリ回路を実現する。従来このモデルの動作を検証する場合、メモリの仕様書と同じ動作をすることを確認することでモデルの動作検証とすることが多かった。
【0016】
しかしながら、最近のシステムオンチップSOC設計ではVerilog−HDLやVHDLといったRTL(レジスタ・トランスファ・レベル)の機能記述言語(HDL)を用いずにSystemC(商標)やSpecCあるいはCoWareC(商標)といったC言語を基本としたシステムレベル言語で設計することも多くなってきている。この場合、メモリ単体の詳細な動作仕様はシミュレーション結果以外にない場合が多い。また、これらのシミュレーション結果の多くはファイル形式が異なるために、そのままでは論理シミュレーション、論理エミュレーションの結果と比較することが困難もしくは事実上不可能である。
【0017】
そのため、動作検証を十分に行なえないままで論理エミュレータに回路を実装して検証することが多く、その場合、メモリモデルの動作不具合による不整合が多く発生し、高速動作検証環境構築上の問題になってきている。
【0018】
また、SDRAMやSRAMなどのメモリを使用したメモリ回路は、論理エミュレーションにてモデリングされるメモリ回路に限らず、電気回路内においてデータの一時格納などのために多用されている。しかしながら、使用予定のメモリの調達が難しいために、回路検討を行なえないということがよくある。このような場合には、メモリを入手するまで検討を遅らせたり、代替品のメモリを用いて検討を行なわせたりせざるを得ない。
【0019】
しかしながら、検討を遅らせる方法では、検討期間が長期化するという問題が発生する。また、代替品メモリを用いた検討では、代替品メモリと元のメモリ(ターゲットメモリ)の動作が必ずしも一致しないため、代替品メモリが動作するようにメモリ周辺の回路(ラッパー回路)の変更が必要になるという問題が発生することある。
【0020】
また、この場合、メモリ周辺回路を変更して代替品メモリを使用してメモリ回路全体を構築する場合でも、前述のように、その回路のメモリモデルの構築と動作検証を如何に行なうかが問題となる。なぜなら、代替品メモリとラッパー回路とで構成したメモリ回路が元のターゲットメモリと同じ動作をしなければ、想定しているターゲットメモリのモデルを用いた論理検証(論理エミュレーション)に破綻を来すからである。従来は、このような場合の検証の仕組みが確立していないので、適切な検証を行なうことは困難であった。
【0021】
このように、メモリ回路を取り扱う上では、設計期間短縮が求められている今日、使用予定のメモリの調達が難しいということが、種々の面で、大きな課題になっている。
【0022】
なお、メモリ回路のテスト手法に関する技術として、不良メモリや不良ビットを特定するものが提案されている(たとえば特許文献2参照)。
【0023】
【特許文献2】
特開2000−331499号公報
【0024】
この特許文献2の手法は、ビットごとに不一致信号を保持する回路を設けることで、不良ビットの特定の容易化を図ったり、アドレス構成が同一のメモリを同時に試験し、その結果を1度のスキャンアウトで正否を観測したりすることで、メモリテスト時間を削減することを目的としたものである。
【0025】
しかしながら、特許文献2の手法は、前述のように、メモリ不良やテスト時間削減に関するものであり、代替品を用いたメモリ回路の構築やそのメモリモデルが元のメモリと同じ動作をするか否かの検証に利用することは困難である。
【0026】
なお、論理エミュレーションにおいては、メモリ回路に限らず、モデリングした個別回路が、代替品を用いた等価回路である場合には、代替品メモリとラッパー回路とで構成したメモリ回路を用いた論理検証の場合と同様の問題を生じる。
【0027】
本発明は、上記事情に鑑みてなされたものであり、ターゲットメモリと同様の動作をするメモリ回路を効率的あるいは簡易に生成することが可能なメモリ回路の生成方法および装置、並びにこれにより生成されるメモリ回路を提供することを目的とする。
【0028】
また本発明は、論理エミュレーションシステム上にモデリングされるメモリ回路などの個別回路を確実かつ簡易に代替品にて構成することのできる回路モデルの生成方法および装置を提供することを目的とする。
【0029】
また本発明は、論理エミュレーションシステム上にモデリングされるメモリ回路などの個別回路を代替品にて構成するに際し、このような個別回路のモデルを確実かつ簡易に検証することのできる検証方法および装置を提供することを目的とする。
【0030】
【課題を解決するための手段】
すなわち、本発明に係るメモリ回路の生成方法は、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路のモデルを生成する方法であって、代替品メモリと接続されるとともに、この代替品メモリと協働することでメモリ回路にターゲットメモリと略等価な動作をさせるラッパー回路を、書換可能な論理デバイスに組み込むようにした。代替品メモリとしては、論理デバイスに内蔵されているメモリではなく、論理デバイスの外部に設けられたメモリセルを使用するとよい。
【0031】
ここで、ターゲットメモリの容量が代替品メモリの容量よりも少ない場合には、ターゲットメモリの容量を単一の代替品メモリの容量により担当するようにラッパー回路を構築することが好ましい。
【0032】
また、ターゲットメモリの容量が代替品メモリの容量よりも多い場合には、ターゲットメモリの容量を、複数の代替品メモリの容量を組み合わせて担当するように、ラッパー回路を構築することが好ましい。
【0033】
本発明に係るメモリ回路の生成装置は、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路のモデルを生成する装置であって、ターゲットメモリメモリの種別に関するメモリ種別情報を取得する種別情報取得部と、ターゲットメモリメモリの性能に関するメモリ仕様情報を取得する仕様情報取得部と、種別情報取得部が取得したメモリ種別情報と仕様情報取得部が取得したメモリ仕様情報とに基づいて、代替品メモリと接続されるとともにこの代替品メモリと協働することでメモリ回路にターゲットメモリと略等価な動作をさせるラッパー回路のモデルを生成するラッパー回路生成部とを備えるものとした。
【0034】
また、本発明に係るメモリ回路は、本発明に係るメモリ回路の生成方法や装置を利用して生成されるものであり、代替品メモリと接続されるとともに書換可能な論理デバイスに組み込まれたラッパー回路を含むものとする。ここで、ラッパー回路は、代替品メモリと協働することでメモリ回路にターゲットメモリと略等価な動作をさせる機能部分を含むものとする。
【0035】
また、ラッパー回路は、ターゲットメモリの容量を単一の代替品メモリの容量により担当するように代替品メモリを制御する機能部分、あるいはターゲットメモリの容量を複数の代替品メモリの容量により担当するように複数の代替品メモリの使用を切り替えつつ個々の代替品メモリを制御する機能部分を含むものとすることが望ましい。
【0036】
本発明に係る回路モデル検証方法は、ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路の動作を検証する方法であって、論理検証システムによる検証結果であるエミュレーション結果と論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果とを比較することで、論理検証システム上にモデリングした個別回路がこの個別回路と対応する元の回路(ターゲット回路)と同じ動作をするか否かを判定することとした。
【0037】
個別回路としては、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路が、その代表例である。もちろん、このようなメモリ回路に限らず、代替品を用いたその他の等価回路であってもよい。
【0038】
ここで、第2の検証結果としては、システムレベル言語で設計されたターゲット回路上にモデリングされる個別回路のシステムレベルのシミュレーション結果(システムレベル検証結果)、および機能記述言語で作成されたターゲット回路上にモデリングされる個別回路の機能記述言語レベルのシミュレーション結果(機能記述言語レベル検証結果)のうちの少なくとも一方であることが好ましい。システムレベル検証結果および機能記述言語レベル検証結果の双方とエミュレーション結果とを比較するものとすれば一層好ましい。
【0039】
なお、第2の検証結果を示す出力ファイルの形式が論理検証システムによる検証にて取扱い可能なファイル形式と異なる場合には、第2の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換してからエミュレーション結果とを比較するとよい。
【0040】
本発明に係る回路モデル検証装置は、発明に係る回路モデル検証方法を実施する装置であって、論理検証システムによる検証結果であるエミュレーション結果を取得する論理検証部と、論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果を取得する第2の検証部と、論理検証部が取得したエミュレーション結果と第2の検証部が取得した第2の検証結果とを比較することにより、論理検証システム上にモデリングした個別回路がこの個別回路と対応する元の回路(ターゲット回路)と同じ動作をするか否かを判定する検証結果比較部とを備えるものとした。
【0041】
ここで、第2の検証部は、システムレベル言語で設計されたターゲット回路上にモデリングされる個別回路のシステムレベルのシミュレーション結果、および機能記述言語で作成されたターゲット回路上にモデリングされる個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方を第2の検証結果として取得するものであることが好ましい。
【0042】
また、本発明に係る回路モデル検証装置においては、第2の検証結果を示す出力ファイルの形式を論理検証システムによる検証にて取扱い可能なファイル形式に変換するファイル変換部を備えるものとするとともに、検証結果比較部を、ファイル変換部による変換後の出力ファイルにより示される検証結果とエミュレーション結果とを比較するものとすることが好ましい。
【0043】
本発明に係る回路モデル生成方法は、本発明に係る回路モデル検証方法を利用して、ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路であって、代替品を使用してターゲット回路と略等価な動作をするように構成された個別回路のモデルを生成する方法であり、論理検証システムによる検証結果であるエミュレーション結果と論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果とを比較する第1の工程と、検証結果の比較に基づいて論理検証システム上にモデリングした個別回路がこの個別回路と対応する元の回路(ターゲット回路)と同じ動作をするか否かを判定する第2の工程とを有するものとした。
【0044】
そして、元の回路と同じ動作をしない場合には、第1の工程の比較結果を参照して論理検証システム上にモデリングした個別回路のモデルを修正し、この修正後のモデルについて第1の工程と第2の工程とを繰り返すことにより個別回路のモデルを決定することとした。
【0045】
個別回路としては、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路が、その代表例である。もちろん、このようなメモリ回路に限らず、代替品を用いたその他の等価回路であってもよい。
【0046】
ここで、第1の工程は、システムレベル言語で設計されたターゲット回路上にモデリングされる個別回路のシステムレベルのシミュレーション結果および機能記述言語で作成されたターゲット回路上にモデリングされる個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方を第2の検証結果として取得し、このような第2の検証結果とエミュレーション結果とを比較するものであるとよい。
【0047】
また、本発明に係る回路モデル生成方法においては、第2の検証結果を示す出力ファイルの形式を論理検証システムによる検証にて取扱い可能なファイル形式に変換する第3の工程を有するものとするとともに、第1の工程を、この第3の工程による変換後の出力ファイルにより示される検証結果とエミュレーション結果とを比較するものとすることが好ましい。
【0048】
本発明に係る回路モデル生成装置は、本発明に係る回路モデル生成方法を実施する装置であって、論理検証システムによる検証結果であるエミュレーション結果を取得する論理検証部と、論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果を取得する第2の検証部と、論理検証部が取得したエミュレーション結果と第2の検証部が取得した第2の検証結果とを比較する第1の工程および論理検証システム上にモデリングした個別回路がこの個別回路と対応する元の回路と同じ動作をするか否かを判定する第2の工程とを実施する検証結果比較部とを備えるものとした。
【0049】
また、検証結果比較部における第2の工程による判定結果が元の回路と同じ動作をしない旨を示していることを条件として、検証結果比較部における第1の工程による比較結果を参照して論理検証システム上にモデリングした個別回路のモデルを修正し、この修正後のモデルについて第1の工程と第2の工程とを繰り返すように制御する制御部を備えるものとした。
【0050】
ここで、検証結果比較部は、第1の工程として、システムレベル言語で設計されたターゲット回路上にモデリングされる個別回路のシステムレベルのシミュレーション結果および機能記述言語で作成されたターゲット回路上にモデリングされる個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方を第2の検証結果としてエミュレーション結果とを比較するものとすることが好ましい。
【0051】
また、本発明に係る回路モデル生成装置においては、第2の検証結果を示す出力ファイルの形式を論理検証システムによる検証にて取扱い可能なファイル形式に変換するファイル変換部を備えるものとするとともに、検証結果比較部を、第1の工程として、ファイル変換部による変換後の出力ファイルにより示される検証結果とエミュレーション結果とを比較するものとすることが好ましい。
【0052】
なお、上述した各種方法および装置を、電子計算機(コンピュータ)を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできる。なお、プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。
【0053】
【作用】
上記構成のメモリ回路生成方法および装置においては、メモリとFPGAなどの書換可能な論理デバイスとを用いてターゲットメモリと略等価な動作をするメモリ回路を構築する。そして、論理デバイス内にメモリと接続するラッパー回路を実装する。
【0054】
また、上記構成の回路モデル検証方法および装置においては、論理エミュレータ上にモデリング(実装)した回路が元の回路(ターゲット回路)と同じ動作をするか否かを、論理エミュレーションによる検証結果と他の検証手法による検証結果と比較することで確認する。
【0055】
また、上記構成の回路モデル生成方法および装置においては、前述の回路モデル検証方法および装置の手法を利用し、比較結果が一致しなければ、比較結果を参照して回路モデルを修正し、再度、論理エミュレーションによる検証結果と他の検証手法による検証結果と比較する。これを、比較結果が一致するまで繰り返すことで、代替品を用いて、ターゲット回路と等価な個別回路を作成する。
【0056】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【0057】
図1は、論理エミュレーションを行なうための検証システム(論理エミュレーションシステム)の概略構成を示す図である。
【0058】
検証システム1は、エミュレータ本体10、SOCに内蔵するCPUやテストチップ22を搭載したCPUボード20、SOCに内蔵する大規模メモリや高性能メモリ32を搭載した外部メモリボード30を備える。
【0059】
エミュレータ本体(検証システム本体)10には、LSI設計データを読込みLSIと等価な動作を行なうプログラマブルに構成可能なFPGA(Field Programmable Gate Array )12で構成されたロジック回路14、メモリ16、テストベンチ回路18などで構成されている。
【0060】
メモリ16としては、たとえば、SRAM(Static Random Access Memory )やDRAM(Dynamic Random Access Memory)などの、随時書込みおよび随時読出しが可能な記憶保持動作をするメモリを使用するとよい。なお、FPGA12やメモリ16は、検証対象となるターゲット回路のシステム規模が小さければ1個でもよいが、システム規模が大きくなれば各々複数個が使用される。
【0061】
CPUボード20や外部メモリボード30は、必要に応じて複数枚が用意されるようになっている。エミュレータ本体10と、これらCPUボード20および外部メモリボード30との間は、インタフェース(I/F)部90を構成する外部ボード接続用I/F部92にて接続されるようになっている。
【0062】
また、検証システム1は、エミュレータ本体10の周辺に、FPGA12の論理機能を決定する論理機能定義データをFPGA12にロード(供給)したり、あるいは検証システム全体を監視若しくは制御したりするためのコントローラPC(PC;Personal Computer )80、論理設計データを生成するワークステーション82、検証用のテストデータ(入力データ)をエミュレータ本体10にロードしたり検証結果のデータ(出力データ)を読み込み保持したりするためのデータ入出力用PC84,86、および検証中のロジックデータを監視するためのロジックアナライザ(以下ロジアナという)88を備える。
【0063】
なお、検証用のテストデータ(入力データ)は、ソフトウェアシミュレーションにおいて使用するものと同様のものを使用すればよい。この検証用のテストデータは、エミュレータ本体10のテストベンチ回路18を介してFPGA12に供給されることで、ソフトウェアシミュレーションの検証環境を論理エミュレーションを用いたシステム検証装置(すなわち検証システム1)で実現するようになる。
【0064】
また、その検証結果のデータ(出力データ)がテストベンチ回路18を介してデータ入出力用PC84,86に出力され、所定の記憶媒体(たとえばハードディスク装置など)に格納される。なお、この場合の検証用のテストデータ(入力データ)と検証結果のデータ(出力データ)とを纏めて、以下「ソフトウェアシミュレーション用入出力データ」という。
【0065】
コントローラPC80はコントローラ用I/F部94にて専用ケーブルで、データ入出力用PC84,86はデータ用I/F部96a,96bにてPCI(Peripheral Component Interconnect )バス若しくはISA(Industry Standard Architecture)バスで、ロジアナ88はロジアナ用I/F部98にて専用プローブで、それぞれエミュレータ本体10と接続されるようになっている。
【0066】
検証データのエミュレータ本体10へのインタフェースをなすデータ用I/F部96a,96bとして、PCIバスやISAバスなど共通のインタフェース機構を持たせることで、複数の異なったデータが同一インタフェース上で入出力可能となる。
【0067】
なお、データ用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(商標)”(ピーシーアイエクスプレス)などのシリアルインタフェースであってもよい。
【0068】
PCIバスやISAバスなどのパラレルバスインタフェースをはじめとする標準インタフェースは、IEEEやJIS(日本工業規格)などの非商業的組織または政府組織(公的な規格団体)によって認められた正当な(法律上の)技術的ガイドラインに従った、ハードウェア開発またはソフトウェア開発の領域において均一性を確立するために使用される公的なインタフェースであるのがよい。
【0069】
また、このような公的なインタフェースに限らず、民間団体や単一の会社にて取り纏められた私的な標準インタフェース、いわゆる業界標準インタフェース(工業標準インタフェース)であってもかまわない。何れにしても、標準インタフェースは、ある一定の規格を満足する接続インタフェースであればよい。
【0070】
たとえば、ある会社によって製品または理念が開発され、成功と模倣を通じて標準からの逸脱が互換性の問題を引き起こすか、または市場性を制限する程広く使用されるようになる場合に生じるハードウェア開発またはソフトウェア開発に関する事実上の(de facto)技術的ガイドライン(非公式な規格)が、本実施形態の標準インタフェースとして採用されてもよい。
【0071】
コントローラPC80とワークステーション82とは、ネットワークLAN(Local Area Network)で接続されている。ワークステーション82は、たとえばRTL(Register Transfer Level )若しくはHDL(Hardware Description Language )といわれる形式で論理記述された論理設計データを生成する。また、ワークステーション82は、その論理設計データの対応回路部分の記述データまたはその記述データを所定のデータフォーマットに変換したデータをコントローラPC80に渡す。コントローラPC80は、このデータを解読して、FPGA12に論理機能を設定するのに必要な論理機能定義データを生成し、これをFPGA12にロードすることで、ASICやSOCなどに対応するターゲット回路を実装(インプリメント)する。
【0072】
また、ワークステーション82は、ターゲット回路評価のために生成したロードモジュールをコントローラPC80に渡す。このロードモジュールは、FPGA12を有するエミュレータ本体10やエミュレータ本体10に接続されたCPUボード20などに供給され、インサーキットエミュレーションのように、開発対象とされるターゲット回路上でFPGA12を実際の論理回路(ターゲット回路に対応するASICやSOCなど)に近い動作速度で動作させることで、システムデバッグやソフトウェアデバッグなどの検証あるいはテストを行なうために利用される。
【0073】
この検証システム1の周辺システムとして、FPGA12に内蔵している内部メモリLPM(Local Place Memory)やメモリ16(本例ではSRAM)あるいは外部メモリボード30上のメモリ32を利用して、ターゲット回路であるシステムオンチップSOC内部のメモリ(たとえばDRAM;以下ターゲットメモリともいう)と実質的に等価な動作をさせるためのラッパー回路を生成するためのメモリ回路構築システム7が用意される。このメモリ回路構築システム7は、それぞれネットワークLANで接続されたメモリ回路生成装置400とワークステーション82とで構成される。ワークステーション82からは、ターゲットメモリに関する情報(メモリ種別や容量など)がメモリ回路生成装置400に通知される。
【0074】
また、検証システム1の周辺システムとして、メモリ回路構築システム7のメモリ回路生成装置400にて生成されたラッパー回路、あるいはこのラッパー回路やメモリ16などの代替品を用いて構成されるメモリ回路の動作を検証するための回路モデル検証システム9が用意される。この回路モデル検証システム9は、それぞれネットワークLANで接続された回路モデル検証装置450とワークステーション82と、データ入出力用PC86やロジアナ88などとで構成される。回路モデル検証装置450は、本発明に係る回路モデル生成装置の機能を備える。
【0075】
回路モデル検証装置450には、ワークステーション82からターゲットメモリに関する情報(メモリ種別や容量など)が通知され、メモリ回路生成装置400からは、生成されたラッパー回路の回路情報が通知される。また、エミュレータ本体10や外部ボード11などからなる論理エミュレータ装置5を利用した論理エミュレーションの検証結果もデータ入出力用PC86やロジアナ88から通知される。
【0076】
メモリ回路生成装置400にて生成されたラッパー回路の回路情報は、回路モデル検証装置450に入力され、生成されたラッパー回路を含む代替品のメモリを用いたメモリ回路が実際のメモリ(ターゲットメモリ)と同様の動作をするか否かが検証される。この検証に問題がなければ、生成されたラッパー回路の回路情報がワークステーション82に通知され、FPGA12に対する通常の回路情報の書込みと同様に、コントローラPC80を介してFPGA12に、メモリ回路生成装置400にて生成されたラッパー回路が組み込まれる。回路モデル検証装置450による検証で問題が発見された場合には、所用の対処をするのはいうまでもない。
【0077】
<<代替品メモリを用いたメモリ回路の構築手法>>
図2は、図1に示した検証システム1において利用されているメモリ回路とこのメモリ回路の構築手法に着目した概略図である。
【0078】
図示するように、エミュレータ本体10は、エミュレータ基板10a上に、FPGA12(図では1個で示すが複数個でもよい)で構成されたロジック回路14と、4個のSRAMからなるメモリ部17と、CPUボード20や外部メモリボード30などの外部ボード11(何れも図1参照)など他の基板と接続可能な外部ボード接続用I/F部92(図1参照)の一部をなすコネクタ46、FPGA12に回路データをロードするためのコントローラ用I/F部94の一部をなすコネクタ48が搭載されて構成されている。
【0079】
図1にても示したように、このエミュレータ本体10は、回路データを生成するためのソフトウェアと回路をロードする機構を備えたコントローラPC80とコネクタ48を介して接続される。
【0080】
エミュレータ基板10a上に搭載されたFPGA12内には、このFPGA12に内蔵している内部メモリLPM(Local Place Memory)やメモリ16(本例ではSRAM)あるいはコネクタ46にて接続された外部メモリボード30上の図示しない外部メモリを利用して、ターゲット回路であるシステムオンチップSOC内部のメモリ(たとえばDRAM)と実質的に等価な動作をさせるためのラッパー回路が組み込まれる。図1にても説明したように、このラッパー回路は、メモリ回路生成装置400にて生成されるものである。
【0081】
図3は、外部メモリボード30を用いた場合のメモリ回路の構成を示す。この場合、ラッパー回路は、エミュレータ本体10のFPGA12内に実装される。
【0082】
図4は、メモリ回路生成装置400の機能ブロック図の一例である。図示するように、メモリ回路生成装置400は、システムオンチップSOCに使用するターゲットメモリの種別(たとえばSDRAMかSRAM)に関するメモリ種別情報J12を取得する種別情報取得部412、たとえばデータのビット数やメモリ深さ(ワード;Word)あるいはメモリ容量(メモリサイズ)などの、システムオンチップSOCに使用するターゲットメモリの性能に関するメモリ仕様情報J14を取得する仕様情報取得部414を備える。
【0083】
また、メモリ回路生成装置400は、各情報取得部412,414(纏めてメモリ情報取得部410ともいう)にて取得された各情報J12,J14を用いて、ラッパー回路を生成するラッパー回路生成部420を備える。ラッパー回路生成部420は、メモリ情報取得部410にて取得された各情報J12,J14に基づき、エミュレータ基板10a上に搭載されたFPGA12内に内蔵している内部メモリLPMやメモリ16あるいはコネクタ46にて接続された外部メモリボード30上のメモリ32(これらのメモリを纏めて以下代替品メモリともいう)を利用して、たとえばDRAMやSDRAMなどのターゲットメモリと実質的に等価な動作をさせるためのラッパー回路を生成する。
【0084】
上記構成において、メモリ回路生成装置400は、たとえば、ラッパー回路を生成する機能をなす専用のハードウェア回路で構成してもよいし、パソコンやワークステーションなどの汎用のコンピュータを利用して構成してもよい。つまり、ラッパー回路生成の一連の処理をハードウェアにより実行させることもできるが、ソフトウェアを利用して実行させることもできる。たとえば、図1に示したワークステーション82やコントローラPC80にメモリ回路生成装置400の機能を持たせてもよい。
【0085】
ラッパー回路生成処理をソフトウェアにより実行させる場合には、全体の動作を制御するソフトウェアであるOS(オペレーティングシステム)と、前述のラッパー回路生成機能をなすためのソフトウェアであるアプリケーションプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで各種の機能を実行することが可能なたとえば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる(組み込まれる)。これにより、本発明に係るメモリ回路生成装置を、プログラムに基づいてソフトウェア的に実現するようになる。
【0086】
記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc−Read Only Memory )、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc )を含む)、もしくは半導体メモリなどよりなるパッケージメディア(可搬型の記憶媒体)により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供されてもよいし、プログラムが記録されているROMやハードディスクなどで構成されてもよい。あるいは、ソフトウェアを構成するプログラムが、有線あるいは無線による通信手段を介して配信されてもよい。
【0087】
たとえば、ラッパー回路生成機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、ラッパー回路生成処理の効果は達成される。この場合、記憶媒体から読み出されたプログラムコード自体がラッパー回路生成機能を実現することになる。
【0088】
また、コンピュータが読み出したプログラムコードを実行することにより、ラッパー回路生成機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステムOSなどが実際の処理の一部または全部を行ない、その処理によってラッパー回路生成機能が実現される場合であってもよい。
【0089】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によってラッパー回路生成機能が実現される場合でもよい。
【0090】
図5は、メモリ回路生成装置400における、ラッパー回路を生成するための処理手順の一例を示すフローチャートである。
【0091】
まず、種別情報取得部412は、システムオンチップSOC内部に使用を希望するメモリの種類として、SDRAMかSRAMかを示すメモリ種別情報J12を取得する(S100)。このメモリ種別情報J12の取得に際しては、ユーザによる入力を介するものであってもよい。あるいは、システムオンチップSOCの設計仕様書を解読して自動的に取得する仕組みを設けてもよい。
【0092】
SRAMが選択された場合には(S100−SRAM)、仕様情報取得部414は、先ずメモリ仕様情報J14の一例として、データのビット数を示す情報を取得する(S110)。また、仕様情報取得部414はメモリ仕様情報J14の他の一例として、メモリ深さを示す情報を取得する(S112)。このメモリ仕様情報J14の取得に際しても、ユーザによる入力を介するものであってもよい。あるいは、システムオンチップSOCの設計仕様書を解読して自動的に取得する仕組みを設けてもよい。
【0093】
次に、ラッパー回路生成部420は、種別情報取得部412により取得されたメモリ種別情報J12が示すメモリ種別と仕様情報取得部414により取得されたメモリ仕様情報J14が示すビット数およびメモリ深さの各値に基づいて、FPGA12内の内部メモリLPMやメモリ16(本例ではSRAM)などの代替品メモリを利用してターゲットメモリを構成するために必要となる、代替品メモリの個数(メモリ数)を決定する(S114)。
【0094】
たとえば、ラッパー回路生成部420は、決定したメモリ数が“1”の場合には(S116−YES)、そのメモリだけを制御する回路でよいので、直ちにラッパー回路を出力する(S120)。一方、メモリ数が複数の場合には(S116−NO)、メモリ間のインタフェースを考慮しないといけないので、ラッパー回路生成部420は、そのためのインタフェース回路を先ず生成する(S118)。この後、ラッパー回路生成部420は、インタフェース回路を追加したラッパー回路として出力する(S120)。
【0095】
他方、SDRAMが選択された場合には(S100−SDRAM)、基本的な処理手順はSRAMが選択された場合と同様であるが、仕様情報取得部414によるメモリ深さに関する情報の取得(S112)の代わりに、メモリ仕様情報J14の一例であるメモリ容量に関する情報を取得する点(S132)が異なる。
【0096】
図6は、エミュレータ基板10a上に搭載したメモリ16単体の動作仕様の一例である。また、図7は、メモリ16単体の各信号の詳細な説明を示した図表である。
【0097】
個々のメモリ16(本例ではSRAM)のサイズ(メモリ容量)は、32ビット×128キロバイトで、これがエミュレータ基板10a上では4個実装されて全体として128ビット×128キロバイトという大きさとなっている。この単体メモリ(SRAM)とラッパー回路を用いて、他のメモリ(本例ではシステムオンチップSOCに使用されるターゲットメモリ)の動作を実現していく。
【0098】
図7に示した信号において、“ADVLn”は、チップ固有のものであり、本実施形態では使わないので、“0(L;ロー)”に固定する。また、“CE1n@”(@は1〜4)は、4個あるメモリ16の使用を制御するもので、ターゲットメモリとの兼ね合いで、“0”または“1(H;ハイ)”に設定する。
【0099】
図8は、ターゲットメモリの一例としてのSRAMのメモリモデル(メモリ動作のタイミングチャート)の一例を示す図である。この図8に示した例のSRAMモデルは、8ビット×36720ワードのものである。
【0100】
図9は、図8に示したSRAMモデルの動作を、メモリ16などの代替品メモリやラッパー回路にて実現するために生成されたメモリ回路のモデル(以下メモリモデルともいう)の一例を示す図である。図9において、メモリ部17内には、メモリ16として4個のSRAMが搭載されている。なお、メモリ部17のADVLDn、CENn,MODEに設定されている“1‘b0”は、1ビットバイナリ“0”が各端子に設定されていることを示す。
【0101】
メモリ部17周辺のラッパー回路500は、メモリ回路生成装置400にて上述したステップS100〜S120の手順を踏んで生成されたもので、論理エミュレーションを行なう際には、このラッパー回路500が、好ましくはFPGA12にインプリメント(実装)される。
【0102】
図9に示すように、ラッパー回路500は、ターゲットメモリである図8に示したメモリモデルの動作と、これと等価な動作をするように実装される代替品メモリ(本例では図6に示したメモリ16としてのSRAM)のタイミングとの比較に基づいて、ラッパー回路500が構成されている。
【0103】
たとえば、ラッパー回路500は、データ、制御信号とアドレス間の位相調整とデータをFPGA12の内部メモリLPMが取り込むタイミング調整を行なうためのフリップフロップ(FF)510がデータ入力(I[7:0])に1段ずつ追加されている。
【0104】
また、ラッパー回路500は、データ出力(A[7:0])をメモリ16のリード(Read)出力(data Out[7:0])とホールド(Hold)した出力の何れか一方を選択して出力する選択回路(SEL)514も追加されている。さらに、入力アドレス(IA[15:0])のビット数がラッパー回路500の入力(A[16:0])よりも1ビット少ないので、図中A印で示すように、入力アドレスの最上位ビットMSB側に“0”を追加してある。
【0105】
なお、先にも述べたように、メモリ部17としてはエミュレータ基板10a上にメモリ16としてのSRAMが4個搭載されているが、図8に示したSRAMモデルの動作を実現するには、1個使用でよいので、1番目(図中(1)で示すもの)のSRAMのみを使用する。よって、図7の図表にも示したように、1番目のSRAMに対応するチップイネーブルCE1n1のみを“0”に設定し、残り(図中(2)〜(4)で示すもの)のチップイネーブルCE1n2〜CE1n4は、“1”に固定する。
【0106】
なお、出力イネーブルOEnに設けられているインバータ512は、ライトイネーブルWEnを出力イネーブルOEnにも利用する場合に、アクティブ極性を合わせるために設けられたものである。このインバータ512の出力は選択回路514の切替入力端子に入力されており、選択回路514の選択切替信号としても利用されるようになっている。
【0107】
図10および図11は、ターゲットメモリの一例としてのSDRAMのメモリモデル(メモリ動作のタイミングチャート)の一例を示す図である。ここで、図10は、ライト(Write )動作時のタイミングチャートであり、図11は、リード(Read)動作時のタイミングチャートである。なお、この図10および図11に示した例のSDRAMモデルは、記憶容量が4M(メガ)のものである。
【0108】
図12は、図10および図11に示した4MSDRAMモデルの動作を、メモリ16などの代替品メモリやラッパー回路にて実現するために生成されたメモリ回路の一例を示す図である。図13は、このメモリ回路の各信号の状態とステートの関係を示した図表である。
【0109】
メモリ部17周辺のラッパー回路520は、メモリ回路生成装置400にて上述したステップS100〜S340の手順を踏んで生成されたもので、論理エミュレーションを行なう際には、このラッパー回路520が、好ましくはFPGA12にインプリメント(実装)される。
【0110】
図12に示すように、ラッパー回路520は、ターゲットメモリである図10および図11に示したメモリモデルの動作と、これと等価な動作をするように実装される代替品メモリ(本例では図6に示したメモリ16としてのSRAM)のタイミングとの比較に基づいて、ラッパー回路520が構成されている。
【0111】
たとえば、図6と図10との比較により、ライトデータのタイミングが実際のメモリモデルより1T(1クロック分)だけ遅れていることが分かる。また、図6と図11との比較により、リードデータの出力タイミングが実際のメモリモデルよりも2T(2クロック分)だけ早まっていることが分かる。メモリ回路生成装置400は、これらの遅延量(クロック差)を加味してラッパー回路520を構成することとなる。
【0112】
たとえば、ライトデータの1T遅延に対応した回路要素として、データの下位16ビットを制御するためのデータ16ビット単位の書込許可信号DQMを1Tだけ遅延させるフリップフロップ532、並びに入力データDを2Tだけ遅延させるフリップフロップ534,536が設けられ、後段の出力がデータ入力(data In [31:0])に入力されるようにしている。また、リードデータの2T遅延に対応した回路要素として、メモリ部17のデータ出力(data Out[31:0])を1Tだけ遅延させるフリップフロップ538が設けられている。
【0113】
なお、先にも述べたように、メモリ部17としてはエミュレータ基板10a上にメモリ16としてのSRAMが4個搭載されているが、図10および図11に示したSDRAMモデルの動作を実現するには、1個使用でよいので、1番目(図中(1)で示すもの)のSRAMのみを使用する。よって、図7の図表にも示したように、1番目のSRAMに対応するチップイネーブルCE1n1のみを使用することとし、残り(図中(2)〜(4)で示すもの)のチップイネーブルCE1n2〜CE1n4は、“1”に固定する。
【0114】
また、このラッパー回路520は、ターゲットメモリである4MSDRAMの動作と同様に、バーストの区間でライト(書込み)およびリード(読込み)の各動作(纏めてWrite/Readという)を4個単位で行なわせるために、ライトイネーブルXWE(参照子Xはオリジナル入力の意味;以下同様)から幅4TのライトイネーブルパルスWennを生成するライトイネーブル信号発生回路530が追加されている。このライトイネーブルパルスWennがメモリ部17のライトイネーブルWEnとして使用される。
【0115】
また、ラッパー回路520は、Read/Write動作時のチップイネーブルCE1n@(本例では@は1のみ)も4個単位で制御するために、チップセレクトXCSから4T幅の出力イネーブルOEnおよびチップイネーブルCE1n1を生成するための回路要素が追加されている。
【0116】
また、ラッパー回路560は、読出し時の処理対応のため、書込み時と同様に、インクリメントされた読出アドレスの最上位ビットMSBを使って出力を制御する回路として、先ずチップイネーブルCE1n1,CE1n3とADVLDn信号を制御する回路要素として、コマンドデコーダ540、ステートマシン542、ADVL信号生成回路544を追加し、さらに出力イネーブル信号OEnを制御する回路要素として、出力イネーブル信号生成回路546およびフリップフロップ548を追加している。
【0117】
また、本実施形態のラッパー回路520のアドレスバス入力(A[16:0])には、Read/Write動作時のバースト動作(4個単位での動作)のためにアドレスAddrをインクリメントする回路要素として、X方向アドレス入力AXおよびY方向アドレス入力AYをメモリ16のアドレスAddrと対応付けるアドレス信号生成回路(make Address)550、およびRead/Write動作時に4個単位でアドレスを制御するためのアドレス加算回路(Addr1=Addr1+1)552が追加されている。
【0118】
アドレス加算回路552は、アドレス信号生成回路550にて生成されたアドレスAddrに基づき、“Addr1=Addr1+1”を順に3回実行し、計4つのアドレス(Addr,Addr+1,Addr+2,Addr+3)をメモリ部17のアドレス入力(A[16:0])に設定する。
【0119】
たとえば、1番目のSRAMに対応するチップイネーブルCE1n1およびADVLnに追加されているコマンドデコーダ(Command Decoder )540、ステートマシン542、およびADVL信号生成回路544は、チップセレクトXCSから4T幅のチップイネーブルCE1n1を生成するためのものである。また、出力イネーブルOEnに追加されている出力イネーブル信号生成回路(OEn_Gen )546およびフリップフロップ548は、チップセレクトXCSから4T幅の出力イネーブル信号OEnを生成するためのものである。
【0120】
ここで、コマンドデコーダ540は、それぞれメモリ回路外部から入力されるチップセレクトXCS、ライトイネーブルXWE、ローアドレスストローブXRAS(Row Address Strobe)、カラムアドレスストローブXCAS(Column Address Strobe )、リフレッシュXRFSH(Refresh )、およびプリチャージXPRE(Precharge )の各オリジナルの信号に基づいて出力すべきコマンドを判断し、図13に示す各コマンド(Command )を図10や図11に示すタイミングで出力する。
【0121】
ステートマシン536は、コマンドデコーダ530から出力されたコマンドに基づき、メモリ回路全体の動作中における動作状態を示すステート情報を出力する。すなわち、図13に示すように、チップセレクトXCS、ライトイネーブルXWE、ローアドレスストローブXRAS、カラムアドレスストローブXCAS、リフレッシュXRFSH、およびプリチャージXPREの状態の組合せでステート情報が決定される。
【0122】ステートマシン542は、コマンドデコーダ540から出力されたコマンドを用いてステートを判断する。ここで出力されたステートとアドレス加算回路552で生成されたアドレスの最上位ビットを用いてADVL信号生成回路544でチップイネーブルCE1n1信号とADVLDn信号を生成する。
【0123】
ADVL信号生成回路544は、ステートマシン536から出力されたステート情報に基づき、1番目のSRAMに対応するチップイネーブル信号CE1n1を、アクティブ期間のみ4T単位で“0”とする。また、ADVL信号生成回路544は、ADVLDn信号を、書込み時と読出し時に4T単位で“0”とし、それ以外の状態では“1”とする。
【0124】
出力イネーブル信号生成回路546は、コマンドデコーダ540から出力されたコマンドを用いてパルス幅が4クロック分ある出力イネーブル信号OEnを出力する。ライトイネーブル信号発生回路530は、1T(1clk)の幅しか持たないライトイネーブル信号XWEから4Tの幅のライトイネーブル信号WEnを生成する。
【0125】
書込み時は、図10のタイミングチャートにおいて、DESLコマンドが発行されてから次のACTのタイミングでのAXをX方向のアドレスとして取り込むとともに、1クロック遅れたタイミングのAYをY方向のアドレスとして取り込む。そしてACTの次にWRITEコマンドを取り込み、次のサイクルから書込み動作が始まる。この場合、アドレスとして取り込むのは図10のタイミングチャート中AddrからAddr+3までの区間で、実際に書き込まれるのはData1からData4までである。そしてPALL(PRECHARGE ALL )が読み込まれたところで書込み動作は終了する。別のアドレスに書き込む場合は引き続きACTコマンドからの工程を繰り返す。
【0126】
読出し時は、図11のタイミングチャートにおいて、DESLコマンドが発行されてから次に発行されたACTコマンドでAXを取り込み、次のクロックでAYを取り込む。そして次のREADコマンドが取り込まれてから次のタイミングで読み込んだアドレスADDRに格納されている値Data1を読み出す。同様な読出し動作をADDR+3まで実施する。そしてPALL(PRECHARGE ALL )が読み込まれたところで読出し動作は終了する。別のアドレスを読み出す場合は引き続きACTコマンドからの工程を繰り返す。
【0127】
図14は、メモリモデルの動作を、メモリ16などの代替品メモリやラッパー回路にて実現するために生成されたメモリ回路の他の一例を示す図である。図12に示したラッパー回路520は、エミュレータ基板10a上に搭載されたメモリ16としての4個のSRAMのうちの1個のみを使用してターゲットメモリとしての図10および図11に示した4MSDRAMモデルと等価な動作をするメモリ回路を構成する際のラッパー回路であった。これに対して、図14に示すラッパー回路560は、複数のメモリを使用することで、ターゲットメモリモデルと等価な動作をするメモリ回路を構成する際のラッパー回路である。なお、ここでは、ターゲットメモリモデルとして、8MのSDRAMを設計する場合について説明する。
【0128】
この8MSDRAMの基本的な動作は4MSDRAMと同様であるが、エミュレータ基板10a上に実装された1つのメモリ16(SRAM)では全てのデータを格納することができない。このために、アドレスによってアクセスする実装メモリが変わるような処理回路を設けている点に特徴を有する。本実施形態では、1番目(図中(1)で示すもの)のSRAMと3番目(図中(3)で示すもの)のSRAMを使用することとする。以下具体的に説明する。
【0129】
本実施形態のラッパー回路560は、バースト動作(4個単位での動作)のためにアドレスAddrをインクリメントするアドレス加算回路552のカウンタ出力の最上位ビット側MSBをみてデータの格納先を決定する回路構成としている。具体的には、アドレス加算回路552の最上位ビット出力Addr1[17]をADVL信号生成回路544に入力していることが、図12で示した構成と異なる。また、ADVL信号生成回路544は、1番目(図中(1)で示すもの)のSRAMに対応するチップイネーブルCE1n1だけでなく、3番目(図中(3)で示すもの)のSRAMに対応するチップイネーブルCE1n3も制御するようにしていることが、図12で示した構成と異なる。
【0130】
ADVL信号生成回路544は、アドレス加算回路552から入力されたアドレス(Addr1[17])に応じてチップイネーブルCE1n1,CE1n3を切り替えることで、データ格納先のメモリ16を選択する。たとえば、アドレスAddr1[17]=0のときはチップイネーブルCE1n1のみをアクティブ“0”に設定することで1番目のSRAMを使用し、アドレスAddr1[17]=1のときはチップイネーブルCE1n3のみをアクティブ“0”に設定することで3番目のSRAMを使用する。
【0131】
このような構成により、読出し時にも、書込み時と同様に、インクリメントされた読出アドレスの最上位ビット(Addr1[17])を使うことができ、書込み時および読出し時の何れにおいても、2個のSRAMを切替使用することで、容量8Mへの対応を採ることができる。
【0132】
以上のように、ターゲットメモリと同様の動作を、代替品メモリおよびラッパー回路を用いて実現する3つの事例(ターゲットメモリとしのSRAM対応とSDRAM対応)を説明したが、ターゲットメモリの種別は、SRAMやSDRAMに限定されるものではない。
【0133】
また、ターゲットメモリのメモリサイズ(メモリ容量)に関しても、上記実施形態では4Mや8Mの事例を説明したが、他のメモリ容量であってもかまわない。たとえば、16Mに対応するには、エミュレータ基板10aに搭載されている4個のSRAMをアドレスの最上位側の2ビット分の値(00,01,10,11)に応じて切替使用する構成とすることで対応を採ることが可能である。
【0134】
また、上記実施形態では、エミュレータ基板10a上のメモリ16を使用する例で説明したが、外部メモリボード30に搭載されているメモリ32を使用してもよいのはいうまでもない。特に、エミュレータ基板10a上に搭載されているメモリ16の全容量でターゲットメモリの全容量分を賄いきれなくなったときには、外部メモリボード30上のメモリ32を使用することが必須となる。
【0135】
以上説明したように、上記実施形態の構成によれば、使用予定のメモリ(すなわちターゲットメモリ)を入手していなくても、動作仕様が分かっている限り、エミュレータ装置に使用しているメモリ(実施形態ではメモリ16やメモリ32)と、このメモリにターゲットメモリの動作と等価な動作をさせるためのラッパー回路を作成することで、メモリ周辺回路の検討が可能になる。加えて、ラッパー回路を、エミュレータ装置に使用している書換可能な論理デバイス(実施形態ではFPGA12)に組み込むことも可能で、便利である。
【0136】
すなわち、使用予定のメモリと置き換える機構をエミュレータ装置に用意してあるので、本物のメモリを入手した時点で置き換えることができ、検討作業を円滑に進めることができる。また、製品化した後も、生産中止などで他のメモリに置き換える際の検討作業にも容易に用いることができ、検討期間の短縮やコストダウンなどに寄与することもできる。
【0137】
<<ラッパー回路およびメモリ回路の検証並びに生成の手法>>
次に、メモリ回路生成装置400にて生成されたラッパー回路やこのラッパー回路を備えたメモリ回路の検証手法並びにメモリ回路のモデルを生成する手法について説明する。
【0138】
図15は、図1に示した回路モデル検証システム9に着目した概略図である。論理エミュレーションを行なうためのエミュレータ本体10には書換可能なデバイスであるFPGA12が実装されている。エミュレータ本体10は、外部のメモリ32を実装した基板である外部メモリボード30と外部ボード接続用I/F部92を介して接続されている。なお、エミュレータ本体10には、FPGA12の他に、メモリ16も実装されている。
【0139】
FPGA12に実装する回路データは、エミュレータ本体10と接続されているコントローラPC80やワークステーション82などの制御用コンピュータ490からケーブルを介して送られる。また、エミュレーションのテストベクタ(検証データ)は、エミュレータ本体10と接続されているデータ入出力用PC86からケーブルを介して送られる。また、論理エミュレーションの検証結果(エミュレーション結果)も同様に、ケーブルを介してデータ入出力用PC86に送られる。なお、論理エミュレーション時のデジタルパターンの観測結果はロジアナ88にて取得される。
【0140】
本実施形態の回路モデル検証装置450は、ラッパー回路やメモリ回路の検証時に論理エミュレーションの検証結果も参照するようになっている。このため、回路モデル検証装置450と制御用コンピュータ490とはケーブルにて接続されており、必要なときに論理エミュレーションの実行を制御用コンピュータ490に指示可能に構成されている。制御用コンピュータ490は、論理エミュレーション実行時に、論理エミュレーションのテストベクタ(検証データ)をエミュレータ本体10に送るようデータ入出力用PC86を制御する。論理エミュレーションの検証結果(エミュレーション結果)は、データ入出力用PC86やロジアナ88とケーブルにて接続された回路モデル検証装置450に送られる。
【0141】
なお、回路モデル検証装置450は、データ入出力用PC86や制御用コンピュータ490などと兼用されるものであってもよい。つまり、1つのコンピュータで構成してもよい。
【0142】
図16は、回路モデル検証装置450の機能ブロック図の一例である。図16(A)に示すように、回路モデル検証装置450は、システムオンチップSOCに使用するメモリの種別(たとえばSDRAMかSRAM)に関するメモリ種別情報J12を取得する種別情報取得部462、たとえばデータのビット数やメモリ深さ(ワード;Word)あるいはメモリ容量(メモリサイズ)などの、システムオンチップSOCに使用するメモリ(ターゲットメモリ)の性能に関するメモリ仕様情報J14を取得する仕様情報取得部464を備える。
【0143】
また、回路モデル検証装置450は、各情報取得部462,464(纏めてメモリ情報取得部460ともいう)にて取得された各情報J12,J14を用いて、メモリ回路生成装置400にて生成されたラッパー回路がターゲットメモリと同様の動作をするか否かを検証する動作検証部470を備える。
【0144】
さらに、回路モデル検証装置450は、個別回路のモデルを生成する回路モデル生成装置の機能をなすように、動作検証部470における判定結果が元の回路(ターゲットメモリなどのターゲット回路)と同じ動作をしない旨を示していることを条件として、比較結果を参照して論理検証システム上にモデリングした回路モデルを修正し、この修正後のモデルについて同様の処理を繰り返すように制御する制御部488を備える。
【0145】
図16(B)に示すように、動作検証部470は、各情報J12,J14からシステムレベル設計モデル602と検証用テストベクタ604とを抽出し、抽出した各モデル602,604を用いてシステムレベルのシミュレーションを行なう第2の検証部の一例であるシステムレベル検証部472を有する。
【0146】
また動作検証部470は、各情報J12,J14からターゲットメモリの機能記述言語モデルによるメモリ回路モデル612を抽出し、抽出したメモリ回路モデル612とシステムレベル検証部472にて取得された検証用テストベクタ614とを用いて機能記述レベルのシミュレーションを行なう第2の検証部の他の一例である機能記述レベル検証部474を有する。
【0147】
さらに動作検証部470は、システムレベル検証部472にて取得された検証用テストベクタ624とメモリ回路生成装置400にて設計したエミュレーション用モデリング回路の情報624とを用いて動作確認を行なうことでエミュレーション結果を取得する論理検証部(エミュレート部)476を有する。
【0148】
なお、本実施形態の回路モデル検証装置450は、ラッパー回路やメモリ回路の検証時に論理エミュレータ装置5による論理エミュレーションの検証結果を参照するようになっている。このため、論理検証部476は、実際には論理エミュレーションを行なう必要はなく、その指示と検証結果の取得を行なうものであればよい。
【0149】
また、動作検証部470は、システムレベル検証部472、機能記述レベル検証部474、および動作検証部476にて得られた検証結果を比較することで、メモリ回路生成装置400にて生成されたラッパー回路がターゲットメモリと同様の動作をするか否かを判定する検証結果比較部478を有する。
【0150】
なお、検証結果比較部478は、各検証結果のファイル出力が何れも同じファイル形式でないと比較ができないため、異なるファイル形式を特定のファイル形式に変換するファイル変換部480を内部に備える。
【0151】
本実施形態では、システムレベル検証部472から出力される出力パターンファイルが、他の機能記述レベル検証部474や論理検証部476から出力される出力ファイルの形式と異なるものとなっている。このため、本実施形態のファイル変換部480は、システムレベル検証部472による検証結果として得られる出力パターンファイルを残りの検証部474,476の出力ファイルの形式に合うようにファイル変換処理を実行する。
【0152】
上記構成において、回路モデル検証装置450は、たとえばラッパー回路やメモリ回路の検証機能をなす専用のハードウェア回路で構成してもよいし、パソコンやワークステーションなどの汎用のコンピュータを利用して構成してもよい。つまり、ラッパー回路やメモリ回路の検証ための一連の処理をハードウェアにより実行させることもできるが、ソフトウェアを利用して実行させることもできる。たとえば、図1に示したワークステーション82やコントローラPC80に回路モデル検証装置450の機能を持たせてもよい。さらに、メモリ回路生成装置400と回路モデル検証装置450とは、一体的に構成されたものであってもよい。
【0153】
メモリ回路などの検証処理をソフトウェアにより実行させる場合には、全体の動作を制御するソフトウェアであるOS(オペレーティングシステム)と、前述のメモリ回路などの検証機能をなすためのソフトウェアであるアプリケーションプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで各種の機能を実行することが可能なたとえば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる(組み込まれる)。これにより、本発明に係る回路モデル検証装置を、プログラムに基づいてソフトウェア的に実現するようになる。
【0154】
記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc−Read Only Memory )、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc )を含む)、もしくは半導体メモリなどよりなるパッケージメディア(可搬型の記憶媒体)により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供されてもよいし、プログラムが記録されているROMやハードディスクなどで構成されてもよい。あるいは、ソフトウェアを構成するプログラムが、有線あるいは無線による通信手段を介して配信されてもよい。
【0155】
たとえば、メモリ回路などの検証機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、メモリ回路などの検証処理の効果は達成される。この場合、記憶媒体から読み出されたプログラムコード自体が検証処理機能を実現することになる。
【0156】
また、コンピュータが読み出したプログラムコードを実行することにより、ラッパー回路生成機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステムOSなどが実際の処理の一部または全部を行ない、その処理によってラッパー回路生成機能が実現される場合であってもよい。
【0157】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によってラッパー回路生成機能が実現される場合でもよい。
【0158】
図17は、ファイル変換部480の処理機能を説明する図である。ここで、図17(A)は、ファイル変換部480の詳細例を示す機能ブロック図である。また、図17(B)は、ファイル変換部480におけるファイル変換の処理手順の一例を示すフローチャートである。
【0159】
また、図18は、ファイル変換部480にて生成される結合ファイルの一例を示す図18(A)、および図18(A)の結合ファイルについて、機能記述レベル検証部474や論理検証部476の出力ファイルの形式と合致するようにファイル変換されたファイルの一例を示す図18(B)である。
【0160】
図17(A)に示すように、ファイル変換部480は、システムレベル検証部472による検証結果として得られる出力パターンファイルを取得するシステムレベル出力ファイル取得部482と、システムレベル出力ファイル取得部482が取得した出力パターンファイルに含まれている各種ファイルを結合するファイル結合部484と、ファイル結合部484にて結合された結合ファイルのファイル形式が、残りの検証部474,476の出力ファイルの形式に合うようにファイル変換処理を実行し、シミュレーション結果ファイルとして出力する変換実行部486とを備える。
【0161】
図17(B)に示すように、システムレベル出力ファイル取得部482は、先ず、システムレベル検証部472から検証結果として得られる出力パターンファイルを取得する(S300)。システムレベル検証部472によるシステムレベルシミュレータの出力パターンファイルは、基本情報ファイル、信号情報ファイル、および信号ファイルの3種類を含む。基本情報ファイルには、作成日時やタイムスケールなどの情報が含まれている。信号情報ファイルには、シミュレーション結果をプローブした信号の名前が記されている。信号ファイルには、時間ごとの信号の動作情報が含まれている。
【0162】
ここで、本実施形態の機能記述レベル検証部474や論理検証部476が取り扱うことのできるファイル形式は、図18(B)に示すファイルと同様に、同一時点のデータがその時点の時間情報に対して纏まった形式のものでなければならない。よって、基本情報ファイル、信号情報ファイル、および信号ファイルの3種類のファイルをそのまま機能記述レベル検証部474や論理検証部476の検証用テストベクタとして入力しても、適切な比較検証ができない。
【0163】
そこで、先ず、ファイル結合部484は、これらの3種類のファイルを結合して、結合ファイル(図18(A)を参照)を出力する(S310)。この結合ファイルには、時間情報が全ての信号の変化に付加されているが、これでもなお残りの検証部474,476が取り扱うことができるファイル形式(図18(B)を参照)と合致していないので、機能記述レベル検証部474や論理検証部476にて適切な比較検証ができない。つまり、この結合ファイルのままでは、依然として、機能記述レベル検証部474や論理検証部476に入力することができない。
【0164】
たとえば、図18(A)に示す結合ファイルでは、時間情報(#の後の数値が時間;単位ピコ秒)とデータとを1つずつ対にして順次並べる形式でファイル出力されており、図18(B)に示すファイルのように、同一時点のデータがその時点の時間情報に対して纏まった形式にはなっていない。本実施形態の機能記述レベル検証部474や論理検証部476における比較検証では、回路モデルのファイル形式も図18(B)に示すファイルと同様の形式であり、比較対象のファイル形式が共通のものなければ、適切な比較検証ができない。
【0165】
そこで、変換実行部486は、ファイル結合部484から出力された結合ファイルのファイル形式を、残りの検証部474,476が取り扱うことができるように、同じ時間情報をもつデータを纏めた形式に変換する(S320)。この後、変換実行部486は、ファイル変換後のシミュレーション結果ファイルを、機能記述レベルシミュレータ用の検証用テストベクタ614として機能記述レベル検証部474に入力するとともに、エミュレータ用の検証用テストベクタ624として論理検証部476に入力する(S322)。
【0166】
図19は、回路モデル検証装置450における、メモリ回路生成装置400にて生成されたラッパー回路やラッパー回路を備えたメモリ回路についての検証手順およびメモリ回路の生成手順の一例を示すフローチャートである。
【0167】
先ず、システムレベル検証部472は、SystemC(商標)やSpecCあるいはCoWareCといったC言語を基本としたシステムレベル言語で設計されたシステムレベル設計モデル(システム言語回路モデル)602と検証用テストベクタ604とを用いて、システムレベルシミュレーションを行なう(S400)。そして、このシミュレーションで得られた出力パターンファイルを機能記述レベルシミュレータおよびエミュレータ用の検証用テストベクタとする。
【0168】
なお、図17にても説明したように、各検証結果のファイル出力は何れも同じファイル形式でないと比較ができないため、他と異なるファイル形式であるシステムレベルシミュレーションの検証結果の出力パターンファイルをファイル変換部480にてファイル変換してから、機能記述レベルシミュレータ用の検証用テストベクタ614として機能記述レベル検証部474に入力するとともに、エミュレータ用の検証用テストベクタ624として論理検証部476に入力する(S402)。
【0169】
次に、機能記述レベル検証部474は、Verilog−HDLやVHDLといったRTL(レジスタ・トランスファ・レベル)の機能記述言語(HDL)で設計された、実際のシステムオンチップSOCに搭載される機能記述言語モデルによるメモリ回路モデル(機能記述言語回路モデル)612と検証用テストベクタ614とを用いて論理シミュレーション(機能記述レベルシミュレート)を実施する(S410)。
【0170】
次に、論理検証部476は、検証用テストベクタ624とメモリ回路生成装置400にて設計したエミュレーション用モデリング回路(エミュレータ用回路モデル)622とを用いて動作確認を行なう(S420)。ただし、実際には、論理検証部476は、エミュレート処理を論理エミュレータ装置5に指示し、その検証結果を取得すればよい。
【0171】
次に、検証結果比較部578は、このエミュレータにて得られた検証結果(エミュレーション結果)626を、システムレベルシミュレーションの検証結果(第2の検証結果の一例)606および論理シミュレーション(機能記述レベルシミュレート)の検証結果(第2の検証結果の他の一例)616と、それぞれ比較する(S430)。
【0172】
制御部488は、検証結果比較部578による比較結果出力が同一であれば(S432−YES)、メモリ回路生成装置400にて生成したモデルが元のメモリ(ターゲットメモリ)と同じ動作をするものと判断し、検証処理や回路モデルの生成処理を終了させる。結果が異なった場合には(S432−NO)、制御部488は、比較結果をメモリ回路生成装置400に通知し、回路モデルの再構成を指示する。
【0173】
メモリ回路生成装置400は、回路モデル検証装置450から通知された比較結果を参照して、ラッパー回路のモデルを修正する。これを受けて、回路モデル検証装置450は、再度動作確認をする。回路モデル検証システム9の各機能要素は、このような処理を出力結果が一致するまで実施する。
【0174】
なお、上記実施形態では、システムレベルシミュレーションおよび論理シミュレーションの検証結果と、論理エミュレータ装置5を利用した検証結果とを比較評価して、ターゲットメモリと同様の動作をメモリ回路生成装置400にて生成した回路が実行するか否かを判定していたが、判定手法は、これに限定されるものではない。
【0175】
たとえば、システムレベルシミュレーションおよび論理シミュレーションの検証結果の何れか一方のみと論理エミュレータ装置5を利用した検証結果とを比較評価してターゲットメモリと同様の動作をメモリ回路生成装置400にて生成した回路が実行するか否かを判定してもよい。ただし、判定精度、つまりメモリ回路生成装置400にて生成したラッパー回路やメモリ回路の回路モデルの品質が低下することに注意する必要がある。
【0176】
また、論理エミュレーションによる検証結果と他の検証手法による検証結果と比較することで、論理エミュレータ上にモデリングした回路がターゲット回路と同じ動作をするか否かを確認するようにしているので、メモリモデルに限らず、複数の検証結果の整合を取ることができ、生成された回路モデルの品質の信頼性を高めることができる。
【0177】
また、上記実施形態では、論理エミュレータ装置にモデリングされる個別回路として、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路を対象とし、このメモリ回路のモデルの検証や回路モデルの生成について説明したが、個別回路は、このようなメモリ回路に限定されるものではない。個別回路は、代替品メモリとラッパー回路とにより構成されるメモリ回路に限らず、代替品を用いたその他の等価回路に上記実施形態を適用しても、上記で述べたと同様の効果を享受することができる。
【0178】
また、上記実施形態では、ファイル変換部480によるファイル変換の対象をシステムレベル検証部472からの出力ファイルに対して行なうものとして説明したが、ファイル変換の対象は、システムレベル検証部472からの出力ファイルに限定されるものではない。各検証部が取り扱うことのできるファイル形式は、各々の検証システムに依存するからである。
【0179】
何れにしても、各検証部が取り扱うことのできるファイル形式が異なる場合に、統一したファイル形式となるように、何れかの(あるいは全ての)出力ファイルに対してファイル変換処理を加えることで、全体を統一(共通)したファイル形式にするものであればよい。
【0180】
以上説明したように、上記実施形態の構成によれば、共通のテストパターンによるシステムレベルシミュレーションおよび論理シミュレーションとの結果とメモリ回路生成装置400にて生成されたラッパー回路の論理エミュレータ装置5を利用した検証結果との整合を取ることで、メモリ回路生成装置400にて生成したラッパー回路やこのラッパー回路を含むメモリ回路の回路モデルの品質の信頼性が高まる。
【0181】
また、検証結果にて問題が発見された場合には、その結果を反映させた修正モデルを再構成し、検証システムに組み込まれているエミュレータ装置により再度検証することができる。ここで、メモリ回路生成装置400にて生成されたラッパー回路を、論理エミュレータ装置5の回路構成が可変であるFPGA12に組み込むようにしているので、検証中にFPGA12の回路構成を変更して機能確認を繰り返し行ない、最終のラッパー回路やメモリ回路を決定することができる。これによって、ラッパー回路やメモリ回路を比較的短期間に決定することも可能となる。
【0182】
加えて、ラッパー回路やメモリ回路の繰返し検証と合わせて、システム全体(上記実施形態ではシステムオンチップSOC)の論理回路検証(評価)を実回路に近い動作速度で行なうこともできる。
【0183】
また、各検証結果の出力ファイルの形式が異なるものである場合には、異なる検証手段の結果を共通のデータ形式に変換し、テストパターンとして取り扱うようにすることで、テストパターンの作成も一度で済み、設計期間短縮が期待できる。
【0184】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。
【0185】
また、上記の実施形態は、クレーム(請求項)にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
【0186】
たとえば、上記実施形態では、論理エミュレータ装置に組み込むメモリ回路の生成手法や検証手法に関して説明したが、上記実施形態の適用範囲は、論理エミュレータ装置上のメモリ回路に限らず、電気回路内においてデータの一時格納などのために使用されるあらゆるメモリ回路に適用可能である。
【0187】
【発明の効果】
以上のように、本発明によれば、ターゲットメモリの所望のメモリ動作を、予め論理エミュレータ装置を構成するボード上に搭載されているメモリあるいは外部メモリと書換可能な論理デバイス(たとえばFPGA)に組み込んだラッパー回路とで実現するようにしたので、メモリ周辺回路の変更をエミュレータ装置に組み込まれているラッパー回路にて対応を採ることができ、事実上、メモリ周辺回路のハード的な変更を不要化することができる。
【0188】
また、使用予定のメモリと置き換える機構をエミュレータ装置に組み込んであるので、本物のメモリを入手した時点での置換や製品化後の生産中止などによる他メモリへの置換の際の検討作業が容易であり、検討期間の短縮やコストダウンに寄与することができる。
【0189】
また、生成されたラッパー回路やこのラッパー回路を含むメモリ回路の動作検証する際には、論理エミュレータ装置による検証結果とこの論理エミュレータ装置を用いた検証手法以外の手法による検証結果と比較することで、論理エミュレータ上のメモリモデルが元のメモリ(ターゲットメモリ)と同じ動作をするか否かを判定するようにしたので、複数の検証結果の整合を取ることができ、生成されたメモリモデルの品質の信頼性を高めることができるようになった。
【0190】
また、論理エミュレーションによる検証結果と他の検証手法による検証結果と比較することで、論理エミュレータ上にモデリングした回路がターゲット回路と同じ動作をするか否かを確認するようにしているので、メモリモデルに限らず、複数の検証結果の整合を取ることができ、生成された回路モデルの品質の信頼性を高めることができる。
【0191】
また、このような回路モデル検証方法および装置の手法を利用し、比較結果が一致しなければ、比較結果を参照して回路モデルを修正し、再度、論理エミュレーションによる検証結果と他の検証手法による検証結果と比較するようにすれば、ターゲット回路と等価な代替品を用いた個別回路のモデルを簡易かつ確実に生成することができる。これにより、論理エミュレーションの精度も向上する。
【図面の簡単な説明】
【図1】論理エミュレーションシステムの概略構成を示す図である。
【図2】図1に示した検証システムにおいて利用されているメモリ回路とこのメモリ回路の構築手法に着目した概略図である。
【図3】外部メモリボードを用いた場合のメモリ回路の構成を示す。
【図4】メモリ回路生成装置の機能ブロック図の一例である。
【図5】メモリ回路生成装置における、ラッパー回路を生成するための処理手順の一例を示すフローチャートである。
【図6】エミュレータ基板上に搭載したメモリ単体の動作仕様の一例である。
【図7】メモリ単体の各信号の詳細な説明を示した図表である。
【図8】ターゲットメモリの一例としてのSRAMのメモリモデル(メモリ動作のタイミングチャート)の一例を示す図である。
【図9】図8に示したSRAMモデルの動作を、代替品メモリやラッパー回路にて実現するために生成されたメモリ回路の一例を示す図である。
【図10】ターゲットメモリの一例としてのSDRAMのライト動作時におけるメモリモデルの一例を示す図である。
【図11】ターゲットメモリの一例としてのSDRAMのリード動作時におけるメモリモデルの一例を示す図である。
【図12】図10および図11に示した4MSDRAMモデルの動作を、代替品メモリやラッパー回路にて実現するために生成されたメモリ回路の一例を示す図である。
【図13】図12のメモリ回路の各信号の状態とステートの関係を示した図表である。
【図14】8MSDRAMモデルの動作を、代替品メモリやラッパー回路にて実現するために生成されたメモリ回路の一例を示す図である。
【図15】図1に示した回路モデル検証システムに着目した概略図である。
【図16】回路モデル検証装置の機能ブロック図の一例である。
【図17】ファイル変換部の処理機能を説明する図である。
【図18】結合ファイルの一例を示す図(A)、および図(A)の結合ファイルをファイル変換したファイルの一例を示す図(B)である。
【図19】回路モデル検証装置における、ラッパー回路やラッパー回路を備えたメモリ回路についての検証手順およびメモリ回路の生成手順の一例を示すフローチャートである。
【符号の説明】
1…検証システム、5…論理エミュレータ装置、7…メモリ回路構築システム、9…回路モデル検証システム、10…エミュレータ本体、11…外部ボード、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部、400…メモリ回路生成装置、410…メモリ情報取得部、412…種別情報取得部、414…仕様情報取得部、420…ラッパー回路生成部、450…回路モデル検証装置(回路モデル生成装置)、462…種別情報取得部、462…仕様情報取得部、470…動作検証部、472…システムレベル検証部、474…機能記述レベル検証部、476…論理検証部、478…検証結果比較部、480…ファイル変換部、482…システムレベル出力ファイル取得部、484…ファイル結合部、486…変換実行部、488…制御部、500…ラッパー回路、514…選択回路、520…ラッパー回路、530…ライトイネーブル信号発生回路、560…ラッパー回路、578…検証結果比較部、J12…メモリ種別情報、J14…メモリ仕様情報[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a memory circuit used for a verification system (emulator system) for performing logic verification of a semiconductor device, for example, and a method and an apparatus for generating the memory circuit. The present invention also relates to a method and an apparatus for verifying an individual circuit modeled on a verification system including a memory circuit, and a method and an apparatus for generating a circuit model.
[0002]
[Prior art]
2. Description of the Related Art With the advance of semiconductor technology, the degree of integration of logic ICs has been further improved, and a large-scale system can be integrated on one chip. Also, one-chip or a plurality of LSIs (Large Scale Integrated Circuits) are used for electronic devices. It is becoming possible to build systems such as equipment.
[0003]
When developing a semiconductor device such as a one-chip LSI or an ASIC (Application Specific Integrated Circuit), the logic operation of a logic circuit inside the semiconductor device (target circuit) is generally verified (debugged). Later, actual devices (chips) are manufactured.
[0004]
As a method of this logic verification, for example, there is a logic simulation (software simulation). In this method, an operation of a logic circuit to be subjected to logic verification is realized by an electronic computer (for example, a computer such as a workstation), and an output corresponding to a predetermined input pattern is predicted and analyzed (waveform analysis is performed by software). It is a mechanism.
[0005]
However, in this logic simulation, the operation speed is slower than that of an actual logic circuit, and the number of steps becomes very large when the scale of the logic circuit becomes large, and the logic verification time is lengthened. However, there is a problem that it is not always equivalent to the operation of a real circuit, and it is difficult to simulate the entire system faithfully. For this reason, it is practically impossible to verify the logic circuit of the entire system only by logic simulation.
[0006]
As another method of logic verification, there is a method of performing verification using a prototype LSI or a prototype using a substrate as a hardware element corresponding to a target circuit. In this method, for example, patterning of a prototype LSI is required, so that it takes several weeks to obtain a prototype. Therefore, it is difficult to repeatedly produce and verify a prototype.
[0007]
As a solution to the above-mentioned problem of the verification method, logic verification by logic emulation (hardware emulation / logic emulation) has attracted attention today (for example, see Patent Document 1).
[0008]
[Patent Document 1]
JP-A-2002-229813
[0009]
This logic emulation verifies the logic operation of a target circuit using a different kind of hardware element from the target circuit. For example, an operation equivalent to a logic circuit such as an LSI or a computer is performed on a printed circuit board. This is realized by a plurality of electronic components (a different kind of hardware element corresponding to the target circuit) mounted on the device, and the logic circuit is verified by operating the circuit at an operation speed close to the actual logic circuit.
[0010]
For example, it is realized by an emulator constituted by a programmable integrated semiconductor circuit (FPGA; Field Programmable Gate Array) which reads LSI design data and performs an operation equivalent to the LSI, and is realized by a CPU (Central Processing Unit). A general-purpose component such as a central processing unit) or a memory is mounted on an external printed circuit board, the emulator and the printed circuit board are connected, and the circuit is operated at an operation speed close to the actual logic circuit to verify the logic circuit.
[0011]
According to this logic emulation method, a system of several million gates can be constructed, verification of the system as a whole at an operating speed close to the actual speed is possible, and it is several thousand times more than software simulation using a computer. The verification result can be obtained in about one-half time. In addition, since the circuit configuration of the FPGA is variable, the circuit configuration of the FPGA is changed during verification to confirm the function, and the final circuit is determined. Then, the logic circuit verification (evaluation) of the entire system is performed in an operation close to the actual circuit. It can also be done at speed. At this time, by performing the logic circuit verification while changing the circuit configuration using the FPGA, it is also possible to determine a logic circuit of a specific function to be newly designed or a logic circuit for each user. This also allows the application specific integrated circuit ASIC to be provided in a relatively short period of time.
[0012]
[Problems to be solved by the invention]
On the other hand, in recent semiconductor devices, circuits have become complicated, a processor and a memory can be built in, and the system has become large-scale. Functions such as a CPU, a logic circuit, and a storage device (memory) are each provided independently. In addition to these, there is an increasing trend toward SOC (System On Chip), which realizes a desired system by mounting them on a single chip.
[0013]
Therefore, when the system-on-chip SOC is to be verified, the number of verification items is rapidly increasing. In this case, naturally, some items cannot be verified in the software simulation because the verification time is long. Therefore, it is necessary to perform system verification using a prototype board on which a prototype chip or the like is mounted, and more preferably, to perform system verification based on an actual device that performs system verification using logic emulation.
[0014]
In actual system-based system verification using prototype boards and logic emulation, functions are realized by mounting processors and memory circuits on rewritable devices and memory cells such as FPGAs that constitute the prototype boards and the verification system itself. However, it is difficult to accommodate the latest processor, high-performance memory, or large-scale memory in the verification system main unit, and a dedicated processor chip or external memory ( A circuit composed of these may be implemented by mounting an external circuit). In this way, even for a large-scale circuit, the designed logic circuit is mounted on a rewritable device such as an FPGA, a dedicated processor chip or an external memory, and an operation functionally equivalent to the actual chip is performed. You can check by emulation.
[0015]
For example, in an actual system-based system verification using logic emulation, a memory other than a logic circuit such as an SRAM (Static Random Access Memory) or an SDRAM (Synchronous Dynamic Random Access Memory) is mounted on a memory cell inside the emulator or an external board. A memory circuit is realized in combination with an external circuit (Wrapper circuit; wrapper circuit) that controls the memory so as to operate equivalently to the memory inside the system-on-chip SOC using an external memory such as an SRAM. Conventionally, when verifying the operation of this model, the operation of the model is often verified by confirming that the operation is the same as the specification of the memory.
[0016]
However, in recent system-on-chip SOC designs, a C language such as SystemC (trademark), SpecC, or CoWareC (trademark) is used without using an RTL (register transfer level) function description language (HDL) such as Verilog-HDL or VHDL. Designing with basic system-level languages is also increasing. In this case, detailed operation specifications of the memory alone often do not exist except for the simulation result. In addition, since many of these simulation results have different file formats, it is difficult or practically impossible to compare them with the results of logic simulation and logic emulation as they are.
[0017]
For this reason, it is often the case that a circuit is implemented in a logic emulator and verification is performed without sufficient verification of the operation. It has become to.
[0018]
A memory circuit using a memory such as an SDRAM or an SRAM is not limited to a memory circuit modeled by logic emulation, but is frequently used for temporarily storing data in an electric circuit. However, it is often difficult to study circuits because it is difficult to procure memories to be used. In such a case, the study must be delayed until the memory is obtained, or the study must be performed using a substitute memory.
[0019]
However, the method of delaying the examination causes a problem that the examination period is lengthened. In addition, when using alternative memory, the operation of the alternative memory and the original memory (target memory) do not always match, so it is necessary to change the circuits around the memory (wrapper circuit) so that the alternative memory operates. Problem may occur.
[0020]
Also, in this case, even when the memory peripheral circuit is changed and the entire memory circuit is constructed using the substitute memory, as described above, the problem is how to construct the memory model of the circuit and verify the operation. It becomes. If the memory circuit composed of the substitute memory and the wrapper circuit does not perform the same operation as the original target memory, the logic verification (logic emulation) using the assumed target memory model will fail. It is. Conventionally, it has been difficult to perform appropriate verification because a verification mechanism for such a case has not been established.
[0021]
As described above, when handling a memory circuit, it is required to shorten the design period. In this regard, it is a major problem in various aspects that it is difficult to procure a memory to be used.
[0022]
As a technique relating to a test method of a memory circuit, a technique for specifying a defective memory or a defective bit has been proposed (for example, see Patent Document 2).
[0023]
[Patent Document 2]
JP 2000-331499 A
[0024]
According to the method disclosed in
[0025]
However, as described above, the method of
[0026]
In addition, in the logic emulation, not only the memory circuit but also the modeled individual circuit is an equivalent circuit using a substitute, and the logic verification using the memory circuit composed of the substitute memory and the wrapper circuit is performed. The same problem occurs.
[0027]
The present invention has been made in view of the above circumstances, and has a method and apparatus for generating a memory circuit capable of efficiently or easily generating a memory circuit that operates in the same manner as a target memory. It is an object of the present invention to provide a memory circuit.
[0028]
Another object of the present invention is to provide a method and an apparatus for generating a circuit model that can reliably and easily constitute an individual circuit such as a memory circuit modeled on a logic emulation system as a substitute.
[0029]
Further, the present invention provides a verification method and apparatus capable of reliably and easily verifying a model of such an individual circuit when configuring an individual circuit such as a memory circuit modeled on a logic emulation system with a substitute. The purpose is to provide.
[0030]
[Means for Solving the Problems]
That is, the method of generating a memory circuit according to the present invention is a method of generating a model of a memory circuit that performs substantially the same operation as a target memory using a substitute memory, and is connected to the substitute memory. In addition, a wrapper circuit that causes the memory circuit to operate substantially equivalent to the target memory by cooperating with the substitute memory is incorporated in the rewritable logic device. As a substitute memory, a memory cell provided outside the logic device may be used instead of a memory built in the logic device.
[0031]
Here, when the capacity of the target memory is smaller than the capacity of the alternative memory, it is preferable to construct the wrapper circuit so that the capacity of the target memory is handled by the capacity of the single alternative memory.
[0032]
When the capacity of the target memory is larger than the capacity of the alternative memory, it is preferable to construct the wrapper circuit so that the capacity of the target memory is assigned in combination with the capacity of a plurality of alternative memories.
[0033]
An apparatus for generating a memory circuit according to the present invention is an apparatus for generating a model of a memory circuit that performs substantially the same operation as a target memory using a substitute memory, wherein a memory type related to a type of the target memory memory is provided. A type information obtaining unit for obtaining information; a specification information obtaining unit for obtaining memory specification information on the performance of the target memory; a memory type information obtained by the type information obtaining unit; and a memory specification information obtained by the specification information obtaining unit. And a wrapper circuit generating unit that generates a model of a wrapper circuit that is connected to the substitute memory and that causes the memory circuit to operate substantially equivalent to the target memory by cooperating with the substitute memory. did.
[0034]
The memory circuit according to the present invention is generated by using the method and apparatus for generating a memory circuit according to the present invention, and is connected to a substitute memory and incorporated in a rewritable logic device. The circuit shall be included. Here, the wrapper circuit includes a functional part that causes the memory circuit to operate substantially equivalent to the target memory by cooperating with the substitute memory.
[0035]
In addition, the wrapper circuit may be configured to control the spare memory so that the capacity of the target memory is handled by the capacity of the single spare memory, or to handle the capacity of the target memory by the capacity of a plurality of spare memories. It is desirable to include a functional part for controlling the use of a plurality of alternative memories while controlling the use of the individual alternative memories.
[0036]
A circuit model verification method according to the present invention is a method for verifying an operation of an individual circuit modeled on a logic verification system for verifying a logic operation of a target circuit, and includes an emulation result and a logic which are verification results by the logic verification system. By comparing the second verification result, which is a verification result obtained by a verification method different from the verification method by the verification system, the individual circuit modeled on the logic verification system becomes an original circuit (target circuit) corresponding to the individual circuit. It is determined whether or not the same operation is performed.
[0037]
A typical example of the individual circuit is a memory circuit that performs substantially the same operation as the target memory by using a substitute memory. Of course, the present invention is not limited to such a memory circuit, and may be another equivalent circuit using a substitute.
[0038]
Here, the second verification result includes a system-level simulation result (system-level verification result) of an individual circuit modeled on a target circuit designed in a system-level language, and a target circuit created in a function description language. It is preferable that the result is at least one of the simulation results (function description language level verification results) at the function description language level of the individual circuit modeled above. It is more preferable to compare both the system level verification result and the function description language level verification result with the emulation result.
[0039]
If the format of the output file indicating the second verification result is different from the file format that can be handled by the verification by the logical verification system, the format of the output file indicating the second verification result is verified by the logical verification system. It is recommended to convert to a file format that can be handled by and then compare with the emulation result.
[0040]
A circuit model verification device according to the present invention is a device that performs a circuit model verification method according to the invention, and a logic verification unit that acquires an emulation result that is a verification result by a logic verification system, and a verification method that is performed by the logic verification system. A second verification unit that obtains a second verification result that is a verification result by a different verification method, and compares an emulation result obtained by the logic verification unit with a second verification result obtained by the second verification unit. Thus, the individual circuit modeled on the logic verification system includes a verification result comparison unit that determines whether or not the individual circuit performs the same operation as the corresponding original circuit (target circuit).
[0041]
Here, the second verification unit is configured to generate a system-level simulation result of an individual circuit modeled on a target circuit designed in a system-level language, and an individual circuit modeled on a target circuit created in a function description language. Preferably, at least one of the simulation results at the function description language level is obtained as a second verification result.
[0042]
In addition, the circuit model verification device according to the present invention includes a file conversion unit that converts a format of the output file indicating the second verification result into a file format that can be handled by verification by the logic verification system, It is preferable that the verification result comparison unit compares the verification result indicated by the output file converted by the file conversion unit with the emulation result.
[0043]
The circuit model generation method according to the present invention is an individual circuit that is modeled on a logic verification system that verifies the logic operation of a target circuit by using the circuit model verification method according to the present invention. This is a method for generating a model of an individual circuit configured to perform substantially the same operation as the target circuit by using the emulation result, which is the verification result by the logic verification system, and the verification method different from the verification method by the logic verification system. A first step of comparing the result with a second verification result, and an individual circuit modeled on the logic verification system based on the comparison of the verification result is the same as the original circuit (target circuit) corresponding to this individual circuit. And a second step of determining whether or not to perform an operation.
[0044]
If the same operation as that of the original circuit is not performed, the model of the individual circuit modeled on the logic verification system is corrected with reference to the comparison result of the first step. And the second step are repeated to determine the model of the individual circuit.
[0045]
A typical example of the individual circuit is a memory circuit that performs substantially the same operation as the target memory by using a substitute memory. Of course, the present invention is not limited to such a memory circuit, and may be another equivalent circuit using a substitute.
[0046]
Here, the first step includes a system-level simulation result of an individual circuit modeled on a target circuit designed in a system level language and a function of the individual circuit modeled on a target circuit created in a function description language. It is preferable that at least one of the simulation results at the description language level is acquired as a second verification result, and the second verification result is compared with the emulation result.
[0047]
Further, the circuit model generation method according to the present invention includes a third step of converting the format of the output file indicating the second verification result into a file format that can be handled by the verification by the logic verification system. Preferably, the first step is to compare the verification result indicated by the output file converted by the third step with the emulation result.
[0048]
A circuit model generation device according to the present invention is a device that performs the circuit model generation method according to the present invention, and includes a logic verification unit that acquires an emulation result that is a verification result by a logic verification system, and a verification method that is performed by the logic verification system. A second verification unit that obtains a second verification result that is a verification result obtained by a verification method different from that of the first verification unit, and compares an emulation result obtained by the logic verification unit with a second verification result obtained by the second verification unit. And a verification result comparison unit for performing a first step of determining whether the individual circuit modeled on the logic verification system performs the same operation as the original circuit corresponding to the individual circuit. It was prepared.
[0049]
Further, on the condition that the judgment result in the second step in the verification result comparing section indicates that the circuit does not perform the same operation as the original circuit, the logic is performed by referring to the comparison result in the first step in the verification result comparing section. A control unit is provided for correcting the model of the individual circuit modeled on the verification system and controlling the corrected model to repeat the first step and the second step.
[0050]
Here, as a first step, the verification result comparison unit performs a system level simulation result of an individual circuit modeled on a target circuit designed in a system level language and a modeling on a target circuit created in a function description language. It is preferable that at least one of the simulation results at the function description language level of the individual circuit to be performed is compared with the emulation result as a second verification result.
[0051]
In addition, the circuit model generation device according to the present invention includes a file conversion unit that converts the format of the output file indicating the second verification result into a file format that can be handled by verification by the logic verification system, It is preferable that the verification result comparison unit compares the verification result indicated by the output file converted by the file conversion unit with the emulation result as a first step.
[0052]
In addition, a program suitable for realizing the above-described various methods and apparatuses by software using an electronic computer (computer) or a computer-readable storage medium storing the program may be extracted as an invention. The program may be provided by being stored in a computer-readable storage medium, or may be distributed via a wired or wireless communication unit.
[0053]
[Action]
In the memory circuit generation method and apparatus having the above configuration, a memory circuit that operates substantially equivalent to a target memory is constructed using a memory and a rewritable logic device such as an FPGA. Then, a wrapper circuit connected to the memory is mounted in the logical device.
[0054]
Further, in the circuit model verification method and apparatus having the above configuration, whether or not a circuit modeled (implemented) on a logic emulator performs the same operation as the original circuit (target circuit) is determined by comparing the verification result by the logic emulation with another Confirm by comparing with the verification result by the verification method.
[0055]
Further, in the circuit model generation method and apparatus having the above configuration, the method of the circuit model verification method and apparatus described above is used, and if the comparison result does not match, the circuit model is corrected with reference to the comparison result, and again, Compare the verification result by logic emulation with the verification result by other verification methods. By repeating this process until the comparison result matches, an individual circuit equivalent to the target circuit is created using the substitute.
[0056]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0057]
FIG. 1 is a diagram showing a schematic configuration of a verification system (logic emulation system) for performing logic emulation.
[0058]
The
[0059]
The emulator main body (verification system main body) 10 includes a
[0060]
As the
[0061]
A plurality of CPU boards 20 and external memory boards 30 are prepared as needed. The emulator
[0062]
The
[0063]
Note that test data (input data) for verification may be the same as that used in software simulation. The test data for verification is supplied to the
[0064]
The data (output data) of the verification result is output to the data input / output PCs 84 and 86 via the
[0065]
The controller PC 80 is a dedicated cable in the controller I /
[0066]
By providing a common interface mechanism such as a PCI bus or an ISA bus as the data I /
[0067]
As the data I /
[0068]
Standard interfaces such as a parallel bus interface such as a PCI bus and an ISA bus are legal (legal) laws recognized by non-commercial organizations such as IEEE and JIS (Japanese Industrial Standards) or governmental organizations (public standard bodies). It may be a public interface used to establish uniformity in the area of hardware or software development according to the technical guidelines (above).
[0069]
Further, the interface is not limited to such a public interface, and may be a private standard interface compiled by a private organization or a single company, that is, a so-called industry standard interface (industrial standard interface). In any case, the standard interface may be any connection interface that satisfies a certain standard.
[0070]
For example, the hardware development or development that occurs when a product or philosophy is developed by a company and deviations from the standard through success and imitation cause compatibility issues or become widely used to limit marketability. De facto technical guidelines for software development (informal standards) may be employed as the standard interface in the present embodiment.
[0071]
The controller PC 80 and the workstation 82 are connected by a network LAN (Local Area Network). The workstation 82 generates logical design data which is logically described in a format called, for example, RTL (Register Transfer Level) or HDL (Hardware Description Language). In addition, the workstation 82 transfers the description data of the circuit portion corresponding to the logical design data or the data obtained by converting the description data into a predetermined data format to the controller PC 80. The controller PC 80 decodes this data, generates logic function definition data necessary for setting a logic function in the
[0072]
Further, the workstation 82 transfers the load module generated for the target circuit evaluation to the controller PC 80. The load module is supplied to the emulator
[0073]
As a peripheral system of the
[0074]
In addition, as a peripheral system of the
[0075]
The circuit
[0076]
The circuit information of the wrapper circuit generated by the memory
[0077]
<< A memory circuit construction method using a substitute memory >>
FIG. 2 is a schematic diagram focusing on a memory circuit used in the
[0078]
As shown in the figure, the emulator
[0079]
As shown in FIG. 1, the emulator
[0080]
In the
[0081]
FIG. 3 shows a configuration of a memory circuit when the external memory board 30 is used. In this case, the wrapper circuit is mounted in the
[0082]
FIG. 4 is an example of a functional block diagram of the memory
[0083]
Further, the memory
[0084]
In the above configuration, the memory
[0085]
When the wrapper circuit generation processing is executed by software, an OS (operating system) which is software for controlling the entire operation and an application program which is software for performing the wrapper circuit generation function are provided by dedicated hardware. The computer is installed (embedded) from a recording medium into a computer incorporated in the computer or a general-purpose personal computer that can execute various functions by installing various programs. As a result, the memory circuit generation device according to the present invention is realized as software based on a program.
[0086]
The recording medium is a magnetic disk (including a flexible disk) on which the program is recorded, an optical disk (CD-ROM (Compact Disc-Read Only Memory)), which is distributed separately from the computer to provide the program to the user, Not only a DVD (including a Digital Versatile Disc), a magneto-optical disk (including an MD (Mini Disc)), or a package medium (portable storage medium) such as a semiconductor memory but also pre-installed in a computer The program may be provided to the user in a locked state, or may be configured by a ROM or a hard disk in which the program is recorded. Alternatively, a program constituting software may be distributed via a wired or wireless communication unit.
[0087]
For example, a storage medium storing a program code of software for realizing a wrapper circuit generation function is supplied to a system or apparatus, and a computer (or CPU or MPU) of the system or apparatus reads out the program code stored in the storage medium. The effect of the wrapper circuit generation processing is also achieved by executing. In this case, the program code itself read from the storage medium implements the wrapper circuit generation function.
[0088]
When the computer executes the readout program code, not only the wrapper circuit generation function is realized, but also the operating system OS running on the computer performs actual processing based on the instruction of the program code. A case where a part or the whole is performed and the wrapper circuit generation function is realized by the processing may be performed.
[0089]
Further, after the program code read from the storage medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. The CPU or the like provided in the card or the function expansion unit may perform part or all of the actual processing, and the processing may realize the wrapper circuit generation function.
[0090]
FIG. 5 is a flowchart illustrating an example of a processing procedure for generating a wrapper circuit in the memory
[0091]
First, the type
[0092]
When the SRAM is selected (S100-SRAM), the specification
[0093]
Next, the wrapper
[0094]
For example, when the determined number of memories is "1" (S116-YES), the wrapper
[0095]
On the other hand, when the SDRAM is selected (S100-SDRAM), the basic processing procedure is the same as that when the SRAM is selected, but the specification
[0096]
FIG. 6 is an example of an operation specification of the
[0097]
The size (memory capacity) of each memory 16 (SRAM in this example) is 32 bits × 128 kilobytes, and four of these are mounted on the emulator board 10a, and have a total size of 128 bits × 128 kilobytes. The operation of another memory (the target memory used in the system-on-chip SOC in this example) is realized by using the single memory (SRAM) and the wrapper circuit.
[0098]
In the signal shown in FIG. 7, "ADVLn" is fixed to "0 (L; low)" because it is unique to the chip and is not used in the present embodiment. “CE1n @” (@ is 1 to 4) controls the use of the four
[0099]
FIG. 8 is a diagram illustrating an example of an SRAM memory model (timing chart of memory operation) as an example of a target memory. The SRAM model of the example shown in FIG. 8 is a model of 8 bits × 36720 words.
[0100]
FIG. 9 is a diagram showing an example of a memory circuit model (hereinafter also referred to as a memory model) generated to realize the operation of the SRAM model shown in FIG. 8 by a substitute memory such as the
[0101]
The
[0102]
As shown in FIG. 9, the
[0103]
For example, in the
[0104]
Further, the
[0105]
As described above, as the
[0106]
The
[0107]
FIGS. 10 and 11 are diagrams showing an example of a memory model (timing chart of memory operation) of an SDRAM as an example of a target memory. Here, FIG. 10 is a timing chart at the time of a write (Write) operation, and FIG. 11 is a timing chart at the time of a read (Read) operation. The SDRAM model of the example shown in FIGS. 10 and 11 has a storage capacity of 4M (mega).
[0108]
FIG. 12 is a diagram showing an example of a memory circuit generated to realize the operation of the 4MS DRAM model shown in FIGS. 10 and 11 by a substitute memory such as the
[0109]
The wrapper circuit 520 around the
[0110]
As shown in FIG. 12, the wrapper circuit 520 includes an operation of the memory model shown in FIGS. 10 and 11, which is a target memory, and a substitute memory (in this example, FIG. The wrapper circuit 520 is configured based on a comparison with the timing of the
[0111]
For example, a comparison between FIG. 6 and FIG. 10 reveals that the write data timing is delayed by 1T (one clock) from the actual memory model. In addition, a comparison between FIG. 6 and FIG. 11 shows that the output timing of the read data is earlier than the actual memory model by 2T (two clocks). The memory
[0112]
For example, as a circuit element corresponding to the 1T delay of the write data, a flip-
[0113]
As described above, as the
[0114]
The wrapper circuit 520 causes each of the write (write) and read (read) operations (collectively, Write / Read) to be performed in units of four in the burst period, similarly to the operation of the 4MS DRAM as the target memory. For this purpose, a write enable
[0115]
Further, the wrapper circuit 520 also controls the chip enable CE1n @ (@ is only 1 in this example) at the time of the Read / Write operation in units of four, so that the 4T-wide output enable OEn and the chip enable CE1n1 are output from the chip select XCS. A circuit element for generating is added.
[0116]
The
[0117]
The address bus input (A [16: 0]) of the wrapper circuit 520 according to the present embodiment includes a circuit element for incrementing the address Addr for a burst operation (operation in units of four) at the time of a read / write operation. An address signal generation circuit (make address) 550 for associating the X-direction address input AX and the Y-direction address input AY with the address Addr of the
[0118]
The
[0119]
For example, the command decoder (Command Decoder) 540, the
[0120]
Here, the
[0121]
The
The
[0123]
The ADVL
[0124]
The output enable
[0125]
At the time of writing, in the timing chart of FIG. 10, AX at the next ACT timing after the issuance of the DESL command is captured as an address in the X direction, and AY at a timing delayed by one clock is captured as an address in the Y direction. Then, a WRITE command is fetched after ACT, and the write operation starts from the next cycle. In this case, the address is taken in the section from Addr to Addr + 3 in the timing chart of FIG. 10, and the data actually written is from Data1 to Data4. Then, when PALL (PRECHARGE ALL) is read, the write operation ends. When writing to another address, the process starting from the ACT command is repeated.
[0126]
At the time of reading, in the timing chart of FIG. 11, after the DESL command is issued, AX is taken in by the next issued ACT command, and AY is taken in by the next clock. Then, the value Data1 stored at the address ADDR read at the next timing after the next READ command is fetched is read. The same read operation is performed up to
[0127]
FIG. 14 is a diagram showing another example of a memory circuit generated to realize the operation of the memory model by a substitute memory such as the
[0128]
The basic operation of the 8MS DRAM is the same as that of the 4MS DRAM, but one memory 16 (SRAM) mounted on the emulator board 10a cannot store all data. To this end, a feature is that a processing circuit is provided in which the mounted memory to be accessed changes according to the address. In the present embodiment, a first SRAM (shown by (1) in the figure) and a third SRAM (shown by (3) in the figure) are used. This will be specifically described below.
[0129]
The
[0130]
The ADVL
[0131]
With such a configuration, the most significant bit (Addr1 [17]) of the incremented read address can be used at the time of reading as well as at the time of writing. By switching and using the SRAM, it is possible to adopt a capacity of 8M.
[0132]
As described above, three cases (SRAM compatible as target memory and SDRAM compatible) of realizing the same operation as the target memory by using the substitute memory and the wrapper circuit have been described. Or SDRAM.
[0133]
Further, as for the memory size (memory capacity) of the target memory, the case of 4M or 8M has been described in the above embodiment, but another memory capacity may be used. For example, in order to support 16M, a configuration is used in which four SRAMs mounted on the emulator substrate 10a are switched and used according to the value (00, 01, 10, 11) of the two most significant bits of the address. By doing so, it is possible to take measures.
[0134]
Further, in the above embodiment, the example in which the
[0135]
As described above, according to the configuration of the above-described embodiment, even if the memory to be used (that is, the target memory) is not obtained, as long as the operation specifications are known, the memory (the actual In the embodiment, the
[0136]
That is, since a mechanism for replacing the memory to be used is prepared in the emulator device, the memory can be replaced when the real memory is obtained, and the examination work can proceed smoothly. Further, even after the product is commercialized, it can be easily used for a study work when replacing the memory with another memory due to a discontinuation of production, etc., which can contribute to shortening the study period and cost reduction.
[0137]
<< Method of verifying and generating wrapper circuit and memory circuit >>
Next, a method of verifying the wrapper circuit generated by the memory
[0138]
FIG. 15 is a schematic diagram focusing on the circuit
[0139]
Circuit data to be mounted on the
[0140]
The circuit
[0141]
The circuit
[0142]
FIG. 16 is an example of a functional block diagram of the circuit
[0143]
Further, the circuit
[0144]
Furthermore, the circuit
[0145]
As shown in FIG. 16B, the
[0146]
The
[0147]
Further, the
[0148]
Note that the circuit
[0149]
The
[0150]
Note that the verification
[0151]
In this embodiment, the output pattern file output from the system
[0152]
In the above configuration, the circuit
[0153]
When the verification process of the memory circuit or the like is executed by software, an OS (operating system) that is software for controlling the entire operation and an application program that is software for performing a verification function of the above-described memory circuit or the like include: It is installed (incorporated) from a recording medium into a computer incorporated in dedicated hardware or a general-purpose personal computer that can execute various functions by installing various programs. As a result, the circuit model verification device according to the present invention is realized as software based on a program.
[0154]
The recording medium is a magnetic disk (including a flexible disk) on which the program is recorded, an optical disk (CD-ROM (Compact Disc-Read Only Memory)), which is distributed separately from the computer to provide the program to the user, Not only a DVD (including a Digital Versatile Disc), a magneto-optical disk (including an MD (Mini Disc)), or a package medium (portable storage medium) such as a semiconductor memory but also pre-installed in a computer The program may be provided to the user in a locked state, or may be configured by a ROM or a hard disk in which the program is recorded. Alternatively, a program constituting software may be distributed via a wired or wireless communication unit.
[0155]
For example, a storage medium storing a program code of software for realizing a verification function such as a memory circuit is supplied to a system or apparatus, and a computer (or CPU or MPU) of the system or apparatus stores the program code stored in the storage medium. The effect of the verification process for the memory circuit and the like can be achieved by reading and executing. In this case, the program code itself read from the storage medium implements the verification processing function.
[0156]
When the computer executes the readout program code, not only the wrapper circuit generation function is realized, but also the operating system OS running on the computer performs actual processing based on the instruction of the program code. A case where a part or the whole is performed and the wrapper circuit generation function is realized by the processing may be performed.
[0157]
Further, after the program code read from the storage medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. The CPU or the like provided in the card or the function expansion unit may perform part or all of the actual processing, and the processing may realize the wrapper circuit generation function.
[0158]
FIG. 17 is a diagram illustrating the processing function of the
[0159]
FIG. 18 shows an example of the combined file generated by the
[0160]
As shown in FIG. 17A, the
[0161]
As shown in FIG. 17B, the system level output
[0162]
Here, the file formats that can be handled by the function description
[0163]
Therefore, first, the
[0164]
For example, in the combined file shown in FIG. 18A, the file is output in a format in which time information (the numerical value after # is time; unit picosecond) and data are arranged in pairs one by one and sequentially arranged. Unlike the file shown in (B), the data at the same time is not in a format that is integrated with the time information at that time. In the comparison verification performed by the function description
[0165]
Therefore, the
[0166]
FIG. 19 is a flowchart illustrating an example of a verification procedure and a generation procedure of a memory circuit including the wrapper circuit generated by the memory
[0167]
First, the system
[0168]
As described with reference to FIG. 17, since the file output of each verification result cannot be compared unless it is in the same file format, the output pattern file of the verification result of the system-level simulation having a file format different from the others is stored in a file. After the file is converted by the
[0169]
Next, the function description
[0170]
Next, the
[0171]
Next, the verification result comparing unit 578 compares the verification result (emulation result) 626 obtained by this emulator with the verification result (an example of the second verification result) 606 of the system level simulation and the logic simulation (function description level simulation). And (430) are compared with the verification result (another example of the second verification result) 616.
[0172]
If the comparison result output by the verification result comparison unit 578 is the same (S432-YES), the
[0173]
The memory
[0174]
In the above embodiment, the verification result of the system level simulation and the logic simulation is compared with the verification result using the
[0175]
For example, a circuit generated by the memory
[0176]
Also, by comparing the results of logic emulation with those of other verification methods, it is possible to check whether the circuit modeled on the logic emulator operates the same as the target circuit. Not only that, a plurality of verification results can be matched, and the reliability of the quality of the generated circuit model can be improved.
[0177]
Further, in the above embodiment, as an individual circuit modeled in the logic emulator device, a memory circuit that performs an operation substantially equivalent to a target memory by using a substitute memory is targeted, and a model of the memory circuit is verified. And the generation of the circuit model have been described, but the individual circuit is not limited to such a memory circuit. The individual circuit is not limited to the memory circuit configured by the alternative memory and the wrapper circuit, and the same effects as described above can be obtained by applying the embodiment to other equivalent circuits using the alternative. be able to.
[0178]
Further, in the above embodiment, the file conversion by the
[0179]
In any case, when the file formats that can be handled by the respective verification units are different, by performing a file conversion process on any (or all) output files so as to obtain a unified file format, What is necessary is just to make the whole a unified (common) file format.
[0180]
As described above, according to the configuration of the above embodiment, the result of the system level simulation and the logic simulation using the common test pattern and the
[0181]
If a problem is found in the verification result, a corrected model reflecting the result can be reconfigured and verified again by an emulator device incorporated in the verification system. Here, since the wrapper circuit generated by the memory
[0182]
In addition, the logic circuit verification (evaluation) of the entire system (system-on-chip SOC in the above embodiment) can be performed at an operation speed close to the actual circuit, in addition to the repeated verification of the wrapper circuit and the memory circuit.
[0183]
When the output file format of each verification result is different, the results of different verification means are converted to a common data format and handled as test patterns, so that test patterns can be created at once. The design time can be shortened.
[0184]
As described above, the present invention has been described using the embodiment. However, the technical scope of the present invention is not limited to the scope described in the embodiment. Various changes or improvements can be made to the above-described embodiment without departing from the spirit of the invention, and embodiments with such changes or improvements are also included in the technical scope of the present invention.
[0185]
Further, the above embodiments do not limit the invention according to the claims (claims), and all combinations of the features described in the embodiments are not necessarily essential to the means for solving the invention. Absent. The embodiments described above include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent features. Even if some components are deleted from all the components shown in the embodiment, as long as the effect is obtained, a configuration from which some components are deleted can be extracted as an invention.
[0186]
For example, in the above-described embodiment, a description has been given of a generation method and a verification method of a memory circuit incorporated in a logic emulator device. However, the application range of the above-described embodiment is not limited to the memory circuit on the logic emulator device, and data may be stored in an electric circuit. The present invention is applicable to any memory circuit used for temporary storage and the like.
[0187]
【The invention's effect】
As described above, according to the present invention, a desired memory operation of a target memory is incorporated into a memory mounted on a board constituting a logic emulator apparatus or a logic device (for example, an FPGA) that can be rewritten with an external memory. Since it is realized with a wrapper circuit, changes in the memory peripheral circuit can be handled by the wrapper circuit built into the emulator device, virtually eliminating the need for hardware changes in the memory peripheral circuit. can do.
[0188]
In addition, since a mechanism to replace the memory to be used is built into the emulator device, it is easy to perform a study when replacing the real memory or when replacing the memory with another memory due to discontinuation of production after commercialization. Yes, it can contribute to shortening the study period and cost.
[0189]
In addition, when verifying the operation of the generated wrapper circuit and the memory circuit including the wrapper circuit, the verification result by the logic emulator device is compared with the verification result by a method other than the verification method using the logic emulator device. Since it is determined whether or not the memory model on the logic emulator performs the same operation as the original memory (target memory), it is possible to match a plurality of verification results and improve the quality of the generated memory model. You can now increase the reliability.
[0190]
Also, by comparing the results of logic emulation with those of other verification methods, it is possible to check whether the circuit modeled on the logic emulator operates the same as the target circuit. Not only that, a plurality of verification results can be matched, and the reliability of the quality of the generated circuit model can be improved.
[0191]
In addition, if the comparison results do not match, the circuit model is corrected by referring to the comparison result, and the verification result by the logic emulation and the verification result by another verification method are used again. By comparing with a verification result, a model of an individual circuit using a substitute equivalent to the target circuit can be easily and reliably generated. Thereby, the accuracy of the logic emulation is also improved.
[Brief description of the drawings]
FIG. 1 is a diagram showing a schematic configuration of a logic emulation system.
FIG. 2 is a schematic diagram focusing on a memory circuit used in the verification system shown in FIG. 1 and a method of constructing the memory circuit.
FIG. 3 shows a configuration of a memory circuit when an external memory board is used.
FIG. 4 is an example of a functional block diagram of a memory circuit generation device.
FIG. 5 is a flowchart illustrating an example of a processing procedure for generating a wrapper circuit in the memory circuit generation device.
FIG. 6 is an example of operation specifications of a single memory mounted on an emulator substrate.
FIG. 7 is a table showing a detailed description of each signal of a single memory.
FIG. 8 is a diagram showing an example of a memory model (timing chart of memory operation) of an SRAM as an example of a target memory.
FIG. 9 is a diagram illustrating an example of a memory circuit generated to implement the operation of the SRAM model illustrated in FIG. 8 with a substitute memory or a wrapper circuit.
FIG. 10 is a diagram illustrating an example of a memory model during a write operation of an SDRAM as an example of a target memory.
FIG. 11 is a diagram illustrating an example of a memory model at the time of a read operation of an SDRAM as an example of a target memory.
FIG. 12 is a diagram showing an example of a memory circuit generated to implement the operation of the 4MS DRAM model shown in FIGS. 10 and 11 with a substitute memory or a wrapper circuit.
FIG. 13 is a table showing a relationship between states of respective signals of the memory circuit of FIG. 12;
FIG. 14 is a diagram showing an example of a memory circuit generated to realize the operation of the 8MS DRAM model by a substitute memory or a wrapper circuit.
FIG. 15 is a schematic diagram focusing on the circuit model verification system shown in FIG. 1;
FIG. 16 is an example of a functional block diagram of a circuit model verification device.
FIG. 17 is a diagram illustrating a processing function of a file conversion unit.
18A is a diagram illustrating an example of a combined file, and FIG. 18B is a diagram illustrating an example of a file obtained by converting the combined file of FIG.
FIG. 19 is a flowchart illustrating an example of a verification procedure for a wrapper circuit and a memory circuit including the wrapper circuit and a generation procedure of the memory circuit in the circuit model verification apparatus.
[Explanation of symbols]
DESCRIPTION OF
Claims (22)
前記代替品メモリと接続されるとともに、当該代替品メモリと協働することで前記メモリ回路に前記ターゲットメモリと略等価な動作をさせるラッパー回路を、書換可能な論理デバイスに組み込む
ことを特徴とするメモリ回路生成方法。A memory circuit generation method for generating a model of a memory circuit that performs substantially the same operation as a target memory using a substitute memory,
A wrapper circuit, which is connected to the substitute memory and cooperates with the substitute memory to cause the memory circuit to operate substantially equivalent to the target memory, is incorporated in a rewritable logic device. Memory circuit generation method.
ことを特徴とする請求項1に記載のメモリ回路生成方法。2. The method according to claim 1, wherein the wrapper circuit is constructed such that the capacity of the target memory is controlled by the capacity of the single substitute memory.
ことを特徴とする請求項1に記載のメモリ回路生成方法。2. The memory circuit generation method according to claim 1, wherein the wrapper circuit is constructed so that the capacity of the target memory is assigned in combination with the capacity of the plurality of alternative memories.
ことを特徴とする請求項1に記載のメモリ回路生成方法。The method according to claim 1, wherein a memory cell provided outside the logic device is used as the substitute memory.
前記ターゲットメモリメモリの種別に関するメモリ種別情報を取得する種別情報取得部と、
前記ターゲットメモリメモリの性能に関するメモリ仕様情報を取得する仕様情報取得部と、
前記種別情報取得部が取得した前記メモリ種別情報と、前記仕様情報取得部が取得した前記メモリ仕様情報とに基づいて、前記代替品メモリと接続されるとともに、当該代替品メモリと協働することで前記メモリ回路に前記ターゲットメモリと略等価な動作をさせるラッパー回路のモデルを生成するラッパー回路生成部と
を備えたことを特徴とするメモリ回路生成装置。A memory circuit generation device that generates a model of a memory circuit that performs substantially the same operation as a target memory using a substitute memory,
A type information acquisition unit that acquires memory type information regarding the type of the target memory memory;
A specification information acquisition unit that acquires memory specification information regarding the performance of the target memory memory;
Based on the memory type information obtained by the type information obtaining unit and the memory specification information obtained by the specification information obtaining unit, connected to the alternative memory and cooperating with the alternative memory. And a wrapper circuit generation unit for generating a model of a wrapper circuit that causes the memory circuit to operate substantially equivalent to the target memory.
前記代替品メモリと接続されるとともに書換可能な論理デバイスに組み込まれたラッパー回路を含み、
前記ラッパー回路は、前記代替品メモリと協働することで、前記メモリ回路に前記ターゲットメモリと略等価な動作をさせる機能部分を含む
ことを特徴とするメモリ回路。A memory circuit that performs substantially the same operation as the target memory using the substitute memory,
A wrapper circuit connected to the replacement memory and incorporated in the rewritable logic device;
The memory circuit according to claim 1, wherein the wrapper circuit includes a functional part that causes the memory circuit to operate substantially equivalent to the target memory by cooperating with the substitute memory.
ことを特徴とする請求項6に記載のメモリ回路。7. The memory circuit according to claim 6, wherein the wrapper circuit includes a functional part for controlling the replacement memory so that the capacity of the target memory is taken up by a single capacity of the replacement memory. .
ことを特徴とする請求項6に記載のメモリ回路。The wrapper circuit includes a functional part that controls the replacement memory while switching the use of the plurality of replacement memories so that the capacity of the target memory is handled by the capacity of the plurality of replacement memories. The memory circuit according to claim 6, wherein
前記論理検証システムによる検証結果であるエミュレーション結果と、前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果とを比較することで、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する
ことを特徴とする回路モデル検証方法。A circuit model verification method for verifying the operation of an individual circuit modeled on a logic verification system for verifying a logical operation of a target circuit,
The emulation result, which is a verification result by the logic verification system, and a second verification result, which is a verification result by a verification method different from the verification method by the logic verification system, are modeled on the logic verification system. A method of verifying a circuit model, comprising determining whether the individual circuit performs the same operation as an original circuit corresponding to the individual circuit.
ことを特徴とする請求項9に記載の回路モデル検証方法。A system-level simulation result of the individual circuit modeled on the target circuit designed in a system level language as the second verification result, and a modeled on the target circuit created in a function description language 10. The circuit model verification method according to claim 9, wherein the comparison is performed with at least one of simulation results of a function description language level of the individual circuit.
前記第2の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換し、
この変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
ことを特徴とする請求項9に記載の回路モデル検証方法。If the format of the output file indicating the second verification result is different from the file format that can be handled by the verification by the logical verification system,
Converting the format of the output file indicating the second verification result to a file format that can be handled by verification by the logical verification system,
The circuit model verification method according to claim 9, wherein the verification result indicated by the converted output file is compared with the emulation result.
ことを特徴とする請求項11に記載の回路モデル検証方法。12. The circuit model verification method according to claim 11, wherein the individual circuit is a memory circuit that operates substantially equivalent to a target memory by using a substitute memory.
前記論理検証システムによる検証結果であるエミュレーション結果を取得する論理検証部と、
前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果を取得する第2の検証部と、
前記論理検証部が取得した前記エミュレーション結果と前記第2の検証部が取得した前記第2の検証結果とを比較することにより、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する検証結果比較部と
を備えたことを特徴とする回路モデル検証装置。A circuit model verification device that verifies the operation of an individual circuit modeled on a logic verification system that verifies a logical operation of a target circuit,
A logic verification unit that acquires an emulation result that is a verification result by the logic verification system;
A second verification unit that obtains a second verification result that is a verification result by a verification method different from the verification method by the logical verification system;
By comparing the emulation result obtained by the logic verification unit with the second verification result obtained by the second verification unit, the individual circuit modeled on the logic verification system corresponds to the individual circuit. A circuit model verification device comprising: a verification result comparison unit that determines whether the same operation as an original circuit to be performed is performed.
ことを特徴とする請求項13に記載の回路モデル検証装置。The second verification unit is configured to perform a system level simulation result of the individual circuit modeled on the target circuit designed in a system level language, and to model the result on the target circuit created in a function description language. 14. The circuit model verification device according to claim 13, wherein at least one of the simulation results at the function description language level of the individual circuit is obtained as the second verification result.
前記検証結果比較部は、前記ファイル変換部による変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
ことを特徴とする請求項13に記載の回路モデル検証装置。A file conversion unit that converts a format of an output file indicating the second verification result into a file format that can be handled by verification by the logical verification system;
14. The circuit model verification device according to claim 13, wherein the verification result comparison unit compares a verification result indicated by an output file converted by the file conversion unit with the emulation result.
前記個別回路は、代替品を使用してターゲット回路と略等価な動作をするように構成されたものであり、
前記論理検証システムによる検証結果であるエミュレーション結果と、前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果とを比較する第1の工程と、
前記検証結果の比較に基づいて、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する第2の工程と
を有し、
前記元の回路と同じ動作をしない場合には、前記第1の工程の比較結果を参照して、前記論理検証システム上にモデリングした前記個別回路のモデルを修正し、この修正後のモデルについて前記第1の工程と前記第2の工程とを繰り返すことにより、前記個別回路のモデルを決定する
ことを特徴とする回路モデル生成方法。A circuit model generation method for generating a model of an individual circuit modeled on a logic verification system for verifying a logic operation of a target circuit,
The individual circuit is configured to operate substantially equivalent to the target circuit using a substitute,
A first step of comparing an emulation result that is a verification result by the logic verification system with a second verification result that is a verification result by a verification method different from the verification method by the logic verification system;
A second step of determining whether or not the individual circuit modeled on the logic verification system performs the same operation as the original circuit corresponding to the individual circuit based on the comparison of the verification results,
When the same operation as the original circuit is not performed, the model of the individual circuit modeled on the logic verification system is corrected with reference to the comparison result of the first step, and the corrected model is A circuit model generating method, wherein a model of the individual circuit is determined by repeating a first step and a second step.
ことを特徴とする請求項16に記載の回路モデル生成方法。The first step includes, as the second verification result, a system-level simulation result of the individual circuit modeled on the target circuit designed in a system-level language and the target created in a function description language. 17. The circuit model generating method according to claim 16, wherein at least one of simulation results at a function description language level of the individual circuit modeled on the circuit is compared with the emulation result.
前記第1の工程は、前記第3の工程による変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
ことを特徴とする請求項16に記載の回路モデル生成方法。A third step of converting the format of the output file indicating the second verification result into a file format that can be handled by the verification by the logical verification system;
17. The method according to claim 16, wherein the first step compares a verification result indicated by an output file converted by the third step with the emulation result.
ことを特徴とする請求項16に記載の回路モデル生成方法。17. The circuit model generation method according to claim 16, wherein the individual circuit is a memory circuit that performs substantially the same operation as a target memory by using a substitute memory.
前記論理検証システムによる検証結果であるエミュレーション結果を取得する論理検証部と、
前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果を取得する第2の検証部と、
前記論理検証部が取得した前記エミュレーション結果と前記第2の検証部が取得した前記第2の検証結果とを比較する第1の工程と、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する第2の工程とを実施する検証結果比較部と、
前記検証結果比較部における前記第2の工程による判定結果が前記元の回路と同じ動作をしない旨を示していることを条件として、前記検証結果比較部における前記第1の工程による比較結果を参照して前記論理検証システム上にモデリングした前記個別回路のモデルを修正し、この修正後のモデルについて前記第1の工程と前記第2の工程とを繰り返すように制御する制御部と
を備えたことを特徴とする回路モデル生成装置。An individual circuit modeled on a logic verification system for verifying a logical operation of a target circuit, the circuit generating a model of the individual circuit configured to operate substantially equivalent to the target circuit using a substitute. A model generation device,
A logic verification unit that acquires an emulation result that is a verification result by the logic verification system;
A second verification unit that obtains a second verification result that is a verification result by a verification method different from the verification method by the logical verification system;
A first step of comparing the emulation result obtained by the logic verification unit with the second verification result obtained by the second verification unit; and A verification result comparison unit that performs a second step of determining whether or not the circuit performs the same operation as the corresponding original circuit;
Refer to the comparison result of the verification result comparison unit in the first step, on condition that the judgment result in the second step in the verification result comparison unit indicates that the same operation as in the original circuit is not performed. And a control unit that corrects the model of the individual circuit modeled on the logic verification system and controls the corrected model to repeat the first step and the second step. A circuit model generation device characterized by the above-mentioned.
ことを特徴とする請求項20に記載の回路モデル生成装置。The verification result comparison unit may include, as the first step, a system level simulation result and a function description of the individual circuit modeled on the target circuit designed in a system level language, as the second verification result 21. The circuit according to claim 20, wherein the emulation result is compared with at least one of simulation results of a function description language level of the individual circuit modeled on the target circuit created in a language. Model generator.
前記検証結果比較部は、前記第1の工程として、前記ファイル変換部による変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
ことを特徴とする請求項20に記載の回路モデル生成装置。A file conversion unit that converts a format of an output file indicating the second verification result into a file format that can be handled by verification by the logical verification system;
21. The circuit model according to claim 20, wherein the verification result comparison unit compares, as the first step, a verification result indicated by an output file converted by the file conversion unit with the emulation result. Generator.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002343660A JP2004178267A (en) | 2002-11-27 | 2002-11-27 | Memory circuit creation method and device, memory circuit, circuit model verification method and device, and circuit model creation method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002343660A JP2004178267A (en) | 2002-11-27 | 2002-11-27 | Memory circuit creation method and device, memory circuit, circuit model verification method and device, and circuit model creation method and device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004178267A true JP2004178267A (en) | 2004-06-24 |
Family
ID=32705393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002343660A Pending JP2004178267A (en) | 2002-11-27 | 2002-11-27 | Memory circuit creation method and device, memory circuit, circuit model verification method and device, and circuit model creation method and device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004178267A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006294033A (en) * | 2005-04-06 | 2006-10-26 | Quickturn Design Syst Inc | Memory mapping system for providing compact mapping between dissimilar memory systems |
JP2010527476A (en) * | 2007-05-09 | 2010-08-12 | シノプシス インコーポレイテッド | Technology for use in automated circuit design and simulation |
US8208358B2 (en) | 2008-06-18 | 2012-06-26 | Hitachi, Ltd. | Optical information recording method, optical information reproduction method and optical disk device |
JP2015055899A (en) * | 2013-09-10 | 2015-03-23 | 株式会社東芝 | Verification device of semiconductor integrated circuit, verification method of semiconductor integrated circuit, and program |
CN112836455A (en) * | 2021-01-20 | 2021-05-25 | 上海擎昆信息科技有限公司 | SOC simulation method and system |
-
2002
- 2002-11-27 JP JP2002343660A patent/JP2004178267A/en active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006294033A (en) * | 2005-04-06 | 2006-10-26 | Quickturn Design Syst Inc | Memory mapping system for providing compact mapping between dissimilar memory systems |
JP2010527476A (en) * | 2007-05-09 | 2010-08-12 | シノプシス インコーポレイテッド | Technology for use in automated circuit design and simulation |
US8208358B2 (en) | 2008-06-18 | 2012-06-26 | Hitachi, Ltd. | Optical information recording method, optical information reproduction method and optical disk device |
US8649248B2 (en) | 2008-06-18 | 2014-02-11 | Hitachi, Ltd. | Optical information recording method, optical information reproduction method and optical disk device |
JP2015055899A (en) * | 2013-09-10 | 2015-03-23 | 株式会社東芝 | Verification device of semiconductor integrated circuit, verification method of semiconductor integrated circuit, and program |
CN112836455A (en) * | 2021-01-20 | 2021-05-25 | 上海擎昆信息科技有限公司 | SOC simulation method and system |
CN112836455B (en) * | 2021-01-20 | 2023-11-10 | 上海擎昆信息科技有限公司 | SOC simulation method and system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW544523B (en) | Event based test system for testing memory devices | |
US20130227367A1 (en) | Test IP-Based A.T.E. Instrument Architecture | |
CN112949233B (en) | Automatic development method and device of FPGA chip and electronic equipment | |
US6327556B1 (en) | AT-speed computer model testing methods | |
JP2001189387A (en) | Method and system for verifying design of system on chip | |
KR20000017333A (en) | Semiconductor integrated circuit design and evaluation system | |
US7149944B2 (en) | Semiconductor integrated circuit device equipped with read sequencer and write sequencer | |
JP2005346517A (en) | Verification device and verification method | |
JP2004178267A (en) | Memory circuit creation method and device, memory circuit, circuit model verification method and device, and circuit model creation method and device | |
US9672094B1 (en) | Interconnect circuitry fault detection | |
JP3737662B2 (en) | System LSI test data optimization generation method | |
US11662383B2 (en) | High-speed functional protocol based test and debug | |
Che | FPGA-based memory test system design and test algorithm implementation | |
CN105260545B (en) | A kind of verification method of programmable circuit system | |
JP2005301370A (en) | Logic circuit verification/test system | |
JP3667146B2 (en) | Built-in self-test circuit for memory | |
JP7427000B2 (en) | Digital circuit testing and analysis module, system and method thereof | |
US10387599B1 (en) | Systems, methods, and computer-readable media utilizing improved data structures and design flow for programmable memory built-in self-test (PMBIST) | |
US10319459B1 (en) | Customizable built-in self-test testplans for memory units | |
JP7069608B2 (en) | Semiconductor design support device, semiconductor design support method and program | |
EP1031995B1 (en) | Built-in self-test circuit for memory | |
JP2004171436A (en) | Data interface method and data interface device | |
WO2006025412A1 (en) | Logic verification method, logic module data, device data, and logic verification device | |
Lam | New design-to-test software strategies accelerate time-to-market | |
Rajsuman | Extending EDA environment from design to test |