(57)【特許請求の範囲】
【請求項１】
論理エミュレータからＳＤＲＡＭへ発行されるコマンドを監視し、前記ＳＤＲＡＭを構成する全てのバンクがアイドル状態になり強制リフレッシュ可能な状態になったことを検知するコマンド監視部と、前記強制リフレッシュ可能な状態になった時論理エミュレータ１サイクルの間に強制リフレッシュコマンドを発行する強制リフレッシュコマンド発行部と、前記強制リフレッシュ可能な状態になった時は前記強制リフレッシュコマンドを選択し、前記強制リフレッシュが可能な状態でない時は通常動作時のコマンドを選択するコマンド選択部とを具備することを特徴とするＳＤＲＡＭリフレッシュ回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シンクロナス ダイナミック ランダム アクセス メモリ (以下ＳＤＲＡＭという)のリフレッシュ回路に関するものである。
【０００２】
【従来の技術】
昨今、種々のディジタルマルチメディア製品や情報通信機器の多くにおいて、クロック同期で動作制御が容易なこと、そのため高速のデータ転送が可能なこと、メモリ容量が大規模なこと等から、ＳＤＲＡＭが多く使用されている。
ＳＤＲＡＭは、メモリ構造上、メモリのデータを保持するため、定期的な、一般的には６５．６ｍｓ毎の、リフレッシュを必要とする。
【０００３】
一方、上記ディジタルマルチメディア製品や情報通信機器は、長大な音声データ，動画像データ，フレームデータ等を取り扱うため、新規開発時の論理検証では、長時間の動作が必要となり、そのため、最終的なシステムレベルの確認においては、高速な論理エミュレーションが行われることが多くなっている。
現在、論理エミュレーションを行う論理エミュレータは各社から種々のものが販売されているが、その何れの論理エミュレータも、原理上、実際の装置より処理速度が遅い。
【０００４】
例えば、実際の装置は１００ＭＨｚのクロックでＳＤＲＡＭをアクセスするものでも、現状の論理エミュレータでは、最速のものでも１０〜２０ＭＨｚ程度、一般的には、種々の制約から、１ＭＨｚ弱での動作のものが多い。
この様な論理エミュレータでＳＤＲＡＭを含む装置の論理エミュレーションを行うと、実際の装置では間に合うリフレッシュの間隔が、論理エミュレーションでは間延びし、リフレッシュが間に合わなくなり、そのため、ＳＤＲＡＭのデータが消滅してしまう。
【０００５】
この問題への対応策として、現在は、(1) ＳＤＲＡＭ全体を論理記述言語で記述し、被検証論理と一緒に論理エミュレータの中に展開したり、若しくは、(2) 大容量のメモリ部分のみを一般の実メモリで構成し、その周りのＳＤＲＡＭとしての制御動作を論理記述言語で記述し、被検証論理と一緒に論理エミュレータの中に展開し、動作させている。
【０００６】
【発明が解決しようとする課題】
ところが前記従来技術では、ＳＤＲＡＭ全体、若しくは、実メモリを使用する場合はメモリ周りの制御動作を論理記述言語で記述し、被検証論理と一緒に論理エミュレータの中に展開し動作させる為、論理エミュレータのリソースを無駄に消費してしまう問題があった。
また、上記前者(1) の方法の場合、メモリ素子用に非常に多くの論理エミュレータのリソースを消費してしまう問題があり、このため通常は、実際のＳＤＲＡＭのメモリ容量よりかなり縮減したメモリ容量でしか動作させれない問題があった。
【０００７】
更に、上記どちらの方法にしても、ＳＤＲＡＭの動作を論理記述言語で記述する為、実際のＳＤＲＡＭの動作仕様を完全にカバーするのが困難な問題もある。
ＳＤＲＡＭ動作仕様を完全にカバーできない場合は、逆に被検証論理からＳＤＲＡＭへ発行するコマンドに手を加えることも必要になり、被検証論理本来の形での論理検証が行えない問題があった。
【０００８】
本発明の目的は、
(１) 論理エミュレータのリソースを無駄に消費することを防止し得るＳＤＲＡＭリフレッシュ回路を提供すること、
(２) 実際のＳＤＲＡＭを使用し、設計が意図した大容量のメモリによる動作確認を行うこと、
(３) 実際のＳＤＲＡＭを使用し、被検証論理がＳＤＲＡＭへ発行するコマンドそのままで、被検証論理の動作確認を行うこと、
にある。
【０００９】
【課題を解決するための手段】
上記目的は、論理回路からＳＤＲＡＭへ発行されるコマンドを監視し、リフレッシュ可能な状態を検知するコマンド監視部、リフレッシュ可能な状態になった時、これを受けて強制的にリフレッシュコマンドを発行する強制リフレッシュコマンド発行部、および前記強制リフレッシュコマンドと通常動作時のコマンドとを選択するコマンド選択部とを具備することによって、達成される。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
図１は、本発明のＳＤＲＡＭリフレッシュ回路を接続した論理エミュレーションシステムの構成図である。
図中、論理エミュレータ １ は、内部に被検証論理を展開しており、被検証論理からクロック(ＣＬＫ) ２ ，コマンド ３ ，アドレス ４ ，データ(必要時) ５ を発行する。
【００１１】
ＳＤＲＡＭリフレッシュ回路 ６ は、高速リフレッシュの制御に使用する高速クロック(ＦＣＬＫ) ７ をクロックジェネレータ (ＣＬＫＧＥＮ) 28 より入力し、内部にコマンド監視部 ８ と強制リフレッシュコマンド発行部 ９ とコマンド選択部 10 とを具備し、実部品であるＳＤＲＡＭ 11 に、ＣＬＫ 12 ，コマンド 13 ，アドレス 14 ，データ(必要時) 15 を送出する。
【００１２】
まず、論理エミュレータ １ 内被検証論理からＳＤＲＡＭリフレッシュ回路 ６に、ＳＤＲＡＭ 11 アクセス用のクロック(ＣＬＫ) ２ ，コマンド ３ ，アドレス ４ ，データ(必要時) ５ が送出される。
ここで、一般的に、ＳＤＲＡＭは、メモリの大容量化のために、複数個のバンク(構成単位)から構成されている。
コマンド監視部 ８ は、コマンド ３ を監視しておき、ＳＤＲＡＭの状態遷移 (状態遷移を含むＳＤＲＡＭの動作仕様については、ＳＤＲＡＭ製造の各社で発行されているデータシート等で明白であるので、ここでは、その詳細説明は省く。) に於いて全てのバンクがアイドルになりリフレッシュ可能な状態になった時、ＦＲＥＦＭＤ 16 を '１'にセットする。
【００１３】
ＦＲＥＦＭＤ 16 がセットされたのを受けて強制リフレッシュコマンド発行部９ が、強制的にリフレッシュを行うのに必要なコマンド列を発行する。
また同時に、コマンド選択部 10 が、ＳＤＲＡＭ 11  へ送出するコマンド，ＣＬＫを、論理エミュレータ １ 内被検証論理からＳＤＲＡＭ 11 に対し発行された本来のコマンド，ＣＬＫから強制リフレッシュコマンド発行部 ９ が発行した強制リフレッシュ用のコマンド，ＣＬＫに切り替え、ＳＤＲＡＭ 11 へ送出する。
上記に於いて、「全てのバンクがリフレッシュ可能なアイドル状態」の検知方法は、個々のＳＤＲＡＭメーカが提供しているデータシートにより明白であり、また、個々のＳＤＲＡＭメーカ間でも基本的に同一であるので、ここではその詳細説明は省略する。只、その基本的な考え方について、以下図２で説明する。
【００１４】
図２は、コマンド監視部の回路構成図である。
図中、論理エミュレータ １ 内被検証論理からＳＤＲＡＭ 11 に対し、ＣＬＫ２ に同期し、ＣＫＥ 17 ，ＣＳ 18 ，ＲＡＳ 19 ，ＣＡＳ 20 ，ＷＥ 21 ，ＡＰ 22 ，バンクアドレス(ＢＡ) 23 等のコマンド［総称して、入力コマンド(ＩＮＰＵＴＣＭＤ) 24］ が発行される。
これをＣＬＫ ２ によりラッチ(ＬＡＴ) 37でラッチし、バンク毎にデコーダ(ＤＥＣ) 25 で解読する。
【００１５】
ＳＤＲＡＭのリード(ＲＥＡＤ)／ライト(ＷＲＩＴ)アクセスは、基本的には、まずＩＤＬＥ状態で当該バンクをバンクアクティブ(ＡＣＴＶ)コマンドで活性化（ＢＵＳＹ状態）し、次に必要なＲＥＡＤ／ＷＲＩＴコマンドを実行し、最後にプリチャージ(ＰＲＥ)コマンドを発行しＩＤＬＥ状態に戻って終わる。
オートプリチャージ(ＡＵＴＯ−ＰＲＥＣＨＡＲＧＥ)動作を伴うＲＥＡＤＡ／ＷＲＩＴＡコマンドの場合は、  ＡＵＴＯ−ＰＲＥＣＨＡＲＧＥ動作の終了を待ってＩＤＬＥ状態に戻って終わる。
【００１６】
いずれにしても、リフレッシュが可能なのは、全てのバンクがＩＤＬＥ状態になった時であり、この時に強制リフレッシュが可能な状態となる。
すなわち、図２に於いては、バンク０のＩＤＬＥ０ 26 とバンク１のＩＤＬＥ１ 27 との両方が '１' にセットされＦＲＥＦＭＤ 28 が'１' にセットされた時である。
【００１７】
次に、強制リフレッシュコマンド発行部 ９ について、例を図３で説明する。
強制リフレッシュは、ＳＤＲＡＭ実部品の動作速度が論理エミュレータの動作速度より１００倍程度早いことを利用して行う。
すなわち、論理エミュレータ１サイクル（１ＣＬＫ分）の間に高速クロック（ＦＣＬＫ ７ ）に同期して、強制リフレッシュに必要なコマンド列（ここでは、ＰＡＬＬコマンドとＲＥＦコマンドとする）を発行する。
図中、カウンタ(ＣＴＲ) 29 は、強制リフレッシュが可能な状態でない時（ＦＲＥＦＭＤ＝ '０'）はリセットされ動作せず、強制リフレッシュが可能な状態になった時（ＦＲＥＦＭＤ＝'１'）初めて、ＦＣＬＫでカウントアップを始める。
【００１８】
ＰＡＬＬコマンドとＲＥＦコマンドを発行する場合、ＳＤＲＡＭの動作仕様では前後のコマンドとの間に、それぞれ何もしない待ち時間を確保することが規定されている。
ここでは、それぞれを５サイクルとする。
【００１９】
ＦＣＬＫ ７ でカウントアップし、その結果をデコーダ(ＤＥＣ) 30 で解読し、５サイクル目のＣＴＲ５ 31 信号でＰＡＬＬコマンド（ＦＰＡＬＬＣＭＤ 32 ）を生成し、１０サイクル目のＣＴＲ１０ 33 信号でＲＥＦコマンド（ＦＲＥＦＣＭＤ 34 ）を生成する。
１５サイクル目のＣＴＲ１５ 35 信号でＣＴＲ 29 のカウントアップを抑止する。
論理エミュレータ１サイクル（１ＣＬＫ分）の間に、強制リフレッシュに必要なコマンド列を複数回繰り返し発行することもできる。
【００２０】
次に、コマンド選択部 10  について、例を図４で説明する。
図中、ＳＥＬ 36 は、強制リフレッシュが可能な状態でない時（ＦＲＥＦＭＤ＝ '０'）は、論理エミュレータ １ 内被検証論理からＳＤＲＡＭ 11 に対し発行された本来のＣＬＫ ２ とコマンド（ＩＮＰＵＴＣＭＤ 24 ）を選択し、強制リフレッシュが可能な状態になった時（ＦＲＥＦＭＤ＝'１'）初めて、強制リフレッシュに必要なＦＣＬＫ 7 とコマンド列を選択し、ＣＬＫ 12 ，コマンド 13として、ＳＤＲＡＭ 11 の実部品へ送出する。
コマンド 13 は、ＣＴＲ 29 の５サイクル目でＦＰＡＬＬＣＭＤ 32 を、また、１０サイクル目でＦＲＥＦＣＭＤ 34 を選択する。
【００２１】
次に、強制リフレッシュの動作を、図５で説明する。
ここでは、説明の容易化のため、ＦＣＬＫ ７ は、ＣＬＫ ２ の16倍の周波数とする。
ＳＤＲＡＭ 11 は、ＣＬＫ 12 の立ち上がりでコマンドを認識し動作するので、コマンド監視部 ８ はＣＬＫ ２ の立ち上がりでコマンドを監視する。
コマンド ３ がＣＬＫ ２ の立ち下がりで、ＰＲＥになり、かつ、全てのバンクがアイドル状態だと、コマンド監視部 ８ は強制リフレッシュが可能な状態だと認識し、ＣＬＫ ２ の立ち上がりでＦＲＥＦＭＤ 16 を '１' にセットする。
【００２２】
ＦＲＥＦＭＤ 16 が'１'にセットされると、ＣＴＲ 29 がＦＣＬＫ ７ の立ち上がりでカウントアップを始める。
ＣＴＲ 29 の値が５になった時ＣＴＲ５ 31 が出てＦＰＡＬＬＣＭＤ 32 が生成され、また、10になった時ＣＴＲ１０ 33 が出てＦＲＥＦＣＭＤ 34 が生成される。
ＦＰＡＬＬＣＭＤ 32 とＦＲＥＦＣＭＤ 34 はそれぞれ、ＳＥＬ 36 で選択され、コマンド 13 に出力される。
【００２３】
ＣＴＲ 29 の値が15になった時ＣＴＲ１５ 35 が出てＣＴＲ 29 のカウントアップを抑止する。
ＣＬＫ 12 についても、ＦＲＥＦＭＤ 16 が'１'にセットされたのを受け、ＳＥＬ 36 で、ＣＬＫ ２ からＦＣＬＫ ７ に切り替えて送出する。
この時、ＳＤＲＡＭ 11 でのコマンド認識を確実なものとするため、上記ＣＬＫ 12 とコマンド 13 との時間関係を調整して送出することは、言うまでもないことである。
【００２４】
尚、強制リフレッシュ動作にアドレスとデータは使用しないので、それぞれ、アドレス ４ はアドレス 14 に、また、データ ５ はデータ 15 にスルーさせておく。
上記の様にして、論理エミュレータにＳＤＲＡＭの実部品を接続した論理エミュレーションが可能になる。
尚、本発明は、上記実施形態に限定されるものではなく、論理シミュレーションや一般の論理回路にも適用できることは、明らかである。
【００２５】
【発明の効果】
本発明によれば、次の効果がある。
(１) 論理エミュレータのリソースを無駄に消費することを防止し得るＳＤＲＡＭリフレッシュ回路を得ることができる。
(２) 実際のＳＤＲＡＭを使用する為、設計が意図した大容量のメモリによる動作確認ができる。
(３) 実際のＳＤＲＡＭを使用する為、被検証論理がＳＤＲＡＭへ発行するコマンドそのままで、被検証論理の動作確認ができる。
【図面の簡単な説明】
【図１】本発明の技術によるＳＤＲＡＭリフレッシュ回路を接続した論理エミュレーションシステムの構成を示す図である。
【図２】コマンド監視部の回路構成例を示す図である。
【図３】強制リフレッシュコマンド発行部の回路構成例を示す図である。
【図４】コマンド選択部の回路構成例を示す図である。
【図５】強制リフレッシュの動作を示す図である。
【符号の説明】
１：論理エミュレータ，２：ＣＬＫ，３：コマンド，４：アドレス，５：データ，６：ＳＤＲＡＭリフレッシュ回路，７：ＦＣＬＫ，８：コマンド監視部，９：強制リフレッシュコマンド発行部，１０：コマンド選択部，１１：ＳＤＲＡＭ，１２：ＣＬＫ，１３：コマンド，１４：アドレス，１５：データ，１６：ＦＲＥＦＭＤ，１７：ＣＫＥ，１８：ＣＳ,１９：ＲＡＳ，２０：ＣＡＳ，２１：ＷＥ，２２：ＡＰ，２３：ＢＡ，２４：ＩＮＰＵＴＣＭＤ，２５：ＤＥＣ，２６：ＩＤＬＥ０，２７：ＩＤＬＥ１，２８：ＣＬＫＧＥＮ，２９：ＣＴＲ，３０：ＤＥＣ，３１：ＣＴＲ ５，３２：ＦＰＡＬＬＣＭＤ，３３：ＣＴＲ１０，３４：ＦＲＥＦＣＭＤ，３５：ＣＴＲ１５，３６：ＳＥＬ，３7：ＬＡＴ
【図１】
0003754303.tif 000002
【図２】
0003754303.tif 000003
【図３】
0003754303.tif 000004
【図４】
0003754303.tif 000005
【図５】
0003754303.tif 000006