【同步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数据

相关推荐
轻蓝雨8 分钟前
树莓派4B安装ubuntu server后再访问GPIO
linux·运维·ubuntu
宇宙帅猴14 分钟前
Ubuntu网络问题解决方案
linux·网络·ubuntu
栈低来信23 分钟前
klist链表
linux·数据结构·链表
一个平凡而乐于分享的小比特24 分钟前
Linux动态库与静态库技术详解
linux·动态库·静态库
XiaoHu020725 分钟前
Linux网络编程(第三弹)
linux·运维·网络
袁袁袁袁满31 分钟前
Docker服务彻底清空的所有相关资源(容器、镜像、网络、数据卷等)
linux·运维·ubuntu·docker·容器·docker清空资源·docker停掉资源
Run_Teenage37 分钟前
Linux:匿名管道(实现个进程池)和命名管道
linux·运维·服务器
warton8837 分钟前
proxysql配置mysql mgr代理,实现读写分离
linux·运维·数据库·mysql
skywalk816337 分钟前
Ubuntu22.04安装docker并启动 dnote服务
linux·ubuntu·docker·dnote
上天_去_做颗惺星 EVE_BLUE41 分钟前
Android设备与Mac/Docker全连接指南:有线到无线的完整方案
android·linux·macos·adb·docker·容器·安卓