首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Spartan FPGA数字时钟管理模块(DCM)使用说明(5)

Spartan FPGA数字时钟管理模块(DCM)使用说明(5)

DCM是全局时钟网络可选的一部分

一般,时钟通过一个“全局输入Buffer”和“全局时钟Buffer” 进入全局时钟网络。如下所示

GCLK --->( IBUFG ---> BUFG) ---> Low Skew Global Clock Network

在需要的时候,DCM也成为全局时钟网络的一环。







LOCKED信号的行为方式

LOCKED信号用于指示整个DCM系统已经和CLKIN同步,从LOCKED信号有效开始,输出时钟才可以使用,在此之前,输出时钟可能会处于各种复杂的不稳定状态。我们来看一下LOCKED信号的行为状态机。

FPGA配置:

    If (CLKIN已经稳定) Next_state = 判断同步;

    Else                         Next_state = RST_DCM;

判断同步:

    If (已经同步)          Next_state = 判断同步;

    Else                         Next_state = 同步失败;

同步失败:                    Next_state = RST_DCM;

RST_DCM:                  Next_state = FPGA配置;



现在来看看各个状态下的输出。



Case (State)

    FPGA配置: LOCKED = 0;

    判断同步:   LOCKED = 1;

    同步失败:   LOCKED = 0;

    RST_DCM:LOCKED = 0;

Endcase


RST 信号——重启锁定

   
RST信号用于在时钟不稳定或者失去锁定时,将DCM的相关功能重置,从而重新启动锁定追踪。

    作为一个输入信号,RST无法被DCM自身置位,因此需要我们的应用设计来控制这个RST信号,否则需将其接地。

    置位RST会将延迟Tap的位置置0,因此可能会产生Glitch或者是Duty Cycle 发生变化,另外相位偏移也会重置回到默认值。


DCM 生成向导

安装了ISE就能得到一系列Accessories。利用其中的Architecture Wizard 我们可以生成DCM模块。生成的DCM将产生3种输出:

1. 一个例化了DCM的逻辑综合文件(采用生产商特定格式的VHDL / Verilog)

2. 一个UCF文件控制特定实现

3. 所有其他用户设置都保存到XAW(Xilinx Architecture Wizard)文件中。



接下来描述一下向导使用步骤。

1. 从ISE或者Arch Wizard中启动界面;

2. 第一个页面做基本配置:路径、XAW文件名、VHDL / Verilog选择、综合工具、FPGA型号;

3. 进行General Setup,一看就明白,不细说,注意一下几点:

    - CLKIN Source 如果选 External 则 DCM 的 CLKIN 会自动连接到 IBUFG。

    - Feedback如果选 Internal 则反馈来自 BUFG。

4. 高级设置

    - 选择FPGA的配置过程是否包含DCM的锁定,如果是,则配置完成信号DONE将在LOCKED信号有效后方能有效。

    - 选择CLKIN是否要除2。由于DCM的输入频率有限,对于过高的输入时钟通过除2使之可用。

    - Deskew调整,这个选项建议在咨询Xilinx工程师后再使用。

5. 时钟输出口 Buffer 设置

    - 默认情况下所有输出口都链接 BUFG 全局时钟网络入口

    - 由于全局时钟网络的入口有限,用户可以定制时钟输出口连接到其他类型的Buffer

       - Global Buffer:进入全局时钟网络的入口Buffer,共有4个,简称BUFG

       - Enabled Buffer:还是上面的4个全局时钟Buffer,但是配置为有使能信号控制,简称BUFGCE

       - Clock MUX:还是上面的4个全局时钟Buffer,但是配置为 2-To-1 MUX类型,由S信号控制选出,简称BUFGMUX

       - Low Skew Line:没有Buffer了,只能使用 Skew 比较小的连线

       - Local Routing:连到本地,Skew的要求不是很严格

       - None:禁止输出

    - 对于Enabled Buffer类型和Clock Mux类型,需要指定En口的名字

    - 需要为输出时钟信号指定名字或者使用默认

6. 设置DFS

    - 设置目标输出频率,然后按Calculate,自动生成 M/D 值和 Jitter 值

    - 或者手动设置 M/D 值,然后按Calculate,自动生成频率和 Jitter 值
继承事业,薪火相传
返回列表