verilog - 为什么 RTL 设计中 Ram 或 FIFO 的深度总是地址宽度的 2 倍?
问题描述
我看到了很多 ram 和 FIFO 设计的例子,内存深度总是地址宽度的 2 倍:
parameter addr_width=4;
parameter ram_depth=1<< addr_width;
为什么?如果地址的宽度等于 4,那么深度应该有 16 种可能性吧?为什么使用 2*4?提前致谢。
解决方案
我认为您1<<addr_width
对addr_width<<1
. 结果大相径庭。
1<<addr_width
实际上是 2**addr_width。(或 2^addr_width 您喜欢的任何表示法)。
推荐阅读
- html - 可拖动的 div 变得模糊取决于大小
- html - 如何使用引导程序将卡片右侧的内容定位到图像下方?
- javascript - 切换菜单问题
- python - 在scrapy csv文件中保留前导零
- haskell - 是什么导致我的程序只打印括号?
- tensorflow - 为什么 tensorflow repos 中使用了很多 tensorflow.python.xx API
- assembly - 在汇编中连接两个字符串
- c++ - 将元素分配给映射值时的C ++错误访问
- javascript - 如何从选择表单中获取 data-img-src 的实时预览?
- reactjs - 如何在反应中使用材料表库将所有列指定为可排序