[go: up one dir, main page]

JP2004178267A - メモリ回路生成方法および装置、メモリ回路、回路モデル検証方法および装置、回路モデル生成方法および装置 - Google Patents

メモリ回路生成方法および装置、メモリ回路、回路モデル検証方法および装置、回路モデル生成方法および装置 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
English (en)
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/ja
Publication of JP2004178267A publication Critical patent/JP2004178267A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】論理エミュレータ上にモデリングされるメモリ回路を簡易かつ効率的に構築することができるようにする。
【解決手段】ターゲットメモリの所望のメモリ動作を、予めエミュレータ本体10上に搭載されているメモリ16と書換可能な論理デバイスであるFPGA12に組み込んだラッパー回路500とからなるメモリ回路で実現する。メモリ周辺回路の変更をエミュレータ装置に組み込まれているラッパー回路500にて対応を採ることができ、事実上、メモリ周辺回路のハード的な変更を不要化することができる。
【選択図】 図9

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…メモリ仕様情報

Claims (22)

  1. 代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路のモデルを生成するメモリ回路生成方法であって、
    前記代替品メモリと接続されるとともに、当該代替品メモリと協働することで前記メモリ回路に前記ターゲットメモリと略等価な動作をさせるラッパー回路を、書換可能な論理デバイスに組み込む
    ことを特徴とするメモリ回路生成方法。
  2. 前記ターゲットメモリの容量を、単一の前記代替品メモリの容量により担当するように、前記ラッパー回路を構築する
    ことを特徴とする請求項1に記載のメモリ回路生成方法。
  3. 前記ターゲットメモリの容量を、複数の前記代替品メモリの容量を組み合わせて担当するように、前記ラッパー回路を構築する
    ことを特徴とする請求項1に記載のメモリ回路生成方法。
  4. 前記代替品メモリとして、前記論理デバイスの外部に設けられたメモリセルを使用する
    ことを特徴とする請求項1に記載のメモリ回路生成方法。
  5. 代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路のモデルを生成するメモリ回路生成装置であって、
    前記ターゲットメモリメモリの種別に関するメモリ種別情報を取得する種別情報取得部と、
    前記ターゲットメモリメモリの性能に関するメモリ仕様情報を取得する仕様情報取得部と、
    前記種別情報取得部が取得した前記メモリ種別情報と、前記仕様情報取得部が取得した前記メモリ仕様情報とに基づいて、前記代替品メモリと接続されるとともに、当該代替品メモリと協働することで前記メモリ回路に前記ターゲットメモリと略等価な動作をさせるラッパー回路のモデルを生成するラッパー回路生成部と
    を備えたことを特徴とするメモリ回路生成装置。
  6. 代替品メモリを使用してターゲットメモリと略等価な動作をするメモリ回路であって、
    前記代替品メモリと接続されるとともに書換可能な論理デバイスに組み込まれたラッパー回路を含み、
    前記ラッパー回路は、前記代替品メモリと協働することで、前記メモリ回路に前記ターゲットメモリと略等価な動作をさせる機能部分を含む
    ことを特徴とするメモリ回路。
  7. 前記ラッパー回路は、前記ターゲットメモリの容量を、単一の前記代替品メモリの容量により担当するように当該代替品メモリを制御する機能部分を含む
    ことを特徴とする請求項6に記載のメモリ回路。
  8. 前記ラッパー回路は、前記ターゲットメモリの容量を、複数の前記代替品メモリの容量により担当するように当該複数の代替品メモリの使用を切り替えつつ当該代替品メモリを制御する機能部分を含む
    ことを特徴とする請求項6に記載のメモリ回路。
  9. ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路の動作を検証する回路モデル検証方法であって、
    前記論理検証システムによる検証結果であるエミュレーション結果と、前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果とを比較することで、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する
    ことを特徴とする回路モデル検証方法。
  10. 前記第2の検証結果としての、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果、および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方と比較する
    ことを特徴とする請求項9に記載の回路モデル検証方法。
  11. 前記第2の検証結果を示す出力ファイルの形式が前記論理検証システムによる検証にて取扱い可能なファイル形式と異なる場合には、
    前記第2の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換し、
    この変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
    ことを特徴とする請求項9に記載の回路モデル検証方法。
  12. 前記個別回路は、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路である
    ことを特徴とする請求項11に記載の回路モデル検証方法。
  13. ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路の動作を検証する回路モデル検証装置であって、
    前記論理検証システムによる検証結果であるエミュレーション結果を取得する論理検証部と、
    前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果を取得する第2の検証部と、
    前記論理検証部が取得した前記エミュレーション結果と前記第2の検証部が取得した前記第2の検証結果とを比較することにより、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する検証結果比較部と
    を備えたことを特徴とする回路モデル検証装置。
  14. 前記第2の検証部は、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果、および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方を前記第2の検証結果として取得するものである
    ことを特徴とする請求項13に記載の回路モデル検証装置。
  15. 前記第2の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換するファイル変換部を備え、
    前記検証結果比較部は、前記ファイル変換部による変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
    ことを特徴とする請求項13に記載の回路モデル検証装置。
  16. ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路のモデルを生成する回路モデル生成方法であって、
    前記個別回路は、代替品を使用してターゲット回路と略等価な動作をするように構成されたものであり、
    前記論理検証システムによる検証結果であるエミュレーション結果と、前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果とを比較する第1の工程と、
    前記検証結果の比較に基づいて、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する第2の工程と
    を有し、
    前記元の回路と同じ動作をしない場合には、前記第1の工程の比較結果を参照して、前記論理検証システム上にモデリングした前記個別回路のモデルを修正し、この修正後のモデルについて前記第1の工程と前記第2の工程とを繰り返すことにより、前記個別回路のモデルを決定する
    ことを特徴とする回路モデル生成方法。
  17. 前記第1の工程は、前記第2の検証結果としての、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方と、前記エミュレーション結果とを比較する
    ことを特徴とする請求項16に記載の回路モデル生成方法。
  18. 前記第2の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換する第3の工程を有し、
    前記第1の工程は、前記第3の工程による変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
    ことを特徴とする請求項16に記載の回路モデル生成方法。
  19. 前記個別回路は、代替品メモリを使用してターゲットメモリと略等価な動作をするようにするメモリ回路である
    ことを特徴とする請求項16に記載の回路モデル生成方法。
  20. ターゲット回路の論理動作を検証する論理検証システム上にモデリングされる個別回路であって、代替品を使用してターゲット回路と略等価な動作をするように構成された個別回路のモデルを生成する回路モデル生成装置であって、
    前記論理検証システムによる検証結果であるエミュレーション結果を取得する論理検証部と、
    前記論理検証システムによる検証手法とは異なる検証手法による検証結果である第2の検証結果を取得する第2の検証部と、
    前記論理検証部が取得した前記エミュレーション結果と前記第2の検証部が取得した前記第2の検証結果とを比較する第1の工程と、前記論理検証システム上にモデリングした前記個別回路が当該個別回路と対応する元の回路と同じ動作をするか否かを判定する第2の工程とを実施する検証結果比較部と、
    前記検証結果比較部における前記第2の工程による判定結果が前記元の回路と同じ動作をしない旨を示していることを条件として、前記検証結果比較部における前記第1の工程による比較結果を参照して前記論理検証システム上にモデリングした前記個別回路のモデルを修正し、この修正後のモデルについて前記第1の工程と前記第2の工程とを繰り返すように制御する制御部と
    を備えたことを特徴とする回路モデル生成装置。
  21. 前記検証結果比較部は、前記第1の工程として、前記第2の検証結果としての、システムレベル言語で設計された前記ターゲット回路上にモデリングされる前記個別回路のシステムレベルのシミュレーション結果および機能記述言語で作成された前記ターゲット回路上にモデリングされる前記個別回路の機能記述言語レベルのシミュレーション結果のうちの少なくとも一方と、前記エミュレーション結果とを比較する
    ことを特徴とする請求項20に記載の回路モデル生成装置。
  22. 前記第2の検証結果を示す出力ファイルの形式を前記論理検証システムによる検証にて取扱い可能なファイル形式に変換するファイル変換部を備え、
    前記検証結果比較部は、前記第1の工程として、前記ファイル変換部による変換後の出力ファイルにより示される検証結果と前記エミュレーション結果とを比較する
    ことを特徴とする請求項20に記載の回路モデル生成装置。
