赛灵思
直播中

张虎豹

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

如何解决用ip核心生成器实现DCM设计错误

我想用ip核心生成器实现DCM,但我无法实现设计。
我有这个错误。
我认为问题出在.ucf档案中。
请帮帮我!
--------------------------------------------------
-------------------------------------------
我的VHDL代码看起来像这样
--------------------------------------------------
-------------------------------------------
entity mainIpcore是Port(CLK_IN1:STD_LOGIC; CLKOUT:out STD_LOGIC; LOCKED:out STD_LOGIC); end mainIpcore; architectureIpcore的行为是组件DCMIpCoreport( - 端口CLK_IN1中的时钟:std_logic中的时钟;  - 时钟输出端口CLK_OUT1:out std_logic
;  - 状态和控制信号RESET:in std_logic; LOCKED:out std_logic); end component; beginmoduloDCM:DCMIpCore port map( - 端口CLK_IN1 => CLK_IN1, - 时钟输出端口CLK_OUT1 => CLKOUT, - 状态
和控制信号RESET =>'0',LOCKED => LOCKED); end Behavioral; -------------------------------
---------------------------------------- UCF achive:
NET“CLK_IN1”LOC = V10;
NET“CLKOUT”LOC = R10;
NET“LOCKED”LOC = U16;
--------------------------------------------------
------------------------------------
地方:1205  - 这个设计包含一个全局缓冲实例,驱动网络,驱动以下(前30个)非时钟负载引脚片外。
在Spartan-6中,这种设计实践可能由于全局布线的限制而导致不可预测的情况。
如果设计确实存在路线,则该网络可能存在过度延迟或倾斜。
建议使用时钟转发技术来创建可靠且可重复的低偏斜解决方案:实例化ODDR2组件;
将.D0引脚连接到Logic1;
将.D1引脚连接到Logic0;
将时钟网连接到.C0;
将倒置时钟连接到.C1。
如果您希望覆盖此建议,可以使用.ucf文件中的CLOCK_DEDICATED_ROUTE约束(如下所示)将此消息降级为警告并允许您的设计继续。
虽然网络可能仍未路由,但您可以分析FPGA_Editor中的故障。
错误:包装:1654  - 时序驱动的放置阶段遇到错误。

以上来自于谷歌翻译


以下为原文

I want to implement a DCM with the ip core generator but I can't implement the design. I have this error.
I think to the problem is in the .ucf archive.
Help me please!
---------------------------------------------------------------------------------------------
My VHDL code looks like this
---------------------------------------------------------------------------------------------


entity mainIpcore is
    Port ( CLK_IN1 : in  STD_LOGIC;
           CLKOUT : out  STD_LOGIC;
           LOCKED : out  STD_LOGIC);
end mainIpcore;

architecture Behavioral of mainIpcore is
component DCMIpCore
port
(-- Clock in ports
  CLK_IN1           : in     std_logic;
  -- Clock out ports
  CLK_OUT1          : out    std_logic;
  -- Status and control signals
  RESET             : in     std_logic;
  LOCKED            : out    std_logic
);
end component;
begin

moduloDCM : DCMIpCore
  port map
   (-- Clock in ports
    CLK_IN1 => CLK_IN1,
    -- Clock out ports
    CLK_OUT1 => CLKOUT,
    -- Status and control signals
    RESET  => '0',
    LOCKED => LOCKED);
end Behavioral;
-----------------------------------------------------------------------
The UCF achive:


    NET "CLK_IN1"   LOC =V10;
    NET "CLKOUT"    LOC= R10;
    NET "LOCKED"    LOC= U16;


