0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

同步与异步电路信号交互的问题

sally100 来源:数字ICer 作者:数字ICer 2022-11-28 16:00 次阅读

1.同步电路设计

2.全异步电路设计

3.异步信号与同步电路交互的问题及其解决方法

4.SoC设计中的时钟规划策略

1.同步电路设计

同步电路,即电路中的所有受时钟控制的单元,如触发器(Flip Flop)或寄存器(Register),全部由一个统一的全局时钟控制。

a8f92610-6cc1-11ed-8abf-dac502259ad0.png

同步电路的时序收敛

a90f6272-6cc1-11ed-8abf-dac502259ad0.png触发器的建立时间和保持时间

同步电路设计的优点

在同步设计中,EDA工具可以保证电路系统的时序收敛,有效避免了电路设计中竞争冒险现象

由于触发器只有在时钟边缘才改变取值,很大限度地减少了整个电路受毛刺和噪声影响的可能

同步电路设计的缺点

时钟偏斜(Clock Skew)

时钟树综合,需要加入大量的延迟单元,使得电路的面积和功耗大大增加

时钟抖动(Clock Jitter)

a92ff190-6cc1-11ed-8abf-dac502259ad0.png时钟偏斜

2.全异步电路设计

全异步设计跟同步设计最大的不同就是它的电路中的数据传输可以在任何时候发生,电路中没有一个全局的或局部的控制时钟。

a95188e6-6cc1-11ed-8abf-dac502259ad0.png

异步电路设计的基本原理

a971cfac-6cc1-11ed-8abf-dac502259ad0.png自定时的流水线数据通路

握手协议

a994f23e-6cc1-11ed-8abf-dac502259ad0.png握手协议原理

异步电路设计的优点

模块化特性突出

对信号的延迟不敏感

没有时钟偏斜问题

有潜在的高性能特性

好的电磁兼容

具有低功耗的特性异步电路设计的缺点

设计复杂

缺少相应的EDA工具的支持

在大规模集成电路设计中应避免采用异步电路设计

3.异步信号与同步电路交互的问题及其解决方法

3.1亚稳态现象

a9b4e5a8-6cc1-11ed-8abf-dac502259ad0.png亚稳态示意图 a9d586fa-6cc1-11ed-8abf-dac502259ad0.png亚稳态信号的传播

亚稳态问题的解决及其RTL实现

a9ecc464-6cc1-11ed-8abf-dac502259ad0.png亚稳态现象的解决方法

modulesynchronizer(
bclk,//目的时钟,与aclk异步的时钟
reset_b,//全局异步复位信号
adat,//异步输入信号,工作在aclk
bdat,//同步器输出
);
inputbclk;
inputreset_b;
inputadapt;
outputbdat;
wirebdat;
regbdat1;
regbdat2;
always@(posedgebclkornegedgereset_b)
if(reset_b)
{bdat2,bdat1}<= 2 ' b0;
else
    {bdat2,bdat1} <= {bdat1,adat};
assign bdat = bdat2;
endmodule

3.2快时钟同步慢时钟域下的异步控制信号

aa138ae0-6cc1-11ed-8abf-dac502259ad0.png快时钟同步慢时钟信号示意图

modulesynchronizer(
clk_fst,
reset_b,
rd_en,
rd_en_s2f
);
inputclk_fst,reset_b,rd_en
outputrd_en_s2f;
wirerd_en_s2f;
regrd_en_s2f1,rd_en_s2f2,rd_en_s2f3
always@(posedgeclk_fstornegedgereset_b)
if(!reset_b)
{rd_en_s2f3,rd_en_s2f2,rd_en_s2f1}<= 3'b111;
    else
       {rd_en_s2f3,rd_en_s2f2,rd_en_s2f1}<={rd_en_s2f2,rd_en_s2f1,rd_en};
always @ (rd_en_s2f3  or  rd_en_s2f2)
    case ({rd_en_s2f3,rd_en_s2f2})
            2'b01:
                rd_en_s2f <= 1'b1;        
            default:
                rd_en_s2f <= 1'b0;
     endcase


3.3慢时钟同步快时钟域下的异步控制信号