JP2002343660A 2002-11-27 2002-11-27 メモリ回路生成方法および装置、メモリ回路、回路モデル検証方法および装置、回路モデル生成方法および装置 Pending JP2004178267A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002343660A JP2004178267A (ja) 2002-11-27 2002-11-27 メモリ回路生成方法および装置、メモリ回路、回路モデル検証方法および装置、回路モデル生成方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002343660A JP2004178267A (ja) 2002-11-27 2002-11-27 メモリ回路生成方法および装置、メモリ回路、回路モデル検証方法および装置、回路モデル生成方法および装置

Publications (1)

Publication Number Publication Date
JP2004178267A true JP2004178267A (ja) 2004-06-24

Family

ID=32705393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002343660A Pending JP2004178267A (ja) 2002-11-27 2002-11-27 メモリ回路生成方法および装置、メモリ回路、回路モデル検証方法および装置、回路モデル生成方法および装置

Country Status (1)

Country Link
JP (1) JP2004178267A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006294033A (ja) * 2005-04-06 2006-10-26 Quickturn Design Syst Inc 異なるメモリシステム間での簡潔なマッピングを提供するためのシステム及び方法
JP2010527476A (ja) * 2007-05-09 2010-08-12 シノプシス インコーポレイテッド 自動回路設計及びシミュレーションに使用するための技術
US8208358B2 (en) 2008-06-18 2012-06-26 Hitachi, Ltd. Optical information recording method, optical information reproduction method and optical disk device
JP2015055899A (ja) * 2013-09-10 2015-03-23 株式会社東芝 半導体集積回路の検証装置、半導体集積回路の検証方法、及び、プログラム
CN112836455A (zh) * 2021-01-20 2021-05-25 上海擎昆信息科技有限公司 一种soc仿真方法及系统
CN114445553A (zh) * 2021-12-20 2022-05-06 国网河北省电力有限公司经济技术研究院 多地区地下电缆的关联建模方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006294033A (ja) * 2005-04-06 2006-10-26 Quickturn Design Syst Inc 異なるメモリシステム間での簡潔なマッピングを提供するためのシステム及び方法
JP2010527476A (ja) * 2007-05-09 2010-08-12 シノプシス インコーポレイテッド 自動回路設計及びシミュレーションに使用するための技術
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 (ja) * 2013-09-10 2015-03-23 株式会社東芝 半導体集積回路の検証装置、半導体集積回路の検証方法、及び、プログラム
CN112836455A (zh) * 2021-01-20 2021-05-25 上海擎昆信息科技有限公司 一种soc仿真方法及系统
CN112836455B (zh) * 2021-01-20 2023-11-10 上海擎昆信息科技有限公司 一种soc仿真方法及系统
CN114445553A (zh) * 2021-12-20 2022-05-06 国网河北省电力有限公司经济技术研究院 多地区地下电缆的关联建模方法

