大家知道,对于maxII的应用中,对UFM(user flash memory)的操作很重要。这里讲讲我这两天做的一个小实验,希望与大家交流交流。
我所采用的开发板是altera公司的epm1270开发板。采用UFM的parallel protocol,若对其不了解,可先参考max II的handbook.
(1)应用Quartus中的megafunction功能,生成一个地址宽度9、数据宽度16、read only类型的并行接口模块以及初始化文件.mif。
(2)根据开发板例子改编程序
最后生成的.bdf如下
程序如下:
仿真图形如下:
[此贴子已经被作者于2006-3-27 14:58:24编辑过]
我上面的clock为10ns
疑问就是maxII的handbook有这么一个图
其中里面注释:
600ns<Tcommand<30000ns
Thnbusy<300ns
Thbus>600ns
但不管我的clock设为10ns,还是20ns,30ns,上面的仿真波形中Tcommand都为5us多
不知道为什么?但读数很准确。
[此贴子已经被作者于2006-3-27 15:14:46编辑过]
下面总结一下:
UFM的读取基本时序为:
(1)nrd 1->0;
(2)判断data_valid是否变高,变高则锁存数据do;否则等待;
(3)addr增1; (4)nrd 0->1;
(5) 重复以上操作,直到读出全部数据。
这就是说,UFM接口模块实际上是在nrd信号的上升沿锁存地址数据,在nrd的下降沿启动内部读过程。
呵呵,希望有高人可解决我的问题。有希望交流者可进群:19972261,或加qq:53579621(请注明为cpld)
[此贴子已经被作者于2006-3-27 15:26:09编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |