FPGA内部复位verilog程序问题

//**************************************************************************
// 内部复位模块,自己产生一个复位信号
//
//**************************************************************************
wire rst_n;
reg [5:0] count_reset;
always @(posedge clk_100m )
begin
if(count_reset>6'd60)
count_reset <= 6'd62;
else count_reset <= count_reset+1;
end

assign rst_n = ~(count_reset>'d50&&count_reset<'d56);

请问这段程序是怎么实现内部产生复位信号的?

通过计数器控制的呀。你看啊count_reset 是从0开始加到60,然后变成62保持。然后当(count_reset>'d50&&count_reset<'d56)为真的时候rst_n =0,假的时候为1.即为count_reset在50和56之间的时候为0,在其他区间为1!
希望能帮助到您!追问

他是不是在50-56之间产生复位

但是他为什么这样实现复位呢 ,这样实现复位又有什么意义。fpga好难学(ㄒoㄒ)

追答

对的,因为时序要求的,有些时候不是一上电就立刻复位,需要等一段时间才能复位!

追问

然后是不是一直为62,表示一直不复位了

追答

复位是让所有的寄存器回到最初状态,只要一个或者多个周期,这里就是在56-50之间。复位之后就开始正常工作,所以62以后不动了呀!

追问

懂了,\(≧▽≦)/感谢大神,大神求带O(∩_∩)O

追答

共同进步!

温馨提示:答案为网友推荐,仅供参考
相似回答