目次
1. SDRAMの基本的な導入と実験プラットフォーム:
1. SDRAMの概要:
同期ダイナミックランダムアクセスメモリ(SDRAMと呼ばれる同期ダイナミックランダムアクセスメモリ)は、データを格納および読み取るための同期インターフェイスを実装できるダイナミックランダムアクセスメモリ(DRAM)です。ここでの主な注意は、同期、動的、ランダムです。
同期:SDRAMには同期インターフェイスがあり、制御入力に応答する前にクロック信号を待機するため、コンピューターのシステムバスと同期できます。このワードはFPGAでよく使用されます。これは、SDRAMが準拠する必要があるタイミング要件を反映しています。つまり、データとコマンドはクロックで同期されます。
動的:RAMのストレージ構造は、電源がオンになると失われ、電源がオンになると失われます。SDRAMに保存されるデータはバイナリデータであるため、0でない場合は1になります。バイナリデータを格納する回路はコンデンサで構成されており、コンデンサは時間の経過とともにゆっくりと放電するデバイスであるため、データを格納する機能を実現するには、内部の記憶回路を常にリフレッシュする必要があります。リフレッシュ回路なしでデータを記憶できるSRAMと比較して、SDRAMではリフレッシュ動作が1つ多くなりますが、コストを大幅に削減できるため、機能やコストなど多くの要素を考慮してデバイスを選択する必要があります。
ランダム:SDRAMが内部アドレスに対してランダムにデータアクセス操作を実行できるという文字通りの意味から見ることができます。
2. SDRAMの履歴:
SDRAMは、開発以来5世代を経て、第1世代のSDR SDRAM、第2世代のDDR SDRAM、第3世代のDDR2 SDRAM、第4世代のDDR3 SDRAM、第5世代のDDR4 SDRAMです。
SDRAMの第1世代はシングルエンド(シングルエンド)クロック信号を使用し、第2、3、4世代は差動クロック信号を使用して、動作周波数が速いため、同期クロックとして干渉を低減できます。
SDR SDRAMのクロック周波数は、データストレージの周波数です。第1世代のメモリは、クロック周波数にちなんで命名されます。たとえば、pc100とpc133は、クロック信号が100または133MHzであり、データの読み取りおよび書き込みレートも100または133MHzであることを示します。
DDR(ダブルデータレート)メモリの第2、第3、および第4世代の後、データの読み取りおよび書き込みレートが命名基準として使用され、そのDDR代数を表す記号が前面に追加されます。つまり、PC、つまりDDR、PC2 = DDR2、PC3 = DDR3 。たとえば、PC2700はDDR333、動作周波数は333/2 = 166MHz、2700は帯域幅が2.7Gであることを意味します。
DDRの読み取りおよび書き込み頻度は、DDR200からDDR400、DDR2はDDR2-400からDDR2-800、DDR3はDDR3-800からDDR3-1600の範囲です。
多くの人がSDRAMを第1世代であるSDR SDRAMと誤解しており、名詞として誤解を招きやすくなっています。
SDRはSDRAMとは異なります。
3.実験用SDRAMの紹介:
1.メモリアーキテクチャ
この実験では、Winbond CompanyのW9812G6KH-6 SDRAMチップとXiaomei GeのAC620FPGA開発ボードを使用します。SDRAMインターフェイスを作成する前に、このSDRAMのシステムアーキテクチャと一般的な概要を理解しておく必要があります。このタイプのメモリのデータマニュアルはインターネットからダウンロードできます。
図1:IS42S16400Fメモリアーキテクチャ
IS42S16400Fメモリには、主に命令デコーダ、アドレスライン、データライン、メモリブロック、モードレジスタ、動的回路制御が含まれます。
(1)命令デコーダ
命令デコーダには、クロック信号(clk)、クロックイネーブル(cke)、および制御命令信号(cs / ras / cas / we)が含まれ、制御命令信号は、デコード後にメモリ上で一連の制御アクションを実行します。
(2)住所行
アドレスラインは16ビットの行と列のアドレスラインと2ビットのブロックアドレスラインを含み、行と列のアドレスラインはA0-A11であり、バスは多重化されており、行と列のアドレスは時分割多重化されています。ブロックアドレスラインba0およびba1は、メモリのブロックRAMを選択します。
(3)データケーブル
データラインは、16ビットデータバスdqです。これはトライステート信号であり、データの書き込みと読み取りのためのデータインターフェイスです。
(4)収納ブロック
IS42S16400Fには4つのストレージブロックがあり、各ブロックにデータを保存できます。ストレージブロックは、ba0とba1で選択できます。
(5)モードレジスタ
モードレジスタは、SDRAMの動作モード、読み取りおよび書き込みモード、バースト長などを設定するためのものです。
(6)ダイナミック回路制御
これらのモジュールには、主に行および列アドレスのコーディング、セルフリフレッシュタイミング、セルフリフレッシュ動作が含まれます。
2.基本機能
(1)クロック周波数:200、166、143MHz)
(2)完全な同期、クロックの立ち上がりエッジでの出力データ
(3)3.3V電源
(4)プログラム可能な競合長(1、2、4、8、フルページ)
(5)すべて64msで4096回更新
(6)プログラマブルcas遅延(2,3クロックサイクル)(後で説明します)
(7)バースト読み取りおよび書き込みまたは単一読み取りおよび書き込み
(8)バイトはLDQMおよびUDQMによって制御されます
(9)ストレージ容量1Mビット* 16ビット* 4バンク= 64Mビット
ストレージ深度:IS42S16400Fには4つのブロック、行アドレス12ビット、列アドレス8ビットがあります。したがって、各ブロックには2 ^ 12 * 2 ^ 8 = 4096 * 256 =1,048,576の
ストレージ幅:ストレージユニットあたりの16ビット
ストレージ容量:4 *1,048,576* 16 = 64Mビット
2. SDRAM—W9812G6KH-6機能の説明:
1.一般的な説明:
64Mb SDRAMは、3.3Vランダムアクセスメモリ用に動的に設計された高速CMOSであり、67,108,864ビットのデータを格納できます。各16,777,216ビットのストレージ領域は、4,096行x 256列のストレージユニットで構成され、各ユニットは16ビットのデータを格納します。
64Mb SDRAMには、自動リフレッシュモード、省電力モード、およびパワーダウンモードがあります。すべての信号は、クロック信号CLKの立ち上がりエッジで登録されます。
すべての入力と出力はLVTTLと互換性があります。
64Mb SDRAMには競合を同期する機能があり、バーストの終わりにセルフタイムラインのプリチャージを開始します。
バンクの1つにアクセスするとき、1つのバンクと他の3つのバンクをプリチャージすると、プリチャージサイクルが隠され、シームレスで高速なランダムアクセス操作が提供されます。
SDRAMの読み取りおよび書き込みアクセスは、選択した場所へのバースト指向の読み取りおよび書き込みアクセスであり、選択した場所へのアクセスを継続します。読み取りおよび書き込みアクセスの前に、アクティブ化コマンドが必要で、その後にREADまたはWRITEコマンドが必要です。終了後にプリチャージが開始されます。プログラム可能なREADまたはWRITEバースト長には、バースト終了オプション付きの1、2、4、8ポジションまたはフルページが含まれます。
2.一般的な作業プロセス:
電源投入時にSDRAMを最初に初期化する初期化プロセスには次のものが含まれます:
(1)電源を投入し、クロックが安定するのを待ち、DQMが高く、CKEが高い。
(2)200µs遅延。この間、No-Operationコマンド以外のコマンドは許可されません。この期間、少なくとも1つの操作なしコマンドがあります。
(3)200us後にPRECHARGEコマンドを実行します。すべてのバンクをプリチャージして、すべてのバンクをアイドル状態にします。
(4)2つの自動リフレッシュ操作。
(5)コンフィギュレーションモードレジスタ。
初期化後、SDRAMはアイドル状態になり、SDRAMで他の操作(読み取り操作、書き込み操作、自動リフレッシュ操作など)を実行できます。自動リフレッシュ操作は前の記事で記述されており、64msごとに4096回リフレッシュされます。つまり、64msごとに4096行のメモリセルをリフレッシュして、データの損失を防ぎます。読み取り操作と書き込み操作の前にアクティブコマンド(ACTIVE)があり、決定されたバンクと行をアクティブにしてから読み取り操作と書き込み操作を実行する必要があります。読み取りと書き込みの後にプリチャージコマンドが必要です。
ピン機能紹介:
IS42S16400Fのチップピン図とピン説明の表を以下に示します。
A0-A11(入力):アドレス入力。ACTIVEコマンド(行アドレスA0-A11)およびREAD / WRITEコマンド(A0-A7、A10は自動プリチャージを定義)中にサンプルA0-A11をサンプリングして、対応するバンクのメモリアレイから場所を選択します。PRECHARGEコマンドの実行中に、A10がサンプリングされ、すべてのメモリバンクをプリチャージするか(A10がハイ)、BA0とBA1によって選択されたメモリバンクが(ロー)かが決定されます。アドレス入力は、LOAD MODE REGISTERコマンド中にオペコードも提供します。
DQ0-DQ15(入出力):I / Oピン。これらのピンを介したI / Oは、LDQMおよびUDQMピンを使用してバイト単位で制御できます。
BA0、BA1(入力):バンク選択アドレス。BA0およびBA1は、ACTIVE、READ、WRITE、またはPRECHARGEコマンドが適用されるバンクを定義します。
CLK(入力):CLKはデバイスのメインクロック入力です。CKEを除いて、デバイスのすべての入力はこのピンの立ち上がりエッジに同期しています。
CKE(入力):CKE入力は、CLK入力を有効にするかどうかを決定します。CLK信号の次の立ち上がりエッジは、CKEがハイのときに有効になり、ローのときに無効になります。CKEがLOWの場合、デバイスはパワーダウンモード、クロックサスペンドモード、またはセルフリフレッシュモードになります。CKEは非同期入力です。
CS(入力):CS入力は、デバイスでコマンド入力が有効かどうかを決定します。コマンド入力は、CSがLOWのときに有効になり、CSがHIGHのときに無効になります。CSがハイの場合、デバイスは以前の状態を維持します。
CAS(入力):CASとRASおよびWEは、デバイスコマンドを構成します。デバイスコマンドの詳細については、「コマンド真理値表」を参照してください(以下に説明します)。
RAS(入力):RAS、CAS、およびWEは一緒にデバイスコマンドを構成します。デバイスコマンドの詳細については、「コマンド真理値表」を参照してください(以下に説明します)。
WE(入力):WEは、RASおよびCASと共に、デバイスコマンドを形成します。デバイスコマンドの詳細については、「コマンド真理値表」を参照してください(以下に説明します)。
LDQM、UDQM(入力):LDQMとUDQMは、I / Oバッファーの下位バイトと上位バイトを制御します。読み取りモードでは、LDQMとUDQMが出力バッファーを制御します。LDQMまたはUDQMがLOWの場合、対応するバッファーバイトが有効になり、HIGHの場合は無効になります。LDQM / UDQMがハイの場合、出力は高インピーダンス状態になります。この機能は、従来のDRAMのOEに相当します。書き込みモードでは、LDQMとUDQMが入力バッファーを制御します。LDQMまたはUDQMがLOWの場合、対応するバッファバイトが有効になり、データをデバイスに書き込むことができます。LDQMまたはUDQMがハイの場合、入力データはシールドされ、デバイスに書き込むことができません。
VDDQ(pow):出力バッファ電源。
GNDQ(pow):出力バッファのグラウンド。
VDD(pow):デバイスの内部電源。
GND(pow):デバイスの内部グラウンド。
次の表は、コマンドとDQM操作の真理値表です。
CS / RAS / CAD / WEによって制御されるSDRAMの主なコマンドは、PRECHARGE、ACTIVE、AUTO_REFRESH、READ、WRITE、No-Operation、Mode Register Setです。