在学习FPGA的过程中,数字电路成为重点内容,关于同步复位和异步复位的问题不可避免。记录一下同步复位和异步复位的概念以及Verilog实现。
就像是你叫一个人去吃饭,但是他现在手头有事,需要一会才能去。
1)如果这时你站在旁边等他,他的事情搞定了以后你们立刻就去吃饭,这就是异步复位。
2)你一看他有事,你就先去上个厕所,他事情搞定了,也得等你上完厕所出来,再一起去吃饭,这就叫做同步复位。
转换到电路里
1、异步复位:不受时钟控制,只要复位信号有效,电路就会立即复位。
程序里的一般写法如下:
always@(posedge clk or negedge reset)begin
if( ! reset )begin
xxxx; //复位指令
end
else
xxxx; //程序正常执行
end
2、同步复位:复位信号有效时,在时钟的上升沿让电路复位。
程序里的一般写法如下:
always@(posedge clk)begin
if( ! reset )begin
xxxx; //复位指令
end
end
注:一般复位信号保持在高电平,常为低电平有效。