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

请教FPGA的DCM使用问题

时间:10-02 整理:3721RD 点击:

以xilinx为例,在设计时,一般会把外部输入的时钟送入DCM(数字时钟管理器)作处理后供后面设计做统一的同步时钟使用,比如输入CLK,DCM产生同步时钟CLK0,为了让这个CLK0有足够的驱动能力,会把CLK0接到专用的时钟缓冲器BUFG后才送到其他地方使用,代码如下:

BUFG clk0buf (.O(CLKO_BUF)),
.I(CLK0);

问题就来了,我看到的一些Xilinx IP Core产生的程序中,会把 CLKO_BUF再赋值给另一个信号线才输出,代码如下:

assign da_clk = LKO_BUF;

最终da_clk信号才是送到后面设计做统一的同步时钟使用,而不是 CLKO_BUF,这是为什么呢?为什么不直接用 CLKO_BUF信号,而要用赋值后的信号?

这个赋值后的信号的驱动能力和质量有 CLKO_BUF好吗?

应该没有关系吧
不是赋值的含义
只是da_clk使用了CLK而已

当使用assign语句,CLKO_BUF赋给da_clk的过程中,会不会加buffer呢?如果不加buffer,那么da_clk确实只是使用了CLKO_BUF,但如果CLKO_BUF是加了buffer才赋给da_clk的话,那就有问题了,这可能跟软件对assign赋值的处理有关,所以并不好判断。所以使用赋值后的信号是否妥当呢?

怎么就没有人回答这个问题呢?DCM应该挺常用的,难道大家都没有遇到过这个问题?

我也是这么认为的,只是表明一种连接关系, da_clk还是全局的。

最终da_clk信号才是送到后面设计做统一的同步时钟使用,而不是
CLKO_BUF


不管是用 da_clk 或 CLKO_BUF 结果都一样
都可以

谢谢各位的解答,已经了解。

没错 就是这样

assign da_clk = LKO_BUF;


da_clk 肯定是wire类型的,所以da_clk 和LKO_BUF只是连线,除了一点传输延时无其他区别吧。

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

网站地图

Top