同步复位和异步复位
时间:2014-07-22 08:48来源: 作者: 点击:
|
复位电路是每个数字逻辑电路的重要组成部分之一。复位的目的有二个方面:1、仿真的时候使电路进入初始状态或者其他预知状态。2、对于综合实现的真实电路,通过复位使电路进入初始状态或者其他预知状态。复位方式大致分为二类: 同步复位和异步复位 (一)同步复位指定同步复位时,always的敏感表中仅有时钟沿信号,仅仅当时钟沿采到同步复位的有效电平时,才会有时钟沿到达时刻进行复位操作。 always @ (posedge clk) if (!rst_n) begin …… end else begin …… end优点: 同步复位仅在时钟的有效沿生效,可以有效的避免因复位电路毛刺造成的亚稳态和错误。缺点:1.很多触发器本身并不包含同步复位端口,使用同步复位会增加更多逻辑资源 2.同步复位的最大问题在于必须保证复位信号的有效时间足够长,从而才能保证所有触发器都有效地复位。 (二)异步复位指定异步复位时,只需在always的敏感表中加入复位信号的有效沿即可,当复位信号有效沿到达时,无论时钟沿是否有效,复位立刻发挥功能。 always @ (posedge clk or negedge rst_n) if (!rst_n) begin …… end else begin …… end优点:大多数触发器都包含异步复位端口,异步复位会节约逻辑资源,并且异步复位设计简单。缺点:异步复位逻辑树的组合逻辑易产生毛刺,毛刺的有效沿会触发异步复位,造成逻辑错误。 (三)异步复位,同步释放推荐的复位电路方式是异步复位,同步释放,这种方式可以有效地继承异步复位设计简单的优势,并克服异步复位的上述不足。reg reset_reg;always @ (posedge clk) reset_reg <= rst_n;always @ (posedge clk or negedge reset_reg) if (!reset_reg) begin …… end else begin …… end |
|