完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在Xilinx Spartan-3E(XC3S500E)上使用Verilog创建了一个使用多个双端口Block RAM的设计,所有这些都通过Verilog原语实例化,例如RAMB16_S18_S18。
我使用一个端口进行读取和写入(使用写入启用),第二个端口仅用于读取(通过将WEB设置为0)。 两个端口共享相同的时钟。 Block RAM设置为18位宽,但我忽略了奇偶校验数据(即,不使用其输出值,并始终将零写入奇偶校验位) 我正在使用Xilinx ISE 13.4并使用默认设置的GUI工作流程进行合成/实现。 (非默认设置,例如积极的时序优化和/或物理综合在这个问题上没有区别) 我对我的唯一时钟网有时序限制,并且它与实际时钟信号一致(约束是50MHz,我正在使用的开发板上有50MHz时钟,并且时序报告指出 我的设计的最大频率是64.7MHz。时钟通过一个时钟多路复用器用作时钟使能,然后转到我的整个逻辑。 在我的代码中,我有一个状态机,它有三种状态(在Block RAM使用的相同50MHz时钟的上升沿转换): 将地址写入连接到端口A和B的地址输入的寄存器。 读取数据,对其执行一些逻辑操作,并将其写入与块RAM上的DIA(A中的数据)相连的reg [15:0](地址不变)。 打开端口A的写入启用。 将一些IO引脚读入不相关的寄存器。 关闭块RAM写使能。 这在ISim中的行为仿真中始终如一,并且(尽管它比模拟器的测试少)在端口A上始终成功。端口B具有相同的逻辑(简单地用于地址的位切片,以及用于SSR,SRVAL,INIT的相同配置) )但在这一个时钟周期内没有成功读取。 通过简单地在1和2之间添加额外状态(因此为地址提供超过一个整个时钟周期的建立时间),设计可以工作,尽管作为FPGA开发的学习者,我想知道为什么以及如何避免它。 根据Xilinx数据表DS312和其中的时序图,这应该是使用Block RAM的可接受方式。 在同一数据表中给出了设置和保持时间,但ISE工具应该已经知道它们并在时序分析期间应用它们,如果我没有弄错的话。 另外,我已经重新阅读了UG331(Spartan-3 Generation用户指南)的Block RAM部分几次,并且在指令和块RAM的使用之间找不到任何不一致。 最慢路径的时间报告列表神秘地没有列出任何进入违规RAM端口的路径。 如果有人可以提出建议,那将是值得赞赏的,因为我花了很长时间调试这个并担心我可能会犯一些初学者的错误。 如果需要任何其他信息,请告诉我,以便我可以提供。 以上来自于谷歌翻译 以下为原文 I'm creating a design using Verilog on a Xilinx Spartan-3E (XC3S500E) that uses multiple dual-port block RAMs, all instantiated through Verilog primitives such as RAMB16_S18_S18. I am using one port for both reading and writing (using write-enable) and the second for only reading (by setting WEB to 0). Both ports share the same clock. The block RAM is set to 18-bit wide, but I am ignoring the parity data (that is, not using its output value, and always writing zeros to parity bits) I am using Xilinx ISE 13.4 and synthesizing/implementing using the GUI workflow with default settings. (non-default settings such as aggressive timing optimization and/or physical synthesis did not have a difference in regard to this issue) I have timing constraints made for my one and only clock net, and it is consistent with the actual clock signal being put in (the constraint is for 50MHz, there is a 50MHz clock on the dev board I am using, and the timing report states that the maximum frequency for my design is 64.7MHz. The clock runs through a clock mutliplexer used as a clock enable, before going to the entirety of my logic. In my code, I have a state machine that has three states (transitioning on rising edge of the same 50MHz clock that the block RAM uses):
According to Xilinx datasheet DS312 and timing diagrams within, this should be an acceptable way of using the block RAM. There are setup and hold times given in that same datasheet, but the ISE tools should already be aware of them and apply them during timing analysis, if I'm not mistaken. Additionally, I've re-read the block RAM section of UG331 (Spartan-3 Generation User Guide) a few times and could not find any inconsistencies between the instructions and my use of the block RAM. The timing report list of the slowest paths mysteriously does not list any paths going to the offending RAM port. If someone could make a recommendation, that would be appreciated, as I've spent quite a while debugging this and fear that I might be making some beginners' mistake. If any additional info is needed, please let me know so I can provide it. |
|
相关推荐
1个回答
|
|
这是一个奇怪的问题。
听起来你已经做好了一切。 Block RAM绝对能够满足您的需求,而且我无法确定任何原因它无法正常工作。 我假设您已经永久地将ENA和ENB捆绑在一起? 两个问题: (1)你可以发布代码吗? (2)你从B口获得什么,而不是正确的数据? 它只是保留以前的数据吗? 以上来自于谷歌翻译 以下为原文 That's a wierd problem. It sounds like you've done everything right. The block RAM is definitely capable of doing what you require, and I can't really see any reason it wouldn't work. I assume that you've got ENA and ENB tied high permanently? Two queries: (1) Can you post the code? (2) What do you get from port B, instead of the correct data? Does it just hold the previous data? |
|
|
|
只有小组成员才能发言,加入小组>>
2379 浏览 7 评论
2794 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2261 浏览 9 评论
3335 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2427 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
755浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
543浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
364浏览 1评论
1960浏览 0评论
681浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 02:30 , Processed in 1.294982 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号