深入Xilinx Clocking Wizard 3.6(ISE) 4.2(Vivado)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SECTION I——综述
IP Facts
Introduction
Xilinx的Clocking Wizard Core(ISE v3.6,或VIVADO v4.2)可以更让用户根据自己的时钟需求更轻松地生成HDL源码封装。

这个Clocking Wizard引导用户设置适当的时钟原语,并且允许用户覆盖其中的参数。

除了提供目标时钟电路的HDL封装之外,Clocking Wizard会同时产生一个时序参数报告,这个报告由Xilinx的时序工具针对该电路分析得到。

Features
●每个时钟网络最多两个输入时钟、七个输出时钟
●根据选定的器件自动选择正确的时钟原语
●根据用户选定的时钟feature自动配置时钟原语
●根据输入和输出频率的需求,自动计算VCO(压控振荡器)频率喝倍频、分频数值
●自动执行所有的配置以符合相移、占空比需求
●支持MMCME2的扩频时钟,允许用户选择有效的调制频率、模式和输入、输出时钟●可选的时钟信号缓冲器
●时钟原语和任何计算属性可覆写
●时钟电路的时序可预估,功耗可预估
●生成一个可综合的时钟网络设计和一个仿真测试脚本
●原语对应的窗口可供选择
对于不同的工具,Clocking Wizard所支持的器件版本可以通过这个core的release notes 来查询,文档名XPT也可以在ISE中添加IP CORE时查询Supported Families…
Overview
Clocking Wizard可以提供一个经验证的时钟网络,用户对Xilinx时钟原语的了解可以帮助用户做出权衡设计的决定。

Feature Summary
●Frequency synthesis
频率综合——允许输出不同于输入时钟频率的时钟
●Spread spectrum
扩展频谱——扩频功能使经过调制的输出时钟减少EMI频谱能量密度,这个功能仅适用于原语MMCME2_ADV,当前版本不支持软件UNISIM对于此功能的仿真
●Phase alignment
相位对齐——这个功能允许输出时钟和参考时钟的相位锁定,锁定的是相对相位差,例如一个器件的输入时钟
●Minimize power
功耗优化——对于可能的频率、相位或占空比的精度功耗,这项功能能给与优化
●Dynamic phase shift
动态相移——这项功能允许用户选择输出时钟的相位关系
●Balanced
性能平衡——选择性能平衡会让软件选择合适的带宽来进行抖动优化
●Minimize output jitter
●Maximize input jitter filtering
上述两项功能用于输入输出时钟抖动的过滤
●Fast simulation
快速仿真——提高仿真运行速度
Product Specification
Clocking Wizard使用MMCME2或PLLE2原语来生成时钟电路,通过仿真来验证输出时钟频率,并可以可供一个能在硬件上测试的综合设计模板。

MMCME2是一个混合信号模块,旨在支持频率合成,时钟网络偏移校正和抖动降低。

Designing with the Core
通用设计指导
需要提供输入时钟频率和抖动的有效信息。

如果输入时钟信号同时被本设计的其他逻辑使用了,可以提供一个无缓冲(适用于由全局缓冲输出的时钟)或者过全局缓冲的时钟源。

如果输入时钟仅仅被Core使用,则配置一个时钟pin作为时钟源即可。

关于时钟
可以根据需求产生最多7个不同频率的时钟。

关于重置
Clocking Wizard为时钟原语设置了一个高电平有效的异步重置信号。

进行时钟切换的时候core必须保持在重置状态。

当输入时钟或者时钟反馈信号丢失,CLKINSTOPPED或CLKFBSTOPPED状态指示信号被置位。

当信号恢复正常时,状态指示信号被清除,且必须发出一个重置信号。

功能性综述
Clocking Wizard是一个交互图形界面,基于设计可以生成需要的时钟网络。

所需的时钟网络参数以一个列表的方式呈现,从而可让用户只选择需要的参数。

在使用Clocking Wizard 的过程中,有经验的工程师可以明确的配置所选的时钟源语,经验不足的工程师则可以让Wizard自动决定更合适的时钟原语和配置,这种自动选择使基于工程师对时钟网络的性能要求。

用户对于DCM wizard比较熟悉,PLL wizard可以参考Migration Guide Appendix以得到有用信息。

时钟性能
时钟性能在前述已有讨论,这里不再赘述。

关于输入时钟
默认使用单个输入时钟,如果存在两个输入时钟,可以通过选择第二时钟源来使用。

只有当输入时钟的时序参数满足要求,wizard才会使用这些参数去配置输出时钟。

输入时钟抖动选项
Wizard允许用户以UI和PS中二选一为单位来定义输入时钟抖动。

UI,unit interval,单位时间间隔,一个周期单位
PS,picosecond,皮秒
关于输出时钟
用于可配置输出时钟的数量,允许的时钟最大数量取决于所选器件和用户定义的时钟性能。

用户可以简单的输入期望的时序参数如频率、相位和占空比,然后让Clocking Wizard选择和配置时钟原语和网络,以达到要求的时钟特性。

如果根据可用的输入时钟无法达到用户设定的参数要求,Clocking Wizard仍会提供一个最合适的方案。

当遇到这种情况的时候,按顺序CLK_OUT1会是最高优先级满足要求的时钟。

Wizard会在设置相位、占空比之前提示用户关于频率参数的设置。

关于时钟缓冲和时钟反馈
除了在器件内部配置时钟原语,wizard也可以帮助搭建时钟网络。

Wizard同时提供输入和输出时钟的缓冲。

如果一个输出时钟需要特殊的缓冲器例如BUFPLL,而这些特殊的缓冲器是wizard不能在设计中生成的,wizard中会有警告信息提示用户。

原语中的反馈信号可以被用户控制,也可以让wizard自动连接。

如果选择了自动连接,反馈通路通常用于匹配
CLK_OUT1的时序。

关于端口
原语的所有有效端口都可供用户配置,用户可选择显示任何时钟原语的端口,这些需要显示的端口同样会在源代码中体现。

原语覆写
所有的配置参数都可以由用户定义,此外,如果提供的参数不可用,该参数将会由根据期望设置进行计算的参数取代。

小结
Clocking Wizard会生成和产生的时钟网络相关的一系列文件,输入和输出时钟设置在界面中可见,并会生成一个约束文件。

此外,时钟网络的抖动参数会由一个资源评估文件提供。

最后,wizard将PLL和MMCM的输入设置汇总成一个易于XPE软件使用的表格。

设计环境
下图展示了wizard提供的设计环境,该环境有助于将产生的时钟网络集成到设计中。

Wizard 提供了一个可综合并可下载的设计样例用来展示如何使用产生的时钟网络并将之添加到你的器件中。

Wizard也提供了一个仿真测试脚本,能够对设计样例进行仿真并能根据输入时钟波形解释输出的时钟波形。

Core架构
输入时钟模块——时钟网络最多允许两个输入时钟,根据选择的类型输入缓冲器到时钟路径上。

原语实例化模块——用户或wizard选择的原语例化到时钟网络中,原语中的参数可以由wizard自动设置,或由用户覆写。

未使用的输入端口将被配置到合适的电平值,未使用的输出端口会被添加标签。

反馈模块——如果相位对齐功能未勾选,输出端口的反馈引脚将自动连接到输入端口的反馈
端。

如果相位对齐功能已被勾选,自动反馈也被勾选,那么输出端口的反馈引脚会经过一个缓冲器连接到输入端口的反馈端,以匹配CLK_OUT1的路径延迟。

如果用户选择自己控制反馈,反馈引脚会被引出,并可由用户配置。

输入/输出信号——所有的端口会被列出,需要至少一个输入端口和至少一个输出端口。

一些端口会被用户选择的参数控制。

例如,当动态重配置功能被勾选,则只有和动态重配置功能相关的端口会被开放给用户。

未显示的端口可能被空置,或在源码中被连接至一个unused 标签上。

对于所有的器件和原语来说,不是所有的端口都是可配置的,例如,当频谱扩展被选择时,不可选择动态相移功能。

SENCTION II——VIVADO设计套件Customizing and Generating the Core
本节内容将使用Xilinx工具Vivado进行IP核的定制和生成。

由于本人使用的设计套件并不是VIVADO,该节内容不进行阐述,后续使用VIVADO套件时会更新本节内容。

SECTION III——ISE开发套件
Customizing and Generating the Core
本章将对ISE开发套件中Clocking Wizard IP的图形化界面进行阐述,介绍如何根据需求建立时钟网络。

当鼠标移动至界面的相应功能处时,工具会有相应的小贴士来介绍相关功能。

第一页Clocking Features
确定需要的时钟网络性能,定义输入时钟。

选择时钟性能
根据所选择的器件,所有的时钟性能会在列表中列出,用户可以根据需要选择或多或少的时钟性能;然而,有一些性能会消耗额外的资源,有一些性能会增加功耗。

此外,某些性能之间是互相排斥的,不可同时选择。

例如,当选择DCM和PLL_BASE时,动态重配置不可选,因为这两者都不支持动态重配置。

时钟性能包括:多数功能在第一章已经阐述,这里不再赘述
●频率综合
●频谱扩展
●相位对齐
●功耗优化
●动态相移
●动态重配置——该功能允许用户在器件配置原语之后进行重新配置。

