ComProc MCUのIPL
やりたいこと
フラッシュメモリにユーザープログラムを格納し、IPLから呼び出して実行
2024/03/21時点の設計
readmemhで、RAMの初期値としてIPLを配置
IPLを更新するときは論理合成し直す
今まではSDPB(Semi Dual Port BRAM)プリミティブを使っていたが、レジスタ配列として作り推論する方式に変える
FPGA内蔵のフラッシュメモリにIPLが扱うプログラムを配置
Tang Nano 9KのFPGA(GW1NR-9)には608Kビットのフラッシュメモリが搭載されている
UG295 User Flash
IPLがフラッシュメモリからファイルを探してRAMへ展開
table:メモリマップ
アドレス範囲 バイト数 用途
0x000 - 0x0FF 256 周辺機能(GPIO、タイマー、UART、ADCなど)
0x100 - 0x2FF 512 データメモリ
0x300 - 0x7FF 1280 プログラムメモリ(IPL用)
0x800 - 0xFFF 2048 プログラムメモリ(ユーザプログラム用)
ユーザプログラム用の領域が2KiBは小さいが、これを拡大する施策は別にやる予定
16ビットをフル活用できる仕組みを導入することによって解決する予定