原创 【博客大赛】FPGA例化的内部RAM读取延迟差异

2014-11-14 13:28 3434 19 25 分类: FPGA/CPLD 文集: ALTERA FPGA

FPGA片内RAM读取延迟差异

问题

    在进行查找表读取实验的时候,已经验证FPGA内部RAM(单口、单时钟)读取动作在地址有效后下一个时钟读取的数据就有效,如图1所示。而在今天调试符合仿真的时候,发现仿真数据从RAM读出送给CS时需要等待2个时钟周期,如图2所示。

1.jpg

1:存储TLUTRAM读取只需等待1一个时钟周期

1.jpg

2:存储符合仿真数据的RAM读取需要等待2个时钟周期

1.jpg

3:图2局部放大效果

分析

    这两个RAM都是调用相同的函数,除了端口位宽和深度不同外其它参数都一样。那么是什么原因导致它们的读取时序的差异呢?通过查看工程的编译报告,也许能够找到其它的一些差异,如图4所示,是图2所示的大RAM的编译实现后的资源报告。可以看到该RAM的实现消耗了172M4K以及2M-RAM

1.jpg

4:大RAM实现后的资源消耗

    而我们查看图1所示的小RAM实现后的资源消耗情况,如图5所示,可以看到这个小RAM使用一个M4K就足够了。

1.jpg

5:存储TLUTRAM的实现结果

    那么是否是这种实现差异导致了RAM读取时序的差异呢?从AlteraRAM用户手册上并没有找到我想要的答案。

    我试图改变设计使用唯一的一个M-RAM来实现该大RAM,如图6所示,但是效果还是一样,即其读取时序还是需要等待2个时钟周期。

1.jpg

6:仅使用1M-RAM来实现大RAM

 结论

    上述问题,其实并不是问题,是本人在调试的时候观察SignalTap的时候视觉误差导致,其实图1和图2是一样的。即都是在地址有效存在ram地址端口2个时钟周期后输出端口上稳定得到该地址的数据,注意图1中每个地址出现的时间长度是2个时钟周期,而不是我之前误认为的1个时钟周期。

      图7是器件手册里面给出的单口RAM时序波形图,仔细看看同步Q输出其实就是在地址有效的下下个时钟周期才稳定在总线上。

1.jpg
 
之前一直将这种RAM和FIFO的操作等同了,其实二者的数据读取还是有区别的,FIFO在读请求有效的下一个时钟即有数据输出;而单口RAM是在地址有效的下下个时钟周期才能得到读取的数据。

 

文章评论6条评论)

登录后参与讨论

用户1605975 2014-12-23 22:58

这个应该和设计者是否选择了对 地址 和 输出q 进行pipeline有关吧 因为FIFO也是用RAM资源做的

coyoo 2014-11-14 13:11

囧,这个联想太强大了,呵呵。我修改下标题

用户403664 2014-11-14 11:06

内文标题之所以能出现,我猜可能是因为你从word导入的,系统一时没有识别

用户403664 2014-11-14 11:05

你看标题哦!FPG*片--Apian是敏感词,我们也很抱歉啊!

coyoo 2014-11-14 09:15

哪个词是敏感词?CS吗?

用户403664 2014-11-14 08:44

不好意思,被敏感掉的词语,大家都看到啦。还得麻烦你重新上传图片呢

用户978481 2006-9-22 19:54

看客都是老大,老大说是才女就是才女。老大说是才子就是才子
哈哈。。。。
哈哈。。。。
哈哈。。。。
哈哈。。。。
哈哈。。。。

用户1053025 2006-9-20 11:28

为什么留言的人,又不留下自己的博客链接呢?嘻嘻。我好像要求太多了。杏子说博主是才女?才子还是才女啊?博主给张相片让人景仰一下吧。哈哈

用户24118 2006-9-15 09:31

有用处

用户1053025 2006-9-7 16:57

收下了,我也怀疑我的相机中间有个电池不好使。

远去的村庄, 我还帮你挑了这个名字哦。嘻嘻。
相关推荐阅读
coyoo 2024-12-10 13:28
Cyclone V GX FPGA设计TDC的优化问题
概述 通过前面的研究学习,已经可以在CycloneVGX器件中成功实现完整的TDC(或者说完整的TDL,即延时线),测试结果也比较满足,解决了超大BIN尺寸以及大量0尺寸BIN的问题,但是还是存在一些...
coyoo 2024-12-03 12:20
比较器检测模拟脉冲说明(四)
概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解...
coyoo 2024-11-16 13:54
不同ADC采样同一前端模拟信号时转换用时差异分析
概述 同一组前端模拟信号接入由不同型号ADC组成的模数转换电路时,采样后在FPGA中发现采样用时差异较大。本文主要分析这个时间差异形成的原因,并记录该差异产生对系统造成的影响。系统数字化简介 项目前端...
coyoo 2024-11-10 13:04
ALTERA Cyclone 10器件的使用-7:FPGA片内RAM资源利用率思考
概述 项目使用的FPGA目标器件为Cyclone 10 GX系列规模最大一颗料,由于功能升级增加了功能模块更多,发现器件片内RAM不够使用了。为了探索片内RAM使用的利用率问题,从代码RTL级与编译软...
coyoo 2024-11-10 12:30
转知乎:幽灵般的人体成像技术-PET
幽灵般的人体成像技术——PET - 知乎...
coyoo 2024-11-09 10:26
AD9633默认情况下调试记录(二)
概述 所谓默认情况,即如器件手册中图2所标示那样。对应AD9633的调试,除了涉及到ADC自身,还需要兼顾前端驱动器,系统中AD9633驱动器使用了差分运算放大器,这里不在赘述,笔者已有相关文章论述。...
我要评论
6
19
关闭 站长推荐上一条 /2 下一条