Similar Documents

Publication Publication Date Title
US9910086B2 (en) Test IP-based A.T.E. instrument architecture
CN112949233B (zh) Fpga芯片的自动化开发方法及装置、电子设备
US20130227367A1 (en) Test IP-Based A.T.E. Instrument Architecture
US6327556B1 (en) AT-speed computer model testing methods
JP2001189387A (ja) システムオンチップの設計検証方法および装置
US7437701B1 (en) Simulation of a programming language specification of a circuit design
CN110658438A (zh) 扫描测试系统及其控制装置和控制方法
CN115184781A (zh) 一种芯片测试方法及系统
JP4153882B2 (ja) 半導体集積回路装置
US11662383B2 (en) High-speed functional protocol based test and debug
JPWO2007113940A1 (ja) 半導体検査装置
JP2004178267A (ja) メモリ回路生成方法および装置、メモリ回路、回路モデル検証方法および装置、回路モデル生成方法および装置
JP2005346517A (ja) 検証装置および検証方法
CN105260545B (zh) 一种可编程电路系统的验证方法
US9672094B1 (en) Interconnect circuitry fault detection
JP3737662B2 (ja) システムlsiのテストデータ最適化生成方式
JP2005301370A (ja) 論理回路検証・テストシステム
JP3667146B2 (ja) メモリ用内蔵自己テスト回路
CN100389425C (zh) 实现数模混合型集成电路验证的方法及装置
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 (ja) 半導体設計支援装置、半導体設計支援方法及びプログラム
EP1031995B1 (en) Built-in self-test circuit for memory
JP2004171436A (ja) データインタフェース方法およびデータインタフェース装置
WO2006025412A1 (ja) 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置