以 PH1A100SFG676为例,其它器件类似 , PH1A100SFG676 器件提供了 20 个 PLL,可以实现高性能的时钟管理功能,同时适
用于各种频率的合成器,能够为外部和内部提供低抖动的时钟。(具体可查看各 device
的 PLL 用户手册)
创建 PLL 模块
1. 选择 Tools → IP Generator
, 选择“Create an IP core
”
2. 输入模块名称并选择存储路径。此处,若是在有工程的基础上创建 PLL 模块,
存储路径和器件名称将与工程保持一致。若在没有工程的基础上创建 PLL 模块,
用户需手动设置保存路径和器件名称。
3. 在 Function 窗口 Primitive IP 展开 Clock → PLL, 双击 PLL 打开配置界面。
4. 设置 PLL 的相关参数
1) PLL 模式设置
PLL 支持 4 种反馈模式,每种模式都支持时钟分频/倍频和相移。
a) 普通模式(Normal)
普通模式中, PLL 会补偿 GCLK 网络延迟,保证内部寄存器输入时钟相位和时
钟管脚相位一致。
b) 源同步模式(Source-Synchronous)
源同步模式通过动态相移功能,调节时钟相位保证数据端口到 IOB 输入寄存器
的延迟和时钟输入端口到 IOB 寄存器的延迟相等(数据和时钟输入端口模式相
同情况下)。
c) 无补偿模式(No Compensation)
在无补偿模式, PLL 不对时钟网络延迟进行补偿, PLL 采用内部自反馈,这会
提高 PLL 的抖动特性。
d) 零延迟缓冲模式(Zero Delay Buffer)
零延迟缓冲模式,时钟输出管脚相位和 PLL 参考时钟输入管脚相位对齐。
PLL 参数特性如下表所示:
Parameter | Feature |
输入参考时钟频率范围 | 10-500 MHz |
输入时钟抖动 | 小于 20%输入时钟周期或者最大 1ns |
输出时钟频率范围 | 6.25-1000MHz |
VCO 频率范围 | 800-2000 MHz |
时钟输出端口数 | 7 (支持反向输出) |
参考时钟分频系数(M) |
1to 128
|
反馈时钟分频系数(N) | 1 to 128 |
输出时钟分频系数(C0-6) | 1 to 128 |
相移分辨率 | 45o (相对 VCO) |
用户动态相位调整 | 支持 |
锁定状态输出 | Lock |
锁定时间 | ≤ 200us |
带宽 | HIGH、 LOW、 MEDIUM |
占空比调整 | 支持 |
外部反馈时钟抖动 | 小于 20%输入时钟周期或者最大 1ns |
小数分频 | 支持(C0~C6 均支持, VCO 为参考时 钟的小数倍时使用) |
展频(SSC) | 支持 |
动态配置 | 支持 |
当选择“Add derive_pll_clocks”时, 在编译工程时会自动在所有用到的 PLL
clkc[x]端口生成时钟约束, 生成时钟的频率、 相位都将严格按照 PLL 内部的参
数设定。 而选择“Generate Basic Clocks”将会在对应的 PLL refclk 上定义 FIN 频
率的基准时钟,否则将自动搜索 refclk pin 以及所连 net 上定义的时钟,没找到
则报错。
2)输出时钟的设置
每个 PLL 皆有 7 个输出时钟 C0~C6,可根据需求选择输出时钟的数量并配置输出
时钟的频率及相位偏移量。 设置输出频率时,可在 Clock frequency 界面直接设置输出
频率, 也可根据输入频率, 在 Parameters setting 界面设置分频系数。 点击“Show Details”
可在右下角查看该输出的各项性能参数值。
3) Bandwidth 的设置
可分别设置 Bandwidth 的值为 Low、 Medium、 High, 默认值为 Medium。 点击“Show
Details”可查看该带宽下, PLL 各性能参数的值。
4) 最后确认各项参数是否正确, 点击“Finish”完成 PLL 的配置。
5. 软件将给出生成文件的路径, 点击“OK”后, 可根据提示选择是否将生成的文件
添加至工程中。
6. 可通过选择 Tools → IP Generator, 选择“Edit an IP core”来打开一个已存在的
IP。
例化 PLL 模块
以新建工程为例介绍例化 PLL 模块的过程。用户也可以在已有工程的基础上进行
例化,例化过程一致。
1. 新建工程,并为工程添加顶层模块。
2. 在工程中添加上一步生成的 test_pll.v
3. 在顶层模块中调用 test_pll 模块, 并修改 inst 名称和端口名称, 点击保存按钮,
即完成了 PLL 模块的例化。 点击 File → Save 保存文件
没有回复内容