版主: 51FPGA |
heiyux
![]()
最后登陆时间:2015-01-22 10:54:26 |
大家好, 关键词:关于 用户 接口 读数 问题 数据 地址 |
heiyux
![]()
最后登陆时间:2015-01-22 10:54:26 |
初始化phy_init信号是否已拉高?
MIG生成的example design是否已经跑通? 使用DDR模型搭建仿真是否正确? 已给你发邮件,但一些不是十分复杂的问题,我想还是在论坛讨论吧,说不定可以帮助更多的人 |
heiyux
![]()
最后登陆时间:2015-01-22 10:54:26 |
回复besomeone【4楼】: |
heiyux
![]()
最后登陆时间:2015-01-22 10:54:26 |
不好意思这几天没上论坛。
1. 模组型号的选择,我说的参数按照你的目标DDR修改就是指这个型号的选择,在选择型号的时候,型号列表里没有你的目标模组的型号的话,要选用一个参数比较相近的型号,作为模板,然后选custom...(具体的名字记不清了)然后根据你的模组的一些具体参数修改那些参数的值。 2. UCF的update,MIG生成的UCF使用的引脚分配是你选择的bank中从上到下按顺序分的,而你的板卡上八成不是这样的,但你不能只是将其生成的UCF中关于location的约束改掉而不管其他的,你需要自己写一个只有location约束的ucf,然后使用MIG的update功能将这个ucf导入,让其重新生成一个根据你的location约束的UCF文件。 3. 你使用的是ML555?SODIMM和RDIMM只是两种不同的模组而已,我用的是SODIMM,封装比较小,就是笔记本内存条。 4. 地址的选用没问题,按burst来就可以了。 5. 推荐你接下来的工作: 1. 将我上面提到的1. 2.两点做好。 2. 生成MIG中使用PLL或者DCM(这样接口比较简单)。 3. 使用MIG生成的example design,他这个设计中包含的就是生成几个数和几个地址,将数写入DDR, 然后再读出来,与写入的对比一下,对不上就将error信号拉高。这个设计调用什么的都已经设计好,你就将example design做为顶层,提供一个200MHz的delay_ctrl时钟和一个操作时钟就可以了,当然DDR的相关接口连上,复位信号连上。 总之,调试要记住用排除法,一步一步来。慢慢找错误。 |
heiyux
![]()
最后登陆时间:2015-01-22 10:54:26 |
xie0jing0的原帖 用chipscope看的话也不是很可靠了,这么高的频率,还是程序里用自己的逻辑自检一下比较好。 两三百M的频率没问题的。 |
heiyux
![]()
最后登陆时间:2015-01-22 10:54:26 |
1. 最好使用与数据同源的时钟,或者使用比被采样信号频率高出很多的时钟(适用于有些情况,同源是最好的,但高时钟可采到毛刺等不确定现象),175MHz彩出来如果是8'h55,8'haa的话,那么350MHz彩出来就是8'h55, 8'h55, 8'haa, 8'haa,当然前提是这两个时钟是同相位的,并跟数据同源,不然相位上有偏移有可能会造成采数错误。
2. 前期调试可以单调DDR部分,这样布线资源不紧张,一般这些不用太考虑,将mig生成的约束弄好就可以了,后期项目整合看情况约束。 3. 你指的是底层的DQ信号么?没有抓过,不太清楚。 4. 读命令就是001吧?你再看看datasheet,你不需要写读写逻辑,直接使用examlpe就可以了,他写的肯定是对的,先不要增加你自己都不确定对不对的东西上去,那样错了都不知道哪里的问题。 |
heiyux
![]()
最后登陆时间:2015-01-22 10:54:26 |
仿真很方便的,xilinx都给写好了,原型调用不用你写,很复杂,sim文件夹里有一个sim_tb.v吧好像,具体名字可能记不对了,人家都给你写好了,仿真那个example的和仿真user design的都有,你使用SIM.EXE或者sim.do或者自己建modelsim工程都是很方便的。仔细看datasheet啊!这些datasheet里说的很明白的,关于MIG生成都有什么文件,仿真应该怎么做,什么的, |
heiyux
![]()
最后登陆时间:2015-01-22 10:54:26 |
sim.exe是xilinx写好的一个程式,其实生成的核你什么都不用动,直接用点sim或者用sim.do就可以仿真了,不过我用过的MIG2.3生成的时候没有DDRII模型,需要自己去下一个来,其他的可以都不用动, |
heiyux
![]()
最后登陆时间:2015-01-22 10:54:26 |
|
heiyux
![]()
最后登陆时间:2015-01-22 10:54:26 |
lijinling33的原帖 你好,我用的是MIG3.0,MIG对读取的数据的接口有一个rd_data_valid信号,我想问一下,这个rd_data_valid信号是否由控制信号cmd来控制的,而且貌似是ddr2给过来的,也出现有些数据没有来得及读回的现象,但是只要读数据有效则读回的数据确实又是对的,可否一起讨论一下呢?我的邮箱是lijinling33@163.com 读有效信号是读地址及读命令写入FIFO之后一定延时之后,待DDR控制器将数读出后随数据同步有效的,是DDR控制器产生的信号, |
共10条 1/1 1 |