同步复位和异步复位
来源:互联网 发布:弱电算量软件 编辑:程序博客网 时间:2024/06/11 21:57
复位信号一般对寄存器清0处理。同步复位表示只有在时钟沿到来才对寄存器复位,异步复位表示复位与时钟无关,只要满足条件,即进行复位。设计中主要区别在于敏感信号列表。
同步复位的信号列表如下:
always @(posedge clk )
begin
if(!rst_n)
begin
xxxxx <= 'b0;
end
else
begin
.......
end
end
综合后的电路如下:
异步复位的信号列表如下:
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
xxxxx <= 'b0;
end
else
begin
.......
end
end
综合后的电路
D触发器(寄存器)本身是异步复位的,所以异步复位比同步复位逻辑少。一方面节省资源,一方面时序比较好(减少了组合逻辑的时间开销)。
异步复位的设计可以很方便的使用FPGA的全局复位端口GSR。
异步复位最大的缺点就是容易出现毛刺,并且在复位信号释放的时候(有效变为无效时),容易使寄存器进入亚稳态。
同步reset信号可以消除毛刺(需要保证信号在一个周期以上才能复位成功),并且不会进入亚稳态。然而,它复位逻辑多,很耗费资源(设计中经常有大量的寄存器,每个都需要额外逻辑)。
综上:我们可以再rst信号进入系统之前进行同步,然后对系统中每个寄存器使用异步复位的设计:即异步复位,同步release的思想。
下面是经典的同步方法(同步release)reset sychronizer的Verilog代码:
module Reset_Synchronizer
(output reg rst_n, input clk, asyncrst_n);
reg rff1;
always @ (posedge clk , negedge asyncrst_n)
begin
if (!asyncrst_n) {rst_n,rff1} <= 2'b0;
else {rst_n,rff1} <= {rff1,1'b1};
end
endmodule
深化:多时钟系统中的复位
稍大型的系统中,多个同源(或者非同源)时钟信号驱动不同的部分(之间控制的寄存器通信需要做跨时钟域处理的哦)。
non-coordinated reset removal:同一个系统中的多个同源时钟域的复位信号,由彼此独立的“reset synchronizer”驱动。当异步复位信号有效时,各时钟域同时复位,但是复位释放的时间由各自的驱动时钟决定,也是就说:时钟快的先释放,时钟慢的后释放,但是各复位信号之间没有先后关系。
sequence coordinated reset removal:这是相对于上述方式来说的,也就是说各时钟域的复位信号彼此相关,各个部分系统虽然也同时复位,但是却分级释放。而分级的顺序可由各个“reset synchronizer”的级联方式决定。可以先复位前级,再复位后级,也可以反过来,方式很灵活,需要根据实际需要而定。
- 同步复位和异步复位
- 异步复位和同步复位
- 同步复位和异步复位的比较
- [转]同步复位和异步复位
- 同步复位和异步复位的比较
- 异步复位和同步复位的区别
- 同步复位和异步复位的比较
- FPGA中异步复位和同步复位
- verilog同步复位和异步复位
- 同步复位和异步复位的对比
- 同步复位和异步复位的比较
- Verilog同步复位,异步复位
- 同步复位与异步复位
- 异步复位、同步复位和异步复位同步释放的比较
- 【Verilog】 同步复位和异步复位比较 async vs. sync
- 同步复位和异步复位的比较(转载)
- Verilog中同步复位和异步复位比较
- Verilog中同步复位和异步复位比较
- ogre 中material脚本的'texture_unit'部分使用的属性
- Windows Azure革新——Caching(预览)
- 一个可以提高SQL近200倍的执行效率的方法 LIKE 改 =
- Android不同版本上Toast连续显示的问题
- RTMP Handshake导致Flash不能播放H264流
- 同步复位和异步复位
- 天易02----多个复选框向一个文本框内传值
- Lotus Domino/Notes 数据库、文档的权限控制
- 利用 Eclipse Visual Editor 项目构建 GUI
- 架构之美-第16章-数据增长:FACEBOOK平台架构(2)
- css样式表基本知识
- MATLAB中处理任意大图像的函数blockproc
- Godex EZ1300条码打印机打标签时为什么打不出小数点后的零?
- git常用的命令