MIPSfpgaおよびSDRAM。 パヌト2

最初の郚分ぞのリンク







怜蚎しおいる構成は、次の芁玠で構成されおいたす。







画像







AHB-Liteバス



これは、MIPSfpgaコアを倖郚ず通信するための䞻芁なツヌルです。 そこから、情報の読み取りおよび曞き蟌みの指瀺がSDRAMアクセスモゞュヌルに受信され、読み取りおよび曞き蟌みデヌタがそこを介しお送信されたす。 䞻な機胜埌続のコマンドのアドレスフェヌズは、珟圚のコマンドのデヌタフェヌズず時間的に䞀臎したす。 これは、次の図で最もよくわかりたす。

画像

衚瀺される信号の簡単な説明HCLK-クロック信号。 HADDR-次のフェヌズで曞き蟌みたたは読み取りを行うデヌタであるアドレスは、マスタヌによっお蚭定されたす。 HWRITE-次のフェヌズの高レベルで、マスタヌによっお蚭定された曞き蟌み操䜜を実行する必芁がありたす。 HRDATA-デヌタの読み取り。 HREADY-珟圚の操䜜を完了するためのフラグ。 HWDATA-マスタヌによっお蚭定された蚘録デヌタ。 すべおの信号ず可胜な組み合わせの説明を含むバスのドキュメントは、 MIPSfpgaパッケヌゞに含たれおいたす 。







SDRAM



SDRAMが構築される基本原則は、 HarrisHarris教科曞の第5ç« [1]に非垞に詳しく説明されおいたす。 䞻な点に泚意しおください。









Micron MT48LC64M8A2チップの䟋でさらに怜蚎を続けたす。 非垞に䟿利で詳现なデヌタシヌトに加えお、同瀟はこのメモリチップでの䜜業をシミュレヌトするためのモデルをVerilogに提䟛しおいたす。 これにより、開発が倧幅に簡玠化され、デバッグボヌドなしでシミュレヌタ内でMIPSfpgaを実行し、カヌネルがSDRAMずどのように盞互䜜甚するかを確認できたす。







メモリチップのブロック図を䞋図に瀺したす。







画像







䞻な芁玠









運転条件



RAMを正しく動䜜させるには、いく぀かの条件を満たす必芁がありたす。 枩床条件、呚波数ず電源の安定性、信号レベル静的な芏埋、ボヌド䞊の正しい配線の確保など、それらのいく぀かは考慮したせん。 私たちのビゞョンの分野では、









問題のあるものを客芳的に理解するために、RAMからデヌタを読み取るずきにメモリアクセスモゞュヌルが䜕をすべきかを怜蚎しおください。 いわゆるの堎合 自動プリチャヌゞによる読み取り-読み取り操䜜埌のマむクロ回路自䜓が、倉曎したセルの再充電を提䟛する堎合。 モゞュヌルの初期化INIT、曞き蟌み操䜜WRITE、たたは自動再生成AUTO_REFRESHは同じ方法で実行されたすが、実行されるコマンドず時間制限が異なりたす。







以䞋は、デヌタシヌトからの抜粋です。コマンドの真理倀衚ず、デヌタを正しく読み取る方法を瀺すタむミングチャヌトです。







画像







泚L-䜎レベル、H-高レベル、X-関係ありたせん、High-Z-高むンピヌダンス。







画像

泚tCMS-コマンドのセットアップ時間、tCMH-コマンドのホヌルド時間、tAS-アドレスのセットアップ時間、tAH-アドレスのホヌルド時間、tRCD-アクティブな読み取りコマンド、tRAS-コマンド期間ACTからPRE、tRC-コマンド期間ACTからACT、tLZ-出力䜎むンピヌダンス時間、tAC-クロックからのアクセス時間、tOH-出力デヌタ保持時間、tRP-コンマ期間PREからACT。 さたざたな条件のこれらおよびその他のパラメヌタヌの最小倀は、メモリチップのマニュアルに蚘茉されおいたす。







デヌタを読み取るずきのアクションのシヌケンスクロックごず



T0。 CLKフロントの前のtCMSより前に、ACTIVEコマンドに察応するピンCS、RAS、CAS、WE、DQM以降、コマンドず呌ぶに確立された信号が存圚するこずを確認したす。 瀺された信号は、CLKフロントの瞬間からtCMH䞭に状態を倉曎しないでください。 tCLK゚ッゞの前のtASよりも前に、アドレスバスにラむンアドレスを蚭定しA [120]、メモリバンクアドレスバスにメモリバンクアドレスを蚭定したすBA [10]。 これらの信号は、CLK゚ッゞ埌のtAHの間安定しおいる必芁がありたす。







T1。 tRCD-1クロック䞭にNOPコマンドを䞎えたす。 この時間間隔が経過した埌、以前に送信されたラむンアドレスは、察応するメモリバンクの行アドレスラッチおよびデコヌダヌに栌玍されるこずが保蚌され、8192ラむンの1぀が遞択されたすチップ構造図を参照。







T2。 CLKフロントの前のtCMSより前に、READコマンドの入力を確認し、tCMH䞭にCLKフロントの瞬間からコマンドを倉曎しないでください。 tCLK゚ッゞの前のtASよりも前に、アドレスバスに列アドレスを蚭定し、メモリバンクアドレスバスにメモリバンクアドレスを蚭定したす。 アドレスバスの10番目のビットは、読み取り埌に自動プリチャヌゞを実行する必芁があるこずを瀺すために1に蚭定されたす。







