FPGA|CPLD|ASIC论坛
直播中

小菜鸡

5年用户 49经验值
擅长:可编程逻辑 嵌入式技术 控制/MCU
私信 关注
[经验]

【雨的FPGA笔记】基础知识-------同步电路设计

FPGA的同步电路设计基础知识
    同步电路设计将系统的状态变化与时钟信号同步,通过这种方法降低电路设计难度。  
一、触发器
      定义:一种储存1个二进制位的存储单元,可以用做时序逻辑电路的记忆元件。FPGA逻辑单元内的D触发器(D-FF)就是一种在时钟的上升沿(或下降沿)将输入信号的变化传送至输出的边缘触发器。
     输入--------|D             Q   |--------输出
     时钟--------|CLK         非Q|---------反向输出
D         CLK    Q     非Q
X          L    Qn    非Qn
L      上升沿     L       H
H      上升沿     H      L
X          H   Qn   非Qn
X      下降沿   Qn   非Qn
                            触发器真值表

二、建立时间和保持时间
      CMOS工艺下的触发器结构,先有传输门和两个反向器组成的一个循环电路,也叫锁存器,再由前后两级锁存器按主从结构连接而成。前级锁存器的值会将时钟输入的变化井然有序的存入后级锁存器。为了防止时钟信号变化时输入信号发生冒险,从而使稳定的输入信号进入前级锁存器,前级锁存器的时钟应该与产生输入信号的电路时钟反向。 }2CI7D0RA8S`A1AK[]6XMRJ.png J7Y0LH{XOZSR9LSABRGR~OM.png
      触发器原理
      当CLK=0(主锁存器工作)时,前级锁存器将输入D的值保存进来,后级锁存器维持上一个周期的数据。由于前级和后级的反相器环路之间的传送门是关闭状态,所以前级信号才不会传递到后级。
      当CLK=1(从锁存器工作)时,前级反相器环路中保存的数据会传输到后级,同时输入D的信号会被隔离在外。如果此时前级反向器环路中的信号没有循坏一圈以上,就会出现电位在0和1之间摇摆,这就是所谓的亚稳态。由于亚稳态时间比延时时间长,在该阶段读取数据可能会引入错误,所以引入建立时间来约束在时钟上升沿到来前输入D保持稳定的时间。
                                  J07RI{~RJ{LVJSV~HP82A65.png
      当CLK=1时,如果输入D在传输门关闭前就发生变化,那么本该在下一周期读取的数据就会提前进入锁存器,从而引发反向环路振荡或者产生亚稳态。所以在CLK=1之后也需要输入D维持一定的时间,这部分时间称为
保持时间约束
     FPGA内的触发器都要遵循建立时间保持时间等时序上的约束。

三、时序分析      

      逻辑综合:由Verilog HDL或VHDL编写的RTL(寄存器传输级)设计代码生成网表(逻辑门间的配线信息)的过程。
      布局布线:最终决定逻辑综合所生成的电路网表在FPGA中以何种方式实现的两道工序。
     为了保证设计好的电路能够正常工作,既要保证逻辑正确,还要保证时序正确。从逻辑综合到布局布线,每一步都会对生成的电路进行评估分析。仿真耗时,需要对每个逻辑值分析,并且进行动态时序分析,所以耗时长,FPGA一般采用静态时序分析(简称STA)。这种方法只需要提供电路网表就可以全面评估检验,并且在原理上也只需遍历一次电路拓扑结构,所以分析速度快。许多EDA工具也采用STA验证电路能否按要求速度正确工作。
    时序分析包括对设计电路的建立时间分析和保持时间分析,能够进行时序分析。主要是评估FPGA上设计电路的延迟是否满足时序约束。布线的延迟取决于FPGA设计电路的摆放位置和所使用的布线。
   当FPGA的性能和逻辑门资源富余时编译过程较为容易;如果资源和设计规模相当的话布线过程时间就会长一点。时序分析必须检查所有的路径上的逻辑延迟和布线延迟的时序余裕,确保满足建立时间和保持时间的时序约束。

四、单相时钟同步电路
                                    GIIKE45$HX%6U5UPHDZ$DOD.png
  FPGA的设计中的输入信号会被先送到FF(触发器),输出信号则必须从FF引出,并且所有的FF都由同相的时钟驱动。这种设计属于由同一时钟的同一边沿同步动作的电路类型,而反相时钟(相位反转的时钟或反方向的边沿)不属于此类。基本上采用单一时钟进行同步较理想。
   时钟偏移:信号到达时间的错位称为时钟偏移。现实生活中的时钟信号布线太长,时钟信号驱动的负荷(扇出数),布线延迟等原因会导致出现时间差。和逻辑门电路的延迟一样,会对时钟周期的设定产生影响。时钟设计是集成电路时序设计重要的一环。
   时钟抖动:时钟振荡器的变动或者信号变形,时钟边沿会偏离平均位置。
   为保证所有的FF的输入时钟信号同步,需要将时钟偏移和时钟抖动控制在一定范围之内。
   FPGA已经实现了多层时钟树结构,通过驱动能力强的专用布线将时钟偏移的连接在整个芯片的FF上,所以时钟设计比ASCI容易。

立即学习>>梦翼师兄FPGA培训(视频加板卡),手把手带你入门FPGA

更多回帖

发帖
×
20
完善资料,
赚取积分