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

相关推荐
菜鸟也会Fly2 小时前
【/usr/bin/env: “bash\r”: 没有那个文件或目录】问题解决
linux·bash
程序员黄老师3 小时前
Linux tail 命令详解
linux·运维
我怎么又饿了呀4 小时前
Windows&Linux系统 安装 CUDA 和 cuDNN
linux·运维·windows
慌ZHANG6 小时前
云原生时代的 Linux:容器、虚拟化与分布式的基石
linux·云原生
子洋8 小时前
OrbStack 安装 Ubuntu 并开启 SSH 与 Root 登陆
linux·前端·ubuntu
小立爱学习8 小时前
Linux 内存管理之page folios
linux·c语言
某某8 小时前
linux安装mysql8.0,二进制码安装
linux·运维·服务器
~黄夫人~9 小时前
虚拟机Ubuntu图形化界面root用户登录错误
linux·运维·ubuntu
破刺不会编程9 小时前
linux信号量和日志
java·linux·运维·前端·算法
科大饭桶11 小时前
Linux系统编程Day9 -- gdb (linux)和lldb(macOS)调试工具
linux·服务器·c语言·c++