... | ... | @@ -108,7 +108,7 @@ Vivadoは、このレプリケーションを自動で適用することで、re |
|
|
「どのバンクに最新のデータが入っているか」を管理する表(“生きている”値がどれかを記録する表、Live Value Table (LVT))を作る必要があるということです。
|
|
|
|
|
|
残念ながら、このLVTもまた、元のメモリと同じwrite port 数を要求するので、LVTを使う方法は本質的に問題を解決したことにはなりません。
|
|
|
ただし、LVTは非常に幅が狭い(レジスタファイルは32bit×31エントリに対して、LVTはwrite portspが2の時1bit×31エントリになります)ので、これをフリップフロップで作ることに妥協してしまえば、残りのデータ本体保存部分は分散RAMで効率的に作成できます。
|
|
|
ただし、LVTは非常に幅が狭い(レジスタファイルは32bit×31エントリに対して、LVTはwrite port数が2の時1bit×31エントリになります)ので、これをフリップフロップで作ることに妥協してしまえば、残りのデータ本体保存部分は分散RAMで効率的に作成できます。
|
|
|
|
|
|
LVTを使った場合、write port数をw、read port数をrとして、wr倍のメモリ容量が必要になります。
|
|
|
なぜなら、本体のデータを保存するためには、(write port数個だけバンクを用意)×(read port数個だけレプリケーション)が必要だからです。
|
... | ... | |