首页 > 其他分享 >异步FIFO设计

异步FIFO设计

时间:2024-02-25 13:00:11浏览次数:19  
标签:异步 gray 空满 FIFO 设计 指针 时钟

同步FIFO REVIEW

  • 方法1:使用计数器判断空满
  • 方法2:使用扩展一位的地址指示空满,读写指针最高位不同,剩余的位都相同,表示满了;读写指针相等,表示空

异步FIFO

格雷码产生

  • gray_code = data ^ (data >>1)
  • 相邻两个数之间只有一个bit发生变化

异步FIFO原理

  • 读写时钟不一致
  • 使用地址扩展的方式判断空满
  • 两个时钟域,所以存在跨时钟域的问题,所以使用gray码,相邻两个数之间只有一个bit发生变化,发生跳转的时候只有1bit发生变化
  • 产生空满信号,需要比较地址指针,指针存在不同的时钟域,所以需要进行跨时钟域的处理,先将地址指针转变为格雷码之后,进行打两拍进行同步


RTL

异步FIFO包含

  • syn - 两级同步器
  • bin_to_gray - 二进制数转gray码
  • write_ctrl - 写控制模块,产生满信号
  • read_ctrl - 读控制模块,产生空信号
  • RAM





两级同步器


bin_to_gray

写控制


读控制端


标签:异步,gray,空满,FIFO,设计,指针,时钟
From: https://www.cnblogs.com/Icer-newer/p/18032239

相关文章

  • C#使用Channel实现异步任务之间的通信
    channel中也是有一个ConcurrentQueue来维护的usingSystem.Threading.Channels;varchannel=Channel.CreateUnbounded<Message>();//在赋值的时候,两个Task就开始执行了,下面的await就是为了等待执行完成varsender1=SendMessageAsync(channel.Writer,1);varsender2=......
  • 【Spring】spring事件监听异步处理
    在Spring框架中,ApplicationEventMulticaster接口是用于发布事件的核心组件。要支持异步处理事件,可以通过配置一个能够执行异步任务的TaskExecutor与SimpleApplicationEventMulticaster配合使用。以下是一个配置示例:importorg.springframework.context.annotation.Bean;importo......
  • ssts-hospital-web-master项目实战记录十三:项目迁移-架构设计(前台管理)
    记录时间:2024-02-24前台管理 CashTradeClean.html CashTradeDetails.html CashTradeSettle.html DeviceTest.html GoodsManage.html login.html Main.html ReceiptReprint.html SystemManage.html翻译搜索复制......
  • ssts-hospital-web-master项目实战记录十三:项目迁移-架构设计(适配器、设备驱动)
    记录时间:2023-02-24适配器adapter.jsadapter/adapter.ts:全部1.属性 2.函数 2.1.标准适配器 2.2.Ajax操作 adapterPOS.jsadapter-pos.ts:全部1.入口2.属性   3.函数  设备驱动devicedriver.jsdevice-driver/index.ts:全部1.以发卡机为例......
  • SciTech-EECS-PCB电路板设计-使用KiCad进行PCB设计的基本流程
    使用KiCad进行PCB设计的基本流程,2024-02-2314:04KiCad是一款强大的开源PCB设计软件,其设计的大体流程包括:原理图设计及导出网表文件,PCB布局和布线,导出Gerber文件及制板;以下是使用KiCad进行PCB设计的基本步骤:0.安装KiCad:首先,你需要安装KiCad软件。KiCad官方网站下载......
  • 代码随想录算法训练营day03 | leetcode 203. 移除链表元素、707. 设计链表、206. 反转
    目录题目链接:203.移除链表元素-简单题目链接:707.设计链表-中等题目链接:206.反转链表-简单题目链接:203.移除链表元素-简单题目描述:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1:输入:head=[1,2,6......
  • 关卡设计中的空间交流
    视频链接:【人工翻译】游戏关卡设计中的空间交流_哔哩哔哩_bilibili1.给玩家展现一个明确的目标消除“空白画布恐惧症”:先设置玩家出生点和设置远处的任务目标;方便建立引导线;给予玩家一个明确的目标:如果玩家不知道要去哪里,就会闲逛而不是思考前进的路(有时候也可以利用这一点);......
  • 关卡设计师15问
    问题1:为什么(它)是有趣的?问题2:玩家是否可以明白这是有趣的?问题3:这个游戏的特点是什么?只在这款游戏中才能做到的事情问题4:什么样的【空间】最适合这个游戏?问题5:这个关卡是否太大或太小了?问题6:关卡是否过于平淡?从垂直方向处理游戏空间将会更加好问题7:我这么做只是因为这......
  • 设计模式行为型之观察者模式
    实验介绍本实验为大家介绍的是观察者模式,我们通过家长群的例子为大家仔细地梳理了这一模式的基本概念,帮助大家建立基本认识。虽然为大家介绍这一模式在前端热门框架VUE中的真实应用,并且还区分了观察者模式与发布订阅模式,帮助大家理清概念,相信通过本实验的学习,大家一定能对这一......
  • 设计模式行为型之策略模式
    实验介绍本实验为大家带来了策略模式,策略模式如果从定义上来看容易混乱,但其本身并不复杂。因此在一开始首先通过一个职级与区域划分差旅费用的实例为大家逐步展开策略模式的应用,通过这个实例就能很好的看到策略模式的应用方向。同时为大家指出了策略模式优点与缺点。在对应的情况......