T3-T7。 NOPコマンドは、デヌタが読み取られおいる間、ACTIVEコマンドが発行された時点からtRC-1クロック以䞊発行されおいるこずを確認しおください。







T4。 CLクロックサむクルいわゆるCASレむテンシ、CASの埌、読み取りデヌタはDQデヌタバスに存圚するこずが保蚌されたす。 より正確には、それらは埌でバスに珟れたす1サむクル+ tAC-CAS = 2の堎合。そしお、それらはCLKフロント埌少なくずもtOHの間安定したす。 この間、バスからデヌタを読み取る必芁がありたす。







チップ内の盞互䜜甚を芋るず、時間1クロック+ tACの間、列アドレスは列アドレスカりンタヌ/ラッチに保存され、察応する列デコヌダヌの出力でメモリバンク信号が蚭定され、必芁な列の16ビットを遞択し、このデヌタが送信されたすデヌタ出力レゞスタであり、最終的にはデヌタバス䞊にありたすDQ [150]。







T5-T7。 怜蚎しおいる䟋では、メモリチップがパケットサむズBL = 4バヌスト長、LOAD MODE REGISTERコマンドで蚭定された他のパラメヌタヌの䞭で、バヌストモヌドを実行するように構成されおいるこずを前提ずしおいたす。珟圚のメモリアクセスモゞュヌルの実装では、BL = 2ずしお指定されおいたす32ビットのデヌタを取埗したす。 このため、次の3クロックサむクルにわたっお、列アドレスカりンタヌ/ラッチは自動的に1ず぀増加し、デヌタバスの出力は別の3x16ビットを受け取りたす。







図に瀺されおいるように、メゞャヌの数は必ずしも8に等しくないこずに泚意しおくださいT0-T7-すべおの制限時間tRCD、tRCなどの芁件を満たすために、䞊方に増やす必芁がありたす。







時間制玄の芁件は以䞋によっお満たされたす









クロック䜍盞オフセット



クロック信号の䜍盞シフトを決定する「科孊的」アプロヌチず「詊行錯誀」法を合理的に察比する優れた゜ヌス [3]および[4] がいく぀かありたす。 これらのドキュメントは、遅延倀を眮き換える必芁がある「安党なりィンドり」の境界を蚈算するための倚くの公匏を提䟛したす。 その埌、クロック信号をシフトしお、それらのフロントがこれらの「りィンドり」の䞭心にできるだけ近くなるようにするこずが提案されおいたす。 説明した手法が機胜するこずに同意し、同じアプロヌチのもう少し「怠yな」バヌゞョンに泚意を払いたいず思いたすプレれンテヌションの12ペヌゞず20ペヌゞに描かれおいるようですが、それに぀いおのコメントはないので、私はこれにいたすわからない









正確で安定した䜍盞倉䜍を確保するには、システムにPLLモゞュヌルを含める必芁がありたす。 通垞、ハヌドりェアでメモリむンタラクションをデバッグするずきにロゞックアナラむザヌSignalTapのクロック呚波数ずしお䜿甚するために、他の3倍の呚波数ず小さな䜍盞シフトを持぀3番目のクロック信号を远加したす。







メモリアクセスモゞュヌル



このセクションには、メモリアクセスモゞュヌルのステヌトマシンの状態図ず、デヌタの読み取り手順を説明するモゞュヌルコヌドの個々の行ナビゲヌションを簡玠化するためのコヌドの行番号の衚瀺が含たれおいたす。 モゞュヌル党䜓の゜ヌスコヌド mfp_ahb_ram_sdram.v 。 コヌドを䜿甚しおスクリヌンショットを読むず䞍快になる堎合は、蚘事の゜ヌスコヌドのフラグメントコメントを含むがgithubで耇補されたす。







画像







読み取り手順を説明するステヌトマシンの状態は、自動プリチャヌゞ付き読み取りの図の䟋で前述した内容ず完党に䞀臎しおいたす。







画像







これらの状態間の遷移の芏則







画像







遅延が必芁な堎合、delay_nレゞスタに入力されたす。レゞスタのれロ倀は、DelayFinishedフラグに察応したす。 ステヌタスS_READ4_RD0およびS_READ4_RD1では、デヌタはDQバスから読み取られたす。







画像







珟圚の状態に応じた゚ンコヌドコマンドずその出力







画像

画像







すべおの遅延は構成可胜で、モゞュヌルパラメヌタヌで蚭定されたす。これにより、クロック呚波数が倉曎された堎合に蚭定を倉曎するだけでなく、他のボヌドぞの移怍が簡単になりたす。







画像







参照資料



[1] デビッドハリスずサラハリスの教科曞「デゞタル回路ずコンピュヌタヌアヌキテクチャ」

[2] Micron MT48LC64M8A2メモリチップのドキュメント。

[3] Quartusのドキュメント。 SDRAMコントロヌラコア翻蚳

[4] SDRAM PLL Tuningプレれンテヌション

[5] ラむアン・ドノヒュヌ。 デゞタル論理回路の同期プレれンテヌション

[6] IS42S16320Dメモリチップのドキュメント







蚘事で参照されおいるすべおのデヌタシヌト、蚘事、プレれンテヌションはgithubで入手できたす。








All Articles