FC2カウンター FPGAの部屋 Verilog2001版DDR SDRAMコントローラーのインプリメント2
FC2ブログ

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

FPGAの部屋

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

Verilog2001版DDR SDRAMコントローラーのインプリメント2

Verilog2001版DDR SDRAMコントローラーのインプリメントの続きです。
ProcessesペインのSynthesizeを右クリックして Properties... を選択します。
DDR_Verilog_15_070215.png

Process Propertiesダイアログが出るので、Synthesis Options を選択。ダイアログの Verilog Include Directories の右端の "..." ボタンをクリックすると”フォルダの参照”ダイアログが出るので、"DDRtest_verilog/DDRtest_synth" を選択する。その後、”フォルダの参照”ダイアログの OK ボタンをクリック。
DDR_Verilog_16_070215.png

Process Propertiesダイアログに戻るので Verilog Include Directories にパスが入ってることを確認して OK ボタンをクリック。これで .vh のインクルードファイルのパスを指定する。
DDR_Verilog_17_070215.png

これで設定は終わったので、Processesペインの Generate Programming File をダブルクリックして、プログラミングファイルを作る。
DDR_Verilog_18_070215.png

全部チェックがついてインプリメント、プログラミングファイルが出来たら今度は Configure Deviceをダブルクリックして iMPACT でFPGAをコンフィギュレーションしてみよう。
DDR_Verilog_19_070215.png


これから先は特に説明しないので、スパルタン3スタータキットでのISE8.1iのチュートリアル7(コンフィギュレーション編)などを見ながらやってみよう。Spartan3E Starter Kitでは3つ出てくるが最初の xc3s500e にだけDDRtest.bitを読み込ませて、右クリックで Program を選択してコンフィギュレーションしてみよう。
うまくコンフィギュレーションできれば、下の写真のように表示される。(といっても、LCDの上下行の 931B が表示されているところの初期値は 0000 です)
DDR_CONT_Verilog_060204.jpg


LCDの上の最初の4桁の数字 (931B) をロータリーエンコーダで入力できる。その次の3桁 (13C) のキャラクタの最初の'1'は値を変更する桁を表す。'1'だとLCDの上の最初の4桁の数字 (931B) のうちの2桁目の'1'のところを表す。'0'だと1桁目 (B)、'3'だと4桁目 (9) を表す。
(13C) のうちの'3'はステータスを表す。つぎの'C'はChangeモードを表しているChangeモードでは、ロータリーエンコーダを回すと、その桁の値が増減する。(チャッタリングがあるので、うまくアップダウンしないことがあるかもしれない)。ロータリーエンコーダのつまみを一回クリックすると'C'で表されるChangeモードから、'M'と表示される。Moveモードに移行する。これでは値を変更できる桁が、ロータリーエンコーダをまわすと移動する。ロータリーエンコーダをもう一度押すとChangeモードに移行する。
上の最初の4桁の数字 (931B) を設定する時には、Moveモードで変更する桁まで移動してから、Changeモードにして値を変更する。
ロータリーエンコーダの右のボタンを押すと、値を設定した最初の4桁の数字 (931B) を DDR SDRAMコントローラーでDDR SDRAMに書き込む。ロータリーエンコーダの左ボタンを押すとDDR SDRAMから読み出して、下の行の4桁の数字で表示する。
上の写真は 931B をDDR SDRAMへ書き込んで、DDR SDRAMから読み出したところ 931B が読めたということだ。

なお、現在のところISE8.2iでインプリメントするとSpartan3E Starter Kitで正常に動作するようだが、ISE9.1iでインプリメントすると動作しないので、注意してください。

2007/06/24: 追記
ISE9.1iでもインプリメントして動作しました。詳しくはVerilog2001版DDR SDRAMコントローラーのISE9.1iSP1によるインプリメントをご覧ください。
  1. 2007年02月16日 21:11 |
  2. Spartan3E Starter Kit
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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