完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨 - 正如其他地方所提到的,我正在移植自己,以及从Altera到Xilinx的设计。
这种设计有一些奇数尺寸的1R1W存储器(64 x 80,1024 x352)。 对于初学者,我只是用BRAM_SDP_MACRO替换了我的Altera参数化内存实例。 一个AE告诉我这不起作用,但它似乎有效,事实上,Block Memory Generator手册建议如果你使用发生器(获得特定尺寸),你可以选择你想要的任何尺寸,它将构建它 出于多重记忆。 好吧,它出现了 - 我认为Vivado正在做同样的事情,实例化BRAM_SDP_MACRO。 至少,综合不抱怨。 但我正在摸不着头脑。 在BRAM_SDP_MACRO的顶部是一个表格,指定rdaddr,wraddr和wren的宽度,表明最大宽度为72,如果内存更宽,我确实得到关于我选择的宽度的警告。 那么 - 这应该如何运作? 我可以使用Vivado来避免为每个记忆生成特定的宏吗? 这对我来说很重要,因为我的设计是参数化的。 谢谢! / J |
|
相关推荐
7个回答
|
|
jwinston00写道:
嗨 - 正如其他地方所提到的,我正在移植自己,以及从Altera到Xilinx的设计。 这种设计有一些奇数尺寸的1R1W存储器(64 x 80,1024 x352)。 对于初学者,我只是用BRAM_SDP_MACRO替换了我的Altera参数化内存实例。 一个AE告诉我这不起作用,但它似乎有效,事实上,Block Memory Generator手册建议如果你使用发生器(获得特定尺寸),你可以选择你想要的任何尺寸,它将构建它 出于多重记忆。 好吧,它出现了 - 我认为Vivado正在做同样的事情,实例化BRAM_SDP_MACRO。 至少,综合不抱怨。 但我正在摸不着头脑。 在BRAM_SDP_MACRO的顶部是一个表格,指定rdaddr,wraddr和wren的宽度,表明最大宽度为72,如果内存更宽,我确实得到关于我选择的宽度的警告。 那么 - 这应该如何运作? 我可以使用Vivado来避免为每个记忆生成特定的宏吗? 这对我来说很重要,因为我的设计是参数化的。 谢谢! / J 因为你正在改变架构,所以你必须重写很多代码,自己帮忙并开始编写推断内存的HDL。 参数化就像设置泛型一样简单。 ----------------------------是的,我这样做是为了谋生。 |
|
|
|
嗨 - 谢谢贝斯曼,但我不清楚为什么我需要重新编写 - 我的代码。
我有设计综合和实施。 问题在于 - 整个设计从上到下进行参数化,因此我可以使用参数化存储器非常重要。 Altera提供类似于BRAM_SDP_MACRO的通用RTL文件,但您可以将其设置为任意大小,并自动将记忆拼接在一起以获得您所要求的内容。 所以我开始简单地为我以前的参数化通用Altera内存宏放入BRAM_SDP_MACRO。 我期望得到很多错误,但它似乎工作。 问题是,我无法确定,因为我无法找到类似于其层次结构浏览器的报告或屏幕,详细说明了该工具的构建内容。 我可以仔细阅读左上角主窗口中的层次结构,但是给出了很少的详细信息。 设计合成和实现没有错误或意外警告,但我真的不知道它是什么构建的。 要么它正在工作,要么工具在报告严重错误时非常弱。 还有一个缺点是BRAM_SDP_MACRO在它的模块顶部有一些关于地址宽度,写入宽度等的有趣要求,并且它们没有指定你为超大设置做什么。 我猜了一下,我没有收到错误,但我很不确定它是否有效。 关于如何确定Vivado真正做什么的任何建议? 谢谢!/ J |
|
|
|
jwinston00写道:
嗨 - 谢谢贝斯曼,但我不清楚为什么我需要重新编写 - 我的代码。 我有设计综合和实施。 因为很明显,你已经使用了Core Generator或一些这样的工具来生成BRAM宏。 我说的是:这使得事情变得比必要的更复杂。 还有一个缺点是BRAM_SDP_MACRO在它的模块顶部有一些关于地址宽度,写入宽度等的有趣要求,并且它们没有指定你为超大设置做什么。 我猜了一下,我没有收到错误,但我很不确定它是否有效。 有趣的要求可能基于BRAM的实际大小。 考虑到36k x 1 BRAM也可以用作18k x 2,9k x 4,4k x 9,2k x 18和1k x 36。 所以你可以看到,通过并行BRAM,你可以得到基本上任意宽度的BRAMS,最大深度为36k字。 (当然,必须考虑地址总线加载以及所有这些,但我的猜测是在7系列设备中,合理的时钟频率不会出现太多问题。) 现在就是问题:如果你需要更深入的话怎么办? 出于说明的目的,假设您需要64k x 1内存设备。 所以你需要级联两个32k x 1设备(暂时忘记奇偶校验)。 这需要一个16位的内存地址。 然后选择MSb并对写入进行选通并选择读取。 读输出必须在较低内存和较高内存之间进行选择,因此它是多路复用器。 问题:多路复用器应该注册吗? 答:取决于操作要求:设计能否容忍延迟的额外时钟周期? 没有寄存器,设计是否足够快? 因此,工具现在必须确定如何将两个存储器块拼接在一起,并且可能在多路复用器之后为输出寄存器提供选项,并且在实例化它时基本上它都是魔术。 如果你自己编写代码,延迟的时间细节是显而易见的,因为它们就在代码中。 ----------------------------是的,我这样做是为了谋生。 |
|
|
|
(我不熟悉BRAM_SDP_MACRO,但......)
您可以从RTL代码推断出Block RAM; 您可以使用参数化宽度和深度的verilog内存(或VHDL中的等效内存),然后使用时钟进程推断RAM reg [WIDTH-1:0] ram [2 ** ADDR_WIDTH-1:0]; 永远@(posedge clka) if(wea)ram [addra] |
|
|
|
贝斯曼 - 我没有使用任何工具或发电机。
我查看了模板,发现了BRAM_SDP_MACRO.v,一个(有点)参数化的通用内存实例化。 我用它来代替Altera等价物。 我所遇到的问题是“有点”,因为模板文件本身描述了宽度/深度的限制,但是Vivado合成似乎神奇地违反了这些限制(或者,或者我的设计实际上搞砸了但是Vivado没有报告它, 即使通过实施 - 但是再一次,我似乎无法在任何地方找到“内存实例”报告......)。 我很欣赏其他评论,但是我已经这样做了几十年,甚至(必要)编写了我自己的Perl脚本来生成你描述的并行/串行内存结构。 为了回答你关于该工具应该做出什么选择的观点,很明显,那些最能满足最小区域时序约束的那些(不要笑,Quartus就是这样做的)。 如果我自己编写代码,我可能做出错误的选择,如果我改变任何控制参数,事情就会失败。 我不得不以这种方式进行设计(ASIC存储器不喜欢参数,即使使用Perl也不是很漂亮。 Avrum - 我试过了,但是工具爆炸了(无法通过合成,吃了32GB的内存等)。 我怀疑它不能做推断。 我的假设是他们使Vivado像Quartus一样工作,但没有人知道它并且它不在文档中(尽管文档确实说如果使用生成器它可以做到这一点)。 我正在通过我的AE来获得答案。 谢谢! / J |
|
|
|
我已经在Vivado中推断了具有不同时钟的真双端口RAM,它确实有效。
我猜你在工具中遇到了一个错误(嘿,新的,它们会发生)。 使用你的AE绝对是一件好事,但我还建议你提交一个webcase - 特别是如果你有一个不起作用的例子。 如果你在自己的模块中有RAM,你可以尝试在这里发布代码,我们可以看看是否有任何明显的东西阻止工具推断RAM - 例如,如果读取过程没有计时,它将不得不 从FF或分布式RAM构建结构(因为块RAM是同步读取) - 这很容易炸毁设计。 推断肯定是可行的 - 它已经被XST支持多年(并且已经越来越好)。 Vivado Synthesis是一个新工具,但绝对应该具备这种功能(它确实适用于某些情况)。 正如您在帖子中提到的,它应该选择正确的机制来根据约束构建更大的RAM。 Avrum |
|
|
|
嗨Avrum - 感谢您的建议,但我希望能够完全调试我将要使用的东西。
我宁愿使用他们的实例而不是推理技术。 我的模块是通用的,并且完全匹配RAM操作(我在模拟中使用过它),我只是猜测它是否会引起轰动。 他们似乎有更好的技术内置,但它没有文档或明确报告。 这就是我想要了解的更多信息。 谢谢/ j |
|
|
|
只有小组成员才能发言,加入小组>>
2423 浏览 7 评论
2824 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2294 浏览 9 评论
3374 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2465 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1184浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
588浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
452浏览 1评论
2006浏览 0评论
731浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 03:20 , Processed in 1.419932 second(s), Total 59, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号