微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > xilinx 两个DCM 使用的问题,求解

xilinx 两个DCM 使用的问题,求解

时间:10-02 整理:3721RD 点击:
我们的一个设计中要使用两个完全不同的时钟频率,需要使用两个DCM,把这两个频点倍出来,但是,我们只有一个时钟输入。也就是说,一个clkin,两个sys clock,
当我在使用两个dcm的时候,不管是通过串联起来(好像是不支持了),还是并联,都会报错。因为不可以一个时钟驱动两个buf,也就是驱动不了两个dcm。
讲的好像有点不是很清楚。总的来说,就是怎么使用两个dcm获得完全不相关的频点。
谢谢。这个问题,我之前用buf绕来绕去好像侥幸通过了布局布线,但是,感觉还是没有解决这个问题。

自己顶一下,牛们!

同一个时钟进去两个DCM出来的时钟还是比较相关的吧,都是跟那个输入时钟相位锁定的,DCM的使用可以看芯片的user guide,不过遇到这种情况可能用PLL比较合适吧,呵呵!



    现在对xilinx里边的时钟管理模块越来越糊涂了。好像它里边的时钟管理模块有很多。
一个时钟进到两个DCM里边,当然是相关的了。就是不知道一般情况下,如果使用到两个不相关的频率时钟,你们一般是怎么处理的。

“因为不可以一个时钟驱动两个buf,也就是驱动不了两个dcm”,你不要让DCM插入IBUF,DCM生成的时候会有选项的,你在设计中自己将输入时钟插入IBUF,然后分别驱动两个DCM。我就是这么解决的。



    谢谢小编,我试一下。



    可能是我没有完全理解你的意思。我还是没办法把两个DCM并联使用。不管怎么加入buf,从1到2 ,始终都会有一个wire驱动两个buf。

要么考虑使用PLL吧,任意分频,省事点。
另外,对于spantran 6系列的DCM,在仿真时可以分频,而实际调试中并没有起到分频的效果,我见到过两次,最后都改用PLL了。



    你没明白我的意思,你看生成的DCM的verilog文件,就是文件夹下面扩展名是.v 的文件,里面的CLK_IN是不是一开始就接到一个IBUFG上面了?你把这个删掉,在DMC的外面接上一个IBUFG,然后分别驱动两个DCM。这样就可以了。明白了么?
如果是用图形界面产生的话,这个操作也可以在生成DCM的图形界面里面取消这个输入时钟的IBUFG。然后生成之后在设计顶层自己例化一个IBUFG。
以上两个方法均可。
input clock_in;
IBUFG ( .A(clock_in), .B(clock_in_ibufg));
DCM_A (.CLK_IN(clock_in_ibufg)....);
DCM_B (.CLK_IN(clock_in_ibufg)....);



    谢谢小编,我明白了。
   之前不理解是删掉DCM里边的bufg。
   再次对小编耐心的指教表示感谢。

可以考虑用第一个DCM的输出到第二个DCM的输入~



    我之前是这么干的,不过我好想看过XILINX的一个文档介绍,不建议这么干。因为第一个DCM的相位噪声会引入到第二个DCM。

你们好,我按照小编的设置之后,综合,翻译,映射通过了,但是布局布线报错啦,现象如下,本人新手,多多指教哈,谢谢
Place:1012 - A clock IOB / DCM component pair have been found that are not placed at an optimal clock IOB / DCM site pair.  The clock component <FPGA/DCM100/DCM_SP_INST> is placed at site <DCM_X2Y0>.  The clock IO/DCM site can be paired if they are placed/locked in the same quadrant.  The IO component <clk> is placed at site <PAD54>.  This will not allow the use of the fast path between the IO and the Clock buffer. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote this message to a WARNING and allow your design to continue. However, the use of this override is highly discouraged as it may lead to very poor timing results. It is recommended that this error condition be corrected in the design. A list of all the COMP.PINs used in this clock placement rule is listed below. These examples can be used directly in the .ucf file to override this clock rule.
< NET "clk" CLOCK_DEDICATED_ROUTE = FALSE; >
< PIN "FPGA/DCM100/DCM_SP_INST.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE; >

好像是要用的PLL的。



  我和你的情况一样,把最后两行粘到UCF中布局布线就通过了。记得去掉“<>”符合。

在UCF里加入上面两句的话,担心clk和clkin走的不是全局时钟线,会影响性能的吧

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top