(再掲) Vivado の Block Design 上で欲しい大きさの BRAM を確保する

6 7月

WordPress 移行前の記事ですが、メモのため再掲。
Vivado 2014.4 あたりでの話。要するにパラメータ伝搬でやるんだよということ。

***

普通にインスタンスを作るのと違って、Block Design 上で Block Memory Generator IP core を Add IP すると、Re-Customize でサイズを好きにいじれません。常時自動確保。
PS – AXI BRAM Controller – BRAM なんかだとうまいこと確保してくれるんだけれども、PL側に BRAM Controller インターフェースを持った自作の IP を置いて、それに繋いでも思うように認識しない。アドレス範囲を指定するだけではだめか…

で、何を見ているかというと、IP Packager の Ports で Bus Interface を定義している、その Bus の Parameter。階層深え…。
バスを右クリックして編集ウィンドウを表示し、Parameter に “MEM_SIZE” を追加します。あとはここにバイト数を入れればOK。
ついでに “MEM_WIDTH” (ビット数) もね。

これで、BRAM 側に Width = MEM_WIDTH、Depth = MEM_SIZE / MEM_WIDTH が設定されるようになります。
Addressing の所にもちゃんと Range (Offset がなければ MEM_SIZE に等しい) を設定しましょう。

バスの Parameter にも Dependency を設定できるので、どちらも1つの Parameter から計算することにして、その大元を GUI でカスタマイズできるようにすると便利かもしれんですねー。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください