2563|0

69

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

炼狱传奇-异步复位同步释放之战 [复制链接]

经过前面的学习,相信大家已经充分体会到了verilog语言设计的精妙,今天开始“异步复位同步释放”的征战之旅。
异步复位同步释放是提高系统稳定性最有效的方式,下面介绍两种其他的复位方式,我们以此来比较说明异步复位同步释放的优点。
同步复位,代码如下图
                              
    异步复位,代码如下图

    请思考,在同步复位和异步复位按键放开的过程中,在时钟的上升沿,恰好rst_n由低变高,那么时钟采集的数据是一个0到1的跳变,数据是多少呢?
    上述情况,就是发生了亚稳态。亚稳态是在数据的建立时间和保持时间不满足的事情下发生的。亚稳态发生采集的数据有的寄存器认为是0,有的寄存器认为是1,所以无法确保所有的寄存器在同一个时钟沿跳出复位状态。
       下面介绍异步复位同步释放电路

reset_n接到两个异步复位寄存器的清零端(CLRN端接低电平的时候寄存器输出端会清零),当reset_n为0 时,寄存器reg3和寄存器reg4输出为0;由于寄存器reg1和寄存器reg2的CLRN端接到了寄存器reg4的输出端,所以寄存器输出端out_a和out_b会被清零,从而实现复位清零的功能。在reset_n由低变高时,第一个时钟周期将VCC输入到左边第一个寄存器,第二个寄存器保持为0,在第二个时钟周期后两个寄存器都变为1,输出端寄存器的清零端为1,跳出复位。
将上图电路描述为代码如下



同理下面介绍如何使用锁相环进行异步复位同步释放,复位电路原理图如下

要理解此电路,我们必须首先掌握一下几点:
1. locked信号为锁相环的输出信号,锁相环时钟输出端CO在上电以后会有一段不稳定的时间,此时locked信号为低电平,当时钟输出端C0输出保持稳定以后,locked信号也会同步拉高,表示输出有效。
2. areset为输入锁相环的高电平复位信号,当areset为高电平时,锁相环复位,没有时钟输出。
3. 寄存器ENA端为寄存器输出使能,高电平有效,只有当ENA保持为高电平的时候,寄存器才会有数据输出。
有以上电路原理图可以看出,当reset_n信号变为低电平以后,寄存器reg1、reg2、reg3、reg4都会清零,由于reset_n到areset端口之间经过了一个非门,电平取反,对于锁相环来说,复位端为高电平,可以实现复位。
当reset_n信号由低电平变为高电平以后,锁相环复位和所有寄存器清零同步结束,但由于锁相环的输出端locked信号需要稳定一定时间才能输出高电平而且寄存器reg3和reg4的输出使能端有locked信号控制,所以必须要等到锁相环输出稳定以后,VCC才会开始在寄存器reg3和reg4之间传递,使其他寄存器电路正式结束复位状态。
    上述电路代码,描述如下




此帖出自FPGA/CPLD论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表