时钟设计
时间: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.
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,一路是原时钟,就解决了
的确如前辈所说