aa3349ca-6cc1-11ed-8abf-dac502259ad0.png慢时钟同步快时钟信号示意图

解决办法 : 握手机制实现方法一

aa47e6dc-6cc1-11ed-8abf-dac502259ad0.png

moduleadapt_gen(
aclk,//快时钟
reset_b,//系统复位信号
adat,//原始控制信号
abdat2, //从慢时钟域反馈回来的同步控制信号
adat1 //经过保持后的信号输出
);
inputaclk,reset_b,adat,abdat2;
outputadat1;
regadat1;
always@(posedgeaclkornegedgereset_b)
if(!reset_b)
adat1<= 1'b0;    
    else if (abdat2)
          adat1 <= 1'b0;
    else if (adat)
          adat1 <= 1'b1;
endmoudule 

解决办法 : 握手机制实现方法二

aa6168fa-6cc1-11ed-8abf-dac502259ad0.pngaa7b0d8c-6cc1-11ed-8abf-dac502259ad0.png

modulestall_logic(
rd_en,
rd_en_
ack_s2f,
stall_b
);
inputrd_en;
inputrd_en_ack_s2f;
outputstall_b;
wirestall_b;
always@(rd_enorrd_en_ack_s2f)
if(rd_en_ack_s2f)
stall_b<= 1'b1;
else if (rd_en)
    stall_b <= 1'b0;
else
    stall_b <= 1'b1;
endmodule


3.4异步时钟域的数据同步

握手机制

aa90cad2-6cc1-11ed-8abf-dac502259ad0.png握手同步异步数据

先入先出队列(FIFO)

aab1289a-6cc1-11ed-8abf-dac502259ad0.pngFIFO结构图 aad8e81c-6cc1-11ed-8abf-dac502259ad0.pngFIFO空满示意图

同步异步时钟FIFO的电路行为

待同步的数据时钟域会在其写信号的控制之下,将数据写入到FIFO中

目的时钟域在发现空标志位无效后,执行FIFO读动作,读出被异步时钟域写入FIFO的数据

如果只要同步一个数据,空标志位再次有效

如果需要同步多个数据,因为FIFO的读/写之间可以不受影响的进行,所以待同步

FIFO设计中的亚稳态问题

通常,通过比较读/写指针是否相等来判断FIFO是否为空。而因为读/写指针属于不同的时钟域,两者显然不能直接连到比较器的两端来产生空信号,否则会造成读FIFO的目的时钟域的电路碰到亚稳态现象.

解决办法

以格雷码编码表示读/写指针,用格雷码加法器来实现读/写地址的加一动作

用同步器将读指针同步到FIFO满标志的产生逻辑,同样用同步器将写指针同步到FIFO空标志的产生逻辑中

aaf813f4-6cc1-11ed-8abf-dac502259ad0.png新的异步FIFO的结构框图

4.SoC设计中的时钟规划策略

首先尽可能使用同步设计:

对于同步电路,逻辑综合和时钟树综合等EDA工具能发挥更大的作用,可以用静态时序分析工具分析单时钟同步设计的时序收敛问题

可测性设计(DFT)的插入工作得到最大的简化

其次,注意同步电路设计的缺陷

噪声问题

时钟树上的功耗很大

如果必须采用不同的时钟,则要注意

后端设计的复杂化,如约束条件中要考虑多周期路径(Multi Cycle Path)

可测性设计更加复杂,因为此时系统中需要有多条独立的扫描链

越多的时钟域,发生亚稳态的概率就会越大

最后,设计规划中应注意以下几点:

尽可能将不同时钟域的数量减到越少越好

尽可能将异步交互电路归入同一或多个独立的模块,这样不但方便后端设计脚本的书写,也方便代码的阅读

尽可能避免使用电平触发器(Latch),因为静态时序分析会变得复杂,不能得到EDA工具很好的支持

尽可能减小时钟树的延时,因为这个延时可能会造成系统功能失效和多余的功耗;

任何异步时钟域交互的环节都要尽可能避免亚稳态现象.

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路设计
    +关注

    关注

    6656

    文章

    2417

    浏览量

    202667
  • 同步电路
    +关注

    关注

    1

    文章

    60

    浏览量

    13273
  • 异步电路
    +关注

    关注

    2

    文章

    48

    浏览量

    11083

