在ASIC设计中,我们使用FIFO或者RAM的时候经常会用到校验位,例如奇偶校验或者ECC(海明码)校验,当然,也有可能不使用任何校验位。那么我们需要一个深度为32,数据位宽为119bit的ram(cfg_32x119_ram_wrapper),那么实际底层的ram尺寸到底是多少呢?就是32x119 吗?大概率不是。
1.一个ram wrapper可能是拼接而成的
RAM的位宽和深度不是任意的,是根据设计人员的需求,然后由工具产生相应的ram。我们需要的是32x119的ram,实际分配给设计人员的可能是两个32x64的ram,深度和宽度都可能存在冗余。Ram的产生通常有两种方式,由设计人员或者中端人员提供ram信息列表。至少包含如下信息:Memory生成工具会根据实际需要的位宽,深度,读写时钟频率才进行决策,产生相应的Memory。
RAM_NAME | RAM_TYPE | DEPTH | WIDTH | ECC/PARITY | Wclk_freq | Rdclk_req |
afifo_16x72_wrapper | 1r1w | 16 | 72 | 1 | 1200 | 1000 |
一颗大的ram可能是有多个小的ram拼接起来的。在布局布线时,多个小的方形的ram大概率会比长条形状的ram更容易摆放(不绝对)。