Skip to content

Verilog module for flexible instantiation of ROM/RAM of arbitrary depth and bit width. Automatically reduce BRAM usage through depth division, bit width division, and bit width folding.

Notifications You must be signed in to change notification settings

Reconfigurable-Computing/flex_BRAM_FPGA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

Flex BRAM for FPGA

可灵活例化任意深度、位宽的 ROM/RAM 的 Verilog 模块。自动通过深度划分、位宽划分、窄位宽合并技术尽可能减少 BRAM 资源的占用量。

(work-in-progress)

  • 双端口 ROM : ROM_flex.sv
    • 参数化配置初始值
    • 深度划分:例如对于深度=10000 ,划分为 9*1024+784 , 避免综合器使用深度=16384而造成浪费。
    • 位宽划分:例如对于位宽=37 ,划分为 36+1 ,位宽=36会综合成 Xilinx BRAM36 ,位宽=1可能会综合成 reg ,从而节省 BRAM。
    • 位宽折叠:例如对于 2x4096 的 ROM,本来可能综合成 4 个 BRAM18 ,折叠为 8x1024 后,只需占用 1 个 BRAM18
  • 双端口 RAM : RAM_flex.sv
    • 参数化配置初始值
    • 深度划分
    • 位宽划分
    • 位宽折叠
  • 完善文档

About

Verilog module for flexible instantiation of ROM/RAM of arbitrary depth and bit width. Automatically reduce BRAM usage through depth division, bit width division, and bit width folding.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published