本帖最后由 snk12 于 2013-5-10 12:52 编辑
改infrastructure_inst中的pll_adv, 不要用mig生成的, 使逻辑时钟跑在62.5M左右, 即CLKOUT2, , 怎么说呢
pll_adv共生成了4个时钟,前2个用于ddr,一个给系统逻辑。 你的系统要用到的就是这个时钟,其实就是个操作fifo的读写时钟。
比如你的输入时钟是125M, 你想DDR2跑在500M, 假设你就用了一个fifo的模式,128位,每时钟操作就是16字节,那逻辑时钟跑在62.5M就够了,62.5*16=1000M是你的最大带宽,如果要800M的话,那逻辑时钟要设成100Mhz才不会浪费ddr2的带宽
PLL_ADV设成这样DIVCLK_DIVIDE=1, C_CLKFBOUT_MULT=4,CLKOUT0_DIVIDE=1,CLKOUT1_DIVIDE=1,CLKOUT2_DIVIDE=8
不用抓DQ位的,抓Fifo出来的数据,然后错误位号%16取余就能得到DQ位
你的问题是你不去看文档资料就在这提问, 这种涉及很多细节需要 看文档, 别人很难回答的全面
你还是先看下xilinx的mig文档吧,那上面说的很清楚的。
或网上有一篇介绍使用ddr2的**,应该能让你知道mig时钟是怎么回事。
http://www.**.com/mayMAN/blog/10-03/186414_eb41d.html |