打印

ISE 中全局时钟缓冲问题

[复制链接]
2792|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuxinyu2008|  楼主 | 2012-11-12 10:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
module count4(out,reset,clk);
     output[1:0] out;
     input reset,clk;
     reg[1:0] out;

wire clkin;
      always @(posedge clkin)
         begin
             if (reset)
                 out<=0; //同步复位
             else
                 out<=out+1'b1; //计数
         end
mydcm mydcm(
.CLK_IN1(clk),
.CLK_OUT1(clkin),
.CLK_OUT2(),
.RESET(reset)
);

endmodule


很简单的一个计数器,现在用DCM的一个输出做计数时钟 ,一个做逻辑分析仪的采样时钟,为什么实现时会出现下面的错误
ERROR:NgdBuild:924 - input pad net 'clk' is driving non-buffer primitives:
ERROR:NgdBuild:924 - input pad net 'reset' is driving non-buffer primitives:

相关帖子

沙发
zhuxinyu2008|  楼主 | 2012-11-12 11:01 | 只看该作者
没人知道吗  纠结了两天了这个问题

使用特权

评论回复
板凳
Backkom80| | 2012-11-12 11:36 | 只看该作者
mydcm这个模块里面的代码,截例化DCM那部分看看

使用特权

评论回复
地板
zhuxinyu2008|  楼主 | 2012-11-12 12:22 | 只看该作者
module mydcm
  (// Clock in ports
   input         CLK_IN1,
   // Clock out ports
   output        CLK_OUT1,
   output        CLK_OUT2,
   // Status and control signals
   input         RESET
  );

   // Input buffering
   //------------------------------------
   IBUFG clkin1_buf
    (.O (clkin1),
     .I (CLK_IN1));


   // Clocking primitive
   //------------------------------------
   // Instantiation of the PLL primitive
   //    * Unused inputs are tied off
   //    * Unused outputs are labeled unused
   wire [15:0] do_unused;
   wire        drdy_unused;
   wire        locked_unused;
   wire        clkfbout;
   wire        clkfbout_buf;
   wire        clkout2_unused;
   wire        clkout3_unused;
   wire        clkout4_unused;
   wire        clkout5_unused;

   PLL_BASE
   #(.BANDWIDTH              ("OPTIMIZED"),
     .CLK_FEEDBACK           ("CLKFBOUT"),
     .COMPENSATION           ("SYSTEM_SYNCHRONOUS"),
     .DIVCLK_DIVIDE          (1),
     .CLKFBOUT_MULT          (6),
     .CLKFBOUT_PHASE         (0.000),
     .CLKOUT0_DIVIDE         (9),
     .CLKOUT0_PHASE          (0.000),
     .CLKOUT0_DUTY_CYCLE     (0.500),
     .CLKOUT1_DIVIDE         (6),
     .CLKOUT1_PHASE          (0.000),
     .CLKOUT1_DUTY_CYCLE     (0.500),
     .CLKIN_PERIOD           (13.468),
     .REF_JITTER             (0.010))
   pll_base_inst
     // Output clocks
    (.CLKFBOUT              (clkfbout),
     .CLKOUT0               (clkout0),
     .CLKOUT1               (clkout1),
     .CLKOUT2               (clkout2_unused),
     .CLKOUT3               (clkout3_unused),
     .CLKOUT4               (clkout4_unused),
     .CLKOUT5               (clkout5_unused),
     // Status and control signals
     .LOCKED                (locked_unused),
     .RST                   (RESET),
      // Input clock control
     .CLKFBIN               (clkfbout_buf),
     .CLKIN                 (clkin1));


   // Output buffering
   //-----------------------------------
   BUFG clkf_buf
    (.O (clkfbout_buf),
     .I (clkfbout));

   BUFG clkout1_buf
    (.O   (CLK_OUT1),
     .I   (clkout0));


   BUFG clkout2_buf
    (.O   (CLK_OUT2),
     .I   (clkout1));



endmodule

使用特权

评论回复
5
zhuxinyu2008|  楼主 | 2012-11-12 12:23 | 只看该作者
这个吗

使用特权

评论回复
6
zhuxinyu2008|  楼主 | 2012-11-12 12:26 | 只看该作者
3# Backkom80    上面的那部分代码吗

使用特权

评论回复
7
zhuxinyu2008|  楼主 | 2012-11-12 12:29 | 只看该作者
3# Backkom80   还是这个mydcm instance_name    (// Clock in ports
     .CLK_IN1(CLK_IN1),      // IN
     // Clock out ports
     .CLK_OUT1(CLK_OUT1),     // OUT
     .CLK_OUT2(CLK_OUT2),     // OUT
     // Status and control signals
     .RESET(RESET));       // IN
// INST_TAG_END ------ End INSTANTIATION Template ---------

使用特权

评论回复
8
nir| | 2012-11-12 14:50 | 只看该作者
zhuxinyu2008:
很简单的一个计数器,现在用DCM的一个输出做计数时钟 ,一个做逻辑分析仪的采样时钟,为什么实现时会
------------------------------------------------
原因:
    输入clk分成两个,一个接到DCM了,其输出做计数时钟 ,一个直接做逻辑分析仪的采样时钟。
DCM输入、输出在综合时会自动添加了IBUFG、BUFG全局缓冲。而做逻辑分析仪的那个采样时钟会直接和DCM的输出连在一起,
这样会造成DCM这一路短路出现错误。
改正方法:clk只是连接一个分支,就是DCM。DCM设计成两个输出,分别给上面的两路用。

使用特权

评论回复
9
zhuxinyu2008|  楼主 | 2012-11-12 15:05 | 只看该作者
8# nir 我设计的时候输入没有分两路呢,我的clk直接做DCM的输入,DCM的两个输出一个做逻辑分析仪的采样时钟、一个做计数时钟的额。我查看了下RTL图 很正常,好纠结。是不是我自己有些地方理解错了

使用特权

评论回复
10
zhoumingzr| | 2012-11-30 15:47 | 只看该作者
学习了= =

使用特权

评论回复
11
kunhuangon| | 2012-11-30 15:48 | 只看该作者
看回复学东西

使用特权

评论回复
12
hawksabre| | 2012-11-30 19:07 | 只看该作者
都是高手   这一块  需要向楼上的诸位学习的地方太多了   帮楼主顶一个   问题解决了   希望能够共享一下解决问题的思路   谢谢了

使用特权

评论回复
13
looope| | 2012-11-30 19:43 | 只看该作者
:)

使用特权

评论回复
14
pihois| | 2012-11-30 20:11 | 只看该作者
不错 学习了很多东西

使用特权

评论回复
15
zhushouxi| | 2012-12-1 20:57 | 只看该作者
可以仿真一下,看看能否输出所要的时钟

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

82

帖子

0

粉丝