单口RAM、双口RAM、FIFO

单口与双口

单口与双口的区别在于,单口只有一组数据线与地址线,因此读写不能同时进行;而双口有两组数据线与地址线,读写可同时进行;FIFO读写可同时进行,可以看作是双口;

简单双口RAM与真双口RAM

双口RAM分伪双口RAM(Xilinx称为Simple two-dual RAM)与双口RAM(Xilinx称为true two-dual RAM),伪双口RAM,一个端口只读,另一个端口只写,且写入和读取的时钟可以不同,位宽比可以不是1:1;而双口RAM两个端口都分别带有读写端口,可以在没有干扰的情况下进行读写,彼此互不干扰0;

FIFO

FIFO也是一个端口只读,另一个端口只写。FIFO与伪双口RAM的区别在于,FIFO为先入先出,没有地址线,不能对存储单元寻址;而伪双口RAM两个端口都有地址线,可以对存储单元寻址;
异步时钟域的缓存只要是双口器件都可以完成,但FIFO不需对地址进行控制,是最方便的;

根据我的设计经验,其实FIFO的核心还是一片RAM。只不过把RAM的操作封装了一下,添加了两个指针,也就是两个地址寄存器,一个写地址寄存器,一个读地址寄存器。 当FIFO初始化时,读地址寄存器和写地址寄存器皆为零; 当FIFO写一个数据时,把数据写入当前地址寄存器指向的RAM地址,然后写地址寄存器加1;如果加到RAM的底部了,就再次变为零; 当FIFO读数据时,把读地址寄存器的数据读出来,然后读地址寄存器加1;如果读到RAM的底部了,就再次变为零; 如果读地址寄存器追上写地址寄存器,就说明读空了,没数据可读了; 如果写地址寄存器的值又追上了读地址寄存器,就说明写满了,没法写了; 大概就是这样了。

双口RAM

双口RAM是常见的共享式多端口存储器,其最大特点是共享存储数据,即一个存储器配备两套的地址线、数据线和控制线,允许两个的CPU或控制器同时异步的访问存储单元。这种同时异步的访问存储单元需要内部仲裁控制逻辑的控制(BUSY功能输出),由于两个端口对双口RAM存取时存在以下4种情况:
1.两个端口不同时对同一地址单元存取数据;
2.两个端口同时对同一地址单元读出数据;
3.两个端口同时对同一地址单元写入数据;
4.两个端口同时对同一地址单元操作,一个写入数据,一个读出数据。
所以,内部仲裁控制逻辑相应的提供以下功能:
1.对同一地址单元访问的时序控制;
2.存储单元数据块的访问权限分配;
3.信令交换逻辑。

对同一地址单元访问的时序控制

当左右端口不对同一地址单元存取时,BUSY R=H,BUSY L=H,可正常存储;当左右端口对同一地址单元存储时,有一个端口的BUSY=L,禁止数据的存取,此时,两个端口中先出现的存储请求信号对应的BUSY=H,允许存储,后出现的存储请求信号对应的BUSY=L,禁止存储(注意:两端口间的存储请求信号出现时间差应满足仲裁最小时间间隔TAPS(IDT7132为5ns),否则仲裁逻辑无法判定哪一个端口的存储请求信号在前);在无法判定哪个端口先出现存储请求信号时,控制线BUSY L和BUSY R只有一个为低电平,不会同时为低电平,这样就避免了双端口存取出现错误。

存储单元数据块的访问权限分配

存储单元数据块的访问权限分配只允许在某一时间段内由1个CPU对自定义的某一数据块进行读写操作,这将有助于存储数据的保护,更有效地避免地址冲突。信号量(Semaphore,简称SEM)仲裁闭锁就是一种硬件电路结合软件实现访问权限分配方法。SEM单元是与存储单元无关的***标志单元,两个端口分别采用两个触发器可以实现这一功能。两个触发器在初始化时均使SEM允许输出为高电平,等待双方申请SEM,如果收到一方写入的SEM信号(通常低电平写入),仲裁电路将使其中一个触发器的SEM允许输出端为低电平,而闭锁另一个SEM允许输出端使其继续保持高电平。只有当先请求的一方撤消SEM信号,即写入高电平,才使另一SEM允许输出端的闭锁得到解除,恢复等待新的SEM申请。

信令交换逻辑(signaling logic)

为了提高数据的交换能力,有些双口RAM采用信令交换逻辑来通知对方。这类似与PC操作系统的进程同步的信箱机制。

以上是双口RAM自身提供的仲裁逻辑控制,也可采用自行设计的仲裁协议,比如FIFO。

欢迎关注本人VX公众号,日常分享一些设计的小知识。

