Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
B
b3exp
Manage
Activity
Members
Plan
Wiki
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
2021
b3exp
Wiki
FPGAMultiportRAM
Changes
Page history
New page
Templates
Clone repository
Update FPGAMultiportRAM
authored
3 years ago
by
Toru Koizumi
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
FPGAMultiportRAM.md
+2
-2
2 additions, 2 deletions
FPGAMultiportRAM.md
with
2 additions
and
2 deletions
FPGAMultiportRAM.md
View page @
564ad3aa
...
...
@@ -88,10 +88,10 @@ Vivadoは、このレプリケーションを自動で適用することで、re
もしかしたら、データメモリを構成するために、アドレスの下位2ビットが
`2'b00`
であるデータを保存するメモリ、
`2'b01`
用のメモリ、
`2'b10`
用のメモリ、
`2'b11`
用のメモリ、のようにメモリアドレス全体を4分割するような方法を使った人がいるかもしれません。
このようなものもバンク化の一種です。
バンク化で問題を解決できるのは、「
`2'b00`
用のメモリ、
`2'b01`
用のメモリ、
`2'b10`
用のメモリ、
`2'b11`
用のメモリのそれぞれ
に
高々一エントリ書き込む」といった場合です。
バンク化で問題を解決できるのは、「
`2'b00`
用のメモリ、
`2'b01`
用のメモリ、
`2'b10`
用のメモリ、
`2'b11`
用のメモリのそれぞれ
(各バンク)の
高々一エントリ
に
書き込む」といった場合です。
レジスタファイルの問題は、このようなバンク化により解決することはできません。
二命令のデスティネーションレジスタ番号が4と8であれば、どちらも
`2'b00`
用のメモリに書き込まなければいけません(バンク衝突と言います。そのような場合にストールするという戦略もあります)。
二命令のデスティネーションレジスタの組み合わせは任意の組み合わせが来うるため、どのようにメモリを分割しても
実現
が不可能な点に注意してください。
二命令のデスティネーションレジスタの組み合わせは任意の組み合わせが来うるため、どのようにメモリを分割しても
バンク衝突が常に発生しないことを保証すること
が不可能な点に注意してください。
なお、31分割すればできますが、それはフリップフロップと選択回路で実現しているのと同じことになります。
一般に、バンク化を適用する場合、多バンクになればなるほど、(1)一バンク当たりの要素数が少なくなりRAMの効率性が失われ、また(2)選択回路のオーバーヘッドも増大します。
...
...
This diff is collapsed.
Click to expand it.