原创 异步复位还是同步复位?

2009-3-27 17:44 6112 10 11 分类: FPGA/CPLD

    对于这个问题,网上有很多讨论。在这里总结一下,提醒自己。


异步复位:


always @(posedge clk or posedge reset)
begin
    if(reset)
       // reset逻辑
    else
       // 同步逻辑
end


 


同步复位:


always @(posedge clk)
begin
    if(reset)
        // reset逻辑
    else
        // 同步逻辑
end


    ASIC设计中,同步复位要比异步复位多耗资源,但是在FPGA中两者差不多,因为FPGA中的寄存器同步复位和异步复位都提供资源。异步复位会对复位信号上的毛刺产生错误复位。


    在ASIC设计中,通常的做法是使用异步复位,在异步复位信号的根部进行总体同步。

    2007年十月份,由于工作安排参加了IBM的芯片后端process的培训,了解了IBM关于后端process的流程、阶段定义和tool chain。当问到IBM的工程师关于异步复位还是同步复位的问题时,他们的回答是都可以,对于IBM的technology来说两者都没有问题,不需要设计者特别考虑。真是高人呀!看来二者的争论是没有多大必要的了。一般的foundry厂商对两者都有很好的支持。

2009年3月20号更新
    又有新发现。IBM的标准单元中没有同步复位的DFF,使用同步复位综合成如下结果:
                  fb659930-e499-4ae2-bac9-b69f301b0a16.jpg
所以使用同步reset会增加逻辑(上图中的“与门”)。

    如果使用异步复位,综合结果如下:
                    ce064735-95b4-426d-a6e0-62573c07dc76.jpg
此时,使用异步复位会得到更好的时序。

所以,之前是被IBM工程师忽悠了。

一般性原则:如果确定了综合的foundry厂的库,先要研究库中DFF的情况。然后决定reset设计。
           如果没有库或还不确定制程,比如要写IP,那就用同步reset。
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户75640 2009-5-2 17:58

驱动芯片选择的原则主要一个就是电机的功率啊

用户162489 2009-4-9 19:16

哦,谢谢。可是用这个软件仿真的时候,有很多元件都找不到,如果要自己画的话,好像挺麻烦的,还有什么别的办法吗? 再请问下,这样的全桥式驱动芯片的选择原则是什么啊?

用户75640 2009-3-20 20:27

可以用proteus啊!!

用户162489 2009-3-13 19:30

请问下如果要给这么一个系统进行软件仿真要用什么软件啊?用单片机控制

用户1612138 2008-4-4 10:13

很好,谢谢!

用户75640 2008-2-13 22:50

最常用的是l298,不过最好的用mc33886,里面是mos管结构,通态电阻毕竟低,应该可以满足你的要求。

用户13179 2008-1-22 21:04

看到你的Blog非常受启发!我是一个大学学生,专业是电力电子。打算以后在嵌入式系统这个方面深入学习,但是却不知道从何做起。以后我会常来你的Blog看的~

另外,我和几个同学正在做一个智能避障小车,想要找一个直流电机驱动芯片,希望发热不会太大,价格不太贵,能请你比较一下常用的驱动芯片的特点吗?

THX!

用户119502 2007-10-22 11:13

如何在异步复位信号的根部进行总体同步?

用户75640 2007-8-25 09:43

谢谢你的支持,欢迎常来!!!

用户304942 2007-8-18 10:33

看过    支持!
相关推荐阅读
用户1049668 2010-12-28 15:56
多时钟域设计和触发器的亚稳态
    目前正在做的东西必须跨时钟域(crossing clock domain),信号非同步的问题很让人头疼。在读资料的时候了解到触发器(flip-flopper)输出会出现亚稳态(meta-sta...
用户1049668 2010-12-17 16:09
为何DC综合后网表文件包含assign语句,如何去除assign语句。
Question:问题:I have a feedthrough in my circuit, and the netlist is showing an assign statement for t...
用户1049668 2010-12-17 14:55
group_path
synopsis DC命令使用group_path可以是DC在编译时使用不同的代价比重。如下命令可以使编译器在编译时对输入端口到寄存器,寄存器到输出端口,输入端口到输出端口三中情况分别做优化。grou...
用户1049668 2010-12-17 14:45
DC compile命令
2.  Synopsys Commands                                        Command Reference                      ...
用户1049668 2010-12-10 10:30
dia软件的逻辑图形库 Logic shapes for DIA
This package is the newly updated logic shapes used in DIA, a opensource diagram program. Unpack the...
用户1049668 2010-11-13 22:52
PLL jitter
Jitter Definitions and Specifications 时钟抖动的定义和规定Jitter is a random variation of the output clock. It...
EE直播间
更多
我要评论
1
10
关闭 站长推荐上一条 /3 下一条