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

相关推荐
小娄~~26 分钟前
进程间通信
linux·运维·服务器
实心儿儿41 分钟前
Linux —— 库的制作和原理(2)
linux·运维·服务器
运维全栈笔记1 小时前
Docker一键部署Immich:自建私有云相册,照片视频备份无忧
linux·服务器·网络·docker·容器
进阶的猪1 小时前
主机、虚拟机、开发板网络通信排错日志
linux·网络
小小的木头人1 小时前
Ubuntu 26.04 换阿里云镜像源
linux·ubuntu·阿里云
qq_254674411 小时前
Ubuntu 20.04取消自动休眠的三种实现方案
linux·chrome·ubuntu
念恒123062 小时前
STM32---新建工程
linux·stm32·嵌入式硬件
悲伤小伞2 小时前
Linux_传输层协议TCP详解
linux·网络·c++·网络协议·tcp/ip
笨笨饿2 小时前
#72_聊聊I2C以及他们的变体
linux·c语言·网络·stm32·单片机·算法·个人开发
ulias2122 小时前
leetcode热题 - 6
linux·算法·leetcode