精华内容
下载资源
问答
  • 1、什么是同步逻辑和异步逻辑,同步电路和异步电路的区别是什么?同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。电路设计可分类为同步电路和异步电路设计。同步电路利用时钟脉冲使其...

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

    同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。

    电路设计可分类为同步电路和异步电路设计。同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和 “完成”信号使之同步。由于异步电路具有下列优点--无时钟歪斜问题、低电源消耗、平均效能而非最差效能、模块性、可组合和可复用性--因此近年来对异步 电路研究增加快速,论文发表数以倍增,而Intel Pentium 4处理器设计,也开始采用异步电路设计。

    异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,其逻辑输出与任何时钟信号都没有关系,译码输出产生的毛刺通常是 可以监控的。同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时 钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。

    2、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用oc门来实现(漏极或者集电极开路),由于不用oc门可能使灌电流过大,而烧坏逻辑门,同时在输出端口应加一个上拉电阻。(线或则是下拉电阻)

    3、什么是Setup 和Holdup时间,setup和holdup时间区别.

    Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿 有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。保持时间是指触发器的时钟信号上升沿到来以后,数据稳定 不变的时间。如果hold time不够,数据同样不能被打入触发器。

    建立时间(Setup Time)和保持时间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。如果不满足建立和保持时间 的话,那么DFF将不能正确地采样到数据,将会出现stability的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量 就分别被称为建立时间裕量和保持时间裕量。

    4、什么是竞争与冒险现象?怎样判断?如何消除?

    在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。

    5、你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?

    常用逻辑电平:12V,5V,3.3V;TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V的。 CMOS输出接到TTL是可以直接互连。TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V。cmos的高低电平分别 为:Vih>=0.7VDD,Vil<=0.3VDD;Voh>=0.9VDD,Vol<=0.1VDD. TTL的为:Vih>=2.0v,Vil<=0.8v;Voh>=2.4v,Vol<=0.4v. 用cmos可直接驱动ttl;加上拉后,ttl可驱动cmos.

    6、如何解决亚稳态。亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何 时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触 发器级联式传播下去。

    解决方法:

    1 降低系统时钟

    2 用反应更快的FF

    3 引入同步机制,防止亚稳态传播

    4 改善时钟质量,用边沿变化快速的时钟信号

    关键是器件使用比较好的工艺和时钟周期的裕量要大。

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

    同步复位在时钟沿采复位信号,完成复位动作。异步复位不管时钟,只要复位信号满足条件,就完成复位动作。异步复位对复位信号要求比较高,不能有毛刺,如果其与时钟关系不确定,也可能出现亚稳态。

    8、MOORE 与 MEELEY状态机的特征。

    Moore 状态机的输出仅与当前状态值有关, 且只在时钟边沿到来时才会有状态变化. Mealy 状态机的输出不仅与当前状态值有关, 而且与当前输入值有关.

    9、多时域设计中,如何处理信号跨时域。

    不同的时钟域之间信号通信时需要进行同步处理,这样可以防止新时钟域中第一级触发器的亚稳态信号对下级逻辑造成影响,其中对于单个控制信号可以用两级同步器,如电平、边沿检测和脉冲,对多位信号可以用FIFO,双口RAM,握手信号等。

    跨时域的信号要经过同步器同步,防止亚稳态传播。例如:时钟域1中的一个信号,要送到时钟域2,那么在这个信号送到时钟域2之前,要先经过时钟域2的同步 器同步后,才能进入时钟域2。这个同步器就是两级d触发器,其时钟为时钟域2的时钟。这样做是怕时钟域1中的这个信号,可能不满足时钟域2中触发器的建立 保持时间,而产生亚稳态,因为它们之间没有必然关系,是异步的。这样做只能防止亚稳态传播,但不能保证采进来的数据的正确性。所以通常只同步很少位数的信 号。比如控制信号,或地址。当同步的是地址时,一般该地址应采用格雷码,因为格雷码每次只变一位,相当于每次只有一个同步器在起作用,这样可以降低出错概 率,象异步FIFO的设计中,比较读写地址的大小时,就是用这种方法。 如果两个时钟域之间传送大量的数据,可以用异步FIFO来解决问题。

    10、给了reg的setup,hold时间,求中间组合逻辑的delay范围。

    Delay < period - setup – hold

    11、时钟周期为T,触发器D1的寄存器到输出时间最大为T1max,最小为T1min。组合逻辑电路最大延迟为T2max,最小为T2min。问,触发器D2的建立时间T3和保持时间应满足什么条件。

    T3setup>T+T2max,T3hold>T1min+T2min

    12、给出某个一般时序电路的图,有Tsetup,Tdelay,Tck->q,还有 clock的delay,写出决定最大时钟的因素,同时给出表达式。

    T+Tclkdealy>Tsetup+Tco+Tdelay;

    Thold>Tclkdelay+Tco+Tdelay;

    13、说说静态、动态时序模拟的优缺点。

    静态时序分析是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过 对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。它不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计 进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计,因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。

    动态时序模拟就是通常的仿真,因为不可能产生完备的测试向量,覆盖门级网表中的每一条路径。因此在动态时序分析中,无法暴露一些路径上可能存在的时序问题;

    14、一个四级的Mux,其中第二级信号为关键信号 如何改善timing。关键:将第二级信号放到最后输出一级输出,同时注意修改片选信号,保证其优先级未被修改。

    15、为什么一个标准的倒相器中P管的宽长比要比N管的宽长比大?

    和载流子有关,P管是空穴导电,N管电子导电,电子的迁移率大于空穴,同样的电场下,N管的电流大于P管,因此要增大P管的宽长比,使之对称,这样才能使得两者上升时间下降时间相等、高低电平的噪声容限一样、充电放电的时间相等

    16、latch与register的区别,为什么现在多用register.行为级描述中latch如何产生的。latch是电平触发,register是边沿触发,register在同一时钟边沿触发下动作,符合同步电路的设计思想,而latch则属于异步电路设计,往往会导致时序分析困难,不适当的应用latch则会大量浪费芯片资源。

    17、BLOCKING NONBLOCKING 赋值的区别。

    非阻塞赋值:块内的赋值语句同时赋值,一般用在时序电路描述中

    展开全文
  • 1、什么是同步逻辑和异步逻辑,同步电路和异步电路的区别是什么?同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。电路设计可分类为同步电路和异步电路设计。同步电路利用时钟脉冲使其...

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

    同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。

    电路设计可分类为同步电路和异步电路设计。同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和 “完成”信号使之同步。由于异步电路具有下列优点--无时钟歪斜问题、低电源消耗、平均效能而非最差效能、模块性、可组合和可复用性--因此近年来对异步 电路研究增加快速,论文发表数以倍增,而Intel Pentium 4处理器设计,也开始采用异步电路设计。

    异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,其逻辑输出与任何时钟信号都没有关系,译码输出产生的毛刺通常是 可以监控的。同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时 钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。

    2、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用oc门来实现(漏极或者集电极开路),由于不用oc门可能使灌电流过大,而烧坏逻辑门,同时在输出端口应加一个上拉电阻。(线或则是下拉电阻)

    3、什么是Setup 和Holdup时间,setup和holdup时间区别.

    Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿 有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。保持时间是指触发器的时钟信号上升沿到来以后,数据稳定 不变的时间。如果hold time不够,数据同样不能被打入触发器。

    建立时间(Setup Time)和保持时间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。如果不满足建立和保持时间 的话,那么DFF将不能正确地采样到数据,将会出现stability的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量 就分别被称为建立时间裕量和保持时间裕量。

    4、什么是竞争与冒险现象?怎样判断?如何消除?

    在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。

    5、你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?

    常用逻辑电平:12V,5V,3.3V;TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V的。 CMOS输出接到TTL是可以直接互连。TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V。cmos的高低电平分别 为:Vih>=0.7VDD,Vil<=0.3VDD;Voh>=0.9VDD,Vol<=0.1VDD. TTL的为:Vih>=2.0v,Vil<=0.8v;Voh>=2.4v,Vol<=0.4v. 用cmos可直接驱动ttl;加上拉后,ttl可驱动cmos.

    6、如何解决亚稳态。亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何 时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触 发器级联式传播下去。

    解决方法:

    1 降低系统时钟

    2 用反应更快的FF

    3 引入同步机制,防止亚稳态传播

    4 改善时钟质量,用边沿变化快速的时钟信号

    关键是器件使用比较好的工艺和时钟周期的裕量要大。

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

    同步复位在时钟沿采复位信号,完成复位动作。异步复位不管时钟,只要复位信号满足条件,就完成复位动作。异步复位对复位信号要求比较高,不能有毛刺,如果其与时钟关系不确定,也可能出现亚稳态。

    8、MOORE 与 MEELEY状态机的特征。

    Moore 状态机的输出仅与当前状态值有关, 且只在时钟边沿到来时才会有状态变化. Mealy 状态机的输出不仅与当前状态值有关, 而且与当前输入值有关.

    9、多时域设计中,如何处理信号跨时域。

    不同的时钟域之间信号通信时需要进行同步处理,这样可以防止新时钟域中第一级触发器的亚稳态信号对下级逻辑造成影响,其中对于单个控制信号可以用两级同步器,如电平、边沿检测和脉冲,对多位信号可以用FIFO,双口RAM,握手信号等。

    跨时域的信号要经过同步器同步,防止亚稳态传播。例如:时钟域1中的一个信号,要送到时钟域2,那么在这个信号送到时钟域2之前,要先经过时钟域2的同步 器同步后,才能进入时钟域2。这个同步器就是两级d触发器,其时钟为时钟域2的时钟。这样做是怕时钟域1中的这个信号,可能不满足时钟域2中触发器的建立 保持时间,而产生亚稳态,因为它们之间没有必然关系,是异步的。这样做只能防止亚稳态传播,但不能保证采进来的数据的正确性。所以通常只同步很少位数的信 号。比如控制信号,或地址。当同步的是地址时,一般该地址应采用格雷码,因为格雷码每次只变一位,相当于每次只有一个同步器在起作用,这样可以降低出错概 率,象异步FIFO的设计中,比较读写地址的大小时,就是用这种方法。 如果两个时钟域之间传送大量的数据,可以用异步FIFO来解决问题。

    10、给了reg的setup,hold时间,求中间组合逻辑的delay范围。

    Delay < period - setup – hold

    11、时钟周期为T,触发器D1的寄存器到输出时间最大为T1max,最小为T1min。组合逻辑电路最大延迟为T2max,最小为T2min。问,触发器D2的建立时间T3和保持时间应满足什么条件。

    T3setup>T+T2max,T3hold>T1min+T2min

    12、给出某个一般时序电路的图,有Tsetup,Tdelay,Tck->q,还有 clock的delay,写出决定最大时钟的因素,同时给出表达式。

    T+Tclkdealy>Tsetup+Tco+Tdelay;

    Thold>Tclkdelay+Tco+Tdelay;

    13、说说静态、动态时序模拟的优缺点。

    静态时序分析是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过 对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。它不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计 进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计,因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。

    动态时序模拟就是通常的仿真,因为不可能产生完备的测试向量,覆盖门级网表中的每一条路径。因此在动态时序分析中,无法暴露一些路径上可能存在的时序问题;

    14、一个四级的Mux,其中第二级信号为关键信号 如何改善timing。关键:将第二级信号放到最后输出一级输出,同时注意修改片选信号,保证其优先级未被修改。

    15、为什么一个标准的倒相器中P管的宽长比要比N管的宽长比大?

    和载流子有关,P管是空穴导电,N管电子导电,电子的迁移率大于空穴,同样的电场下,N管的电流大于P管,因此要增大P管的宽长比,使之对称,这样才能使得两者上升时间下降时间相等、高低电平的噪声容限一样、充电放电的时间相等

    16、latch与register的区别,为什么现在多用register.行为级描述中latch如何产生的。latch是电平触发,register是边沿触发,register在同一时钟边沿触发下动作,符合同步电路的设计思想,而latch则属于异步电路设计,往往会导致时序分析困难,不适当的应用latch则会大量浪费芯片资源。

    17、BLOCKING NONBLOCKING 赋值的区别。

    非阻塞赋值:块内的赋值语句同时赋值,一般用在时序电路描述中

    展开全文
  • 锁存器等)都被同一个时钟信号驱动,他们的输出都是同时变化的,因此对数字电路的影响也是同步的。典型的同步逻辑电路如下: 上面只是对同步逻辑狭隘的定义,广义的概念:允许数字电路中有多个时钟,但是这些时钟...

    同步逻辑

    只被一个时钟信号驱动的设计称为同步逻辑,因为所有的记忆元素(比如寄存器、RAM。锁存器等)都被同一个时钟信号驱动,他们的输出都是同时变化的,因此对数字电路的影响也是同步的。典型的同步逻辑电路如下:

    在这里插入图片描述

    上面只是对同步逻辑狭隘的定义,广义的概念:允许数字电路中有多个时钟,但是这些时钟具有下面条件之一:

    • 这些时钟之间有着固定的因果关系;
    • 他们所驱动的记忆单元在电路上是完全隔离的

    条件一对应的典型电路:

    在这里插入图片描述

    条件二对应的典型电路:

    在这里插入图片描述

    同步逻辑的特点:

    • 所有的触发器的时钟都连在一起,并且都接在系统时钟上;
    • 只有当时钟脉冲到来时,电路的状态才会发生改变;
    • 改变后的状态将一直保持到下一个时钟脉冲的到来,无论外部输入是否变化,状态表中的状态都将是稳定的。

    异步逻辑

    如果时序逻辑电路存在至少一个这样的组合逻辑——它的输入、输出不全是来自一个时钟或者多个具有因果关系的时钟所驱动的记忆元素,那么该电路就是异步时序电路。

    • 组合逻辑(一根连线也属于组合逻辑,可看成缓冲门)的输入由clk1驱动的寄存器提供,输出结果却给了由clk2驱动的寄存器。

    在这里插入图片描述

    • 与门的输入来自不同时钟驱动的寄存器。

    在这里插入图片描述

    • 与门的输入一个来自时钟驱动的寄存器,另一个来自纯组合的输入端口。

    在这里插入图片描述

    异步逻辑的特点:

    • 电路中没有统一的时钟;
    • 电路中除了带有时钟驱动的寄存器外,还有不带时钟驱动的寄存器;

    同步逻辑和异步逻辑的关系

    同步逻辑和异步逻辑不是完全割裂的,异步逻辑中肯定有同步逻辑的成分在,但同步逻辑中不可能有异步逻辑的成分,尽量要避免使用异步逻辑电路的使用

    同步逻辑电路和异步逻辑电路的区别

    同步电路:存储电路中,所有触发器的时钟输入端都接同一个时钟脉冲,所有触发器的状态的改变都与所加的时钟脉冲信号同步。

    异步电路:电路没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,只有这些触发器的状态变化与时钟脉冲同步,而其他的触发器的状态变化不与时钟脉冲同步。

    展开全文
  • 本文的主要内容有:·复位电路概述·同步复位电路·异步复位电路·复位策略——复位网络1.复位电路概述复位信号在数字电路里面的重要性仅次于时钟信号。对电路的复位往往是指对触发器的复位,也就是说电路的复位中的...

    复位电路博大精深,并不是三言两语就能说清楚的,因此这里也是聊聊复位电路的基础,更深的研究需要在实际的项目中才能深有体会。本文的主要内容有:

    ·复位电路概述

    ·同步复位电路

    ·异步复位电路

    ·复位策略——复位网络

    1.复位电路概述

    复位信号在数字电路里面的重要性仅次于时钟信号。对电路的复位往往是指对触发器的复位,也就是说电路的复位中的这个“电路”,往往是指触发器,这是需要注意的。有的电路需要复位信号,就像是有的电路需要时钟信号那样,而有的电路是不需要复位信号的。复位又分为同步复位和异步复位,这两种各有优缺点。下面我们主要来说说复位信号的用途和不需要复位信号的情况。

    (1)复位的目的

    复位最基本的目的就是使电路(主要是触发器)进入一个能稳定操作的确定状态(主要是触发器在在某个确定的状态),主要表现为下面两点:

    ①使电路在复位后从确定的初始状态运行:

    ·上电的时候,为了避免上电后进入随机状态而使电路紊乱,这个时候你就需要上电复位了。

    ·有时候,电路在某个状态下,你想或者别人要求你从电路的初始状态开始进行延时你的电路功能,这个时候你就要对你的电路进行复位,让它从最初的状态开始运行。

    ②使电路从错误状态回到可以控制的确定状态:

    有的时候,你的电路发生了异常,比如说状态机跑飞了、系统供电炸了之类的,总之就是电路运行得不正常了,这个时候你就要对电路进行复位,让它从错误的状态回到一个正常的状态。

    上面说的都是和实际电路有关的,下面我们就从电路仿真的角度看一下复位信号的重要性。

    ·仿真的要求

    复位信号在仿真里面主要是使电路仿真时具有可知的初始值:

    在仿真的时候,信号在初始状态是未知状态(也就是所谓的x,不过对信号初始化之后的这种情况除外,因为仿真的时候对信号初始化就使信号有了初始值,这就不是x了)。

    对于数据通路(数字系统一般分为数据通路和控制通路,数据通路一般是对输入的数据进行处理,控制通路则是对运行的情况进行操作),在实际电路中,只要输入是有效数据(开始的时候可能不是有效的),输出后的状态也是确定的;在仿真的时候,也是输入数据有效了,输出也就确定了。也就是说,初始不定态对数据通路的影响不明显。

    对于控制通路,在实际电路中,只要控制通路完备(比如说控制通路的状态机是完备的),即使初始状态即使是不定态,在经过一定的循环后,还是能回到正确的状态上;然而在仿真的时候就不行了,仿真的时候由于初始状态为未知态,控制电路一开始就陷入了未知态;仿真跟实际电路不同,仿真是“串行”的,仿真时控制信号的初始不定态会导致后续的控制信号结果都是不定态,也就是说,初始的不定态对控制通道是致命的。

    (2)不需要复位信号的一些情况

    复位信号很重要,但是并不是每一部分的电路都需要复位电路,一方面是复位电路也消耗逻辑资源、占用芯片面积,另一方面是复位信号会增加电路设计的复杂性(比如要考虑复位的策略、复位的布局布线等等)。

    当某个电路的输出在任何时刻都可以不受到复位信号的控制就有正确的值时,比如说数据通路中的对数据进行处理的部分。在某些情况下,当流水线的寄存器(移位寄存触发器)在高速应用中时,应该去掉某些寄存器的复位信号以使设计达到更高的性能,因为带复位的触发器比不带复位的触发器更复杂,反应也更慢。

    对复位信号/电路有一定的概念后,下面我们就来说说复位的方式,也就是同步电路和异步电路以及它们的优缺点。

    2.同步复位

    (1)同步复位电路

    同步复位是指复位信号在时钟有效沿到来时才复位电路(主要是复位触发器)。因此同步复位的复位信号受到时钟信号的控制。同步复位的触发器RTL代码和电路如下所示:

    上面的电路在FPGA中容易综合得到;也有可能综合得到下面这样的电路:

    (2)同步复位的优点

    ①首先同步复位一般能确保电路是100%同步的,因为电路都是由同步时钟触发。

    ②同步复位会综合为更小的触发器(???更小??感觉有点不太对,可能FPGA跟ASIC不一样吧?)。从前面电路中我们也可以看到,复位电路仅仅是由一个普通的触发器和一个与门够吃。

    ③由于同步复位仅仅发生在时钟的有效沿,当外部的复位信号由毛刺时,时钟可以当做过滤毛刺的手段,也就是说同步复位受到复位信号的毛刺影响小。

    ④当复位信号是由内部电路产生时,此时复位信号就有可能有毛刺,时钟就可以过滤毛刺。也就是说,可以在那些使用内部信号当做复位信号的设计中,使用同步复位。

    (3)同步复位的缺点

    ①使用同步复位可能使综合工具无法分辨分辨复位信号和其他控制信号,导致进行复位的控制逻辑远离触发器(也就是说,并不是所以的ASIC库都有内置的同步复位逻辑,综合工具可能把符合逻辑综合到触发器自身之外)。例如对于带同步复位和加载使能的触发器,代码如下所示:

    综合得到的电路图如下所示,左边是理想的电路,右边是可能综合出的电路:

    这两个电路的功能完全一样,只不过右边电路的复位控制逻辑(即复位与门)在多路复用器之外,也就是远离了触发器。这在门级仿真的时候(注意这是仿真),当。..。

    解决方法就是:一方面这个只是综合工具的问题,一般综合工具会自动识别在敏感列表里面又在条件表达式信号中的第一个信号为复位信号;另一方面,可以在RTL代码编写的时候,加入相关的综合指令,让综合的时候把复位逻辑靠近触发器。

    ②由于同步复位需要在时钟沿的触发下才能起作用,复位信号是以短脉冲的方式出现时,时钟沿就有可能错失这个复位信号,导致复位脉冲丢失,同步复位电路没有起到作用,时序图如下所示:

    解决办法:一方面,可以采用脉冲捕捉电路,这个电路在我的跨时钟域控制信号传输中有讲到。;另一方面,可以将复位信号进行脉冲扩展,维持足够长的时间,这个可以通过一个小的计数器实现,如下图所示:

    ③同步复位可能有组合逻辑延时,当复位逻辑距离触发器比较远时,这个时候就不能把触发器当做即时响应复位信号的触发器,而是有一定延时的触发器,这个时候就有了复位信号偏移的问题,关于复位信号偏移的描述,我们将在异步复位中进行描述。

    解决方法:使用内置的同步复位触发器;综合的时候加入相关的综合指令,这个和①类似。

    ④我们前面说过,在由内部组合逻辑的产生复位信号的设计中,推荐使用同步复位。其实这也是有缺点的,这是因为这样产生复位信号的组合逻辑一方面在仿真的时候容易出现x态,另一方面在实际电路中,这样的复位信号容易被外部(多个)信号影响。

    解决方法:不建议使用内部产生的复位信号;使用异步复位。

    ⑤门控时钟的同步复位可能无效:

    使用门控时钟的时候,由于复位信号依赖于时钟,在复位信号发出的时候,时钟可能关闭了,这个时候就会导致实际的电路没有被复位,如下图所示:

    解决方法:只能使用异步复位,并在时钟恢复前移除异步复位。

    ⑥总线设计中的同步复位问题:

    在总线控制中,系统上电复位的时候,我们要求不同芯片之间的总线工作在合理的状态上(比如处于高阻态或者输出);然而上电之后,由于系统时钟可能仍未正常工作,上电(同步)复位就可能无效,这个时候各个模块(芯片)就可能不会把总线接口设置为特定的状态,(当多个模块同时输出数据到总线上时)就可能导致电平冲突,严重的话会烧坏接口。

    解决办法:为了防止芯片上电时内部总线出现竞争,有一下两种解决办法,一种是采用异步上电复位,如下图所示:

    这个时候使用了异步复位,使能信号oe输出0,也就是有了初始的状态

    另一种方法是使用复位信号能直接撤销三态使能的电路,如下所示:

    从电路图中可以看到复位信号一方面控制了复位逻辑,另一方面控制了三态的使能端;这种技术简化了复位-高阻这个条路径的时序分析。

    3.异步复位

    (1)异步复位电路

    异步复位触发器则是在设计触发器的时候加入了一个复位引脚,也就是说复位逻辑集成在触发器里面。(一般情况下)低电平的复位信号到达触发器的复位端时,触发器进入复位状态,直到复位信号撤离。带异步复位的触发器电路图和RTL代码如下所示:

    (2)异步复位的优点

    ①使用异步复位的最大好处就是复位路径上没有延时,如上面的图所示,复位信号一直连接到触发器的复位端口,而不是像同步复位那样需要经过一个复位控制逻辑(如与门)。这样子就减少了外界信号的影响。

    ②与时钟没有关系,不管时钟上升沿有没有到来,只要复位信号一有效,触发器就会复位,也就是基本上做到实时性;由于与时钟没有关系,因此也可以用在门控时钟里面。

    ③综合工具能自动推断出异步复位而不必加入任何综合指令。

    (3)异步复位的缺点

    ①复位撤离问题

    在介绍复位撤离问题之前,先说一下复位恢复时间和去除时间。所谓的复位恢复时间是指撤离一个复位信号时,复位信号从有效跳变为无效的时刻 与 下一个有效时钟沿 之间的这段时间;去除时间是指撤离一个复位信号时,复位信号从有效跳变为无效的时刻 与 上一个有效时钟沿 之间的这段时间(可以类比于触发器的建立时间和保持时间)。如下图所示:

    上图中,rst_n1是要求的复位恢复时间,rst_n2满足复位恢复时间,rst_n3复位恢复时间不足。

    上图中,rst_nA是要求的复位去除时间,rst_n2满足复位去除时间,rst_n3复位去除时间不足。

    从上面的两个图中可以知道,如果你想让某个时钟沿起作用(也就是采数据),那么你就应该在“恢复时间”之前让异步控制信号变无效;如果你想让某个时钟沿不起作用(也就是在这个时钟沿依旧复位),那么你就应该在“去除时间”过后使控制信号变无效。异步复位信号的恢复和去除时间需要大于一定的时间,如果你的异步复位信号在这两种情况之间(撤离),那么就没法确定时钟沿是否起作用了,即判断不出是复位还是不复位(不复位即是D触发器才输入端的数据)。

    介绍了复位恢复时间和去除时间之后,我们就可以看看异步复位信号的问题了。由于异步复位信号与系统时钟毫无关系,复位可以在随时施加,也可以随时撤离。在施加的时候复位信号的时候,不存在任何问题,因为这跟复位恢复时间扯不上关系。但是,在撤离复位信号的情况下就有问题了,主要有两个问题:

    ·当异步复位信号的撤离时刻在时钟有有效沿附近时,就可能导致恢复时间或去除时间不足,即这个时候违背了复位恢复时间或去除时间,这时就可能导致触发器的输出端为亚稳态(注意是可能),如下所示:

    但是并不是所有情况都会产生亚稳态,当复位值和此时的的输出相同时,就不会产生亚稳态,如下图所示:

    这是因为:复位信号翻转的时候,如果复位信号判断是低电平,输出就复位即一定是低电平;如果判断复位信号是高电平,输出信号就等于对输入信号的采样值。图里面输入信号就是低电平,不管你是复位还是不复位,输出一直是低电平,没有亚稳态。

    ·复位状态不一致的问题:

    复位信号很时钟信号一样,复位通过复位网络到达各个触发器。一方面,复位网络具有非常大的扇出和负载,到达不同的触发器存在不同的延时,也就是存在复位偏移,因此撤离异步复位的时刻也是不一样的;另一方面,由于时钟网络也存在时钟偏移。这个时候异步复位信号就有可能在不同的触发器的不同时钟周期内进行撤离,也就是说异步复位的信号不一致,如下图所示:

    异步复位信号a是异步复位信号源,异步复位信号b、c、d是到达触发器的异步信号。我们可以看到,b信号是在本周期就撤离了复位;c信号则由于复位恢复时间不满足,则可能导致触发器输出亚稳态;而d信号则由于延时太长(但是满足了复位去除时间),在下一个周期才撤离复位。

    撤离问题的解决方法:异步复位的同步释放

    异步复位的同步释放电路也称为复位同步器,这个方法是将外部输入的异步复位信号进行处理,产生另外一个适合用于后面电路的复位信号,这个处理后的复位信号能够异步复位电路中的触发器,又不会存在撤离问题(因为经过了同步);这个异步复位同步释放的处理电路和RTL代码如下所示:

    从图中可以看到,这是用外部异步复位信号来复位一对触发器,这对触发器异步地驱动主复位信号,也就是这对触发器产生电路需要的复位信号,这些复位信号再到达各个触发器,然后进行复位,理想的异步复位同步释放的时序如下所示:

    上图中,在理想的情况下,复位信号在两级D触发器上面的撤离时间可能不一样,这个和复位信号传输到的触发器位置和触发器的时钟沿有关。理想情况下的复位信号传输到目标触发器都能够同时撤离,并且不在时钟有效沿附近。

    实际情况一般不是那么理想的,当不是理想的情况下,也就是说复位信号到达目标寄存器存在时钟偏移,并且复位信号有可能在时钟有效沿附近撤离,这个时候复位器出现的问题就有三种:第一级OK,第二级出现问题;第一级出现问题,第二级OK;两级都出现问题。下面我们就来看看这三种情况下产生的复位信号是什么情况:

    第一级的撤离没有问题,第二级的撤离出现在时钟的有效沿附近,也就是说第二级的D触发器的撤离时间不满足复位恢复时间或者去除时间,这时候的时序图如下所示:

    我们可以看到无论是触发器判断此刻是复位还是不复位,输出都是一样的,也就是说,输出rst_n不是亚稳态,而是确定的值。

    第一级的撤离出现问题,第二级的撤离没有问题,这时候的时序图如下所示:

    我们可以看到,第一级触发器虽然产生了亚稳态,但是由于第二级触发器的存在,亚稳态并没有传播下去,得到的复位信号依然是干净的,只不过这个复位信号可能延长多一个周期而已(这是因为亚稳态稳定后的可能态引起的)。

    最极端的一种情况是,两级的撤离都不满足复位恢复时间或者去除时间,这时候的时序图如下所示:

    我们可以看到第一级触发器产生了亚稳态,但是由于第二级触发器的存在,亚稳态没有传播下去;虽然第二级触发器的复位信号撤离也在时钟有效沿附近,但是跟第一种情况一样,第二级触发器是不会产生亚稳态的。因此即使是极端状态,输出的复位信号也是干净的。

    由此我们可以看到,异步复位的同步撤离能够有效地解决撤离导致的复位恢复时间或者去除时间不足的问题,同时把复位信号同步化,解决了复位撤离偏移的问题。

    ②异步复位的抖动问题

    当外部输入的异步复位信号产生毛刺时,任何满足触发器最小复位脉冲宽度的输入都有可能引起触发器复位,这问题是源头上的问题,即使是使用上面的同步器,也还是有同样的敏感问题,时序图如下所示:

    解决方法:一个是使用同步复位,另一个就是过滤毛刺了,过滤毛刺和消抖的思路有点像,主要就是经过一段延时之后,在经过逻辑门判断产生外部来的是不是真正复位信号,加上过滤毛刺信号部分的同步撤离电路和时序如下所示:

    在上图中,我们可以看到,抖动问题得到了解决。然而这种方法还是有缺点的,主要就是这个延时电路的延时控制可能随着环境而变化,而且延时的时间要合适长才行,绝对不能太短。

    ③DFT的问题

    4.复位策略——复位网络

    在数字电路里面,复位信号驱动了很多触发器,仅次于时钟,因此复位也往往形成或者使用复位网络。复位网络的设计也是有值得斟酌的地方,例如,由于复位的扇出太大,全部的复位不能仅仅由一个端口驱动,也就是不能像下面一样:

    既然上面的不行,那就改成下面的呗,也就是使用多各“并联”的同步释放,分担一下负载压力:

    然而这种方案还是有问题的,这是第一级的撤离出现问题,第二级的撤离没有问题的时候,亚稳态稳定后的状态可能不一样,导致rst_n的复位不一致,有的复位可能会快/慢一个周期。

    最后的方案是,先进行同步释放之后,同步后的复位信号又当做各个部分的异步信号,然后进行同步释放,如下所示:

    这样先经过前级的同步释放之后,就不存在亚稳态稳定好导致的输出rst_n不一致的问题了。

    最后说一下多时钟域的复位:在多时钟域复位中,外部的异步复位信号的同步释放应该各自的时钟进行同步,比如异步FIFO中,写时钟域就用写时钟进行同步释放;读时钟域就用读时钟进行同步释放。

    展开全文
  • 同步时序电路中,各触发器的时钟端全部连接到同一个时钟源上,只有当时钟脉冲到来时,电路的状态才能改变。(注意不要求是同一时钟,而是同源时钟。所谓的同源时钟是指同一个时钟源衍生频率比值为2的幂次方,且初...
  • 异步电路1. 电路的核心逻辑是组合电路,比如...同步电路1. 电路的核心逻辑是由各种各样的触发器实现的,所以比较容易使用寄存器的异步复位/置位端,以使整个电路有一个确定的初始状态;2. 整个电路是由时钟沿驱动的...
  • 1.1 FPGA面试题同步电路和异步电路 1.1.1 本节目录 1)本节目录; 2)本节引言; 3)FPGA简介; 4)FPGA面试题同步电路和异步电路; 5)结束语。 1.1.2 本节引言 “不积跬步,无以至千里;不积小流,无以成...
  • 同步电路异步电路

    2021-12-15 16:25:41
    同步电路在一个理想的电路时钟的控制下,只要电路的各个功能环节都市现了时序收敛,整个电路就可以可靠工作。 但在一个功能复杂的SoC系统中,难免会有异步信号与同步信号交互的问题。 因此。在多核SoC系统中,...
  • BUCK电路同步异步区别

    千次阅读 2021-07-09 10:25:51
    其实BUCK的输出电流分成两个部分的,一个部分是来自电源,一个部分是来自异步电路中的这个二极管,只是同步电路把这个二极管用一个MOSFET给替代了,但是这个MOSFET的开关需要开关MOSFET保持一定的相位关系,大家...
  • 异步清零和同步清零置数区别

    千次阅读 2021-01-17 01:14:15
    http://www.eepw.com.cn/article/201610/311031.htm【解题方法】:中规模集成计数器的模通常是10或16,当要实现比集成计数器模小的计数器时,必须使用清零或置数端,应用的关键区分清零置数是同步还是异步。...
  • 复位电路设计(异步复位、同步释放)

    千次阅读 2021-03-06 22:09:02
    一般复位功能包括同步复位和异步复位。复位一般由硬件开关触发引起,也可以由复位逻辑控制引起。 相信大家在学习 FPGA 或者 ASIC 的时候都有如下的疑问: 1、 数字逻辑为什么需要复位? 2、 FPGA 板上面没有复位按键...
  • 异步清零和同步置数/清零的区别

    千次阅读 2021-11-09 12:48:10
    同步异步是对于时钟而言的。 同步指的是,状态的变化需要等待时钟有效沿来触发,所有动作同时跟随这个时钟变化,而异步时,状态变化不依赖与时钟。 异步清零说的是,你需要对一个计数器在满足某种条件时想要他归零...
  • 复位信号设计(异步复位、同步释放)笔记详解 1 时序设计 1.1 复位信号设计(异步复位、同步释放) 1.1.0 复位恢复时间清除时间 首先解释一下恢复时间(recovery time)清除时间(removal time):(以复位信号...
  • 同步时序逻辑:时钟之间有固定的因果关系,只有一个时钟源,各触发器的...异步时序逻辑:各时钟之间没有固定的因果关系,不是一个时钟源,电路除了使用带时钟的触发器外,还使用了不带时钟的触发器延迟元件。 ...
  • 有数据端D、时钟端CLK、输出端Q、异步复位端RST时钟使能端EN。 module DFF2(CLK, D, Q,RST, EN); input CLK, D, RST, EN; output Q; reg Q; always @(posedge CLK or negedge RST) begin if(!RST)...
  • 所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。--------------------------------------------------------------------------------------------------------------------举个例子...
  • 异步电路碎碎念1】 —— 到底什么是异步电路异步电路碎碎念2】 —— 跨异步引发的电路危机 【异步电路碎碎念3】 —— 跨异步的处理原则 其中第三个还趋近于半成品,这还真的是始料未及,毕竟是19年动手写的...
  • 上文芯片设计之CDC异步电路(一)对比讲述了异步电路在前仿真中的行为与实际芯片的行为区别,本文继续讲几种常用的异步电路处理。 (一)单bit信号同步器 最经典的2DFF 1-bit同步器如下,下图结构通常用于单bit控制...
  • 两种异步时钟同步化区别分析

    千次阅读 2021-03-04 08:49:50
    今天面试被问到异步复位同步释放和异步复位打两拍有什么区别,没回答上来,主要忘记了异步复位同步释放的实现方式,回来查了一下资料,觉得复位还是值得写一写的。 在FPGA或者数字IC设计中肯定会涉及到同步和异步...
  • 同步复位没有用到寄存器的异步复位CLR端口,综合出来的实际电路只是把复位信号rst_n作为逻辑输入的使能信号。 同步复位代码: //同步复位 module top ( input clk, input rst_n, input a, output reg b ); ...
  • 本文讲解buck电路同步整流和异步整流两种工作方式的区别。 异步整流 同步整流 由上图可以看出,同步整流和异步整流的区别就是MOS管代替了二极管。 二极管因为有大约0.4V的压降,假设异步整流通过大电流的话,...
  • 如果异步复位信号释放时间时钟的有效沿到达时间几乎一致,则容易造成触发器输出为亚稳态,形成逻辑错误。 了解几个概念。 1)亚稳态(metastability):此时触发器输出端 Q 在有效时钟沿之后比较长的一段时间...
  • 组合逻辑 指任何时刻的输出仅取决于该时刻输入信号的组合,而与电路原有的状态无关的电路。...由存储电路和组合逻辑电路组成。 同步时序逻辑 所有触发器的时钟端连在一起。所有触发器在同一个时钟脉冲 C
  • 如何区分同步复位和异步复位? 如何区分同步复位和异步复位?可以理解为同步复位是作用于状态,然后通过状态来驱动电路复位的吗(这样理解的话,复位键作为激励拉高到响应拉高,是不是最少要2拍啊)? 以上问题...
  • 同步串口和异步串口的区别及使用情况 所谓同步就是等读写操作完了才返回,异步就是一调用马上返回,会有专门的线程进行读写操作,读写完了会通知的。 一个会等待完成,一个不会,前者是同步:后者是异步: 在...
  • 同步复位电路如下图所示: always @(posedge clk) begin if(!rst_n) dout <= 0; else dout <= din; end 异步复位 异步复位: 无论时钟沿是否到来,只要复位信号有效,就对系统进行复位 always...
  • 芯片设计之CDC异步电路(四) 芯片设计之CDC异步电路(三) 芯片设计之CDC异步电路(二) 芯片设计之CDC异步电路(一) 1CDC常见错误 1.1Reconvergence 1.1.1single_source_reconvergence 结构:同一个信号...
  • 异步复位、同步释放

    2021-07-21 21:20:01
    异步复位、同步释放 1.同步复位的优缺点 同步复位是指只有当时钟有效边沿到来时,才能进行复位。如下,verilog描述为: always@(posedge clk)begin if(!rst_n) ... end 使用限制: 复位信号的有效周期必须要大于...
  • 区别:同步计数器的触发信号是同一个信号,而异步计数器的触发信号时不同的。同步计数器同步清零就是一定要等到时钟脉冲有效的时候才能进行清零操作,而对于异步计数器来讲,清零就是不用看时钟脉冲,只需一置清零端...
  • 串口 同步和异步 理解 https://blog.csdn.net/cs74184235/article/details/48438727 本文主要三大块:一,串口同步和异步在底层通信上的区别(这部分点到为止,不是主要探讨内容,有个基本理解即可)。 二,串口...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,669
精华内容 8,667
关键字:

异步电路和同步电路