xilinx时钟问题 IBUFG

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 但是没用。 

xilinx时钟问题 IBUFG_第1张图片 


问题解决,我首先尝试修改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    ; 
大功告成,编译就没问题了!! 

你可能感兴趣的:(xilinx时钟问题 IBUFG)