【同步FIFO_2023.12.13】

同步fifo,写时钟和读时钟为同一个时钟,用于交互数据缓冲

fifo的深度:同一块数据内存的大小

c 复制代码
reg [2:0] Mem [8];//宽度3,深度8

典型同步fifo的三部分

fifo写控制逻辑:写地址、写有效信号,fifo写满、写错等状态信号

fifo读控制逻辑:读地址、读有效信号,fifo写满、写错等状态信号

fifo存储实体memory/reg

空满判断

reg [2:0] Mem [8];//宽度3,深度8

写指针Wr_ptr指向空,读指针Rd_ptr指向满

c 复制代码
读写处于一个地址,用最高位的状态判断空与慢
写地址0011,读地址0011:空
写地址1011,读地址0011:满

一般fifo使用循环指针,不使用该判断,简单判断:个数为0空,个数为深度满

端口

fifo_counter:0时,给出empty;等于fifo深度时,给出full

fifo_counter:写而未满时,加1;读而未空:-1;同时读写时,不变

读写地址宽度:与地址宽度相同;地址增加溢出时,变为0;循环指针

实现



结束该进程,ctrl+c再按q

问题:读不出第一个push数据

相关推荐
阳光九叶草LXGZXJ4 分钟前
达梦数据库-学习-41-表大小快速估算
linux·运维·数据库·sql·学习
prettyxian8 分钟前
【Linux】环境变量
linux·运维·服务器
MediaTea20 分钟前
Python OOP 设计思想 13:封装服务于演化
linux·服务器·前端·数据库·python
阿拉伯柠檬31 分钟前
MySQL复合查询
linux·数据库·mysql·面试
不秃头的帅哥38 分钟前
Linux 基础 IO 学习笔记
linux·操作系统·io
林鸿风采41 分钟前
Alpine Linux 安装指南:轻量、安全、高效的系统部署实践
linux·运维·安全·alpine
wdfk_prog42 分钟前
[Linux]学习笔记系列 -- compiler
linux·笔记·学习
heda343 分钟前
zip在linux上解压出错Unicode编码-解决
linux·运维·python
济61743 分钟前
linux 系统移植(第四期)--Uboot移植(4)--在U-Boot 中添加自己的开发板(3) -网络驱动修改-- Ubuntu20.04
linux·运维·服务器
2301_765715141 小时前
Linux虚拟机NAT模式网络故障解析与修复指南
linux·运维·服务器