FPGAの部屋FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。キャラクタ・ディスプレイ・コントローラをNSLで書こう1(メモリの生成テスト)キャラクタ・ディスプレイ・コントローラをNSLで書きなおしてみようと思っている。キャラクタ・ディスプレイ・コントローラに関しては、”キャラクタ・ディスプレイ・コントローラの詳しい説明”と”キャラクタ・ディスプレイ・コントローラのまとめ”参照。使用したISEはISE12.4。最初にキャラクタ・ジェネレータROMやフレーム・バッファRAMをどうやって書こうか?を考えた。NSLでは、チュートリアルの”8.メモリ”にメモリの生成と初期化方法が書いてある。書いた場合にBlockRAMを使ってくれるかどうか?という不安がある。それではということで、実際にやってみた。チュートリアルに載っていたサンプルを少し加工させていただいて下に引用する。CoreでVerilogに落とす(Optimizeオプションをチェックしてある)。落としたVerilogファイルを下に示す。USER:*/多分これだと、BlockRAMには割り当てられないで、SLICEMに割り当てられると思う。Editorで見てみた。SLICEMが割り当てられている。選択されたSLICEMをダブルクリックして中身を見てみると、やはりRAMとして使用されていた。中にはっていないとBlockRAMにアサインされない。この場合は、やはり、Verilogのプリミティブ記述をInterface文で付けたほうが良さそうだ。いうことで一度諦めたんですが、もしかして、Readにregを設定して、それにメモリのデータを一度コピーして出力すればどうだろう?ということで、やってみました。それにフレーム・バッファRAMを想定すると、デュアルポートRAMになっているので、NSLファイルを書きなおしてみた。そのNSLソースを下に示す。CoreでVerilogに落とす(Optimizeオプションをチェックしてある)。落としたVerilogファイルを下に示す。Editorで見てみた。BlockRAMが使用されていた。これで、大丈夫かな?と思う。キャラクタ・ジェネレータROMも生成してみよう。(2011/01/30:追加)分散RAMのデュアルポートRAMのNSL記述について追加しておく。CoreでVerilogに落とす(Optimizeオプションをチェックしてある)。落としたVerilogファイルを下に示す。URLhttps://marsee101.blog.fc2.com/tb.php/1703-55c4ebe7この記事にトラックバックする(FC2ブログユーザー)プロフィールAuthor:marseeFPGAの部屋へようこそ!FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。WEBブログデザイナ。