pafvell 发表于 2011-8-8 11:10:28

ISE中,一个时钟输入 如何 驱动2个DCM IP核

如题,我想使用2个DCM模块,外部只有一个时钟输入,现在的问题是 在tanslate的时候 报错,
ERROR:NgdBuild:770 - IBUFG 'dcm100M_1/CLKIN_IBUFG_INST' and BUFG 'BUFG_inst' on
   net 'clkin_r1' are lined up in series. Buffers of the same direction cannot
   be placed in series.
ERROR:NgdBuild:462 - input pad net 'clkin_r1' drives multiple buffers:
ERROR:NgdBuild:924 - input pad net 'clkin_r1' is driving non-buffer primitives:?


代码如下
IBUF_inst : IBUF PORT MAP (I => clkin,
                                                                        O => clkin_R0);
                                                                       
BUFG_inst : BUFG PORT MAP (I => clkin_r0,
                                                                        O => clkin_r1);       


dcm100M_1 : dcm100M1 PORT MAP (CLKIN_IN => clkin_r1,
                                                                               CLKIN_IBUFG_OUT => OPEN,
                                                                               CLK0_OUT => clk,
                                                                               CLK2X_OUT => clkda1,
                                                                               CLK2X180_OUT => rd_clk);

dcm100M_2 : dcm100M2 PORT MAP (CLKIN_IN => clkin_r1,
                                                                               CLKIN_IBUFG_OUT => OPEN,
                                                                               CLK0_OUT => OPEN,
                                                                               CLK2X_OUT => clkad1,
                                                                               CLK2X180_OUT => wr_clk);
                                                                               

我从书上看到 要添加缓冲器,我尝试了下 IBUF+BUFG,IBUFG,IBUF,BUFG,IBUFG+BUFG,都没能解决RTL视如下
http://cache.amobbs.com/bbs_upload782111/files_44/ourdev_665431B4T0KZ.png
现在错误的RTL 在顶层添加了IBUF+BUFG (原文件名:DCMIBUF+BUFG.png)

http://cache.amobbs.com/bbs_upload782111/files_44/ourdev_665432WDD39F.png
缩小点的图 (原文件名:DCMIBUF+BUFG2.png)

我把2个DCM IP核写在一个模块了 蓝色框内 就是模块,框内的缓冲器都是IP核自带的
请问 到底需要怎么写?? 在哪里加缓冲器?怎么加?? 

lanliang714 发表于 2011-8-8 18:24:37

回复【楼主位】pafvell
-----------------------------------------------------------------------

可以考虑用级联,用其中一个DCM的clk0_out的做另一个DCM的输入时钟

pafvell 发表于 2011-8-8 20:21:26

回复【1楼】lanliang714
-----------------------------------------------------------------------

谢谢,那并联怎么做啊? 我也不是非要并联,就是出错了 不解决难受啊。。。

lanliang714 发表于 2011-8-9 10:50:37

回复【2楼】pafvell
-----------------------------------------------------------------------

并联的话将clkin source设为internal,就可以了

CLKIN source 如果选 external 则 DCM 的 CLKIN 会自动连接到 IBUFG。

pafvell 发表于 2011-8-9 21:22:54

回复【3楼】lanliang714
-----------------------------------------------------------------------

非常感谢试了 可以通过编译了

baobaodreamer 发表于 2012-9-28 16:28:40

lanliang714 发表于 2011-8-8 18:24 static/image/common/back.gif
回复【楼主位】pafvell
-----------------------------------------------------------------------



你好,想请教一下DCM的问题,现在我是需要使用三个spartan3e的DCM,用的就是级联的方式,但是现在的问题是仿真的时候就没有时钟输出。一个时钟的时候是没有问题的 请教呀 谢谢麻烦了
页: [1]
查看完整版本: ISE中,一个时钟输入 如何 驱动2个DCM IP核