説明

SDRAMリフレッシュ回路

【課題】 リフレッシュ間隔を実際の利用と同等にして検証可能とするSDRAMリフレッシュ回路を提供する。
【解決手段】SDRAMリフレッシュ回路は、論理エミュレータ1からSDRAM3へ発行されるリフレッシュ・コマンドを監視するコマンド監視部11と、コマンド監視部11によりリフレッシュ・コマンドが検出された場合に補充リフレッシュ・コマンドを発行する補充リフレッシュ・コマンド発行部12と、補充リフレッシュ・コマンド発行部12により補充リフレッシュ・コマンドが発行可能な状態になったときは補充リフレッシュ・コマンドを選択し、補充リフレッシュ・コマンドが発行可能な状態でないときは論理エミュレータ1からのコマンドを選択するコマンド選択部13とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大容量のシンクロナス・ダイナミック・ランダム・アクセス・メモリ(以下SDRAMという)のリフレッシュ回路に関するものである。
【背景技術】
【0002】
昨今、種々のディジタルマルチメディア製品や情報通信機器の多くにおいて、クロック同期で動作制御が容易なこと、高速のデータ転送が可能なこと、メモリ容量が大規模なこと等から、SDRAMが多く使用されている。
SDRAMは、メモリ構造上、メモリのデータを保持するため、定期的な、一般的には65.6ms毎の、リフレッシュを必要とする。
【0003】
一方、ディジタルマルチメディア製品や情報通信機器は、長大な音声データ,動画像データ,フレームデータ等を取り扱うため、新規開発時の論理検証では、長時間の動作が必要となり、そのため、最終的なシステムレベルの確認においては、高速な論理エミュレーションが行われることが多くなっている。現在、論理エミュレーションを行う論理エミュレータは各社から種々のものが販売されているが、その何れの論理エミュレータも、原理上、実際の装置より処理速度が遅い。
【0004】
例えば、実際の装置は100MHzのクロックでSDRAMをアクセスするものでも、現状の論理エミュレータでは、最速のものでも10〜20MHz程度、一般的には、種々の制約から、1MHz弱での動作のものが多い。この様な論理エミュレータでSDRAMを含む装置の論理エミュレーションを行うと、実際の装置では間に合うリフレッシュの間隔が、論理エミュレーションでは間延びし、リフレッシュが間に合わなくなり、そのため、SDRAMのデータが消滅してしまう。
【0005】
この問題への対応策として、現在は、下記の方法がある。
(a)SDRAM全体を論理記述言語で記述し、被検証論理と一緒に論理エミュレータの中に展開させる。
(b)大容量のメモリ部分のみを一般の実メモリで構成し、その周りのSDRAMとしての制御動作を論理記述言語で記述し、被検証論理と一緒に論理エミュレータの中に展開し、動作させる。
【0006】
しかし、上記(a)の方法の場合、メモリ素子用に非常に多くの論理エミュレータのリソースを消費してしまう問題があり、このため通常は、実際のSDRAMのメモリ容量よりかなり縮減したメモリ容量でしか動作することができない問題があった。また、上記(b)の方法では、SDRAM全体、若しくは、実メモリを使用する場合はメモリ周りの制御動作を論理記述言語で記述し、被検証論理と一緒に論理エミュレータの中に展開し動作させる為、論理エミュレータのリソースを無駄に消費してしまう問題があった。
【0007】
これらの問題を解決するため、例えば特開2002−245794号公報に記載の技術では、論理回路からSDRAMへ発行されるコマンドを監視し、リフレッシュ可能な状態を検知するコマンド監視部がリフレッシュ可能な状態になった時、強制的にリフレッシュ・コマンドを発行する強制リフレッシュ・コマンド発行機能を具備する。この方式により、下記の(c)〜(e)が可能になり上記問題が解決される。
(c)論理エミュレータのリソースを無駄に消費することを防止することが可能になる。
(d)実際のSDRAMを使用し、設計が意図した大容量のメモリによる動作確認が可能になる。
(e)実際のSDRAMを使用し、被検証論理がSDRAMへ発行するコマンドそのままで、被検証論理の動作確認を行うことが可能になる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2002−245794号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上記の技術方式は、リフレッシュ可能な状態を検知したら強制リフレッシュ・コマンドを発行することから、強制リフレッシュ・コマンドを挿入しなくても良い、または挿入してほしくないタイミングでも無条件にリフレッシュ・コマンドを発行することがおこり得る。このため、被検証論理のリフレッシュ・コマンド発行回路に、リフレッシュ・コマンド発行不足の論理不良があったとしても、強制リフレッシュ・コマンド発行回路が不足分のリフレッシュ・コマンドを発行するため、論理不良を見逃すことがおこり得る。
本発明の目的は、リフレッシュ間隔を実際の利用と同等にして検証可能とするSDRAMリフレッシュ回路を提供することにある。
【課題を解決するための手段】
【0010】
リフレッシュ間隔を実際の利用と同等にして検証できるようにするために、意図しないタイミングで強制リフレッシュ・コマンドを発行せずに、補充リフレッシュ・コマンドを発行するSDRAMリフレッシュ回路を設ける。SDRAMリフレッシュ回路は、リフレッシュ間隔を実際の利用と同等にするため、被検証論理からのリフレッシュ・コマンドが発行されたときのみSDRAMに対して補充リフレッシュ・コマンドを発行する。このときSDRAMリフレッシュ回路は、被検証論理からのリフレッシュ・コマンド1個に対して、論理エミュレーション側のクロックとSDRAMのクロックの速度差分だけ、補充リフレッシュ・コマンドを繰り返して発行する。すなわち、本発明に係るSDRAMリフレッシュ回路は、論理エミュレータからSDRAMへ発行されるリフレッシュ・コマンドを監視するコマンド監視部と、前記コマンド監視部によりリフレッシュ・コマンドが検出された場合に補充リフレッシュ・コマンドを発行する補充リフレッシュ・コマンド発行部と、前記補充リフレッシュ・コマンド発行部により前記補充リフレッシュ・コマンドが発行可能な状態のときは前記補充リフレッシュ・コマンドを選択し、前記補充リフレッシュ・コマンドが発行可能な状態でないときは論理エミュレータからのコマンドを選択するコマンド選択部とを備えるものである。
【0011】
SDRAMのリフレッシュのタイミングは、一定期間内にすべての行の数に相当する回数を実行しなければならない。代表的な方法としては、集中的に実行する方法と、一定の間隔で実行する方法とがある。どちらの方法にせよ、論理エミュレータ上から外部接続のSDRAMにアクセスすると、被検証論理からSDRAMに発行されるリフレッシュ・コマンドのタイミングは、理論的に論理エミュレータ上の速度が遅いために守らなければならないリフレッシュ発行回数に届かなくなってしまうことがある。例として、論理エミュレータ側が1MHz、SDRAM側が100MHzで動作する速度差になると、一定期間内にSDRAM側で受け取るリフレッシュ・コマンドの数は約1/100回になってしまう。
【0012】
そこで、被検証論理がリフレッシュ・コマンドをSDRAM側に発行したならば、リフレッシュ・コマンド補充回路が一旦受け取り、この回路からSDRAMへ、論理エミュレータ側とSDRAM側の速度差の割合だけ、リフレッシュ・コマンドを繰り返して発行する機能を設ける。このことにより、速度差の分だけリフレッシュ・コマンドが補充して発行されるため、一定期間内に必要な数が実行されることになる。また、補充して発行したリフレッシュ・コマンドは、被検証論理側のリフレッシュ発行クロック内で完了するため、被検証論理側から見た場合、リフレッシュ・コマンド発行後から次のリフレッシュ・コマンド発行するまでに、意図としないリフレッシュ・コマンドが入らないことになる。
【発明の効果】
【0013】
本発明によれば、被検証論理からのリフレッシュ・コマンド発行のタイミングのときのみ、SDRAMに対して補充リフレッシュ・コマンドを発行するため、リフレッシュ間隔を実製品化時と同等の条件にすることが可能になる。また、被検証論理のリフレッシュ・コマンド発行回路に、リフレッシュ・コマンドの発行不足の不良がある場合、動作不良を見つけることが可能になる。
【図面の簡単な説明】
【0014】
【図1】本発明に係るSDRAMリフレッシュ回路の一実施例を示すブロック構成図である。
【図2】コマンド監視部の構成例を示す図である。
【図3】補充リフレッシュ・コマンド発行部の構成例を示す図である。
【図4】コマンド選択部の構成例を示す図である。
【図5】SDRAMリフレッシュ回路のタイミング・チャートの一例を示す図である。
【発明を実施するための形態】
【0015】
論理エミュレータとSDRAMの間にSDRAMリフレッシュ回路を接続し、リフレッシュ・コマンドを制御することで、SDRAMを接続した論理エミュレータ環境でのリフレッシュ間隔を実製品と同等にすることが可能となる。以下、本発明の実施例について図を用いて説明する。
【0016】
図1は、本発明に係るSDRAMリフレッシュ回路の一実施例を示すブロック構成図である。図中、論理エミュレータ1は、内部に被検証論理を展開しており、被検証論理からクロック(CLK)5、コマンド6、アドレス7、データ8を発行する。SDRAMリフレッシュ回路2は、リフレッシュ・コマンドの制御に使用する高速クロック(FCLK)16をクロック・ジェネレータ(CLKGEN)4より入力するものであり、内部にはコマンド監視部11、補充リフレッシュ・コマンド発行部12およびコマンド選択部13を具備し、実部品であるSDRAM3に、クロック9、コマンド10を送出する。アドレス7とデータ8については、論理エミュレータ1からの値をそのままSDRAM3に送出する。
【0017】
すなわち、SDRAMリフレッシュ回路2は、論理エミュレータ1からSDRAM3へ発行されるリフレッシュ・コマンドを監視するコマンド監視部11と、コマンド監視部11によりリフレッシュ・コマンドが検出された場合に補充リフレッシュ・コマンドを発行する補充リフレッシュ・コマンド発行部12と、補充リフレッシュ・コマンド発行部12により補充リフレッシュ・コマンドが発行可能な状態になったときは補充リフレッシュ・コマンドを選択し、補充リフレッシュ・コマンドが発行可能な状態でないときは論理エミュレータ1からのコマンドを選択するコマンド選択部13とを備えるものである。以下詳述する。
【0018】
まず、論理エミュレータ1内の被検証論理からSDRAMリフレッシュ回路2に、SDRAM3アクセス用のクロック(CLK)5、コマンド6、アドレス7、データ8が送出される。コマンド監視部11は、コマンド6を監視し、コマンド6からリフレッシュ・コマンドが発行されたならば、それを検出し、REFEN14を‘1’にセットする。REFEN14が‘1’にセットされたならば、それを受けて補充リフレッシュ・コマンド発行部12からREFCMD15に補充用のリフレッシュ・コマンド列を発行する。
【0019】
このとき、コマンド選択部13では、SDRAM3に送出するクロック9、コマンド10を論理エミュレータ1内の被検証論理から発行された本来のクロック5、コマンド6から、補充リフレッシュ・コマンド発行部12が発行したREFCMD15と高速クロック(FCLK)16に切り替えて、SDRAM3に送出する。以下、論理エミュレータ1内の被検証論理から発行されたリフレッシュ・コマンドの検出方法および補充用のリフレッシュ・コマンド発行方法について、図2および図3を用いて説明する。
【0020】
図2は、コマンド監視部の構成例を示す図である。図中、論理エミュレータ1内の被検証論理からSDRAM3に対し、CKE17、CS18、RAS19、CAS20、WE21などの信号の組み合わせによるコマンド6が発行される。リフレッシュ・コマンドが発行されたかどうかの判定方法は、個々のSDRAMメーカ間で基本的に同一であり、CKEが‘1’、CSが‘0’、RASが‘0’、CASが‘0’、WEが‘1’になったとき発行されたと判定される。コマンド6が上記の状態になったときREFEN14に‘1’をセットする。
【0021】
図3は、補充リフレッシュ・コマンド発行部の構成例を示す図である。補充リフレッシュ・コマンド発行部12において、補充リフレッシュ・コマンドの発行は、SDRAM実部品の動作速度が論理エミュレータの動作速度より100倍程度速いことを利用しておこなう。すなわち、論理エミュレータの1サイクル(1クロック分)の間に高速クロック(FCLK)16に同期して、リフレッシュに必要なコマンド列(ここでは、全バンク・プリチャージ用のPALL28コマンドとリフレッシュ用のREF29コマンドとする)を発行する。図中、カウンタ22(CTR)は、補充リフレッシュ・コマンドが発行可能な状態でないとき(REFEN14=‘0’)は、リセットされ動作せず、補充リフレッシュ・コマンドが発行可能な状態になったとき(REFEN14=‘1’)初めて、高速クロック(FCLK)16でカウントアップを始める。PALL28コマンドとREF29コマンドを発行する場合、SDRAMの動作仕様では前後のコマンドとの間に、それぞれ何もしない待ち時間を確保することが規定されている。ここでは、それぞれ5サイクルとする。
【0022】
高速クロック(FCLK)16でカウントアップし、その結果をデコーダ(DEC)23で解読し、カウンタ値が5になったならば、PALLCMDEN24信号を‘1’にセットし、PALLCMDGEN26にてPALL28コマンドを生成する。カウンタ値が10になったならば、REFCMDEN25信号を‘1’にセットし、REFCMDGEN27にてREF29コマンドを生成する。また同時に、カウンタ値が10になったならば、カウンタ(CTR)22をリセットし、0からカウントを始める。これにより、論理エミュレータ1サイクル(1クロック分)の間に、補充リフレッシュに必要なコマンド列を繰り返し発行することができる。補充リフレッシュ・コマンド(REFCMD)15は、カウンタ(CTR)22が5のときは、PALL28コマンドを選択し、カウンタ(CTR)22が10のときは、REF29コマンドを選択する。
【0023】
図4は、コマンド選択部の構成例を示す図である。コマンド選択部13では、補充リフレッシュ・コマンドが発行可能な状態でないとき(REFEN14=‘0’)は、論理エミュレータ1内の被検証論理からSDRAM3に対して発行された本来のクロック(CLK)5とコマンド6を選択し、補充リフレッシュ・コマンドが発行可能な状態になったとき(REFEN14=‘1’)は、補充リフレッシュに必要な高速クロック(FCLK)16と補充リフレッシュ・コマンド(REFCMD)15のコマンド列を選択し、それぞれクロック(CLK)9、コマンド10として、SDRAM3の実部品へ送出する。
【0024】
図5は、SDRAMリフレッシュ回路のタイミング・チャートの一例を示す図である。以下、SDRAMリフレッシュ回路の動作を本図にそって説明する。ここでは、説明の容易化のため、FCLK16は、CLK5の20倍の周波数とする。論理エミュレータからのコマンド6がリフレッシュ・コマンドのときは、コマンド監視部11においてこれが検出され、REFEN14が‘1’にセットされる。REFEN14を入力した補充リフレッシュ・コマンド発行部12内のカウンタ(CTR)22の値が5、10になったらPALL28コマンド、REF29コマンドを発行し、REFCMD15としてコマンド選択部13に渡す。コマンド選択部13では、FCLK16をCLK9、REFCMD15をコマンド10としてSDRAM3に設定する。論理エミュレータからのコマンド6がリフレッシュ・コマンド以外のときは、CLK5とコマンド6の値をコマンド選択部13において選択し、SDRAM3に設定する。
【産業上の利用可能性】
【0025】
本発明は、論理エミュレータ以外にも論理シミュレーションに置き換えて適用できるこが可能である。また本発明は、高速なASICで作成予定の製品を、ASICより速度が遅いFPGAで、動作確認やプロトタイプとして製品開発する場合においても、利用可能である。
【符号の説明】
【0026】
1 論理エミュレータ
2 SDRAMリフレッシュ回路
3 SDRAM
4 CLKGEN
5、9 クロック(CLK)
6、10 コマンド
7 アドレス
8 データ
11 コマンド監視部
12 補充リフレッシュ・コマンド発行部
13 コマンド選択部
14 REFEN
15 REFCMD
16 高速クロック(FCLK)
17 CKE
18 CS
19 RAS
20 CAS
21 WE
22 CTR
23 DEC
24 PALLCMDEN
25 REFCMDEN
26 PALLCMDGEN
27 REFCMDGEN
28 PALL
29 REF

【特許請求の範囲】
【請求項1】
論理エミュレータからSDRAMへ発行されるリフレッシュ・コマンドを監視するコマンド監視部と、前記コマンド監視部によりリフレッシュ・コマンドが検出された場合に補充リフレッシュ・コマンドを発行する補充リフレッシュ・コマンド発行部と、前記補充リフレッシュ・コマンド発行部により前記補充リフレッシュ・コマンドが発行可能な状態になったときは前記補充リフレッシュ・コマンドを選択し、前記補充リフレッシュ・コマンドが発行可能な状態でないときは論理エミュレータからのコマンドを選択するコマンド選択部とを備えたことを特徴とするSDRAMリフレッシュ回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−34656(P2011−34656A)
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願番号】特願2009−182729(P2009−182729)
【出願日】平成21年8月5日(2009.8.5)
【出願人】(000233295)日立情報通信エンジニアリング株式会社 (195)
【Fターム(参考)】