X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
FPGA/CPLD
[经验] 简谈同步复位和异步复位
大辉哥0614
2018-1-30 11:01
楼主
大家好,谈到同步复位和异步复位,那咱们就不得不来聊一聊复位这个词了。在数字逻辑电路设计中,电路通过复位来启动,复位犹如数字电路的“起搏器”。那在设计中,主要会出现以下三种类型的,一是无复位:天生就强壮着,上电就启动;二是异步复位:好心人路过,随便踢了一脚,起搏了,这完全没有心理准备,随时都有可能复活啊;三是同步复位:专业救援队,手按住胸口,不起博按住不放啊。直到听到“砰砰”声才离开,非常关键,必须要按住一会会。
那下面咱们就来详细聊聊这三种类型。
一、无复位
没见过这样写代码的,竟然没有复位,老师都说数字电路离不开复位的,没有复位,寄存器怎么赋初值啊?没有确定的初值,这电路怎么工作呢?
其实,不用担心,FPGA上电之后,寄存器初始值默认为“0”,当然,也可以人为的赋初值。下面为无复位的代码举例:
reg [7:0] a;
always @(posedge clk)
begin
a <= b;
end
如果没有复位信号,省了很多资源,编译和布线时间也缩短不少,如果规模很大,对提高设计整体性能也是有帮助的。但是在数字电路设计中,我们很少不用复位电路。到是我们经常利用FPGA这个特性,自己产生内部复位电路。
二、异步复位
异步复位电路描述:在always语句中添加复位信号在敏感量列表中,即可实现异步复位。下面为异步复位的代码举例以及电路图举例:
reg [7:0] a;
always @(posedge clk, posedge rst_n)
begin
if(rst_n)
begin
a <= 8’h0;
end
else
begin
a <= b;
end
end
异步复位的缺点:
异步复位对复位信号要求很严格的,不然随便一个毛刺就会把电路给复位掉的。
另外,异步复位信号依赖于FPGA内部的传导延时,因此,在微小的电压或温度差异下,设计都有可能输出错误,设计的可移植性也很差。上面不是说了嘛,这随便一脚提过来,有时候能感觉到,有时候感觉不到啊。冬天穿个大棉袄,就得使个大劲才能提醒。
正因为对不同寄存器延迟是不同的,所以容易引发间断性设计问题。怎么理解呢?
如图所示,2 bit的移位寄存器组成一个环,复位后,左边寄存器清零,右边寄存器置位,而且都在同一上升沿触发,所以,如果左边寄存器上升沿来的时候,复位信号已经释放掉了,但是右边寄存器还处于复位状态,这个时候数据就错误。
异步复位的优点:
异步复位不依赖于时钟。所以如果时钟是外部输入的,而且时钟有可能丢失,例如处于省电模式时,只能使用异步复位。
另外一个优势是设计更快的物理实现。相对于同步复位,异步复位有更宽松的时序约束。从而布局布线工具使用更少的时间便可达到约束条件。
三、同步复位
同步复位就是非常专业,不留一点马虎,和他的名字一样,只在时钟的有效沿发生,所以一个有效的同步信号,至少要维持一个时钟周期(把你叫不醒,是不会停的)。由于仅仅在时钟的有效沿有效,所以可以滤除复位信号上的毛刺,电路可靠性好很多。下面为同步复位的代码举例:
reg [7:0] a;
always @(posedge clk)
begin
if(rst_n)
begin
a <= 8’h0;
end
else
begin
a <= b;
end
end
所以,总结一下。其优点是“弥补了异步复位的所有缺点”,其缺点是“没有异步复位的优点“”。这个总结够简单吧。
总结
我们熟悉了3种复位方式,了解了他们的脾气,那就总结一下,在我们平时设计中如何使用他们。
尽量用同步复位,如果你的规模不是特别大,虽然占有布线资源多一点,但是对系统可靠性还是有帮助的。
规模很大的时候,可以考虑混和复位方式,在什么场合呢?比如说设计中有多个IP核和功能模块,要求有不同的复位方式,这个时候就要求混和复位方式,另外,还有电路延迟,大型电路中两个模块之间信号延迟可能超过10ns,如果时钟周期为3ns,需要3个时钟周期才能通过,所以,大型设计中完全同步是非常不容易的。如图所示为一个复杂的混和复位树。各种复位都用上了。
各位,加油,共同进步!
想学FGPA,至芯科技 昭哥带你学,联系方式:15201114008
点赞
回复评论 (5)
沙发
star_66666
学习一下
点赞
2018-1-30 11:04
板凳
tiankai001
说的很详细,也很到位,拜读了
点赞
2018-2-1 15:44
4楼
大辉哥0614
引用:
tiankai001 发表于 2018-2-1 15:44
说的很详细,也很到位,拜读了
谢谢,
想学FGPA,至芯科技 昭哥带你学,联系方式:15201114008
点赞
2018-2-3 09:46
5楼
大辉哥0614
引用:
star_66666 发表于 2018-1-30 11:04
学习一下
学习,共同进步
想学FGPA,至芯科技 昭哥带你学,联系方式:15201114008
点赞
2018-2-3 09:46
6楼
star_66666
共同进步,
点赞
2018-2-3 12:23
最新活动
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
随便看看
★★ 入坑嵌入式 不看你绝对后悔的内容剖析
使用ST-LINK对GD32F150C6T6 MCU进行Flash编程
PCB短路
网络开发笔记10_MFC编程基础
BLE蓝牙基本概念
【是德征文】+ N4010A
【晒样片】+ TI 参考设计
C语言编程规范
按键长按开机电路
继电器应用说明
单片机控制舵机
求大神帮看看这段程序
2812测频问题
直流有刷电机的驱动问题
关于变送器高于或者低于取压点的问题
谁有线路板继电器的生产工艺
ti 开发板秒不停
太阳能充电新技术
射频电路板设计技巧
wxf0204 进来
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复