单口RAM、双口RAM、FIFO相关推荐

  1. FPGA入门嵌入式 块RAM双口RAM使用

    嵌入式 块RAM双口RAM使用 对RAM(随机存储器)进行读和写操作. 使用tool工具生成IP核RAM,8位读地址8位写地址. IP核仿真 `timescale 1ns/1ns `define cl ...

  2. 数字 IC 技能拓展(24)单口、伪双口、真双口 RAM、单口、双口 ROM 的区别与联系

    正文         打开 IP Catalog,搜索 Block Memory Generator,即可看到其 Memory Type 可分为 5 中,分别是单口 RAM(Single Port R ...

  3. 单口RAM,双口RAM,FIFO的区别

    总结:单口ram只有一组数据线.地址线,不能同时读写:双口ram有两组数据线.地址线. 在电路上的区别就是在latch的两边有几个开关管. 单口与双口的区别在于,单口只有一组数据线与地址线,因此读写不 ...

  4. 伪双口ram工作原理单口及RAM、伪双口RAM、双口RAM与FIFO的区别

    FPGA时序时序分析中的基本概念 FPGA设计中,常用到的数据缓存IP有FIFO和RAM,其中RAM又分单口RAM.伪双口RAM.双口RAM. 伪双口ram的工作原理,开始的时候以为有两个wea使能信 ...

  5. 单口RAM、伪双口RAM、双口RAM与FIFO的区别

    单口RAM.伪双口RAM.双口RAM与FIFO的区别 FPGA设计中,常用到的数据缓存IP有FIFO和RAM,其中RAM又分单口RAM.伪双口RAM.双口RAM.        单口与双口的区别在于, ...

  6. 单口RAM、双口RAM、FIFO三者的关系

    单口与双口 单口与双口的区别在于,单口只有一组数据线与地址线,因此读写不能同时进行:而双口有两组数据线与地址线,读写可同时进行:FIFO读写可同时进行,可以看作是双口: 简单双口RAM与真双口RAM ...

  7. 3 计算机组成原理第三章 存储系统 主存简单模型及寻址 半导体寄存器 存储器分类 主存与CPU连接 双口RAM和多模块寄存器

    文章目录 1 主存简单模型及寻址的概念 1.1 主存储器 1.1.1 存储器芯片的基本结构 1.1.2 寻址 2 半导体存储器 2.1 半导体随机存取存储器 2.1.1 DRAM的刷新 2.1.2 S ...

  8. FPGA:双口RAM

    Xilinx IP核构建双口RAM 双口RAM IP核配置 Verilog代码 top文件 testbench 仿真图 双口RAM 利用Xilinx提供的IP核构建真双口RAM,通过状态机实现从A口写 ...

  9. FIFO、单口RAM、双口RAM的区别

    FPGA设计中,经常需要用存储器来存储数据,目前常用的存储器有FIFO和RAM,其中RAM又分单口RAM与双口RAM,那么它们各自有什么区别呢? 双口RAM:双口RAM 是在一个SRAM 存储器上具有 ...

最新文章

  1. 【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)
  2. “上海名媛群”事件,我来说几句
  3. 关于封装了gevent的request grequest库的使用与讨论
  4. socket_循环发送消息
  5. 美团算法专家:入门机器学习,比你想的要简单
  6. 外部开发:部件属性 外部exe启动UG NX
  7. bootstrap --- 分页
  8. Confluence 6 配置服务器基础地址示例
  9. 使用Java 8和Lambda简化ReadWriteLock
  10. 智能运维监管系统终端_什么系统能实现机房智能运维?
  11. mysql教程排序_MySQL中的排序函数field()实例详解
  12. PyCharm主题更换
  13. Python基础教程,Python入门教程(非常详细)
  14. 逆向分析-010Editor
  15. 总算了解了什么叫云计算
  16. STP生成树协议(超详细小白也能看懂)
  17. 【云周刊】第130期:阿里研究院发布新网商五大预测,2020年将诞生第一个机器人网商?
  18. SpringBoot使用分布式锁
  19. 买外链有没有影响?会导致网站降权吗?玉米社
  20. sublime如何设置为中文?

热门文章

  1. JavaSE基础加强-学习黑马程序员Java基础视频教程(P93开始)
  2. Android7.0 Notification Show silently 阻止通知 定制
  3. item_search_img-按图搜索1688商品(拍立淘)接口的接入参数说明
  4. 单个java文件中引入jar包
  5. JAVA的AWT组件概述
  6. 【BZOJ3506】[CQOI2014] 排序机械臂(Splay)
  7. [css]switch开关按钮,适用于移动端和IE9火狐谷歌
  8. 基于TCP的网络聊天软件
  9. My SQL work bench的常见问题之——Could not acquire management access for administration
  10. 写给自己看的C4D建模笔记