●2025.10.26 最終更新
雑誌記事(12月号 ... 第6回)では割愛したXilinx (現AMD)のFPGA開発ツール ISE 14.7 を使って,FPGA内蔵メモリ(ブロック・メモリ)をフォントROMや信号ラベルROM用IP化する方法について解説します.
ブロック・メモリを用いたIP-ROM化にあたり,ROM初期化用coeファイル(フォント用データ・ファイルや信号ラベル用データ・ファイル)は用意済みとします(生成方法は雑誌記事を参照してください).
●ISEにおける作業フロー
大まかなフローは次のとおりです.ただし,プロジェクト本体の作成(作業フォルダ設定,デバイス指定,ソースコード登録など)は終了しているとし,その後の手順になります.
①新しいソース・コードの追加作業開始
②ソース・タイプの選択(IP)
③IPの機能選択(Block Memory Generator)
④メモリ・タイプの選択(single port ROM)
⑤メモリのサイズ指定(語長,語数)
⑥メモリの初期化ファイルの指定(.coe)
⑦IP生成実行
では,順番に実際のウィンドウを示しながら説明します(注1).
注1 ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー
IP生成ツールである CORE Generator を単独で起動してIPライブラリを作成し,プロジェクトでインポートする方法もある.
フォントROMは同じデバイスで使用する場合,こちらの方法が一手間省ける.
ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー
⓪プロジェクト作成直後の様子
ここでは,次の事項を前提条件として,ISEを使用したFPGA内蔵メモリをROMとしてIP化して使用する手順を説明します.
・プロジェクトの作成からコンフィグレーション用ファイルの生成までの一通りの操作は理解している
・ IP−ROMの初期化用データ(coeファイル)は用意済み(雑誌記事にて解説)
<図ISE1>にプロジェクト作成直後のISE Project Navigatorの様子を示します.設計階層の部分(Hierarcy)でU3 font_ROM のアイコンが [?] マークになっています.これはこの時点で実体が無いことを示しています.これから作成するので当然です.
<図ISE1>
①新しいソース・コードの追加作業開始
メニューより(<図ISE2>)
Project → New Source...を選択
New Source Wizard ウィンドウを起動
<図ISE2>
②ソース・タイプの選択
Select Source Type にて(<図ISE3>)
IP(CORE Generator & Architecture Wizard) を選択
File Name 欄にモジュール名(font_ROMまたはsig_lbl_ROM)を入力
Location欄にフォルダ名を入力(デフォルトのままでよい)
サブ・フォルダ ipcore_dir 追加になっている
Add to project チェック・ボックスをオン
Next ボタンをクリック
<図ISE3>
③IPの機能選択
Select IP にて(<図ISE4>)
[-] Memories & Storage Elements
[-] RAMs & ROMs
[-] Block Memory Generator を選択
Next ボタンをクリック
Summary にて設定を確認後 Finish ボタンをクリック(<図ISE5>)
Block Memory Generator が起動する
④メモリ・タイプの選択(以降 Block Memory Generator にて)
Page 1 設定項目なし(<図ISE6>)
Page 2 Memory Type 欄で Single Port ROM を選択(<図ISE7>)
⑤メモリのサイズ指定
Page 3 Memory Size 欄において(<図ISE8>)
Read Width 欄にビット幅(8または64)を入力
Read Depth 欄にワード数(1024または256)を入力
<図ISE8>
⑥メモリの初期化ファイルの指定
Page 4 Memory Initialization エリアにて(<図ISE9>)
Load Init File のチェック・ボックスをオン
Coe File 欄にファイル名(Bwowseボタンで選択するとよい)を入力
Fill Remaining Memory Locations のチェック・ボックスをオン
Remaining Memory Locations(Hex) 欄に 0 を入力
Page 4 Optional Output registers エリアはデフォルト(指定なし)のまま
<図ISE9>
⑦IP生成実行
Page 5 設定項目はデフォルトのまま(Output Reset Option)(<図ISE10>)
Page 6 設定項目はデフォルトのまま
Informtionエリアを確認後 Generate ボタンをクリック(<図ISE11>)
IP生成が始まる(終了まで少々時間がかかる)
IPの生成が完了すると ISE Project Navigator ウィンドウに戻ります(<図ISE12>).ここで,Hierarcy中の U3 font_ROM のアイコンを見ると [電灯] に変化していことがわかります.また,作業フォルダ上にIPのフォルダ ipcore_dir が追加されています(<図ISE13>).
さらに ipcore_dir 下のフォルダを確認すると,IP名に拡張子 .veo が付いたファイルがあります(<図ISE14>).
<図ISE14>
このファイル(font_ROM.veo)<リスト ISE1>には,Verilog用のインスタンシェーション・テンプレートが記載されています.これでIP側の信号名や信号並びを確認することができます.
<リスト ISE1>
font_ROM.veoファイルにおける
font_ROMモジュールの
インスタンシェーション記述
テンプレート
(抜粋)
//--------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
font_ROM your_instance_name (
.clka(clka), // input clka
.addra(addra), // input [9 : 0] addra
.douta(douta) // output [7 : 0] douta
);
// INST_TAG_END ------ End INSTANTIATION Template ---------
■関連情報
・特になし