原文标题:同步与异步电路信号交互的问题

文章出处:【微信号:数字ICer,微信公众号:数字ICer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Xilinx FPGA异步复位同步释放—同步后的复位该当作同步复位还是异步复位?

    针对异步复位、同步释放,一直没搞明白在使用同步化以后的复位信号时,到底是使用同步复位还是异步复位
    发表于 06-21 09:59 1316次阅读
    Xilinx FPGA<b class='flag-5'>异步</b>复位<b class='flag-5'>同步</b>释放—<b class='flag-5'>同步</b>后的复位该当作<b class='flag-5'>同步</b>复位还是<b class='flag-5'>异步</b>复位?

    如何区分同步复位和异步复位?

    逻辑应该采用同步复位,低速逻辑可以采用异步复位;涉及人机交互的复位,适合异步复位;涉及机器之间的握手交互,应该采用
    发表于 04-24 13:23

    什么是同步逻辑和异步逻辑,同步电路异步电路的区别是什么?

    什么是同步逻辑和异步逻辑,同步电路异步电路的区别是什么?
    发表于 06-18 08:52

    如何区分同步复位和异步复位?

    电路中,何时采用同步异步,取决于设计者,取决于当前设计电路的需要。一般而言:高速逻辑应该采用同步复位,低速逻辑可以采用
    发表于 05-22 17:33

    IC设计中同步复位与异步复位的区别

    时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的开始和 完成信号使之同步
    的头像 发表于 11-09 14:58 9835次阅读

    异步同步电路的区别 同步时序设计规则

    异步电路 1. 电路的核心逻辑是组合电路,比如异步的FIFO/RAM读写信号、地址译码
    的头像 发表于 12-05 11:53 1.2w次阅读

    什么是同步时序电路异步时序电路同步异步电路的区别?

    同步异步时序电路都是使用反馈来产生下一代输出的时序电路。根据这种反馈的类型,可以区分这两种电路。时序
    的头像 发表于 03-25 17:29 2.4w次阅读
    什么是<b class='flag-5'>同步</b>时序<b class='flag-5'>电路</b>和<b class='flag-5'>异步</b>时序<b class='flag-5'>电路</b>,<b class='flag-5'>同步</b>和<b class='flag-5'>异步</b><b class='flag-5'>电路</b>的区别?

    同步电路异步电路有何区别

    同步电路异步电路有何区别 同步电路异步
    的头像 发表于 08-27 16:57 9679次阅读

    什么是同步逻辑和异步逻辑?同步电路异步电路有何区别?

    什么是同步逻辑和异步逻辑?同步电路异步电路有何区别? 同步
    的头像 发表于 11-17 14:16 2175次阅读

    异步电路同步电路区别在哪?

    部分是独立运行的,没有明确定义的时钟信号同步它们的操作。相反,每个部分在满足特定的条件下单独启动和运行,通过相互之间的通信来完成所需的协作。异步电路通常采用握手协议来确保数据的正确传
    的头像 发表于 12-07 10:53 3191次阅读

    异步信号同步电路交互的问题及其解决方法

    异步信号同步电路交互的问题及其解决方法  异步信号
    的头像 发表于 12-07 10:53 620次阅读

    异步电路中的时钟同步处理方法

    异步电路中的时钟同步处理方法  时钟同步异步电路中是至关重要的,它确保了
    的头像 发表于 01-16 14:42 1025次阅读

    同步电路异步电路的优缺点有哪些

    同步电路异步电路是数字电路设计中的两种基本类型,它们在设计方法、性能特点和应用领域等方面存在显著差异。
    的头像 发表于 07-22 17:01 872次阅读

    同步电路异步电路的优缺点

    同步电路异步电路是数字电路设计中的两种基本类型。它们在设计方法、性能、功耗、可靠性等方面存在显著差异。
    的头像 发表于 07-22 17:35 951次阅读

    同步电路异步电路怎么判断正负极

    统一的时钟信号进行工作,各个部分的输出与输入之间存在固定的时序关系。同步电路通常用于数据传输、存储器、处理器等高速电子系统中。 异步电路(A
    的头像 发表于 07-22 17:37 309次阅读