您的位置:首页 > 其它

xilinx时钟问题 IBUFG

2015-02-28 13:40 281 查看
xilinx时钟问题 之前用altera没有什么问题,都是直接连接上的,

我在XILINX平台上做DDR2,需要200m的时钟信号,我就用DCM倍频了一个,直接接在DDR2的ipcore上面,出现了如下错误,请大神指点一二,不胜感激!!

ERROR:NgdBuild:770 - IBUFG

'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.

我的程序代码如下:

//**** PLL产生200Mhz时钟信号

pll_200m pll_200m_inst (

.CLK_IN1 (clk ),

.CLK_200m (clk_200m ),

.CLK_50m (clk_50m ),

.LOCKED (locked )

);

然后我直接把clk_200m给了DDR2的系统时钟信号,如下图所示(DDR2代码太多,简单一个链接):

.c3_sys_clk (clk_200m ),

这样会出现问题,不知道怎么解决了呢?

之前测试DDR2的时候,我是把外部的时钟直接接在DDR2的ipcore上面,用的是150M的时钟,现在板子上面只有一个50M的时钟了,只能自己用DCM倍频了,应该是可以通过一个原语解决的,但是不知道是哪个?我胡乱测试了一下,都不行。

我用的是xilinx14.7的版本,也尝试设置了XST的这项设置,去掉Add I/O buffer 但是没用。





问题解决,我首先尝试修改PLL的源代码,把下面代码注释掉

BUFG clkout1_buf

(.O (CLK_200m),

.I (clkfx));

换成 assign CLK_200m = clkfx ;

编译之后,会报错,多驱动问题的错误,我就又恢复原装,尝试修改DDR2的源码!!

assign sys_clk_ibufg = sys_clk ;

// IBUFG u_ibufg_sys_clk

// (

// .I (sys_clk),

// .O (sys_clk_ibufg)

// );

把上面的代码注释掉,然后换成

assign sys_clk_ibufg = sys_clk ;

大功告成,编译就没问题了!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: