fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2666回复:17

9054测试本地SRAM问题,给分!摆脱各位XDJM!

楼主#
更多 发布于:2004-03-30 11:11
    我想测试本地SRAM是否能正常读写,可是遇到很困惑的问题,还望各位XDJM集思广益,帮忙看看!
plxmon和windriver工具都用过,现象都一样:(2个工具在不同操作系统中,没有同时使用!)
    用windriver时对bar0,bar1是没问题的,但是对bar2和bar3操作就不行.按write按扭到是可以,但感觉是没写进去,如果一按read就死机!个人感觉象是在等待什么信号似的.
    用plxmon工具也是同样的现象:如果Displaying(或write) Memory Via I/O Cycles, (il, iw, ib)/(ol, ow, ob),对S0,S1操作都还行.但是如果Writing Memory Via Memory Cycles, (el, ew, eb),就是写,似乎没写入.而一读,Displaying Memory Via Memory Cycles, (dl, dw, db)就死机.我都做了好多的本地逻辑了,可是就是不行!

    参照了PLX_RDK的Verilog HDL代码,还是不行.而且很奇怪的是,他程序中,SRAM地址不是直接和9054la连接的,而是在CPLD内部做了个地址计数器,自增地址.为什么会这样?我个人理解是把SRAM和9054地址直接相连就可以了,9054在读写时,自动增加地址位,不知道是不是这样?希望大家援手!
    给分,谢谢!

最新喜欢:

kiki_mekiki_m...
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-30 11:36
如果用的是异步SRAM,那就只好配置延迟,并且不使能ready,bterm,最好ready和bterm都拉低,总的说来,如果还是使用以往的地址译码逻辑,系统性能好不到哪里去。
兄弟们,给点分吧
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-30 12:24
谢谢jst7792兄,给分先.
你说的没错,我就是使用的异步SRAM,不过我还有问题想请教的是我的是单口SRAM,你所说的配置延迟是什么意思?(是指SRAM的读写使能信号延迟在地址稳定之后?还是什么?)

还有你所说的"如果还是使用以往的地址译码逻辑,系统性能好不到哪里去"中,"使用以往的地址译码逻辑"是什么意思?


aha_here
驱动小牛
驱动小牛
  • 注册日期2003-10-11
  • 最后登录2009-03-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-03-30 13:46
他实现类似FIFO的东西。应该是你的本地端READY信号没下拉。最好设置几个等待周期,不然买个快的存储器
[size=3][color=red]勤学好问[/color][/size] [img]http://www.driverdevelop.com/forum/avatar/aha_here_xiao_zu.gif[/img]
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-03-30 14:44
aha_here兄:

"他实现类似FIFO的东西。"
----(他是指的什么?)
"应该是你的本地端READY信号没下拉。最好设置几个等待周期,不然买个快的存储器"
在rdk中ready可是上拉的啊!我的ready是通过本地逻辑输出低信号的.而且我的存储器虽然是异步的,可是是高速的!
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-03-30 14:50
还有jst7792兄:
你说的ready信号disable的问题,我在之前也尝试过.现象是:表面上能够读写(就是读bar2,bar3不会死机,也能写)可是,给我的感觉就是读的根本不是我本地的SRAM,读出的是全F,写到是可以,但不管写什么读出来的都是全F.
这是为什么?ready到底起了什么作用?!
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-03-30 16:56
为什么今天老是说我没有登陆!怎么回事?!
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-04-01 08:29
换个频率低的晶振。
兄弟们,给点分吧
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-04-01 11:30
谢谢斑竹指点,今天捣鼓了一上午,终于有点变化了!
修改了eeprom的值,能够对bar2,bar3读写了,但是还是不对,读出的和写入的不一致!而且,写肯定是没问题的,但是读只能读几次,有的时候读的次数多了也死机,(从没超过10次,运气不好第一次读就死机)并且读出数据都是全F!
因此我怀疑以下涉及问题:
1,eeprom的配置,最后一次修改的eeprom后,BIOS自检在PNP的时候停住,进不了系统了
请教斑竹,能发给我份eeprom(要求一般的读写操作)做参考么?我只是想做下研究和对比.
fanchao41@126.com     谢谢!
2,就是斑竹你说的时序问题,读写没对,我正在继续研究.
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-04-01 11:31
另外在问个其他问题,斑竹,为什么系统老是说我没登陆?我真是想给分都给不出去啊!不会是我的分都没了吧?!
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-04-01 16:44
现在终于明白了,主要问题还是在本地逻辑的时序问题:
我本地是16位,在eeprom里设置本地为32位的时候,通过MEM映射或IO读写bar2 ,bar3都可以,通过MEM映射方式,我估计写是没写进去,我想问下这时候读出的数据都是FFFF 0000的数据,这些数据都是哪里的数据呢?是主机分配给我的MEM空间里的数据,还是我本地SRAM的数据?(我自己认为是SRAM的可能性很小)
但是,通过IO方式对bar2,bar3操作,写什么进去读出什么数据,那么我又很困惑,这时候操作的空间又是什么空间?

