利用PLL锁定信号(lock)产生复位信号
在FPGA刚上电的时候,系统所需的时钟一般都要经过PLL倍频,在时钟锁定(即稳定输出)以前,整个系统应处于复位状态。因此,我们可以利用PLL的锁定信号来产生复位信号,具体代码实现和testbench如下。
module sys_rst(
input sys_clk, input clk_locked,output rst
);parameter CNT_LEN = 16'hffff;
reg [15:0] cnt;
reg rst_out;always @(posedge sys_clk)
if(cnt == CNT_LEN) rst_out <= 1'b0; else rst_out <= 1'b1;always @(posedge sys_clk)
if(cnt == CNT_LEN) cnt <= cnt; else if(clk_locked) cnt <= cnt + 1'b1; else cnt <= 0;assign rst = rst_out;
endmodule
`timescale 1ns/1ns
module tb_sys_rst();
reg clk;reg clk_locked;wire rst;initial begin
clk = 0; clk_locked = 1'b0; #500; clk_locked = 1'b1;end
always #25 clk = ~clk;
sys_rst u_sys_rst(
.sys_clk (clk ), .clk_locked (clk_locked), .rst (rst ));endmodule
问题:
寄存器在上电后默认值是什么?在综合工具中如何设置?