Quartus报错:Error (15510): Port "extclk0" of enhanced PLL "ip_pll:ip_pll_inst|altpll:altpll_component|pll" can only feed output pins
这是因为误将PLL IP核中的External Output Clock时钟当作内部时钟使用了,这个输出时钟不可以作为程序的内部时钟(即不可以作为其他模块的输入时钟)
下面这段代码将e0(External Output Clock)端口作为了cfg_cnt模块的输入时钟,因此报错。
wire locked;
ip_pll ip_pll_inst
(
.inclk0 ( clk ),
.c0 (clk_20M ),//20MHz
.c1 (clk_100M ),//100MHz
.e0 (clk_200M ),//200MHz
.locked (locked )
);
cfg_cnt cfg_cnt_inst
(
.clk (clk_200M ),
.rst_n (rst_n ),
.sclk (sclk ),
.sdata (sdata ),
.scs_n (scs_n )
);
如果将e0端口作为顶层模块的输出,则不会出现报错,因此我理解这个e0端口只能作为输出,不可以作为模块间的中间变量。
module top
(
input clk ,
output reg sclk ,
output reg csb ,
output reg sdio ,
output wire clk_200M
);
.
.
.
ip_pll ip_pll_inst
(
.inclk0 ( clk ),
.c0 (clk_20M ),//20MHz
.c1 (clk_100M ),//100MHz
.e0 (clk_200M ),//200MHz
.locked (locked )
);