7.电路中所有寄存器、状态机在系统被reset复位时应处在一个已知的状态。 关于同步电路设计中的其他问题请详见补充教程3:华为同步电路设计规范。
1.3.3关于时钟设计的讨论
目前的工程设计中一般使用同步时序电路来完成整个系统的设计,由上一节可见,时钟
在同步电路设计中起着至关重要的作用。那么,我们在设计时首先要完成的是对时钟的设计。 如今在设计中常见的时钟类型包括: 全局时钟、内部逻辑时钟和门控时钟。
1. 全局时钟
全局时钟即同步时钟,它通过FPGA芯片内的全局时钟布线网络或区域时钟网络来驱动,全局时钟具有高扇出、高精度、低Jitter和低Skew的特点,它到芯片中的每一个寄存器的延迟最短,且该延迟可被认为是固定值。所以我们推荐在所有的设计中的时钟都使用全局时钟。全局时钟的设计有以下几种方法:
(1). 由PLL锁相环来产生全局时钟。
(2). 将FPGA芯片内部逻辑产生的时钟分配至全局时钟布线网络。 (3). 将外部时钟通过专用的全局时钟输入引脚引入FPGA。
在我们的设计中,一般推荐电路中的所有的时钟都由PLL锁相环产生。一方面,PLL锁相环可实现倍频和移相的操作,使我们很方便地获得所需频率和相位的时钟;另一方面,PLL锁相环默认将其驱动的时钟分配至全局时钟网络或区域时钟网络,Jitter和Skew都很小。 下图取自我们项目中的一个PLL锁相环设计,该PLL用于驱动DDR的接口模块。因为功能所需,DDR接口需要三个133MHz的时钟,相位分别是‘-90’、‘0’、‘-180’,图中所示即为该时钟的产生模块。我们使用QuartusⅡ的Megawizard生成PLL锁相环的IP core。其中‘inclk_66’为PLL锁相环的输入时钟,由外部的66MHz晶振提供,经过PLL倍频和移相后得到所需的三个全局时钟。
o
o
o