k0b0's record.

Computer Engineering, Arts and Books

Quartus Prime のIP Catalogを使ってシングルポートRAM(同期書き込み、非同期読み出し)を生成してみる。@2019/06/14 追記

IP Catalogを使ってシングルポートRAM(同期書き込み、非同期読み出し)を生成してみる。

 FPGA(MAX10)でそこそこの容量のメモリを使いたいのだが、レジスタで構成すると、LEをかなり消費する。というわけで、IP Catalogで用意されている、シングルポートRAM(同期書き込み、同期読み出し)を生成してみる。

メニューバーの[Tools] -> [IP Catalog]を選択する。
[IP Catalog]の[On Chip Memory]から[RAM: 1-PORT]を選択する。
f:id:k0b0:20190605130354j:plain

生成するシングルポートRAMの名前と保存先を入力し、MegaWizardを立ち上げる。
(ここでは、名前を[ram1port_8]とし、生成するコードはVerilogHDLとした。)
注意:MegaWizardの画面表示が小さいと操作の途中でなぜかフリーズする。立ち上げてからまず、スクロールバーが消えるくらい画面を大きくするとフリーズせずスムーズに作業を進めることができる。
f:id:k0b0:20190605130427j:plain

データ幅、メモリ容量、メモリブロックタイプを指定する。
(ここでは、データ幅を8とし、メモリ容量を256、メモリブロックタイプをM9Kとした。)
f:id:k0b0:20190605130449j:plain

「Which ports should be registerd ?」の「'q' output port」のチェックマークを外す。
(チェックマークを外さない場合は同期書き込み・同期読み出しのシングルポートRAMを生成することとなる。)
f:id:k0b0:20190605130502j:plain

「Single Port Write During Read Option」を「New Data」に設定する。
f:id:k0b0:20190605130514j:plain

特に何も指定せず、「Next」を選択する。
f:id:k0b0:20190605131927j:plain

生成したいファイルにチェックマークをつけて「Finish」を選択する。
f:id:k0b0:20190605134118j:plain

「yes」を選択する。
(これで、シングルポートRAMの生成は完了。)
f:id:k0b0:20190605141520j:plain

参考サイト

www.lab3.kuis.kyoto-u.ac.jp