1、FPGA中双口RAM的基本概念

  在FPGA的设计中,常用的数据缓存IP有FIFO和RAM,其中RAM又分为单口RAM,伪双口RAM和双口RAM。

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

  伪双口RAM(Xilinx称为Simple two-dual RAM),一个端口只读,另一个端口只写。

  双口RAM(Xilinx称为True two-dual RAM),其两个端口都支持读写。

2、双口RAM的时序总结

  • 写数据时,双口RAM的存储时在写时钟的上升沿到来时完成的。因此要在写时钟的上升沿到来前,数据跟写地址都已经是一个稳定的状态,即要准备好数据线和地址信号,这样才能保证数据的正确存储。
  • 读数据时,双口RAM的读取是在读时钟的上升沿到来前完成的,因此要在都市中的上升沿到来时,读地址已经处于稳定的状态,这样才能保证读到的数是相应地之内的数据,数据在读时钟的上升沿到来后输出。
  • 对于双端口RAM的数据输出,对于一个地址上数据会在读下一个地址的数据是才输出到数据线上,相当于数据的真正输出延时读时钟一个时钟周期。
  • 读地址模块的使能应延时的输出使能一个时钟周期,使得第一个地址0可以保持被时钟上升沿采集到,否则,输出时第一位输出不稳定的数据。

3、双口RAM的一些特点

  如果同时访问双口RAM的统一存储单元,必然会造成数据访问失真。为防止冲突的发生,采用Busy逻辑控制,也称硬件地址仲裁逻辑。此处只给出了地址总线选通信号线与片选脉冲信号的情况。而且,两端的片选信号至少相差仲裁最小时间间隔,内部仲裁器逻辑控制才可给后访问的一方输出Busy闭锁信号,将访问权交给另一方直至结束对该地址单元的访问,才撤销Busy闭锁信号。即使在极限情况,两个CPU几乎同时访问同一单元----地址匹配时片选信号低调变之差少于仲裁最小时间间隔,Busy闭锁信号也仅输出给其中任一CPU,只允许一个CPU访问该地址单元。仲裁器控制不会同时向两个CPU发Busy闭锁信号。

  存储单元数据块的访问权限分配至允许在某一时间段内由1个CPU对自定义的某一数据块进行读写操作,这将有助于存储数据的保护,更有效地避免地址冲突。信号量仲裁闭锁就是一种硬件电路结合软件实现访问权限分配方法。

  为了提高数据的交换能力,有些双端口RAM采用,命令交换逻辑来通知对方。

FPGA设计中RAM的一些基本概念相关推荐

  1. FPGA设计中,跨时钟域问题的处理

    FPGA设计中,跨时钟域问题的处理 今天和大侠简单聊一聊FPGA设计中跨时钟域问题的处理,话不多说,上货. 跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPG ...

  2. FPGA设计中BRAM(Block RAMs)资源的使用(综合为BRAM)

    FPGA设计中BRAM(Block RAMs)资源的使用   RAM分为BRAM(Block RAMs)和DRAM(Distributed RAM),即块RAM与分布式RAM,这两个差别在于BRAM是 ...

  3. (130)FPGA面试题-FPGA设计中波特率和比特率的区别

    1.1 FPGA面试题-FPGA设计中波特率和比特率的区别 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FPGA设计中波特率和比特率的区别: 5)结束 ...

  4. (139)FPGA面试题-FPGA设计中的速度和面积互换原则

    1.1 FPGA面试题-FPGA设计中的速度和面积互换原则 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FPGA设计中的速度和面积互换原则: 5)结束 ...

  5. 防止FPGA设计中综合后的信号被优化

    这不是一个新话题了,写这个也是当作自己的一个小小的笔记吧!觉得挺有用的. 一般在做前仿真(即功能仿真)时,不会考虑信号被优化的问题.最近做一个关于运算的小程序,前仿真的数据没有问题,但是实际出来的数据 ...

  6. FPGA设计中,产生LFSR伪随机数

    今天给大侠带来在FPGA设计中,产生LFSR伪随机数,话不多说,上货. 一.概述 通过一定的算法对事先选定的随机种子(seed)做一定的运算可以得到一组人工生成的周期序列,在这组序列中以相同的概率选取 ...

  7. FPGA设计中,Vivado 调用IP核详细操作步骤

    FPGA设计中,Vivado 调用IP核详细操作步骤 今天给大侠带来了FPGA设计中,Vivado 调用IP核详细操作步骤,话不多说,手把手教学,请往下看. 首先咱们来了解一下vivado的IP核,I ...

  8. 简谈FPGA设计中不同设计方法资源消耗对比

    简谈FPGA设计中不同设计方法资源消耗对比 今天和大侠简单聊一聊FPGA设计中不同设计方法硬件资源消耗对比,话不多说,上货. 在这里,我们使用Verilog HDL 设计计数器,通过两种不同的写法,对 ...

  9. 关于FPGA设计中的线性序列机和状态机

    在FPGA设计中,线性序列机和状态机思想是十分重要的思想方法,用于实现各种时序要求.这次的内容是实现用FPGA,时钟周期为20ns,每间隔5000ns发送一个字节的数据,数据不从外部接入,而是内部给定 ...

最新文章

  1. 科大星云诗社动态20210521
  2. c#组元(Tuple)的使用
  3. cmos图像传感器应用实例及其发展趋势分析
  4. 怎么调节手机的刷新率_【W21 5G性能篇】120Hz自适应刷新率,用了再也回不去
  5. Educoder Java面向对象 - 常用类
  6. 用foobar2000播放服务器文件,用Foobar2000打造网络电台
  7. 微商怎么引流被加精准粉?微商有效引流被加方法
  8. CocosCreator Shader Editor 2D/3D 特效编辑器
  9. centos7下docker-mysql5.7实现主从复制(精简教程)
  10. 穿山甲android对接错误码40029,空Android项目集成Cocos、穿山甲。Lua调用网络接口。...
  11. 华为手机坏了数据怎么导出_苹果手机的语音备忘录怎么导出来?
  12. 重磅!镭速传输Raysync发布11项全新功能
  13. C#获取汉字拼音或首字母
  14. 新冠疫情历史数据(COVID-19-Data)
  15. ChatGPT替代品使用指南
  16. 理论+实操:K8S的pod健康检查——live、ready、startup
  17. mysql校验日期是否有效_Mysql 根据出生日期计算年龄 判断起始日期是否在某个有效时间段内等日期Hack汇总...
  18. MIRO BAPI_INCOMINGINVOICE_CREATE1 报错 MRM_INVOICE_TAXES_SAVE
  19. 安装ps显示检测到计算机,修复:win10下Photoshop遇到显示驱动程序问题
  20. STM32F103RCT6 实验代码之舵机+超声波避障小车(一)杂谈+电机+L298N

热门文章

  1. boost::type_erasure::addable相关的测试程序
  2. boost::insert相关的测试程序
  3. boost::multiprecision模块cpp_complex相关的测试程序
  4. boost::mpi::wait_all相关用法的测试程序
  5. boost::geometry::reverse_dispatch用法的测试程序
  6. boost::iterator的用法测试实例
  7. DCMTK:演示状态的VR和IOD检查器
  8. DCMTK:DcmOtherLong类的测试程序
  9. VTK:可视化之LODProp3D
  10. VTK:网格之WindowedSincPolyDataFilter