如果eeprom设置为16位,IO能正常操作bar2\bar3,
通过MEM映射方式,只能写,一读就死机.为什么?!
bestrafi
驱动牛犊
驱动牛犊
  • 注册日期2003-05-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-04-01 18:05
to fanchao41:
   我的问题和你差不多,也是读端口有问题,一读BAR2(映射到板卡上的局部地址空间)就挂机。
    不过我估计是没有接局部时钟lclk导致的(没有验证)。
    我怀疑因为使用了异步sram,你是不是也没有接lclk。
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-04-01 20:28
bestrafi:
     我有本地时钟,并按照斑竹的建议换了低频率的
你本地是多少位的?我的是16位的.你写有问题么?只是读有问题?

我也觉得是时序的问题,也许就是异步SRAM的问题,可谁知道呢?我正在修改本地逻辑
bestrafi
驱动牛犊
驱动牛犊
  • 注册日期2003-05-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-04-03 21:53
to fanchao41:

   我的本地时钟是FPGA供给的,差不多20M吧。还没有加,所以读的时候会hang机,我想可能是内部的等待状态寄存器不能置零所致。

   我的本地数据是8位的,写没有hang机,但是不知道有没有问题。对了,你的等待状态寄存器设置了吗?好像要改动的,设置成903好像,时间越长越好。

   还有看看你有没有使能ready#信号(我disable了ready#和bterm#信号)。如果使能了,那么要控制ready#信号有效,否则也有可能hang机。

   不知道对你有没有帮助,我也是初学者。^_^
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-04-05 09:04
呵呵,谢谢bestrafi,我的问题很大的可能在于本地逻辑了,我现在正在修改,ready信号我使能了的,对ready有控制.
你说的内部等待寄存器的问题我没考虑到,下来再看看吧!
不管怎么说还是谢谢了!


fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-04-06 22:13
问题打结:
归根到底还是本地逻辑的问题.不过不是我写错了,而是我机子的问题!我怎么也没想到我的机子加载程序的过程是正常的,一点异常都没有,可是真的没加载上,把我给郁闷的,查了好几遍的程序,就是没想到那一点去.后来我做了个时钟分频,用示波器看,居然没输出,狂ft!我开始还怀疑是FPGA被烧了!
后来WWGUANG网友提醒了我一下,换了台机子,一下成功了,现在读写都正常了,这里要感谢WWGUANG网友的帮助!
fanchao41
驱动小牛
驱动小牛
  • 注册日期2003-12-18
  • 最后登录2005-02-05
  • 粉丝2
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-04-06 22:14
这里请教斑竹,为什么系统老是说我没登陆?也给不了分了?
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-04-07 08:27
这里请教斑竹,为什么系统老是说我没登陆?也给不了分了?

不清楚。
兄弟们,给点分吧
游客

返回顶部