[Xilinx]同步复位与异步复位
1.异步复位:是指复位信号和系统时钟信号的触发可以在任何时刻,二者相互独立。
异步复位举例:
1 always@(posedge clk or negedge rst_n) 2 if(!rst_n) 3 b<=1'b0; 4 else 5 b<=a;
2.同步复位:和异步复位相比,没有用到寄存器的CLR端口,synthesis出来的实际电路只是把复位信号rst_n作为输入逻辑的使能信号,那么这样同步复位势必会增加FPGA内部资源的消耗。
同步复位举例:
1 always@(posedge clk) 2 if(!rst_n) 3 b<=1'b0; 4 else 5 b<=a;
3.异步复位存在亚稳态问题
4.异步复位,同步释放
1 input clk; 2 input rst_n; 3 output rst_nr2; 4 reg rst_nr1,rst)nr2; 5 6 //两级层叠复位产生,低电平服务 7 always@(posedge clk or negedge rst_n) 8 if(!rst_n) 9 rst_nr1<=1'b0; 10 else 11 rst_nr1<=1'b1; 12 13 always@(posedge clk or negedge rst_n) 14 if(!rst_n) 15 rst_nr2<=1'b0; 16 else 17 rst_nr2<=rst_nr1;
即解决了异步复位的的亚稳态问题,又解决了同步复位的资源消耗问题,其根本思想就是将异步信号同步化
posted on 2013-05-04 11:11 LiangXuan 阅读(1278) 评论(0) 编辑 收藏 举报