FC2カウンター FPGAの部屋 SP605のMCBの動作を確認する1(ISimでシミュレーション)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

SP605のMCBの動作を確認する1(ISimでシミュレーション)

SP605のMCBをISimでシミュレーションする1”の続き。続きなんだけど、MCBのシミュレーション時の動作を見るので、タイトルと記事のカテゴリーを変えた。

さて、このシミュレーションでは2回、DDR3 SDRAMのリセットがかかっているが、2度目のリセット後を見てみよう。Micron社のDDR3 SDRAMモデルは色々なメッセージを出してくれるので便利だ。そのうちの初期化部分のメッセージを下に示す。なお、Micron社のDDR3 SDRAMデータシートを参照のこと。

sim_tb_top.\MEM_INST3.u_mem_c3 .reset at time 5471251.0 ps WARNING: 200 us is required before RST_N goes inactive.
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task at time 5622501.0 ps WARNING: 500 us is required after RST_N goes inactive before CKE goes active.
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5755001.0 ps INFO: Load Mode 2
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5755001.0 ps INFO: Load Mode 2 CAS Write Latency = 5
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5755001.0 ps INFO: Load Mode 2 Auto Self Refresh = Enabled
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5755001.0 ps WARNING: Load Mode 2 Auto Self Refresh is not modeled
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5755001.0 ps INFO: Load Mode 2 Self Refresh Temperature = Normal
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5755001.0 ps INFO: Load Mode 2 Dynamic ODT = Disabled
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5765001.0 ps INFO: Load Mode 3
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5765001.0 ps INFO: Load Mode 3 MultiPurpose Register Select = Pre-defined pattern
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5765001.0 ps INFO: Load Mode 3 MultiPurpose Register Enable = Disabled
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5775001.0 ps INFO: Load Mode 1
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5775001.0 ps INFO: Load Mode 1 DLL Enable = Enabled
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5775001.0 ps INFO: Load Mode 1 Output Drive Strength = 40 Ohm
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5775001.0 ps INFO: Load Mode 1 ODT Rtt = 60 Ohm
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5775001.0 ps INFO: Load Mode 1 Additive Latency = 0
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5775001.0 ps INFO: Load Mode 1 Write Levelization = Disabled
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5775001.0 ps INFO: Load Mode 1 TDQS Enable = Disabled
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5775001.0 ps INFO: Load Mode 1 Qoff = Enabled
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5785001.0 ps INFO: Load Mode 0
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5785001.0 ps INFO: Load Mode 0 Burst Length = 8
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5785001.0 ps INFO: Load Mode 0 Burst Order = Sequential
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5785001.0 ps INFO: Load Mode 0 CAS Latency = 6
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5785001.0 ps INFO: Load Mode 0 DLL Reset = Reset DLL
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5785001.0 ps INFO: Load Mode 0 Write Recovery = 6
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5785001.0 ps INFO: Load Mode 0 Power Down Mode = DLL off
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5817501.0 ps INFO: ZQ long = 1
sim_tb_top.\MEM_INST3.u_mem_c3 .cmd_task: at time 5817501.0 ps INFO: Initialization Sequence is complete


”sim_tb_top.\MEM_INST3.u_mem_c3 .reset at time 5471251.0 ps WARNING: 200 us is required before RST_N goes inactive.”は、RST_NのLOWの時間が規格で必要とされる200usecよりも小さいと言っている。これは、シミュレーションの時のみ、見やすいように縮めているためかもしれない。シミュレーションでの測定値は、117.5nsec。
SP605_MIG_ISIm_6_100425.png

次に”WARNING: 500 us is required after RST_N goes inactive before CKE goes active.”はRST_Nが1になった跡で、CKEが1にするに500nsec必要だが、それを満たしていないと言ってる。シミュレーションでの測定値は、150nsec。
その後、132.5nsec後から、4つのMODE REGISTER SETコマンドと1つのZQ CALIBRATION LONGコマンドを発行している。
SP605_MIG_ISIm_7_100425.png

最初がMode Register 2(MR2), MR3, MR1(DLL Enable), MR0(DLL RESET) の順番でMRが書き込まれる。MRの番号はBank Addressの値で決まる。

SP605のMCBをISimでシミュレーションする1”の下に図に設定された内容を上のメッセージで確認することができる。”Output Drive Strength = 40 Ohm、ODT Rtt = 60 Ohm、Auto Self Refresh = Enabled、Self Refresh Temperature = Normal、Dynamic ODT = Disabled”。
SP605_MIG_10_100421.png

シミュレーションでは、特に遅延を合わせるためのトレーニング・シーケンスをしているような様子は見えない?これで大丈夫なのだろうか?もしかして、シミュレーションのときだけはトレーニング・シーケンスなしになるのだろうか?
  1. 2010年04月25日 07:35 |
  2. Virtex-6, Spartan-6
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/1445-8e90b68d
この記事にトラックバックする(FC2ブログユーザー)