今となっては、古いメモリー規格なんでしょうかねぇ
SDRAMのコントローラを FPGAで構築してみたいと思います。
今までNios2でも使用してきたDE1ボードをターゲットにして話すすめます。
と、言ってもいきなりボード上でデバッグするわけにも行かないので、
最初はシミュレータで記述したロジックがあってるかなーって確認しながら進めて行きたいと。。。
シミュレータは、ModelSIM AEとかでもいいんだろうけど、Veritakをなぜか所有しているのでこちらを使用していきます。
MegaWizerdで生成したPLLを使用するとVeritakのシミュレータがおかしな動き(時間単位がfsになっちゃう)になるので、
とりあえずPLLは使用しないことに。
今回は、とりあえず初期化の部分を記述してシミュレーションしてみた。
メインとなるステートマシーンの部分はたぶんこんな感じになるんだろうか??
case (r_main_status)
p_main_poweron_rst : begin
r_main_status <= p_main_200us_wait ;
end
p_main_200us_wait : begin
if (r_200us_end) begin
r_main_status <= p_main_pall ;
end
else begin
r_main_status <= p_main_200us_wait ;
end
end
p_main_pall : begin
r_main_status <= p_main_trp ;
end
p_main_trp : begin
if (r_trp_end) begin
r_main_status <= p_main_autoref8 ;
end
else begin
r_main_status <= p_main_trp ;
end
end
p_main_autoref8 : begin
if (r_autoref8_end) begin
r_main_status <= p_main_trc ;
end
else begin
r_main_status <= p_main_autoref8 ;
end
end
p_main_trc : begin
if (r_trc_end) begin
r_main_status <= p_main_mrs ;
end
else begin
r_main_status <= p_main_trc ;
end
end
p_main_mrs : begin
r_main_status <= p_main_tmrd ;
end
p_main_tmrd : begin
if (r_tmrd_end) begin
r_main_status <= p_main_idle ;
end
else begin
r_main_status <= p_main_tmrd ;
end
end
p_main_idle : begin
r_main_status <= p_main_idle ;
end
endcase
シミュレーションするとこんな感じになった。おおむね予定通り?
次回は、ライト・リードに挑戦??
では、今回はこの辺で。。。
最新の画像[もっと見る]
- スルメイカ 10年前
- スルメイカ 10年前
- スルメイカ 10年前
- 2014 リトルシニア 関東連盟夏季大会 3回戦 10年前
- 2014 リトルシニア 関東連盟夏季大会 3回戦 10年前
- 2014 リトルシニア 関東連盟夏季大会 3回戦 10年前
- 2014 リトルシニア 関東連盟夏季大会 3回戦 10年前
- 2014 リトルシニア 関東連盟夏季大会 3回戦 10年前
- 2014 リトルシニア 関東連盟夏季大会 3回戦 10年前
- 2014 リトルシニア 関東連盟夏季大会 3回戦 10年前