概述
目录
1、同步复位
2、异步复位
3、同步/异步复位对比
4、异步复位同步释放
4.1、异步复位同步释放原理
在实际的工程中选择复位策略之前必须考虑许多设计方面的问题,如使用同步复位或者异步复位或者异步复位同步释放(Asynchronous Reset Synchronous Release或者Synchronized Asynchronous Reset),以及是否每一个触发器都需要进行复位。复位的基本目的是使器件进入到可以稳定工作的确定状态,这避免了器件在上电后进入到随机状态导致跑飞了。在实际设计过程中,设计者必须选择最适合于设计本身的复位方式。
1、同步复位
同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。同步复位RTL代码:
always @(posedge clk)
begin
if(!rst) dout<=0;
else dout<=din;
end
该代码综合出来的硬件电路如下图所示:
同步电路也会发生亚稳态,只是几率小于异步复位电路。
当输入端Din为高电平,而且复位信号的撤销时间在clk的Tsu和Th内时候,亚稳态就随之产生了。如图时序所示,当复位撤销时间在clk的Tsu和Th内,输入数据为“1”,通过和输入数据相与后的数据也在clk的Tsu和Th内,因此,势必会造成类似异步信号采集的亚稳态情况;
2、异步复位
异步复位是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。异步复位RTL代码:
always @(posedge clk or negedge rst_n)
begin
if(!rst_n) a <= 1’b0;
else a <= b;
end
该代码综合出来的硬件电路如下图所示:
如果rst信号的撤销在Trecovery和Tremoval之内,那势必会产生亚稳态。输出会在时钟边沿的Tc2q时间之后产生振荡,在Tmet时间之后稳定在某个电平上,而Tmet时间就是决断时间,这样的话就会造成复位失败。整个过程如下图所示:
3、同步/异步复位对比
同步复位的优点:
- 一般能够确保电路是百分之百同步的。
- 确保复位只发生在有效时钟沿,可以作为过滤掉毛刺的手段。
同步复位的缺点:
- 复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位。同时还要考虑如:时钟偏移、组合逻辑路径延时、复位延时等因素。
- 由于大多数的厂商目标库内的触发器都只有异步复位端口,采用同步复位的话,就会耗费较多的逻辑资源。
异步复位优点:
- 异步复位信号识别方便,而且可以很方便的使用全局复位。
- 由于大多数的厂商目标库内的触发器都有异步复位端口,可以节约逻辑资源。
异步复位缺点:
- 复位信号容易受到毛刺的影响。
- 复位结束时刻恰在亚稳态窗口内时,无法决定现在的复位状态是1还是0,会导致亚稳态。
4、异步复位同步释放
使用异步复位同步释放就可以消除上述缺点。所谓异步复位,同步释放就是在复位信号到来的时候不受时钟信号的同步,而是在复位信号释放的时候受到时钟信号的同步。
一般来说,同步系统,都使用异步复位。这是因为同步复位的电路实现,比异步复位的电路实现,要浪费更多电路资源。
未在本模块时钟域做过“异步复位,同步释放”处理的复位信号,提供给本模块做异步复位使用时,都需要做“异步复位,同步释放”处理。常见于系统内两部件不在同一时钟域的情况下。
工程实践中,确实见过由于未做异步复位的同步处理,而出现大概率系统死机现象(复位的作用域是很大的)
4.1、异步复位同步释放原理
Verilog 代码实现:
always @ (posedge clk, negedge rst_async_n)
if (!rst_async_n) begin
rst_s1 <= 1'b0;
rst_s2 <= 1'b0;
end
else begin
rst_s1 <= 1'b1;
rst_s2 <= rst_s1;
end
assign rst_sync_n = rst_s2;
endmodule
通过 reset_gen 处理的复位信号,在异步复位的复位过程中,复位信号直接作用到 rst_sync_n 端,起到异步复位的作用;
在复位信号释放的时候,第一级触发器的输入是 Vcc,也就是 1,在下一个时钟节拍后,同步打入到第二级触发器,实现了释放的同步;
参考文档:https://blog.csdn.net/u011729865/article/details/49281713
最后
以上就是畅快信封为你收集整理的Verilog HDL 同步复位和异步复位(转)1、同步复位2、异步复位3、同步/异步复位对比4、异步复位同步释放的全部内容,希望文章能够帮你解决Verilog HDL 同步复位和异步复位(转)1、同步复位2、异步复位3、同步/异步复位对比4、异步复位同步释放所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复