对于FPGA芯片而言,上电之后最开始的一段时间是特别不稳定的,所以在FPGA程序中添加一个上电之后的延时程序,这个是很有必要的。
然而我们常用的是使用PLL中的 locked 信号,来判断是否初始化成功,但是这个初始化仅仅是对于PLL这个IP核所使用的,所以这个信号还是不够具有权威性。
根据上述问题,相对较好的方法是:在程序开始跑之前,就对程序进行延时操作。
首先先来一个PLL的顶层模块:其中包括了两个部分:PLL_IP核的初始化,初始化之后的延时。
module PLL
(
input wire ext_clk, //G21 , CLK_50M
input wire ext_rst_n, //E4
// output wire sys_rst_n,
output wire clk0,
output wire clk1,
output wire clk2,
output wire clk3,
output wire clk4,
output reg rst_D=0
);
wire sys_rst_n;
wire locked;
reg locked_temp;
reg locked_temp1;
reg [8:0] cnt_rst=255;
reg [8:0] cnt_rst1=255;
Button RST
(
.clk_in_Button(ext_clk) ,
.input_Button(ext_rst_n) ,
.POL_en_in(0) ,
.POL_en_out(1) ,
.output_Button(s