vhdl同步复位和异步复位程序的区别

vhdl同步复位和异步复位程序的区别,第1张

所谓“同步”是指与系统时钟同步。同步复位是指当复位信号有效时,并不立刻生效,而是要等到复位信号有效之后系统时钟的有效边沿到达时才会生效;而异步复位则是立刻生效的,只要复位信号有效,无论系统时钟是怎样的,系统都会立即被复位。

在用VHDL描述复位信号时,在系统时钟有效边沿到达之后才判断同步复位是否有效;而对异步复位的判断则与系统时钟无关。

同步复位:

IF clock'event AND clock='1' THEN

IF reset='1' THEN

-- 复位系统

ELSE

-- 正常运作

END IF

END IF

异步复位:

IF reset='1' THEN

-- 复位系统

ELSIF clock'event AND clock='1' THEN

-- 正常运作

END IF

您好,很高兴能帮助您

一、同步复位与异步复位特点:

同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。

异步复位是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。

异步复位的优点有三条:

a、大多数目标器件库的dff都有异步复位端口,因此采用异步复位可以节省资源。

b、设计相对简单。

c、异步复位信号识别方便,而且可以很方便的使用FPGA的全局复位端口GSR。

异步复位的缺点:

a、在复位信号释放(release)的时候容易出现问题。具体就是说:倘若复位释放时恰恰在时钟有效沿附近,就很容易使寄存器输出出现亚稳态,从而导致亚稳态。

b、复位信号容易受到毛刺的影响。

所以,一般都推荐使用异步复位同步释放的方式,而且复位信号低电平有效。这样就可以两全其美了

你的采纳是我前进的动力,

记得好评和采纳,答题不易,互相帮助,

module test_cnt5(clk,reset,car,out)

input clk,reset//reset为异步复位信号

output car,out//car为进位信号

reg[2:0]cnt//cnt为计数器

reg car

wire[2:0]out

assign out=cnt

always@(posedge clk or negedge reset)

begin

if(!reset)begin

cnt<=3'b000

car<=0

end

else begin

if(cnt==3'b100)begin

car<=3'b001

cnt<=3'b000

end

else begin

cnt<=cnt+3'b001

car<=3'b000

end

end

end

endmodule


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8063213.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存