医疗电子技术网|技术阅读
登录|注册

您现在的位置是:医疗电子技术网 > 技术阅读 > FPGA基础之异步复位和同步释放电路的详细解释

FPGA基础之异步复位和同步释放电路的详细解释

假设rst_async_n撤除时发生在clk上升沿,如果如下电路则可能发生亚稳态事件。



如图第一个方框内是异步复位和同步释放电路。有两个D触发器构成。第一级D触发器的输入时VCC,第二级触发器输出是可以异步复位,同步释放后的复位信号。

电路目的:方式复位信号撤除时产生亚稳态事件。

所谓异步复位和同步释放,是指复位信号是异步有效的,即复位的发生与clk无关。后半句“同步释放”是指复位信号的撤除(释放)则与clk相关,即同步的。

下面说明一下如何实现异步复位和同步释放的。

异步复位:显而易见,rst_async_n异步复位后,rst_sync_n将拉低,即实现异步复位。


同步释放:这个是关键,看如何实现同步释放,即当复位信号rst_async_n撤除时,由于双缓冲电路的作用,rst_sync_n复位信号不会随着rst_async_n的撤除而撤除。

第二级的触发器的输入之前是低电平,所以复位撤除时,不存在亚稳态的问题,他不用考虑是该高电平还是低电平,因为一直为低电平,但是第一级触发器,复位撤除之前输出是低电平,撤除之后因为输入是高电平,这时候输出有可能是低电平,也可能是高电平,就有亚稳态的问题了,但是经过一个时钟周期就稳定了。

假设rst_async_n撤除时发生在clk上升沿,如果不加此电路则可能发生亚稳态事件。但是加上此电路以后,假设第一级D触发器clk上升沿时rst_async_n正好撤除,则D触发器1可能输出高电平“1”,也可能输出亚稳态,也可能输出低电平,但此时第二级触发器不会立刻更新输出,第二级触发器输出值为前一级触发器次clk来之前时的第一级触发器Q1的输出状态。显然Q1之前为低电平,顾第二级触发器输出保持复位低电平,直到下一个clk来之后,才随着变为高电平。即同步释放。

  • module ex1 (   

  • output rst_sync_n,   

  • input clk, rst_async_n);  

  •   

  •   

  • reg rst_s1, rst_s2;  

  • always @ (posedge clk, posedge 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  

  • 对于实际的实现TECH MAP视图




           

    版权声明:转载请注明出处:http://blog.csdn.net/lg2lh https://blog.csdn.net/lg2lh/article/details/8488224  

    本文转自网络,版权归原作者,如果您觉得不好,请联系我们删除!

    广告

    关于立创商城

    立创商城(WWW.SZLCSC.COM)成立于2011年,致力于为客户提供一站式电子元器件线上采购服务,成交量全国领先。拥有10000多平方米现代化元器件仓库,现货库存超100000种,集团电子全产业链自营服务涵盖:在线EDA(LCEDA)+行业领先的PCB打样/中小批量+元器件商城+钢网制造+SMT贴片+电子设计教育及方案。作为一家品种齐全、自营库存、质量有保障的电子元器件垂直商城,立创商城所有元器件均从原厂或代理商正规渠道采购,保证原装正品,为您提供专业的一站式元器件采购服务。