DDR2 ip调试问题集合

一、 问题描述

ERROR:NgdBuild:455 - logical net 'clk400m_p' has multiple driver(s)

ERROR:NgdBuild:455 - logical net 'clk400m_n' has multiple driver(s)

解决办法

DDR生成后有一个顶层的源文件,在那里面找到一个关于原语写的BUFG也不知是IBUFG,将这个原语跳过就可以,保存然后在编译就不报错了。

    原因分析

DCM出来的时钟经进了BUFG,而DDR的输入时钟是从IBUFG进入的,在底层结构上BUFG不能联到IBUFG。

 

二、问题描述:

在Translate过程中出现如下错误:

"ERROR:ConstraintSystem:59 - Constraint< xxx >: NET/INST "xxx" 未找到。Please verify that:

1. The specified design element actually exists in the design.

2. The specified object is spelled correctly in the constraint source file.

    解决办法

为了防止综合工具删除 net,应为 net 应用 "KEEP"

       另外注意检查管脚约束UCF文件中,是否有对多余的IO信号分配了同一个管脚。

 

三、 问题描述

在implement时点击translate后,出现如下错误:

ERROR:NgdBuild:924- input pad net 'clk' is driving non-buffer primitive

意为输入信号clk未经buffer就用来驱动其他primitives了    

   原因分析

输入时钟clk_in在作为DCM输入引脚的时候又为其他module的输入,也就是说clk有两个load,连接PLL时,输入信号先要连接到内部buffer以产生较强

的驱动能力,从而保证时钟的时序质量。但是由于输入信号的另一分支不经过任何电路就直接连接到了输出Pad ,所以存在一种可能,即连接buffer的

分支会被短路,从而失去预期的效果。即输入clk两个分支,一个直接连到模块fsm;一个连在了DCM的输入时钟源。由于经过DCM时会自动加一个buffer

缓冲器,而到fsm会直接连在一起,这样会造成DCM这一路短路出现错误。正因为如此,ISE给出了错误警告。

    解决办法

clk只是连接一个load,就是DCM。DCM两个输出一个CLKFX_OUT_1,另外一个用CLK0_OUT此信号和clk无论相位还是频率是一样的

  另外: chipscope 不能用晶振输入时钟来作为采样时钟

 

四、 问题描述

PLL或者DLL产生的时钟直接接到核上,出现如下错误

ERROR:NgdBuild:770 - BUFG 'test_ddr2_inst/memc3_infrastructure_inst/se_input_clk.u_ibufg_sys_clk'

And BUFG 'pll_200m_inst/clkout1_buf' on net 'clk_200m' are lined up in series.  

Buffers of the same direction cannot be placed in series. 

原因分析

IBUFG和BUFG串一块儿了。

解决办法

进到PLL或者DDR2模块里,把相应的BUFG(IBUFG)屏蔽掉。

  五、ddr2 ip系统时钟

在ip配置过程中,如果配置成差分形式,必须从板级差分输入时钟提供,

如果配置成单端的形式,可以从板级输入或者从内部锁相环输出来提供。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值