SSram读写时序分析
来源:互联网 发布:网络游戏客户端编程 编辑:程序博客网 时间:2024/06/01 15:24
- SSram引脚
output reg Ssram_Clk;
output reg [20:0] Ssram_Addr;
inout [23:0] Ssram_Data;
output reg Ssram_OEn;
output reg Ssram_GWn;
output wire Ssram_CE2n;
output wire Ssram_CE2;
output wire Ssram_CEn;
output wire Ssram_Mode;
output wire [3:0] Ssram_BWn;
output wire Ssram_BWEn;
output reg Ssram_ADSCn;
output reg Ssram_ADSPn;
output wire Ssram_ADVn;
output wire Ssram_ZZ; 引脚配置
assign Ssram_CE2n=1’b0;
assign Ssram_CE2=1;
assign Ssram_CEn=0;
assign Ssram_Mode=0;
assign Ssram_BWn=4‘b0000;
assign Ssram_BWEn=1;
assign Ssram_ADSCn=0;
assign Ssram_ADSPn=1;
assign Ssram_ADVn=1;
assign Ssram_ZZ=0;引脚配置分析
SSram内部结构如下图所示
下面分别从地址控制、数据控制、读写控制、其他共4个部分进行讲解
- 片选信号
/CE、CE2、/CE2,这三个信号是片选信号,使用 过程中直接配置为选中芯片即可,分别设置为0,1,0
分析:
从图中粉色方框可以看出如果任一片选信号不被选中,其与读写信号通过“与”逻辑,则读写信号被锁定无效,芯片无法正常读写
- 睡眠模式信号
ZZ:睡眠控制信号
分析
睡眠模式用于降低功耗,不使用的话就直接拉低即可
- 地址控制信号
/ADV:自动突发地址(A0,A1)计数片选
/ADSP:自动突发地址(A0,A1)计数清0(与/ADSC和/CE配合)
/ADSC:自动突发地址(A0,A1)计数清0
/MODE:自动突发地址(A0,A1)计数方式(顺序计数,格雷码计数)
分析
实际使用中不使用自动地址功能,因此/ADV拉高,计数器停止工作;/ADSC拉低,强制计数器清0,使其输出结果A0,A1与实际地址的A0’,A1’做异或的时候不改变地址,也即是由自己控制地址的低两位;由于/CE已经拉低,/ADSP必须拉高,否则其非->与结果恒为1,会影响/GW写信号;/ADV屏蔽计数功能后,/MODE为0或者1无关紧要。
- 写控制信号
/GW:写使能控制信号(与/BWE,/BW(a-x)配合)
/BWE:写使能控制信号
/BW(a-x):写使能控制信号
分析
BWE和BW(a-x)配合用于字节读写,实际使用中不使用字节读写功能可以屏蔽该功能。如上图蓝色方框所示,当/BWE拉高时,/BW(a-x)无效,字节读写功能被屏蔽,所有位都同时读写,此时读写控制由/GW完成;/GW拉低,进行写功能
- 读控制信号
/OE:数据输出使能信号,低电平有效
分析
如上图中绿色方框所示,当片选有效且无写操作的时候,/OE信号就能控制数据是否能被输出到芯片的数据引脚上,实际上其内部数据是一直输出的,由于读写数据线共用,因此用/OE来控制读写数据线争用问题。当/OE有效时,内部存储器数据通过三态门输出到芯片数据引脚上,否则数据输出通路断开。
- 写时序
从图中方框可以看出,写地址、写数据、写控制信号都经过了一个寄存器,因此在写数据时候三个信号应该边沿对齐,比时钟信号提前一定的相位(根据实际情况调整,大多数情况下提前180°,也即反相时钟即可)
- 读时序
注:读写时序完全可以参照芯片手册,本例致力于简化操作
从上图中可以看出读地址经过一个SSRAM芯片时钟寄存一次,其输出数据点如图中A点所示,A点数据同样经过芯片时钟寄存一次,然后通过三态控制器输出,其读时序如下图所示,信号说明如下:
- clock:FPGA逻辑时钟
- addr:ssram地址线引脚
- A data:A点输出数据
- B data:B点输出数据
- OEn:ssram数据输出使能信号
- ssram clock:ssram时钟引脚
- data valid:读取数据有效
- data valid2:读取数据有效信号经过ssram时钟同步
- read data:B点数据经过ssram时钟同步,也即是FPGA读出的数据
ssram clock上升沿采集到addr1地址后,延迟一段时间于A点输出A data,data1数据经过下一个ssram clock时钟上升沿寄存一次,经过三态门输出到B点B data,B点数据相对于时钟上升沿延迟一段时间叫clock access time,时钟上升沿之后数据保持时间为clock high to data invalid,本例中使用的是用ssram clock时钟对数据进行寄存一次,输出如read data所示。
想要输出数据稳定,ssram clock上升沿采集到的地址数据要足够稳定,因此ssram clock与clock要选择合适的相位延迟,大多数直接选择反相时钟(相位延迟180°),本例中选择相位延迟180°时,通过signalTab观察单个地址读写会有误码现象,数据输出不够稳定,相位延迟240°可保证数据稳定输出。
注:ssram的地址信号有两类:同步地址A(Synchronous Address Inputs)和同步突发地址A0,A1(Synchronous Burst Address Inputs),其中A0,A1用于突发数据,若不使用该功能,A0,A1必须接地址的最低位。A地址则无高低位之分,地址设置如:A0,A1,A,A,A,…A
- SSram读写时序分析
- 关于利用verilog 编写ssram的读写时序时遇到的问题
- 时序分析
- 时序图读写总结
- DDR3读写时序
- S3C2440的读写时序
- I2C读写时序
- I2C读写时序
- I2C读写时序
- 基于FPGA EEPROM读写实现及IIC总线协议和时序分析
- IIC的读写时序问题
- 原理图和时序分析
- LVDS时序分析
- LCD屏时序分析
- I2C时序分析
- IIC时序分析
- UML_时序分析
- I2C 时序分析
- Python爬虫:Selenium+ BeautifulSoup 爬取JS渲染的动态内容(雪球网新闻)
- 好看的HR
- 测试人员技术体系
- reasonsfor Locking Statistics
- Netty3服务端流程简介
- SSram读写时序分析
- 认识大数据,盘点5款数据可视化工具
- Linux在Xilinx FPGA上的移植
- Java——创建进程
- 微信小程序开发中走过的坑(二)
- Windows7下TensorFlow安装
- 测试不同格式下depth buffer的精度
- register_shutdown_function的使用
- android MotionEvent getAction,getActionMasked,getActionIndex区别