
王翰林 2010-05-08
1 控制部分:使用clk180 ,包括 、、
2 数据和地址部分:使用clk ,包括data,addr
(Clk180为clk的180°相位差时钟,我当时用的是时钟下降沿,但是现在我觉得还是用pll生成一个180相位差的clk,用上升沿采样信号更稳定)
在控制部分有效前,数据、地址必须准备好。
、 、一直拉低 CE2一直拉高, 保证ssram片选一直有效,并且单bit写无效
为burst有效模式,如果为非burst模式,建议一直拉高
1 写操作
DE2-70 SSRAM datasheet P19
写数据使用一个cycle 图中对应 WR3
一直拉高
写操作控制cycle,使用clk180
拉高
拉低
拉低
Data 和 addr 比上述三个信号提前180°的相位,使用clk
2 读操作
DE2-70 SSRAM datasheet P18
读数据使用3个cycle,第一个cycle给控制信号和addr,第三个cycle 输出数据(数据输出时钟为控制时钟clk180,对应RD1
第一个cycle addr 锁存周期
Clk时钟
Addr数据有效
Clk180时钟
拉低
无影响,任意(忘了当时是持续拉低还是持续拉高了,从时序图看应该无影响,建议拉高置为无效,避免多余影响)
拉高
拉高
第二个cycle ssram内部数据读取锁存周期
Clk时钟
Addr数据无所谓
Clk180时钟
拉高
拉高
拉高
拉高
第三个cycle 数据输出周期
Clk时钟
Addr数据无所谓,
Clk180时钟
拉高
拉高
拉高
拉低
此周期数据读出
以上为读取一个数据,若需要连续读取若干个数据,在第二个cycle,clk时钟更新addr数据,clk180时钟继续使拉低有效,读数据将连续输出
总结
总体设计未使用burst模式,若需高速存储建议使用高速模式,使用、、、对操作进行控制,写操作采用addr和data在同一周期采样的方式。
结论和不足
刚开始控制信号和addr,data使用同一clk,但是数据无法写入和读出,modelsim仿真无误,未使用逻辑分析仪,原因未知。
采用180°的相位差时钟,数据可以正确写入和读出,modelsim仿真无误,未使用逻辑分析仪验证,使用RS232与PC相连,验证了写入数据和读出数据相同。
原因分析
个人认为按照datasheet 的时序图,控制信号、addr和data应该使用同一clk,也较符合一般的设计要求。
应该是没满足片外的时序关系,建议:增加源同步时序约束,在时序报告中看看具体的情况。开发板的片外时钟和数据应该是同时到达FPGA芯片,那问题就出在FPGA芯片内部时钟管脚和数据管脚的delay不匹配,增加IOdelay可解决问题(由于一年前使用此开发板,问题未到无法解决的地步,所以没使用IOdelay的方法)
