赛灵思
直播中

李奂善

7年用户 198经验值
私信 关注
[问答]

如何使用Xilinx模板创建一个通用的True Dual端口ram?

嗨,
我正在使用Xilinx模板创建一个通用的True Dual端口ram。
目标是在每个设计中使用此RTL,以便在切换FPGA系列时简化器件对器件的可靠性。
从V5到K7。
我修改了tempelate以允许用户使用来自核心的注册o / p的选项。
在实例化这个RTL之后,FPGA编辑器和其他报告确实显示它在我的情况下使用了blockram(RAMB26E1),但它并没有耗尽RAM的所有32位,而是在内部将它分配到许多不同的RAM中。
我确实认为每个RAM的RAM深度是固定的,所以我认为它会根据我的要求增加RAM的深度,而不是我看到它在比特宽度方面斩断它,例如
每个RAM 4位数据。
附加RTL文件以保持帖子清洁。
这是我实例化的RTL:
TDPRAM.v 2 KB

回帖(4)

杨玲

2020-7-23 10:31:50
这对我来说完全合情合理。
你得到的RAM比你想象的还要多吗?
通常,RAM将被安排成使得如果可能则不需要输出多路复用器。
因此,对于32K字(任何大小),您将获得从32Kx1原语构建的RAM。
现在,如果使用1K x 32原语,则需要在RAM输出(在结构中)使用32:1回读多路复用器,这会降低读取速率。
- Gabor
在原帖中查看解决方案
举报

杨玲

2020-7-23 10:49:21
这对我来说完全合情合理。
你得到的RAM比你想象的还要多吗?
通常,RAM将被安排成使得如果可能则不需要输出多路复用器。
因此,对于32K字(任何大小),您将获得从32Kx1原语构建的RAM。
现在,如果使用1K x 32原语,则需要在RAM输出(在结构中)使用32:1回读多路复用器,这会降低读取速率。
- Gabor
举报

谢微微

2020-7-23 10:55:03
嗨Gabor,
感谢您的回复。
是的,我得到的RAM比我预期的多。
它的每个RAM为8Kx4,所以使其为32位宽,它实例化了8个这样的RAM。
所以,如果我理解正确,这是更好的推理和利用?
好吧,我正在学习新事物,我一直认为反过来会更好。
我还尝试了1K x 32,它只在FPGA中实例化了一个RAMB36E1。
我想知道实际BRAM内核中的CASCADE线路将在哪里用于FPGA中的RAM模块?
谢谢
举报

杨玲

2020-7-23 11:09:23
“是的,我得到的内存超出了我的预期。
它的每个RAM为8Kx4,因此它使其为32位宽,它实例化了8个这样的RAM。“
好吧,每个RAM理论上是36 Kbits,但除非你可以在x9,x18,x36或x72模式下使用它,它实际上只能用作32 Kbits。
如果你想要8K x 32那8块RAM就可以了。
“我还尝试了1K x 32,它只在FPGA中实例化了一个RAMB36E1。”
再一次,毫不奇怪。
在这种情况下,你也可以做到1K乘36,最后得到一个RAM。
“我想知道实际BRAM核心中的CASCADE线路将用于FPGA中的RAM模块?”
其他人需要帮助你解决这个问题。
级联功能是7系列的新功能,我还没有碰到它们。
然而,很难想象他们如何在没有读出多路复用器的情况下扩展深度。
- Gabor
举报

更多回帖

发帖
×
20
完善资料,
赚取积分