fifo在设计是一个非常常见并且非常重要的模块,很多公司有成熟的ip,所以一部分人并没有人真正研究写过fifo,本文仅简述fifo中部分值得保留的设计思路。
fifo可以分为2大类:有直接使用寄存器搭的fifo(多用于小型fifo、和异步fifo),也有使用sram搭的fifo(多用于大型存储)。
因为sram比寄存器面积小。其他更细划分如单口,双口等等不做详细介绍。
本文将简述以下两个方向:
lsram出口通常不是当拍可以读出数据,因此需要逻辑对这部分做逻辑,实现和寄存器相同时序。
l由于第一条逻辑造成,当用户读取sram数据时会有几拍延迟,因此为消除延迟将会增加数据输出开关功能(见本公众号文章模块端口握手设计模块多对多端口握手设计-总结)以及数据输入切换功能。
本文设计fifo如下图所示:
第一条中sram出口无法做到当怕出数的原因是由sram的知道工艺造成(可以在存储器芯片手册里看到),例如在tsmc 5nm工艺下,读使能有效到数据稳定输出大概需要500ps,而且如果位宽过大,在ecc时又需要几百ps延迟,因此可能一拍数据无法收敛,因此需要几级寄存器缓存,一般是3拍(控制信号缓存+读数据延迟+ecc延迟)。
第二条中输出开关功能,参见本文相应文章,功能主要保证当fifo有数据时会传递至最后一级输出寄存器中。
第二条中的输入切换功能,是指2个mux模块,功能主要保证输出reg优先被填满,当输出reg被填满之后,新数据才会被存入sram中。输出寄存器数量和sram延时寄存器数量相同,保证当输出寄存器中数据在3拍读出之后sram数据经过延时之后恰好可以继续被读出,而不会中间出现间隔。
对于mux2的功能是在fifo数据为空,且同时又读写使能,可以直接把输入数据输出。
上述内容仅用于同步fifo设计,而异步大型fifo经常采用同步sram缓存+异步寄存器fifo的设计模式,有时间待续异步fifo设计。
液晶面板价格再度跳水,电视整机价格也受到牵连
云计算和物联网的发展情况
什么是大电流导电滑环,它的优势是什么
人工智能领域里绕不开的一大问题_人才缺口
谷歌下个月要发布的亲儿子手机和安卓8.0竟然有这么厉害的新功能?
浅谈FIFO设计思路
高性能有源防磁音箱的制作
CAN是什么意思?
虹软科技能否凭借视觉技术在智能车载占据鳌头
ARM与Synopsys扩大合作关系 达成ARM架构之SoC的功耗及效能之最佳化
国内IDM半导体龙头企业华润微电子授权世强硬创代理
区块链资产市值普遍下跌,比特币、以太坊矿工费随之大幅下降
oppor11什么时候上市?oppor9一战成名,oppor11能延续神话吗?
开关电源RCD吸收电路消除高频干扰
高端冰箱的不二之选,三星品道家宴系列冰箱即将亮相
公益诉讼土壤重金属元素分析仪介绍
抽成太狠惹祸?苹果再遭“坏消息”
复用电路的设计方法及其特点介绍
中兴通讯获选年度中国ESG卓越实践30强
网信办针对美光公司在华销售产品启动网络安全审查