异步FIFO中空满信号如何产生?
2024-10-19 19:39:31
异步FIFO中,空满信号该如何产生呢?
在复位的时候,读指针和写指针相等,读空信号有效(这里所说的指针其实就是读地址、写地址)当读指针赶上写指针的时候,写指针等于读指针意味着最后一个数据被读完,此时读空信号有效。写满信号:当写指针比读指针多一圈时,写指针等于读指针意味着写满了,此时写满信号有效。
问题a:我们会发现 读空的条件是写指针等于读指针,写满的条件也是写指针等于读指针,到底如何区分呢?
解决办法:将指针的位宽多一位,表示读写指针是否在同一轮,注意我们这里讨论的是2进制递增数。
举个例子说明:假设要设计深度为 8 的异步FIFO,此时定义读写指针只需要 3 位(2^3=8)就够用了,但是我们在设计时将指针的位宽设计成 4 位,最高位的作用就是区分是读空还是写满,具体理论 1 如下当最高位相同,其余位相同认为是读空;当最高位不同,其余位相同认为是写满。
这里还隐藏着一个问题,读写指针在不同时钟域的比较问题,如何解决亚稳态的问题?下一节我们继续介绍。
版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处
作者:杭州卿萃科技ALIFPGA
原文地址:杭州卿萃科技FPGA极客空间 微信公众号
扫描二维码关注杭州卿萃科技FPGA极客空间
最新文章
- 用pyspider爬淘宝MM照片
- Akka-actor使用入门
- FMX下Edit只能输入数字
- ==与equals()
- Android 从Gallery获取图片
- FFMpeg ver 20160213-git-588e2e3 滤镜中英文对照
- 【WPF】提高InkAnalyer手写汉字识别的准确率
- [Tool] Fiddle2基本使用
- java 从零开始,学习笔记之基础入门<;Oracle_基础>;(三十三)
- 当ViewPager嵌套在ScrollView/ListView里时,手势冲突如何处理?
- struct2-json
- python 线程与进程
- 如何理解Axis?
- asp.net core开源项目
- C#下载Url文件到本地
- LInux下设置账号有效时间 以及 修改用户名(同时修改用户组名和家目录)
- django----Form扩展
- RocketMQ3.2.2生产者发送消息自动创建Topic队列数无法超过4个
- 学以致用八---centos7.2 安装vim8+支持python3
- LVS的优点和缺点