当该选项生效时,
Clocking Wizard只使用整数值M、D和CLKOUT[0:6]_DIVIDE。

●性能平衡
●最小化输出抖动
●最大化输入抖动滤波
时钟管理类型(时钟原语)选择
7系器件的时钟原语包括MMCME2和PLLE2,用户可以配置其中的任何一个。

Virtex-6系列器件则能使用包含了所有时钟需求的MMCM原语。

因此,时钟原语选择不适用基于Virtex-6系器件的工程。

对于SPARTAN-6系器件来说,wizard可以根据用户设定的时钟性能,自动在DCM_SP、DCM_CLKGEN或PLL_BASE这几个原语中选择一个合适的原语来创建工程。

用户也可以通过选择“Manual Selection”强制选择自己需要的时钟原语。

如果某一原语不支持某些时钟性能,这些性能选项会变成无效状态。

对于SPARTAN-6系器件来说,wizard支持DCM——PLL或PLL——DCM的级联方式。

如果用户意图使用这种级联方式,则需要手动选择DCM_SP原语,并选择需要的级联方式。

如果用户选择了DCM——PLL级联方式,Wizard只允许配置一个时钟;如果用户选择了PLL——DCM级联方式,用户可最多配置6个时钟。

这两种级联方式中,PLL仅用于减少时钟抖动,不用于做任何频率综合功能。

因此,需要注意器件手册中关于时钟资源的输出能力限制,如果手动选择级联方式,则输出的时钟频率受DCM的频率综合能力限制。

配置输入时钟
Virtex-6和7系FPGA允许一个额外的输入时钟,可以通过界面添加第二时钟。

取决于第二时钟的频率,可以生成更为理想的时钟网络,有更少的输出抖动、更低的功耗等等。

输入时钟的抖动峰峰值是供wizard生成时钟网络的参数之一。

此外,一个约束文件会在输入时钟抖动参数输入时生成。

为了更好的计算时钟参数,最好能准确定义这些参数。

例如,对于一个频率在MHz的时钟需求,输入33.333MHz而不是33MHz。

有效的输入频率范围如下:
扩频功能未选用时,10——800MHz;
扩频功能选用时,25——150MHz
用户可以选择输入时钟的Buffer类型,并例化至源代码中。

如果输入时钟缓冲器处于外部,则选择“No buffer”。

如果选择了相位对齐功能,用户将无法配置非专用时钟引脚,因一个非时钟引脚引入的时钟偏斜无法被原语匹配。

用户可选择以UI或PS为输入时钟抖动单位。

对于SPARTAN-6系器件,ISE工具拟为输入时钟布线采用BUFIO2,BUFIO2不是硬体描述语言的一部分。

配置输出时钟
输出时钟的频率、相移和占空比都可配置,wizard会尝试导出一个准确符合用户要求的时钟。

如果无法完全符合用户要求,wizard会给出一个实际的值,在“actual“列中列出。

各个参数中,优先满足频率要求,然后依次是相移、占空比。

在输出多时钟的网络中,优先级从高到低依次是CLK_OUT1、CLK_OUT2、CLK_OUT3等等。

因此,寻找一个符合CLK_OUT1频率要求的解决方案排在最高优先级。

当输入发生变化时,输出时钟的值会重新进行计算。

因此,最好将所有的时钟要求从上到下、从左到右依次列出,这样可以精确的知道哪些指标达不到。

如果相位对齐功能勾选,相位移动则参考激活的输入时钟。

如果相位对齐功能未勾选,相位移动功能参考时钟CLK_OUT1。

不是所有的原语都支持占空比修改,例如,DCM_SP原语被限制在50%占空比。

如果占空
比不可修改,该列会变成灰色不可选。

对于SPARTAN-6系原语DCM_SP,wizard支持以降序输出时钟频率。

CLK_OUT1输出被分频时钟,CLK_OUT2输出期望的分频时钟,例如如果针对输入42MHz的时钟频率,想得到一个21MHz和一个10.5MHz的时钟,则将CLK_OUT1配置成21MHz,CLK_OUT2配置成10.5MHz。

用户可以选择例化何种缓冲器来驱动输出时钟,如果外部代码中已经有缓冲器,则可以选择“”No buffer“。

可选的缓冲器取决于器件所属系列。

对于所有由BUFR驱动的输出,BUFR_DIVIDE属性可以用作硬件描述语言的一个参数。

用户可以在例化设计时改变divide 值。

Feedback and I/O
选择显示一些未列出的端口,如果勾选了相位对齐功能,那么反馈选项可以勾选。

如果没有勾选相位对齐功能,输出时钟的反馈引脚会直接接到输入反馈引脚。

Primitive Overrides。

相关文档
最新文档