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

时钟设计

时间:10-02 整理:3721RD 点击:
module top(
    input clk,
    output clk_100m,
    output rst
    );


reg [3:0]cont = 0;
wire rst ;
assign rst = &cont ? 1'b0 :  1'b1 ;

always @ ( posedge clk )
begin
  cont <= &cont ? cont : cont + 1'b1 ;
end
mypll mypll_100m
(
  .CLK_IN1 ( clk ),
  .CLK_OUT1( clk_100m ),
  .CLK_OUT2(  ),
  .RESET   (  ),
.LOCKED  (  )
);

endmodule

编译时如下错误如何解决?
ERROR:Xst:2035 - Port <clk> has illegal connections. This port is connected to an input buffer and other components.

用PLL之后的时钟作为always里的沿触发 比如clk_100m

没看出来啥问题,学识还太浅了

我在用DCM的时候遇到过类似的问题,想必PLL应该是一样的。你的clk作为input输入到了PLL中,这个clk就不能再用到你的代码logic中了。在DCM中,一般clk作为输入,输出里面默认有一个CLK0,是和clk输入完全一样的时钟,用这个时钟就可以了。你可以在PLL中试试

楼上正解,小编去试试吧

综合的时候,默认的选项是对输入引脚自动插入buf,而pll内部默认对参考时钟自动插入bufg,这两个冲突了。

从xilinx FPGA规则来讲,一个时钟,不能一边被使用,一边输入PLL,最好用PLL之后的时钟,你可以用PLL输出两路时钟,一路是100M,一路是原时钟,就解决了

的确如前辈所说

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

网站地图

Top