FPGA|CPLD|ASIC论坛
登录
直播中
晓灰灰
7年用户
436经验值
擅长:可编程逻辑 嵌入式技术 EDA/IC设计 接口/总线/驱动
私信
关注
[经验]
简谈同步复位和异步复位
同步
复位
异步
`
大家好,谈到同步复位和异步复位,那咱们就不得不来聊一聊复位这个词了。在数字逻辑
电路
设计中,电路通过复位来启动,复位犹如数字电路的“起搏器”。那在设计中,主要会出现以下三种类型的,一是无复位:天生就强壮着,上电就启动;二是异步复位:好心人路过,随便踢了一脚,起搏了,这完全没有心理准备,随时都有可能复活啊;三是同步复位:专业救援队,手按住胸口,不起博按住不放啊。直到听到“砰砰”声才离开,非常关键,必须要按住一会会。
那下面咱们就来详细聊聊这三种类型。
一、无复位
没见过这样写代码的,竟然没有复位,老师都说数字电路离不开复位的,没有复位,寄存器怎么赋初值啊?没有确定的初值,这电路怎么工作呢?
其实,不用担心,
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个时钟周期才能通过,所以,大型设计中完全同步是非常不容易的。如图所示为一个复杂的混和复位树。各种复位都用上了。
各位,加油,共同进步!
`
回帖
(7)
晓灰灰
2018-1-30 13:41:13
至芯科技FPGA寒假初级研修班,学费:2000元,课时10天,免费提供高质量宾馆住宿。寒假班可以转至就业班,后续学子就业班会扣除寒假班学费,并享受优厚福利等。可以免费试听,实地考察,满意后在缴纳学费,真心做实事,在至芯科技!
至芯科技FPGA寒假初级研修班,学费:2000元,课时10天,免费提供高质量宾馆住宿。寒假班可以转至就业班,后续学子就业班会扣除寒假班学费,并享受优厚福利等。可以免费试听,实地考察,满意后在缴纳学费,真心做实事,在至芯科技!
举报
lee_st
2018-1-31 10:12:56
进来学习
进来学习
举报
lee_st
2018-1-31 10:13:10
还附带广告啊
还附带广告啊
举报
晓灰灰
2018-2-2 12:28:20
引用:
lee_st 发表于 2018-1-31 10:13
还附带广告啊
都不容易,学习为主,好好学习,天天向上
引用:
lee_st 发表于 2018-1-31 10:13
还附带广告啊
都不容易,学习为主,好好学习,天天向上
举报
lee_st
2018-2-3 14:04:49
是的吧
是的吧
举报
lee_st
2018-2-3 14:05:56
谢谢支持
谢谢支持
举报
lee_st
2018-2-3 14:07:08
偶是很爱分享的
偶是很爱分享的
举报
更多回帖
rotate(-90deg);
回复
相关帖子
同步
复位
异步
简
谈
同步
复位
和
异步
复位
13002
简
谈
同步
复位
和
异步
复位
3768
同步
复位
与
异步
复位
67
FPGA中的
异步
复位
or
同步
复位
or
异步
复位
同步
释放
1081
同步
复位
与
异步
复位
的区别
7043
Xilinx FPGA
异步
复位
同步
释放—
同步
后的
复位
该当作
同步
复位
还是
异步
复位
?
1410
复位
电路的
同步
复位
和
异步
复位
讲解
6944
FPGA
同步
复位
和
异步
复位
1383
同步
复位
和
异步
复位
讲解
10434
如何区分
同步
复位
和
异步
复位
?
6809
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分