EETOP 创芯网论坛 (原名:电子顶级开发网)

标题: 单端口 sram 实现fifo [打印本页]

作者: maws    时间: 2023-1-13 10:59
标题: 单端口 sram 实现fifo
按照自己的简单理解,实现FIFO时,memmory array 实现有两种可能1. 小容量用寄存器实现,如果需要大容量FIFO,那是设计不合理,更改设计用单端口SRAM 做buffer 或其他方式实现功能;

2. 直接用memory  compiler 生成双端口RAM 实现大容量FIFO;
请问有没有考虑用单端口SRAM 实现FIFO,我看网上有人提到过实现方式,但看起来控制逻辑过于复杂,验证风险很高。

想向大家请教一下,大部分设计中有没有大容量FIFO 的设计需求? 如果有那一般用什么方式实现的呢? 实际流片项目有没有看到过用单端口RAM 实现FIFO 呢? 谢谢!

作者: maws    时间: 2023-1-13 13:58
虚心求教
作者: lubee2011    时间: 2023-1-15 09:34
可以啊,网上有源代码,应该没啥问题
作者: xiaowuzxc    时间: 2023-1-15 11:23
单端口sram做同步FIFO还行,但还是有点别扭,控制逻辑更复杂
最好是伪双端口sram,一读一写,异步同步FIFO都能做
作者: ty_xiumud    时间: 2023-1-15 18:23
https://blog.csdn.net/qq_4146788 ... 1001.2014.3001.5501
看我的部落格,可综合!应该理论上没什么风险
作者: maws    时间: 2023-1-16 10:09


   
lubee2011 发表于 2023-1-15 09:34
可以啊,网上有源代码,应该没啥问题


老哥,源码方便给个链接吗? 搜了半天没搜到,谢谢啦

作者: maws    时间: 2023-1-16 10:13


   
xiaowuzxc 发表于 2023-1-15 11:23
单端口sram做同步FIFO还行,但还是有点别扭,控制逻辑更复杂
最好是伪双端口sram,一读一写,异步同步FIFO ...


谢谢回复,单端口sram做FIFO是挺别扭的。但是伪双端口不是面积会大,且线更多吗? 我听说有的公司只能让用单端口SRAM。 但遇到需要深度很大的fifo 是如何实现的呢? 期待您的建议

作者: maws    时间: 2023-1-16 10:15


   
ty_xiumud 发表于 2023-1-15 18:23
https://blog.csdn.net/qq_41467882/article/details/127480540?spm=1001.2014.3001.5501
看我的部落格,可 ...


看了您的博客,使用伪双端口实现的,您有用单端口(读写公用地址线) 实现的经验吗? 或者您觉得实际工程中有没有用单端口SRAM 实现FIFO 的必要? 谢谢

作者: ty_xiumud    时间: 2023-1-16 14:39


   
maws 发表于 2023-1-16 10:15
看了您的博客,使用伪双端口实现的,您有用单端口(读写公用地址线) 实现的经验吗? 或者您觉得实际工程 ...


我博客中就是用的读写公用地址线的,我接触的项目一般使用的ram也都是这样的,读写公用地址,使用片选信号与写使能信号来控制读写,实际情况需要考虑的就挺多的了。需要你自己结合项目
作者: xiaowuzxc    时间: 2023-1-18 13:16


   
maws 发表于 2023-1-16 10:13
谢谢回复,单端口sram做FIFO是挺别扭的。但是伪双端口不是面积会大,且线更多吗? 我听说有的公司只能让 ...


伪双端口的面积还行吧。单端口没法同时读写,如果在同一周期同时收到读和写请求就得仲裁,总有一边要被卡一下,这就失去了FIFO的意义

作者: maws    时间: 2023-1-18 13:35


   
xiaowuzxc 发表于 2023-1-18 13:16
伪双端口的面积还行吧。单端口没法同时读写,如果在同一周期同时收到读和写请求就得仲裁,总有一边要被卡 ...


所以才做很复杂的读写控制逻辑防止读写同时出现打架情况,我看网上一般有两种做法:1. 两块RAM ping pong 实现;
2. 把数据端口扩展一倍,例如需要WIDTH 128 DEPTH 1024的 存储深度,需要用WIDTH 256 DEPTH 512 的SRAM
我用第二种做法试过,基本能实现,但控制逻辑很乱,输入和输出都加buffer。

您听说过大公司有这么做吗?如果伪双端口ram 可以接受,确实没必要这么搞,这玩意逻辑有点难理。

作者: xiaowuzxc    时间: 2023-1-18 13:43


   
maws 发表于 2023-1-18 13:35
所以才做很复杂的读写控制逻辑防止读写同时出现打架情况,我看网上一般有两种做法:1. 两块RAM ping pong ...


我没做过面积对比,但是方案1.2.都挺看着复杂的,可能会给设计带来额外的bug,而且两块RAM乒乓的面积已经超过1个伪双端了。
对于FIFO,如果真能用单端口RAM,为何还要伪双端呢,大公司比我们精明

作者: dliu61    时间: 2023-1-18 14:09


   
maws 发表于 2023-1-18 13:35
所以才做很复杂的读写控制逻辑防止读写同时出现打架情况,我看网上一般有两种做法:1. 两块RAM ping pong ...


TP和SP的面积其实还好,直接上TP就好了





欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5