--------------------------------------------------------------------------------------
Place:1205 - This design contains a global buffer instance,
   , driving the net, , that is driving the
   following (first 30) non-clock load pins off chip.
   < PIN: CLKOUT.O; >
   This design practice, in Spartan-6, can lead to an unroutable situation due
   to limitations in the global routing. If the design does route there may be
   excessive delay or skew on this net. It is recommended to use a Clock
   Forwarding technique to create a reliable and repeatable low skew solution:
   instantiate an ODDR2 component; tie the .D0 pin to Logic1; tie the .D1 pin to
   Logic0; tie the clock net to be forwarded to .C0; tie the inverted clock to
   .C1. If you wish to override this recommendation, you may use the
   CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote
   this message to a WARNING and allow your design to continue. Although the net
   may still not route, you will be able to analyze the failure in FPGA_Editor.
   < PIN "mERROR:Place:1136 - This design contains a global buffer instance,
ERROR:Pack:1654 - The timing-driven placement phase encountered an error.

回帖(5)

杨玲

2019-7-24 12:23:43
如果时钟输出的唯一位置是引脚,那么只删除BUFG可能是有意义的,但如果您使用的是时钟向导,则可以从Core Generator完成。
如果您还在内部使用此时钟,那么BUFG应保持在那里,您应该使用ODDR2将时钟转发到引脚,如错误消息中所示。
查看您的部分的库指南(Spartan6?),它将向您展示如何实例化ODDR2(无法推断)。
对于时钟转发,ODDR2的两个数据输入应分别为'1'和'0',分别用于上升沿D和下降沿D输入。
-  Gabor

以上来自于谷歌翻译


以下为原文

If the only place the clock output goes is to the pin, then it might make sense to just remove the BUFG, but that would be done from Core Generator if you're using the clocking wizard.  If you're also using this clock internally, then the BUFG should stay there and you should forward the clock to the pin using the ODDR2 as suggested in the error message.  Check the Libraries guide for your part (Spartan6?) which will show you how to instantiate the ODDR2 (it cannot be inferred).  For clock forwarding the two data inputs to the ODDR2 should be '1' and '0' for the rising edge D and falling edge D inputs respectively.
-- Gabor
举报

刘丰标

2019-7-24 12:33:50
您可以查看以下解决方案记录,了解Gabor提到的建议
http://www.xilinx.com/support/answers/35032.html
--Krishna

以上来自于谷歌翻译


以下为原文

you can check  the following solution record for the suggestions mentioned by Gabor
 
http://www.xilinx.com/support/answers/35032.html
 
--Krishna
举报

吴江

2019-7-24 12:53:22
谢谢你的回答,我可以在Pmod Pinouts中做波形。
但看起来就是这些。第一张图是来自de DCM的第一个解决方案的波形和第二个的第二个波形。信号是正弦波是正常的吗?

以上来自于谷歌翻译


以下为原文

Thanks for your answers I could do the waveforms in the Pmod Pinouts.
But the outs looks are these.
The first picture is the out waveform from de DCM with the first solution
and the second with the second.
Is normal that the signals be sinusoidals?
举报

杨玲

2019-7-24 13:05:14
我不确定你的意思是“第一个解决方案”和“第二个解决方案”。
为什么顶部示波器中的波形比低镜头拍摄的波形快2 1/2倍?
它可能在该频率下受限制。
您使用什么IO标准来驱动引脚?
您在哪里放置示波器探头和示波器接地?
通常当我在示波器图片上看到正弦波时,我怀疑示波器没有足够的带宽来正确显示信号。
然而,你的范围似乎在显示较低范围镜头中的方波时做得很好。
因此,除非你无意中对顶部镜头的范围进行了带宽限制,否则我猜你会看到实际的信号条件。
-  Gabor

以上来自于谷歌翻译


以下为原文

I'm not sure what you mean by "the first solution" and "the second solution."  Why is the waveform in the top scope shot 2 1/2 times faster than that in the lower scope shot?  It may be slew-rate limited at that frequency.  What IO standard are you using to drive the pin? Where are you placing the scope probe and scope ground?
 
Normally when I see a sine wave on a scope picture, I suspect that the scope doesn't have enough bandwidth to display the signal correctly.  However your scope seems to be doing quite well at showing the square waves in the lower scope shot.  So unless you inadvertently engaged the bandwidth limit on the scope in the top shot, I would guess that you're seeing the actual signal condition.
-- Gabor
举报

更多回帖

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