首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更好地使用块RAM还是分布式RAM?

更好地使用块RAM还是分布式RAM?
EN

Stack Overflow用户
提问于 2017-02-26 06:09:48
回答 3查看 4.5K关注 0票数 1

现在我正在做一个项目,在这个项目中,我使用fpgas通过i2c将字节从主设备发送到从设备。现在在我的slave中,我想存储进来的数据,我计划有3-5个数组,每个数组都有从0到71的不同索引:

代码语言:javascript
复制
type array1 is array(0 to 49) of std_logic_vector(7 downto 0);

type array2 is array(0 to 23) of std_logic_vector(7 downto 0);

type array3 is array(0 to 71) of std_logic_vector(7 downto 0);

我一直在做一些研究,我知道xilinx有两种不同类型的ram,称为Block和Distributed,但分布式ram应该用于小型内存。现在我的问题是,如果我使用这些类型的数组,它是否足够小,可以使用分布式?或者直接使用Block会更好?

EN

回答 3

Stack Overflow用户

发布于 2017-02-26 20:26:47

这取决于您的设计和您正在使用的特定FPGA。合成工具通常可以为你决定什么是最好的。只是,如果您希望该工具能够为您做出决定,您必须以一种可以同时实现它的方式来实现它。例如,对于Xilinx FPGA,您可以参考The sysnthesis user guide,它在"RAM HDL Coding Techniques“中描述了正确的VHDL语法。即不可能同时访问多个条目(除了以双端口RAM方式)。并且您需要一定量的时钟周期用于数据存储和/或检索。

更多链接:

  • Block and distributed RAM's on Xilinx FPGA's
  • Block RAM or Distributed RAM
  • Inferring Block RAM vs. Distributed RAM in XST and Precision
  • Block vs Distributed RAM
票数 2
EN

Stack Overflow用户

发布于 2017-02-27 17:07:51

在你的例子中,这并不重要--分布式内存还是块内存。这可能是一个非常低速的设计,需要几百位内存。

票数 1
EN

Stack Overflow用户

发布于 2017-02-28 15:06:52

现在我的问题是,如果我使用这些类型的数组,它是否足够小,可以使用分布式?

这取决于您正在使用的特定FPGA以及您想要使用它的模式。例如,7系列设备将提供许多不同的访问配置(单、双、四),这些配置具有不同的内存配置(例如,单个片可以潜在地提供256×1位的单端口RAM)。

根据您提供的示例,您可能会将其中一个数组放入分布式RAM中,而其余的数组则需要多个BRAM或一个BRAM。值得注意的是,如果您混合使用DRAM/BRAM,则需要了解DRAM的读取语义(异步,而不是BRAM的同步),这是您需要考虑的。

如果你的设备上有DRAM,但没有人使用它们,我会优先使用它们,而不是DRAM(但这可能只是我自己的习惯)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42462162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档