日志档案

发表于 2007-6-18 10:11:37

4

标签: 无标签

异步复位还是同步复位?

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

异步复位:

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厂商对两者都有很好的支持。


系统分类: CPLD/FPGA   |   用户分类: ASIC DESIGN   |   来源: 原创   |   【推荐给朋友】

    阅读(1124)    回复(2)  

投一票您将和博主都有获奖机会!

  • liuzilin1121

    2007-7-9 17:50:30

    Hi ,我一直在看你的Blog,很不错,篇篇都是精华。

    我是想问下,你有兴趣在一个新起的,专业的FPGA社区担任版主吗?

    当然,如果你有兴趣的话。这个论坛是受到FPGA大厂和相关的开发工具供应商的大力支持,所以,相信你会受益匪浅。

    如果有兴趣的话,请与我联系,liuzilin1121@hotmail.com

  • 马奔利

    2007-10-22 11:13:42

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