FPGA设计中RAM的一些基本概念
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的一些基本概念相关推荐
- FPGA设计中,跨时钟域问题的处理
FPGA设计中,跨时钟域问题的处理 今天和大侠简单聊一聊FPGA设计中跨时钟域问题的处理,话不多说,上货. 跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPG ...
- FPGA设计中BRAM(Block RAMs)资源的使用(综合为BRAM)
FPGA设计中BRAM(Block RAMs)资源的使用 RAM分为BRAM(Block RAMs)和DRAM(Distributed RAM),即块RAM与分布式RAM,这两个差别在于BRAM是 ...
- (130)FPGA面试题-FPGA设计中波特率和比特率的区别
1.1 FPGA面试题-FPGA设计中波特率和比特率的区别 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FPGA设计中波特率和比特率的区别: 5)结束 ...
- (139)FPGA面试题-FPGA设计中的速度和面积互换原则
1.1 FPGA面试题-FPGA设计中的速度和面积互换原则 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-FPGA设计中的速度和面积互换原则: 5)结束 ...
- 防止FPGA设计中综合后的信号被优化
这不是一个新话题了,写这个也是当作自己的一个小小的笔记吧!觉得挺有用的. 一般在做前仿真(即功能仿真)时,不会考虑信号被优化的问题.最近做一个关于运算的小程序,前仿真的数据没有问题,但是实际出来的数据 ...
- FPGA设计中,产生LFSR伪随机数
今天给大侠带来在FPGA设计中,产生LFSR伪随机数,话不多说,上货. 一.概述 通过一定的算法对事先选定的随机种子(seed)做一定的运算可以得到一组人工生成的周期序列,在这组序列中以相同的概率选取 ...
- FPGA设计中,Vivado 调用IP核详细操作步骤
FPGA设计中,Vivado 调用IP核详细操作步骤 今天给大侠带来了FPGA设计中,Vivado 调用IP核详细操作步骤,话不多说,手把手教学,请往下看. 首先咱们来了解一下vivado的IP核,I ...
- 简谈FPGA设计中不同设计方法资源消耗对比
简谈FPGA设计中不同设计方法资源消耗对比 今天和大侠简单聊一聊FPGA设计中不同设计方法硬件资源消耗对比,话不多说,上货. 在这里,我们使用Verilog HDL 设计计数器,通过两种不同的写法,对 ...
- 关于FPGA设计中的线性序列机和状态机
在FPGA设计中,线性序列机和状态机思想是十分重要的思想方法,用于实现各种时序要求.这次的内容是实现用FPGA,时钟周期为20ns,每间隔5000ns发送一个字节的数据,数据不从外部接入,而是内部给定 ...
最新文章
- 科大星云诗社动态20210521
- c#组元(Tuple)的使用
- cmos图像传感器应用实例及其发展趋势分析
- 怎么调节手机的刷新率_【W21 5G性能篇】120Hz自适应刷新率,用了再也回不去
- Educoder Java面向对象 - 常用类
- 用foobar2000播放服务器文件,用Foobar2000打造网络电台
- 微商怎么引流被加精准粉?微商有效引流被加方法
- CocosCreator Shader Editor 2D/3D 特效编辑器
- centos7下docker-mysql5.7实现主从复制(精简教程)
- 穿山甲android对接错误码40029,空Android项目集成Cocos、穿山甲。Lua调用网络接口。...
- 华为手机坏了数据怎么导出_苹果手机的语音备忘录怎么导出来?
- 重磅!镭速传输Raysync发布11项全新功能
- C#获取汉字拼音或首字母
- 新冠疫情历史数据(COVID-19-Data)
- ChatGPT替代品使用指南
- 理论+实操:K8S的pod健康检查——live、ready、startup
- mysql校验日期是否有效_Mysql 根据出生日期计算年龄 判断起始日期是否在某个有效时间段内等日期Hack汇总...
- MIRO BAPI_INCOMINGINVOICE_CREATE1 报错 MRM_INVOICE_TAXES_SAVE
- 安装ps显示检测到计算机,修复:win10下Photoshop遇到显示驱动程序问题
- STM32F103RCT6 实验代码之舵机+超声波避障小车(一)杂谈+电机+L298N
热门文章
- boost::type_erasure::addable相关的测试程序
- boost::insert相关的测试程序
- boost::multiprecision模块cpp_complex相关的测试程序
- boost::mpi::wait_all相关用法的测试程序
- boost::geometry::reverse_dispatch用法的测试程序
- boost::iterator的用法测试实例
- DCMTK:演示状态的VR和IOD检查器
- DCMTK:DcmOtherLong类的测试程序
- VTK:可视化之LODProp3D
- VTK:网格之WindowedSincPolyDataFilter