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 PDF

Info

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
Application number
JP2002343660A
Other languages
Japanese (ja)
Inventor
Yuzo Suzuki
雄三 鈴木
Shinkichi Hazama
信吉 挾間
Kihachiro Ueda
喜八郎 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002343660A priority Critical patent/JP2004178267A/en
Publication of JP2004178267A publication Critical patent/JP2004178267A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To easily and efficiently construct a memory circuit to be modeled on a logical emulator. <P>SOLUTION: The desired memory operation of a target memory is realized by a memory circuit constituted of a memory 16 preliminarily mounted on an emulator main body 10 and a wrapper circuit 500 integrated in an FPGA 12 being a rewritable logical device. Countermeasures to the change of a memory peripheral circuit are taken by the wrapper circuit 500 integrated into the emulator device. Actually, the hardware change of the memory peripheral circuit is made unnecessary. <P>COPYRIGHT: (C)2004,JPO

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 Patent Document 2, provision of a circuit for holding a mismatch signal for each bit facilitates identification of defective bits, simultaneously tests memories having the same address configuration, and outputs the result once. The purpose of this is to reduce the memory test time by observing whether or not the scan is correct.
[0025]
However, as described above, the method of Patent Document 2 relates to the reduction of the memory failure and the test time, and the construction of a memory circuit using a substitute and whether the memory model performs the same operation as the original memory. It is difficult to use for verification.
[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 verification system 1 includes an emulator main body 10, a CPU board 20 having a CPU and a test chip 22 built in the SOC, and an external memory board 30 having a large-scale memory and a high-performance memory 32 built in the SOC.
[0059]
The emulator main body (verification system main body) 10 includes a logic circuit 14, a memory 16, and a test bench circuit configured by a programmable programmable FPGA (Field Programmable Gate Array) 12 that reads LSI design data and performs an operation equivalent to the LSI. 18 and the like.
[0060]
As the memory 16, for example, a memory such as an SRAM (Static Random Access Memory) or a DRAM (Dynamic Random Access Memory) that performs a memory holding operation that can be written and read at any time, such as an SRAM (Static Random Access Memory), may be used. Note that the FPGA 12 and the memory 16 may be one if the system scale of the target circuit to be verified is small, but a plurality of each is used if the system scale is large.
[0061]
A plurality of CPU boards 20 and external memory boards 30 are prepared as needed. The emulator main body 10 is connected to the CPU board 20 and the external memory board 30 by an external board connection I / F section 92 constituting an interface (I / F) section 90.
[0062]
The verification system 1 also includes a controller PC for loading (supplying) the logic function definition data for determining the logic function of the FPGA 12 to the FPGA 12 or monitoring or controlling the entire verification system around the emulator main body 10. (PC; Personal Computer) 80, a workstation 82 for generating logical design data, and loading test data (input data) for verification into the emulator main body 10 and reading and holding data (output data) of verification results PCs 84 and 86 for data input and output, and a logic analyzer (hereinafter referred to as a logic analyzer) 88 for monitoring logic data under verification.
[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 FPGA 12 via the test bench circuit 18 of the emulator main body 10, so that a software simulation verification environment is realized by a system verification apparatus using logic emulation (that is, the verification system 1). Become like
[0064]
The data (output data) of the verification result is output to the data input / output PCs 84 and 86 via the test bench circuit 18 and stored in a predetermined storage medium (for example, a hard disk device). In this case, the test data for verification (input data) and the data of the verification result (output data) are collectively referred to as “software simulation input / output data”.
[0065]
The controller PC 80 is a dedicated cable in the controller I / F unit 94, and the data input / output PCs 84, 86 are a PCI (Peripheral Component Interconnect) bus or an ISA (Industry Standard Architecture) bus in the data I / F units 96a, 96b. The logic analyzer 88 is a dedicated probe in the logic analyzer I / F section 98, and is connected to the emulator body 10 respectively.
[0066]
By providing a common interface mechanism such as a PCI bus or an ISA bus as the data I / F sections 96a and 96b which interface the verification data to the emulator main body 10, a plurality of different data can be input / output on the same interface. It becomes possible.
[0067]
As the data I / F units 96a and 96b, a parallel standard interface other than the PCI bus and the ISA bus may be used. The invention is not limited to the parallel bus interface, but may be an example of the Institute of Electrical and Electronics Engineers, Inc. (IEEE) 1394 standard, the USB (Universal Serial Bus) 1.0 / 2.0 standard, or the PCI standard. A serial interface such as “PCIExpress (trademark)” (PCI Express) may be used.
[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 FPGA 12, and loads the logic function definition data into the FPGA 12, thereby implementing a target circuit corresponding to an ASIC, SOC, or the like. (Implement).
[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 main body 10 having the FPGA 12, the CPU board 20 connected to the emulator main body 10, and the like. The in-circuit emulation converts the FPGA 12 to an actual logic circuit (target circuit) on a target circuit to be developed. By operating at an operation speed close to an ASIC or SOC corresponding to the target circuit), it is used for performing verification or testing such as system debugging or software debugging.
[0073]
As a peripheral system of the verification system 1, a target circuit using an internal memory LPM (Local Place Memory) or a memory 16 (SRAM in this example) or a memory 32 on an external memory board 30 built in the FPGA 12 is used. A memory circuit construction system 7 for generating a wrapper circuit for performing an operation substantially equivalent to a memory (for example, a DRAM; hereinafter also referred to as a target memory) inside the system-on-chip SOC is prepared. The memory circuit construction system 7 includes a memory circuit generation device 400 and a workstation 82, each connected by a network LAN. The workstation 82 notifies the memory circuit generation device 400 of information (memory type, capacity, etc.) on the target memory.
[0074]
In addition, as a peripheral system of the verification system 1, the operation of the wrapper circuit generated by the memory circuit generation device 400 of the memory circuit construction system 7, or the operation of a memory circuit configured using this wrapper circuit or a substitute such as the memory 16 A circuit model verification system 9 for verifying is provided. The circuit model verification system 9 includes a circuit model verification device 450 and a workstation 82 connected to each other via a network LAN, a data input / output PC 86, a logic analyzer 88, and the like. The circuit model verification device 450 has the function of the circuit model generation device according to the present invention.
[0075]
The circuit model verification device 450 is notified of information (memory type, capacity, and the like) on the target memory from the workstation 82, and the circuit information of the generated wrapper circuit is notified from the memory circuit generation device 400. The verification result of the logic emulation using the logic emulator device 5 including the emulator body 10 and the external board 11 is also notified from the data input / output PC 86 and the logic analyzer 88.
[0076]
The circuit information of the wrapper circuit generated by the memory circuit generation device 400 is input to the circuit model verification device 450, and the memory circuit using the memory of the substitute product including the generated wrapper circuit is converted into an actual memory (target memory). It is verified whether the same operation is performed. If there is no problem in this verification, the generated circuit information of the wrapper circuit is notified to the workstation 82, and is written to the FPGA 12 via the controller PC 80 and to the memory circuit generation device 400 in the same manner as when writing normal circuit information to the FPGA 12. The generated wrapper circuit is incorporated. If a problem is found in the verification by the circuit model verification device 450, it goes without saying that necessary measures are taken.
[0077]
<< A memory circuit construction method using a substitute memory >>
FIG. 2 is a schematic diagram focusing on a memory circuit used in the verification system 1 shown in FIG. 1 and a construction method of the memory circuit.
[0078]
As shown in the figure, the emulator main body 10 includes a logic circuit 14 composed of an FPGA 12 (only one is shown in the figure, but a plurality of FPGAs) and a memory unit 17 composed of four SRAMs, on an emulator substrate 10a. A connector 46 which is a part of an external board connection I / F unit 92 (see FIG. 1) which can be connected to another board such as the external board 11 (see FIG. 1) such as the CPU board 20 or the external memory board 30; A connector 48 which is a part of a controller I / F unit 94 for loading circuit data into the FPGA 12 is mounted.
[0079]
As shown in FIG. 1, the emulator main body 10 is connected via a connector 48 to a controller PC 80 having software for generating circuit data and a mechanism for loading a circuit.
[0080]
In the FPGA 12 mounted on the emulator substrate 10a, an internal memory LPM (Local Place Memory), a memory 16 (SRAM in this example) built in the FPGA 12, or an external memory board 30 connected by a connector 46 is provided. Using an external memory (not shown), a wrapper circuit for performing an operation substantially equivalent to a memory (for example, a DRAM) inside a system-on-chip SOC as a target circuit is incorporated. As described in FIG. 1, the wrapper circuit is generated by the memory circuit generation device 400.
[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 FPGA 12 of the emulator body 10.
[0082]
FIG. 4 is an example of a functional block diagram of the memory circuit generation device 400. As shown in the figure, the memory circuit generation device 400 includes a type information acquisition unit 412 that acquires memory type information J12 relating to the type of target memory (for example, SDRAM or SRAM) used for the system-on-chip SOC. A specification information acquisition unit 414 is provided to acquire memory specification information J14 regarding the performance of a target memory used for the system-on-chip SOC, such as depth (word; Word) or memory capacity (memory size).
[0083]
Further, the memory circuit generation device 400 uses the information J12 and J14 acquired by the information acquisition units 412 and 414 (collectively, the memory information acquisition unit 410) to generate a wrapper circuit. 420 is provided. The wrapper circuit generation unit 420 sends the data to the internal memory LPM, the memory 16 or the connector 46 built in the FPGA 12 mounted on the emulator substrate 10a based on the information J12 and J14 acquired by the memory information acquisition unit 410. For operating substantially equivalent to a target memory such as a DRAM or an SDRAM using a memory 32 (collectively referred to as a substitute memory hereinafter) on an external memory board 30 connected to the external memory board 30. Generate a wrapper circuit.
[0084]
In the above configuration, the memory circuit generation device 400 may be configured by, for example, a dedicated hardware circuit having a function of generating a wrapper circuit, or may be configured by using a general-purpose computer such as a personal computer or a workstation. Is also good. That is, the series of processes for generating the wrapper circuit can be executed by hardware, but can also be executed by using software. For example, the workstation 82 and the controller PC 80 shown in FIG. 1 may have the function of the memory circuit generation device 400.
[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 circuit generation device 400.
[0091]
First, the type information acquisition unit 412 acquires memory type information J12 indicating whether the type of memory desired to be used in the system-on-chip SOC is SDRAM or SRAM (S100). The acquisition of the memory type information J12 may be via an input by a user. Alternatively, a mechanism for decoding the design specification of the system-on-chip SOC and automatically acquiring the design specification may be provided.
[0092]
When the SRAM is selected (S100-SRAM), the specification information obtaining unit 414 first obtains information indicating the number of data bits as an example of the memory specification information J14 (S110). The specification information acquisition unit 414 acquires information indicating the memory depth as another example of the memory specification information J14 (S112). The acquisition of the memory specification information J14 may be performed through an input by the user. Alternatively, a mechanism for decoding the design specification of the system-on-chip SOC and automatically acquiring the design specification may be provided.
[0093]
Next, the wrapper circuit generation unit 420 determines the memory type indicated by the memory type information J12 acquired by the type information acquisition unit 412 and the number of bits and the memory depth indicated by the memory specification information J14 acquired by the specification information acquisition unit 414. Based on each value, the number of replacement memories (the number of memories) required to configure the target memory using the replacement memory such as the internal memory LPM or the memory 16 (SRAM in this example) in the FPGA 12 Is determined (S114).
[0094]
For example, when the determined number of memories is "1" (S116-YES), the wrapper circuit generation unit 420 outputs the wrapper circuit immediately (S120) because a circuit that controls only that memory is sufficient. On the other hand, when the number of memories is plural (S116-NO), the interface between the memories must be considered, so the wrapper circuit generator 420 first generates an interface circuit for that (S118). Thereafter, the wrapper circuit generation unit 420 outputs the wrapper circuit as a wrapper circuit to which an interface circuit has been added (S120).
[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 information acquisition unit 414 acquires information on the memory depth (S112). In that information about the memory capacity, which is an example of the memory specification information J14, is obtained (S132).
[0096]
FIG. 6 is an example of an operation specification of the memory 16 alone mounted on the emulator board 10a. FIG. 7 is a table showing a detailed description of each signal of the memory 16 alone.
[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 memories 16 and is set to “0” or “1 (H; high)” in consideration of the target memory. .
[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 memory 16 or a wrapper circuit. It is. In FIG. 9, four SRAMs are mounted as the memory 16 in the memory unit 17. Note that “1′b0” set in ADVLDn, CENn, and MODE of the memory unit 17 indicates that 1-bit binary “0” is set in each terminal.
[0101]
The wrapper circuit 500 around the memory unit 17 is generated by the memory circuit generation device 400 according to the above-described steps S100 to S120. When performing the logic emulation, the wrapper circuit 500 is preferably Implemented (implemented) in the FPGA 12.
[0102]
As shown in FIG. 9, the wrapper circuit 500 includes a replacement memory (in this example, shown in FIG. 6) which is mounted to perform the operation of the memory model shown in FIG. The wrapper circuit 500 is configured based on a comparison with the timing of an SRAM (SRAM as the memory 16).
[0103]
For example, in the wrapper circuit 500, the flip-flop (FF) 510 for adjusting the phase between the data, the control signal and the address, and adjusting the timing at which the internal memory LPM of the FPGA 12 takes in the data, receives the data input (I [7: 0]). Are added one by one.
[0104]
Further, the wrapper circuit 500 selects one of a read (Read) output (data Out [7: 0]) and a hold (Hold) output of the memory 16 for the data output (A [7: 0]). An output selection circuit (SEL) 514 is also added. Furthermore, since the number of bits of the input address (IA [15: 0]) is one bit less than the input (A [16: 0]) of the wrapper circuit 500, as shown by the mark A in the figure, the most significant bit of the input address “0” is added to the bit MSB side.
[0105]
As described above, as the memory unit 17, four SRAMs as the memory 16 are mounted on the emulator substrate 10a. To realize the operation of the SRAM model shown in FIG. Since only one SRAM may be used, only the first SRAM (shown by (1) in the figure) is used. Therefore, as shown in the table of FIG. 7, only the chip enable CE1n1 corresponding to the first SRAM is set to “0”, and the remaining chip enable CEs (shown by (2) to (4) in the figure) are enabled. CE1n2 to CE1n4 are fixed to “1”.
[0106]
The inverter 512 provided in the output enable OEn is provided to match the active polarity when the write enable WEn is also used for the output enable OEn. The output of the inverter 512 is input to the switching input terminal of the selection circuit 514, and is used as a selection switching signal of the selection circuit 514.
[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 memory 16 or a wrapper circuit. FIG. 13 is a table showing the relationship between the state of each signal of the memory circuit and the state.
[0109]
The wrapper circuit 520 around the memory unit 17 is generated by the memory circuit generation device 400 according to the above-described steps S100 to S340. When performing logic emulation, the wrapper circuit 520 is preferably Implemented (implemented) in the FPGA 12.
[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 SRAM 16 as the memory 16 shown in FIG.
[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 circuit generation device 400 configures the wrapper circuit 520 in consideration of these delay amounts (clock differences).
[0112]
For example, as a circuit element corresponding to the 1T delay of the write data, a flip-flop 532 that delays the write enable signal DQM in units of 16 bits of data for controlling the lower 16 bits of the data by 1T, and the input data D by 2T Flip-flops 534 and 536 for delay are provided so that the output of the subsequent stage is input to the data input (data In [31: 0]). In addition, a flip-flop 538 that delays the data output (data Out [31: 0]) of the memory unit 17 by 1T is provided as a circuit element corresponding to the 2T delay of the read data.
[0113]
As described above, as the memory unit 17, four SRAMs as the memory 16 are mounted on the emulator substrate 10a. However, in order to realize the operation of the SDRAM model shown in FIGS. Uses only one SRAM, so only the first SRAM (shown by (1) in the figure) is used. Therefore, as shown in the table of FIG. 7, only the chip enable CE1n1 corresponding to the first SRAM is used, and the remaining chip enable CE1n2 (shown by (2) to (4) in the drawing) are used. CE1n4 is fixed to “1”.
[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 signal generation circuit 530 for generating a write enable pulse Wenn having a width of 4T from the write enable XWE (reference X means original input; the same applies hereinafter) is added. This write enable pulse Wenn is used as the write enable WEn of the memory unit 17.
[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 wrapper circuit 560 is a circuit for controlling the output using the most significant bit MSB of the incremented read address, as in the case of writing, for the processing at the time of reading. First, the chip enable CE1n1 and CE1n3 and the ADVLDn signal A command decoder 540, a state machine 542, and an ADVL signal generation circuit 544 are added as circuit elements for controlling the output enable signal OEn, and an output enable signal generation circuit 546 and a flip-flop 548 are added as circuit elements for controlling the output enable signal OEn. I have.
[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 memory 16, and an address addition circuit for controlling the address in units of four at the time of the Read / Write operation (Addr1 = Addr1 + 1) 552 is added.
[0118]
The address addition circuit 552 executes “Addr1 = Addr1 + 1” three times in order based on the address Addr generated by the address signal generation circuit 550, and stores a total of four addresses (Addr, Addr + 1, Addr + 2, Addr + 3) in the memory unit 17. Address input (A [16: 0]).
[0119]
For example, the command decoder (Command Decoder) 540, the state machine 542, and the ADVL signal generation circuit 544 added to the chip enable CE1n1 and ADVLn corresponding to the first SRAM change the chip enable CE1n1 of 4T width from the chip select XCS. It is for generating. The output enable signal generation circuit (OEn_Gen) 546 and the flip-flop 548 added to the output enable OEn are for generating a 4T width output enable signal OEn from the chip select XCS.
[0120]
Here, the command decoder 540 includes a chip select XCS, a write enable XWE, a row address strobe XRAS (Row Address Strobe), a column address strobe XCAS (Column Address Strobe), a refresh XRFSH (Refresh), and a refresh XRFSH. And the command to be output is determined based on each original signal of the precharge XPRE (Precharge), and each command (Command) shown in FIG. 13 is output at the timing shown in FIG. 10 or FIG.
[0121]
The state machine 536 outputs, based on the command output from the command decoder 530, state information indicating an operation state of the entire memory circuit during operation. That is, as shown in FIG. 13, the state information is determined by a combination of the states of the chip select XCS, the write enable XWE, the row address strobe XRAS, the column address strobe XCAS, the refresh XRFSH, and the precharge XPRE.
The state machine 542 determines the state using the command output from the command decoder 540. The ADVL signal generation circuit 544 generates the chip enable CE1n1 signal and the ADVLDn signal using the state output here and the most significant bit of the address generated by the address addition circuit 552.
[0123]
The ADVL signal generation circuit 544 sets the chip enable signal CE1n1 corresponding to the first SRAM to “0” in 4T units only during the active period based on the state information output from the state machine 536. The ADVL signal generation circuit 544 sets the ADVLDn signal to “0” in 4T units at the time of writing and reading, and to “1” in other states.
[0124]
The output enable signal generation circuit 546 outputs an output enable signal OEn having a pulse width of 4 clocks using the command output from the command decoder 540. The write enable signal generation circuit 530 generates a write enable signal WEn having a width of 4T from a write enable signal XWE having only a width of 1T (1clk).
[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 ADDR + 3. Then, when PALL (PRECHARGE ALL) is read, the read operation ends. To read another address, the process starting with the ACT command is repeated.
[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 memory 16 or a wrapper circuit. The wrapper circuit 520 shown in FIG. 12 uses only one of the four SRAMs as the memory 16 mounted on the emulator substrate 10a and uses the 4MS DRAM model shown in FIGS. 10 and 11 as a target memory. This is a wrapper circuit for configuring a memory circuit that operates equivalent to. On the other hand, the wrapper circuit 560 shown in FIG. 14 is a wrapper circuit for configuring a memory circuit that operates equivalently to the target memory model by using a plurality of memories. Here, a case where an 8M SDRAM is designed as a target memory model will be described.
[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 wrapper circuit 560 of the present embodiment determines a data storage destination by looking at the most significant bit side MSB of the counter output of the address addition circuit 552 that increments the address Addr for a burst operation (operation in units of four). It has a configuration. Specifically, the difference from the configuration shown in FIG. 12 is that the most significant bit output Addr1 [17] of the address addition circuit 552 is input to the ADVL signal generation circuit 544. The ADVL signal generation circuit 544 corresponds not only to the chip enable CE1n1 corresponding to the first (shown by (1) in the figure) SRAM but also to the third (shown by (3) in the figure) SRAM. The difference from the configuration shown in FIG. 12 is that the chip enable CE1n3 is also controlled.
[0130]
The ADVL signal generation circuit 544 selects the memory 16 as the data storage destination by switching the chip enable CE1n1 and CE1n3 according to the address (Addr1 [17]) input from the address addition circuit 552. For example, when the address Addr1 [17] = 0, only the chip enable CE1n1 is set to active “0” to use the first SRAM, and when the address Addr1 [17] = 1, only the chip enable CE1n3 is active. By setting to “0”, the third SRAM is used.
[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 memory 16 on the emulator board 10a is used has been described, but it goes without saying that the memory 32 mounted on the external memory board 30 may be used. In particular, when the total capacity of the memory 16 mounted on the emulator substrate 10a cannot be covered by the total capacity of the target memory, it is essential to use the memory 32 on the external memory board 30.
[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 memory 16 and the memory 32) and a wrapper circuit for causing the memory to perform an operation equivalent to the operation of the target memory can be considered, so that a memory peripheral circuit can be studied. In addition, the wrapper circuit can be conveniently incorporated in a rewritable logic device (the FPGA 12 in the embodiment) used in the emulator device.
[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 circuit generation device 400, a method of verifying the memory circuit including the wrapper circuit, and a method of generating a model of the memory circuit will be described.
[0138]
FIG. 15 is a schematic diagram focusing on the circuit model verification system 9 shown in FIG. An FPGA 12 which is a rewritable device is mounted on an emulator main body 10 for performing logic emulation. The emulator body 10 is connected to an external memory board 30 which is a board on which the external memory 32 is mounted, via an external board connection I / F unit 92. The emulator main body 10 also includes a memory 16 in addition to the FPGA 12.
[0139]
Circuit data to be mounted on the FPGA 12 is transmitted from a controller PC 490 such as a controller PC 80 or a workstation 82 connected to the emulator main body 10 via a cable. The emulation test vector (verification data) is sent from the data input / output PC 86 connected to the emulator body 10 via a cable. Similarly, the verification result (emulation result) of the logic emulation is sent to the data input / output PC 86 via the cable. The digital pattern observation result at the time of logic emulation is acquired by the logic analyzer 88.
[0140]
The circuit model verification device 450 of this embodiment refers to the verification result of the logic emulation when verifying the wrapper circuit and the memory circuit. For this reason, the circuit model verification device 450 and the control computer 490 are connected by a cable, and are configured to be able to instruct the control computer 490 to execute logic emulation when necessary. The control computer 490 controls the data input / output PC 86 to send a test vector (verification data) of the logic emulation to the emulator main body 10 when the logic emulation is executed. The verification result (emulation result) of the logic emulation is sent to a circuit model verification device 450 connected to the data input / output PC 86 and the logic analyzer 88 via a cable.
[0141]
The circuit model verification device 450 may also be used as the data input / output PC 86 or the control computer 490. That is, one computer may be used.
[0142]
FIG. 16 is an example of a functional block diagram of the circuit model verification device 450. As shown in FIG. 16A, a circuit model verification device 450 includes a type information acquisition unit 462 that acquires memory type information J12 relating to the type of memory (for example, SDRAM or SRAM) used for the system-on-chip SOC, for example, A specification information acquisition unit 464 is provided to acquire memory specification information J14 relating to the performance of a memory (target memory) used for the system-on-chip SOC, such as the number of bits, memory depth (word; Word) or memory capacity (memory size). .
[0143]
Further, the circuit model verification device 450 is generated by the memory circuit generation device 400 using the information J12 and J14 acquired by the information acquisition units 462 and 464 (collectively, the memory information acquisition unit 460). An operation verification unit 470 that verifies whether the wrapper circuit performs the same operation as the target memory.
[0144]
Furthermore, the circuit model verification device 450 performs the same operation as that of the original circuit (the target circuit such as the target memory) based on the determination result in the operation verification unit 470 so as to perform the function of the circuit model generation device that generates the model of the individual circuit. A control unit 488 that corrects the circuit model modeled on the logic verification system with reference to the comparison result on the condition that the circuit model is not to be performed, and repeats the same processing for the model after the correction. .
[0145]
As shown in FIG. 16B, the operation verifying unit 470 extracts a system level design model 602 and a test vector for verification 604 from each piece of information J12, J14, and uses the extracted models 602, 604 to perform system level design. Has a system level verification unit 472 that is an example of a second verification unit that performs the simulation of.
[0146]
The operation verification unit 470 extracts the memory circuit model 612 based on the function description language model of the target memory from the information J12 and J14, and the extracted memory circuit model 612 and the test vector for verification acquired by the system level verification unit 472. And a function description level verification unit 474 that is another example of the second verification unit that performs a function description level simulation by using the function description level simulation unit 614.
[0147]
Further, the operation verification unit 470 performs an operation check using the verification test vector 624 obtained by the system level verification unit 472 and the information 624 of the emulation modeling circuit designed by the memory circuit generation device 400 to perform emulation. It has a logic verification unit (emulation unit) 476 for acquiring the result.
[0148]
Note that the circuit model verification device 450 of the present embodiment refers to the verification result of the logic emulation by the logic emulator device 5 when verifying the wrapper circuit and the memory circuit. For this reason, the logic verification unit 476 does not need to actually perform the logic emulation, but may perform the instruction and obtain the verification result.
[0149]
The operation verification unit 470 compares the verification results obtained by the system level verification unit 472, the function description level verification unit 474, and the operation verification unit 476, and generates a wrapper generated by the memory circuit generation device 400. A verification result comparison unit 478 for determining whether the circuit performs the same operation as the target memory is provided.
[0150]
Note that the verification result comparison unit 478 includes a file conversion unit 480 that converts a different file format to a specific file format because the file output of each verification result cannot be compared unless the file format is the same.
[0151]
In this embodiment, the output pattern file output from the system level verification unit 472 is different from the format of the output file output from the other function description level verification unit 474 and the logic verification unit 476. For this reason, the file conversion unit 480 of the present embodiment executes a file conversion process so that the output pattern file obtained as a result of the verification by the system level verification unit 472 matches the format of the output file of the remaining verification units 474 and 476. .
[0152]
In the above configuration, the circuit model verification device 450 may be configured by a dedicated hardware circuit that performs a verification function of a wrapper circuit or a memory circuit, or may be configured by using a general-purpose computer such as a personal computer or a workstation. You may. That is, a series of processes for verifying the wrapper circuit and the memory circuit can be executed by hardware, but can also be executed by using software. For example, the workstation 82 and the controller PC 80 shown in FIG. 1 may have the function of the circuit model verification device 450. Further, the memory circuit generation device 400 and the circuit model verification device 450 may be integrally configured.
[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 file conversion unit 480. Here, FIG. 17A is a functional block diagram illustrating a detailed example of the file conversion unit 480. FIG. 17B is a flowchart illustrating an example of a file conversion processing procedure in the file conversion unit 480.
[0159]
FIG. 18 shows an example of the combined file generated by the file conversion unit 480. FIG. 18A shows the combined file of FIG. 18A, and the combined file of FIG. 18A shows the function description level verification unit 474 and the logic verification unit 476. FIG. 18B illustrates an example of a file that has been converted to match the format of the output file.
[0160]
As shown in FIG. 17A, the file conversion unit 480 includes a system level output file acquisition unit 482 for acquiring an output pattern file obtained as a result of verification by the system level verification unit 472, and a system level output file acquisition unit 482. The file combining unit 484 for combining various files included in the obtained output pattern file and the file format of the combined file combined by the file combining unit 484 are changed to the output file format of the remaining verification units 474 and 476. And a conversion execution unit 486 that executes a file conversion process so as to match and outputs the file as a simulation result file.
[0161]
As shown in FIG. 17B, the system level output file acquisition unit 482 first acquires an output pattern file obtained as a verification result from the system level verification unit 472 (S300). The output pattern file of the system-level simulator by the system-level verification unit 472 includes three types: a basic information file, a signal information file, and a signal file. The basic information file includes information such as creation date and time and time scale. In the signal information file, the name of a signal obtained by probing the simulation result is described. The signal file contains signal operation information for each time.
[0162]
Here, the file formats that can be handled by the function description level verification unit 474 and the logic verification unit 476 of the present embodiment are, as in the case of the file shown in FIG. On the other hand, it must be in a cohesive format. Therefore, even if the three types of files, that is, the basic information file, the signal information file, and the signal file, are directly input as verification test vectors of the function description level verification unit 474 and the logic verification unit 476, appropriate comparison verification cannot be performed.
[0163]
Therefore, first, the file combining unit 484 combines these three types of files and outputs a combined file (see FIG. 18A) (S310). Although the time information is added to all the signal changes in this combined file, it still matches the file format that can be handled by the remaining verification units 474 and 476 (see FIG. 18B). Therefore, the function description level verification unit 474 and the logic verification unit 476 cannot perform appropriate comparison verification. In other words, it is still impossible to input to the function description level verification unit 474 and the logic verification unit 476 with the combined file as it is.
[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 level verification unit 474 and the logic verification unit 476 according to the present embodiment, the file format of the circuit model is the same as the file shown in FIG. If not, appropriate comparative verification cannot be performed.
[0165]
Therefore, the conversion execution unit 486 converts the file format of the combined file output from the file combining unit 484 into a format in which data having the same time information is combined so that the remaining verification units 474 and 476 can handle the combined file. (S320). After that, the conversion execution unit 486 inputs the simulation result file after the file conversion to the function description level verification unit 474 as the test vector 614 for verification for the function description level simulator, and also as the test vector 624 for verification for the emulator. The data is input to the logic verification unit 476 (S322).
[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 circuit generation apparatus 400 and the memory circuit including the wrapper circuit in the circuit model verification apparatus 450.
[0167]
First, the system level verification unit 472 converts a system level design model (system language circuit model) 602 and a test vector for verification 604 designed in a system level language based on the C language such as SystemC (trademark), SpecC or CoWareC. Then, a system level simulation is performed (S400). Then, the output pattern file obtained by this simulation is used as a test vector for verification for a functional description level simulator and an emulator.
[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 conversion unit 480, it is input to the function description level verification unit 474 as the test vector 614 for verification for the function description level simulator, and is input to the logic verification unit 476 as the test vector 624 for verification for the emulator. (S402).
[0169]
Next, the function description level verification unit 474 is a function description language designed in RTL (register transfer level) function description language (HDL) such as Verilog-HDL or VHDL and mounted on an actual system-on-chip SOC. A logic simulation (functional description level simulation) is performed using the memory circuit model (functional description language circuit model) 612 and the test vector for verification 614 based on the model (S410).
[0170]
Next, the logic verification unit 476 performs an operation check using the verification test vector 624 and the emulation modeling circuit (circuit model for emulator) 622 designed by the memory circuit generation device 400 (S420). However, in practice, the logic verification unit 476 may instruct the logic emulator device 5 to perform emulation processing and obtain the verification result.
[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 control unit 488 determines that the model generated by the memory circuit generation device 400 performs the same operation as the original memory (target memory). The judgment is made, and the verification processing and the circuit model generation processing are terminated. When the result is different (S432-NO), the control unit 488 notifies the memory circuit generation device 400 of the comparison result and instructs the reconfiguration of the circuit model.
[0173]
The memory circuit generation device 400 corrects the model of the wrapper circuit with reference to the comparison result notified from the circuit model verification device 450. In response to this, the circuit model verification device 450 checks the operation again. Each functional element of the circuit model verification system 9 performs such processing until the output results match.
[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 logic emulator device 5, and the same operation as the target memory is generated by the memory circuit generation device 400. Although it has been determined whether or not the circuit is to be executed, the determination method is not limited to this.
[0175]
For example, a circuit generated by the memory circuit generation device 400 by comparing and evaluating only one of the verification results of the system level simulation and the logic simulation with the verification result using the logic emulator device 5 and performing the same operation as that of the target memory. It may be determined whether or not to execute. However, it should be noted that the determination accuracy, that is, the quality of the circuit model of the wrapper circuit or the memory circuit generated by the memory circuit generation device 400 is reduced.
[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 file conversion unit 480 is performed on the output file from the system level verification unit 472, but the file conversion is performed by the output from the system level verification unit 472. It is not limited to files. This is because the file format that can be handled by each verification unit depends on each verification system.
[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 logic emulator device 5 of the wrapper circuit generated by the memory circuit generation device 400 are used. By matching with the verification result, the reliability of the quality of the wrapper circuit generated by the memory circuit generation device 400 and the circuit model of the memory circuit including the wrapper circuit is improved.
[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 circuit generation device 400 is incorporated in the FPGA 12 in which the circuit configuration of the logic emulator device 5 is variable, the circuit configuration of the FPGA 12 is changed during verification to check the function. Is repeated to determine the final wrapper circuit and memory circuit. As a result, the wrapper circuit and the memory circuit can be determined in a relatively short time.
[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 SYMBOLS 1 ... Verification system, 5 ... Logic emulator device, 7 ... Memory circuit construction system, 9 ... Circuit model verification system, 10 ... Emulator main body, 11 ... External board, 12 ... FPGA, 14 ... Logic circuit, 16 ... Memory, 18 ... Test bench circuit, 20 CPU board, 22 CPU, 30 external memory board, 32 memory 32, 80 controller PC, 82 workstation, 84 PC for data input / output, 86 PC for data input / output, Reference numeral 88: logic analyzer, 90: interface section, 92: external board connection I / F section, 94: controller I / F section, 96a, 96b: data I / F section, 98: logic analyzer I / F section, 400 .., A memory circuit generation device, 410, a memory information acquisition unit, 412, a type information acquisition unit, 414, a specification information acquisition unit, 420, Upper circuit generation unit, 450: circuit model verification device (circuit model generation device), 462: type information acquisition unit, 462: specification information acquisition unit, 470: operation verification unit, 472: system level verification unit, 474: function description level Verification unit, 476: Logical verification unit, 478: Verification result comparison unit, 480: File conversion unit, 482: System level output file acquisition unit, 484: File combination unit, 486: Conversion execution unit, 488: Control unit, 500: Wrapper circuit, 514 selection circuit, 520 wrapper circuit, 530 write enable signal generation circuit, 560 wrapper circuit, 578 verification result comparison unit, J12 memory type information, J14 memory specification information

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.
前記第2の検証結果としての、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果、および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方と比較する
ことを特徴とする請求項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の検証結果を示す出力ファイルの形式が前記論理検証システムによる検証にて取扱い可能なファイル形式と異なる場合には、
前記第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.
前記第2の検証部は、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果、および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方を前記第2の検証結果として取得するものである
ことを特徴とする請求項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.
前記第2の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換するファイル変換部を備え、
前記検証結果比較部は、前記ファイル変換部による変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
ことを特徴とする請求項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.
前記第1の工程は、前記第2の検証結果としての、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方と、前記エミュレーション結果とを比較する
ことを特徴とする請求項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.
前記第2の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換する第3の工程を有し、
前記第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.
前記検証結果比較部は、前記第1の工程として、前記第2の検証結果としての、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方と、前記エミュレーション結果とを比較する
ことを特徴とする請求項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.
前記第2の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換するファイル変換部を備え、
前記検証結果比較部は、前記第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.
JP2002343660A 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 Pending JP2004178267A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (7)

* Cited by examiner, † Cited by third party
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
US6701491B1 (en) Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
TW544523B (en) Event based test system for testing memory devices
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
US7437701B1 (en) Simulation of a programming language specification of a circuit design
KR20000017333A (en) Semiconductor integrated circuit design and evaluation system
US11626178B2 (en) Packetized power-on-self-test controller for built-in self-test
JPWO2007113940A1 (en) Semiconductor inspection equipment
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
US11662383B2 (en) High-speed functional protocol based test and debug
JP3737662B2 (en) System LSI test data optimization generation method
WO2006025412A1 (en) Logic verification method, logic module data, device data, and logic verification device
JP7427000B2 (en) Digital circuit testing and analysis module, system and method thereof
JP2005301370A (en) Logic circuit verification/test system
JP3667146B2 (en) Built-in self-test circuit for memory
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
JP2004361171A (en) Semiconductor integrated circuit and method for verifying function of the same
CN105260545B (en) A kind of verification method of programmable circuit system
EP1031995B1 (en) Built-in self-test circuit for memory