分布式RAM
来源:互联网 发布:手机淘宝怎么看优惠券 编辑:程序博客网 时间:2024/04/30 09:04
1.SingleRAM
单口RAM的接口定义如下:
clk input 时钟信号
wr input RAM写使能信号,高电平表示写入
addr input RAM地址总线
din input RAM写入的数据总线
dout output RAM读出的数据总线
地址和数据一般是在clk的上升沿被锁存,当wr为高时,表示在该时钟周期要往地址为addr写入数据,在wr为低时,表示在该时钟周期要读出地址为addr的数据,数据将在下一个时钟的上升沿出现在dout上。需要注意的是,当wr为高,进行写入数据时,在下一个时钟的上升沿dout上将出现要写入的din的数据,换句话说,dout的数据总是前一个时钟周期的addr对应的数据。为了保证数据的稳定性,地址和数据应该在clk的上升沿前保持稳定。
一下为xilinx官方资料
Single-Port and Dual-Port RAMs
数据流
分布式RAM支持一下存储器类型:
1)单口RAM,同步写,异步读操作。使用与分布式RAM相关的filp-flop也可以实现同步读操作。
2)双口RAM,带有一个同步写和两个异步读端口。如上所述,同步读也是可能的。
附件中如图1所示,双口分布式RAM有一个读写端口和一个独立的读端口。
任何在数据输入端口D的写操作和在SPO输出端口的读操作,可以同时发生,而且与另一个只读端口DPO在读操作上是独立的。
写操作:
写操作是单个的时钟沿操作,有写使能WE输入控制,默认时,WE高有效,尽管在分布式RAM里它可以反向。当写使能为高时,在时钟沿锁存写地址,并且将输入端口D的数据写入到所选择的RAM位置。当写使能为低时,没有数据写入到RAM中。
读操作:
读操作是单纯的组合,单口或者双口RAM的地址端口与数据可用的时间是异步的,这个时间等价于LUT的逻辑时延。(翻译的不太准确)
A read operation is purely combinatorial. The address port—either for single- or dual-port
modes—is asynchronous with an access time equivalent toa LUT logic delay.
写操作时进行读(Read During Write)
当同步写入新的数据时,输出端为写进地址存储单元的数据,这样Spartan-3系列block RAM的写模式=write_first模式很相似。附件中的时序图说明了在写操作时,输出端口在时钟沿之前,为先前的数据,紧接着为新的数据。
特点:
1)写操作只需要一个时钟沿
2)读操作只需要逻辑的数据可用时间
3)输出时异步的,只依赖于LUT的逻辑时延
4)在写时钟下数据和地址输入被锁存,并且有时钟建立时间要求,没有保持时间要求。
5)对于双端口RAM,A[#:0]端口为写和读地址,DPRA[#:0]端口是独立的只读地址
信号端口
当读相同系列的存储单位时,每个分布式RAM端口的操作和其他的端口是相互独立的。
时钟-WCLK
时钟用来进行同步写操作,数据和地址输入引脚与相关的WCLK引脚有建立时间。默认时,内在的可编程极性决定了时钟的上升沿有效。
使能---WE
使能引脚影响端口的写功能,一个低电平WE禁止向存储单元的任何写操作。WE的高电平使得在时钟上升沿将输入数据写入到由地址输入端指定的存储单元。默认高有效。
地址----A0,A1,A2,A3(A4,A5,A6,A7)
输入的地址选择了读/写的存储单元,端口的宽度决定了所需的地址输入。
双口读地址---DPRA0,DPRA1,DPRA2,DPRA3
在RAM16x1D中,双端口地址输入选择在DPO输出的读操作存储单元,不影响写操作。
数据输入---D
数据输入提供了写入RAM的新的数据值。
数据输出---O,SPO,DPO
单口RAM的数据输出口O或者双口RAM的数据输出口SPO/DPO反映了由输入地址所指定的存储单元。 在写时钟的有效沿,数据输出(O/SPO)为新写入的数据,寄存器输出使用SLICEM内可用的的flip-flop。
反转控制引脚
两个控制引脚,WCLK和WE,每一个都有独特的反转操作。任何控制信号,包括时钟,可以为逻辑0有效(时钟的下降沿)或者逻辑1有效(时钟的上升沿),而不用要求其他的逻辑资源。
全局置位/复位-----GSR
全局置位/复位信号(GSR)不影响分布式RAM模型。
全局写使能----GWE
全局写使能信号,GWE,在设备配置的最后自动声明,来使能所有的可写单元。GWE信号保证了初始化的分布式RAM 中的内容在配置过程中不被干扰。GWE也用来确保分布式RAM在扩展的Spartan-3A系列FPGA处于睡眠模式时保持它的值不变。
- 分布式RAM
- 分布式RAM
- 关于FPGA中的块RAM和分布式RAM
- fpga资源中的block ram和分布式ram的区别
- ram
- RAM
- RAM
- RAM
- RAM
- 分布式RAM是如何产生的及其与Block RAM的区别
- FPGA基础知识3(xilinx CLB资源详解--slice、分布式RAM和Block ram)
- FPGA基础知识3(xilinx CLB资源详解--slice、分布式RAM和Block ram)
- distributed ram && block ram
- 62256RAM
- Static RAM
- Ram story
- ROM RAM
- RAM阵列
- python爬虫程序,由根目录一直爬各个网址
- 女程序猿到此一游
- 连接数据库
- java之-命令模式
- 微信网页开发问题汇总
- 分布式RAM
- 第三十篇:控制器的生成与多控制器的管理
- 父类子类之间的一个经典题目(有关成员变量何时赋值和在哪里赋值的问题)
- 数塔DP
- pygame编写的坦克游戏(一)
- King's Sanctuary
- cf#324 Div.2 Problem C Marina and Vasya
- [LeetCode-160] Intersection of Two Linked Lists(找到两链表公共交叉点)
- [面试金典]顺时针打印矩阵