赛灵思
直播中

何柳青

7年用户 205经验值
私信 关注
[问答]

如何并行实现两个DCM?

嗨,我并行实现了两个DCM,它们由相同的外部时钟驱动。
NGDbuild总是向我显示错误,说“时钟正在驱动多个缓冲区”。
有没有证明正确用法的例子?
提前完成。
消息编辑由jzyong于10-08-2007 02:46 PM

以上来自于谷歌翻译


以下为原文

Hi, I implement two DCMs in parallel, which are driven by the same external clock. The NGDbuild always shows me an error saying that the "clock is driving multiple buffers". Is there any example that demonstrate the correct usage ? Thanx in advance.

Message Edited by jzyong on 10-08-2007 02:46 PM

回帖(2)

杨玲

2018-9-30 11:24:28
将输入引脚信号连接到两个或更多时会发生此问题
DCM的。
合成器为每个DCM添加输入缓冲区
而不是共享该引脚可用的一个输入缓冲区。
解决此问题的最佳方法是实例化输入缓冲区和
然后将缓冲区的输出连接到两个DCM。

Verilog这可能看起来像:
wire buffered_clock_in;
IBUFG clock_input_buffer(.I(clock_pin),. O(buffered_clock_in));
DCM dcm_1(... .CLKIN(buffered_clock_in)...);
DCM dcm_2(... .CLKIN(buffered_clock_in)...);
输入缓冲器的类型可能取决于您使用的引脚(全局时钟)
输入与标准I / O)和设备系列。
IBUFG是
适用于Virtex 2全局时钟输入。
HTH,
的Gabor
-  Gabor

以上来自于谷歌翻译


以下为原文

This problem occurs when you attach the input pin signal to two or moreDCM's.  The synthesizer adds an input buffer to each of the DCM'srather than sharing the one input buffer available for that pin. The best way to work around this is to instantiate the input buffer andthen connect the output of the buffer to the two DCM's.  InVerilog this might look like:

wire buffered_clock_in;

IBUFG clock_input_buffer (.I (clock_pin), .O (buffered_clock_in));

DCM dcm_1 (. . .  .CLKIN (buffered_clock_in) . . .);

DCM dcm_2 (. . . .CLKIN(buffered_clock_in) . . .);

The type of input buffer may depend on the pin you use (global clockinput vs standard I/O) and the device family.  IBUFG isappropriate for Virtex 2 global clock inputs.

HTH,
Gabor
-- Gabor
举报

曾玲娟

2018-9-30 11:33:11
Gabor给了你很好的建议....
虽然我通常允许综合工具推断I / O缓冲区(例如IBUF,OBUF或IOBUF),但通常应该在几个条件中实例化适当的资源:
- 差异输入(IBUFDS)
时钟树(例如IBUFG或IBUFGDS  - > DCM [或者你的情况下为2]  - > BUFG或BUFGMUX或BUFGCTRL [+反馈给DCM])
-DDR I / O(例如IFDDSRCPE或IDDR)
-Chipsync使用(V4 / V5,例如ISERDES,BUFR,BUFIO,OSERDES,IDELAY / IDELAYCTRL等)
通常,这对于顶层HDL包装器来说是有意义的,它直接将您的I / O从底层“顶层”级别连接起来,并将适当的资源添加到此级别。
您可能会发现对DCM有用的其他一些资源:
-http://www.xilinx.com/bvdocs/appnotes/xapp462.pdf(在Spartan-3 FPGA中使用数字时钟管理器(DCM))-CORE Generator时钟向导,例如,
FPGA特性和设计 - >时钟(虽然缺少您感兴趣的特定拓扑)
-Project Navigator语言模板(VHDL / Verilog  - > Device Primitive Instantitation  - > FPGA  - > Clock Components)
干杯,
BT
== minor editMessage由timpe在10-10-2007 12:28 AM编辑

以上来自于谷歌翻译


以下为原文

Gabor gave you excellent advice....While I generally allow the synthesis tools to infer I/O buffers (e.g. IBUF, OBUF, or IOBUF), you should generally instantiate the appropriate resources in several conditions:-differential input (IBUFDS)-clock tree (e.g. IBUFG or IBUFGDS -> DCM [or 2 in your case] -> BUFG or BUFGMUX or BUFGCTRL [+ feedback to DCM])-DDR I/O (e.g. IFDDSRCPE or IDDR)-Chipsync usage (V4/V5, e.g. ISERDES, BUFR, BUFIO, OSERDES, IDELAY/IDELAYCTRL, etc.) Often this makes sense for a top-level HDL wrapper that directly connects your I/O from the underlying "top" level and adds the appropriate resources to this level. Some other resources you may find useful for the DCM:-http://www.xilinx.com/bvdocs/appnotes/xapp462.pdf (Using Digital Clock Managers (DCMs) in Spartan-3 FPGAs)
-CORE Generator clocking wizard, e.g. FPGA Features and Design -> Clocking (though it lacks the specific topology you are interested in)-Project Navigator language templates (VHDL/Verilog -> Device Primitive Instantitation -> FPGA -> Clock Components) Cheers,bt == minor edit

Message Edited by timpe on 10-10-2007 12:28 AM
举报

更多回帖

发帖
×
20
完善资料,
赚取积分