易灵思FPGA之PLL简介

  • 一.PLL简介
    • 1--PLL 是什么
    • 2--工作原理
  • 二.常见FPGA器件PLL资源概况
    • 1--Xilinx
    • 2--Altera
    • 3--Lattice
  • 三.易灵思内部PLL资源概况
    • 1--PLL资源简介
    • 2--PLL结构
    • 3--PLL的实际使用
  • 四.总结

一.PLL简介

1–PLL 是什么

PLL是一种反馈控制电路,Phase-Locked Loop,简称锁相环。
其特点是,利用外部输入的参考信号控制环路内部振荡信号的频率和相位。
PLL可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。
锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。

2–工作原理

锁相环通常由鉴相器(PD,Phase Detector)、环路滤波器(LF,Loop Filter)和压控振荡器(VCO,Voltage Controlled Oscillator) 三部分组成。

简单的PLL由频率基准、相位检波器、电荷泵、环路滤波器和压控振荡器(VCO)组成。
其过程是输入信号-> 鉴相器 -> 低通滤波器 -> 压控振荡器-> 输出信号;
鉴相器有两个输入,分别是输入信号和压控振荡器的输出信号,在二者相位差和频率差不是很大的情况下,鉴相器的输出与两输入信号之差成正比,鉴相器的输出为模拟信号,其通过低通滤波器虑除高频杂波,后进入压控振荡器,压控振荡器的输出频率随其输入电压的改变而改变;
从原理图上看,PLL实际上是一负反馈系统,只要输入信号在正常范围内,输出信号在“一定时间内”都能跟上;
输入信号发生变化后,输出信号跟踪输入信号的过程称之为捕获;
输出信号跟踪完毕时称之为锁定;输入信号变化过快导致输出信号无法跟踪时称为失锁。

二.常见FPGA器件PLL资源概况

1–Xilinx

赛灵思的CMT(clock management tile),CMT由1个MMCM(mixed-mode clock manager)和1个或者2个PLL(phase-locked loop)组成。


MMCM可以有2个时钟输入,2选1,输入时钟经过PFD,CP,LF后产生一定幅度的电压输入到VCO,VCO产生频率与输入电压幅度成比例的高频时钟,再被除以M倍并反馈到PFD。
PLL和MMCM的区别是没有反相输出、动态相位调整等。
这是X家CMT单元的手册

2–Altera

A家器件系列较多,会告诉你有多少个全局时钟和局部时钟资源。
拿C10系列看,有32个全局资源;拿A10器件来看,有32分全局和8~16个局部;而S10直接说有上百个时钟树,足够使用。

这是A10小数分频的架构

这是A10 8路选择的PLL
Altera的每个datesheet里面都有完整的架构说明,和计算参数;详见官网DS。

3–Lattice

L家的就比较简单了,ECP5系列不同型号的PLL资源从2~4个不等。

2路clk输入选择,4路VCO结果的输出,一目了然。
ECP5-DS

三.易灵思内部PLL资源概况

1–PLL资源简介

易灵思第一代产品Trion从4K到120K资源不等,无论大小,内部有都有16个全局时钟资源;而PLL的个数取决于不同的器件和封装,下面是对应型号的最大PLL个数。

型号 T4 T8 T20 T35 T55 T85 T120
PLL个数 1 5 5 7 7 8 8

易灵思第二代产品Titanium内部有有32个全局时钟资源;

而且PLL是做成了硬核,以保证高速倍频下的稳定性。拿做常见的T20F256和T35F324举例。
T20F256-PLL引脚分布

T35F324-PLL引脚分布

Ti60F225-PLL引脚分布

每个PLL都是硬核,对应的的都是固定的引脚(T35F324时钟参考源)。

PLL REFCLK0 REFCLK1
PLL_BL0 GPIOL_15_PLLIN0 N/A
PLL_BR0(6) GPIOR_138_PLLIN0 Single-ended: GPIOB_TXP09_CLK0
PLL_BR1 GPIOR_139_PLLIN1 Single-ended: GPIOB_TXP15_CLK1_CDI15
PLL_BR2 GPIOR_140_PLLIN2 Single-ended: GPIOB_TXP19_CLK2
PLL_TR0 GPIOR_118_PLLIN0 Differential: GPIOT_RXP08_CLKP0, GPIOT_RXN08_CLKN0Single-ended: GPIOT_RXP08_CLKP0
PLL_TR1 GPIOR_119_PLLIN0 Differential: GPIOT_RXP17_CLKP1, GPOT_RXN17_CLKN1,Single-ended: GPIOT_RXP17_CLKP1
PLL_TR2 GPIOR_120_PLLIN0 Differential: GPIOT_RXP25_CLKP2, GPIOT_RXN25_CLKN2,Single-ended: GPIOT_RXP25_CLKP2

2–PLL结构

Trion的PLL结构

Titanium的PLL结构

PLL由一个预分频器计数器(N计数器),一个反馈乘法器计数器(M计数器),一个后分频器计数器(O计数器)和输出分频器( C )组成。
note

定义 定义 Trion范围 Titanium范围
N 前分频器 1-15(整数) 1,2,4
M 乘法单元 1-255(整数) 1,2,4
O 后分频器 1,2,4,8 1, 2, 4, 8, 16, 32, 64, 128
C 输出分频 2, 4, 8, 16, 32, 64, 128, 256 1 - 128 (整数)

计数器设置定义PLL输出频率:

在计算PLL的过程中,注意的问题 参考时钟(给PLL资源的),PFD ,VCO ,TrionTitanium都会有不同的范围 ,超过范围软件会报错,届时修改即可;

3–PLL的实际使用

易灵思的PLL资源放在 Interface Deisgner里面,在PLL 下 Create Block 就能新建一个PLL资源;
我们把interface 里面的LVDS,MIPI,PLL,JTAG资源理解为 对逻辑Core (即代码) 的外设 ,只需要管理对逻辑端的设置就好;

我们用T35F324举例(20.2软件版本)
GPIO-Block(s) 输入时钟频率,经过PLL硬核模块,计算分频倍频得出所需 VCO ,连线到代码模块,并接受反馈。
1. 如图所示,新建一个PLL资源,初始界面如下,
block_summary 罗列出此PLL基本信息,输入输出频率,放大倍数,相位,vco个数等等。

2. 在PLL Resource 里面选择我们调用的PLL资源,T35F400有7个,如图。

在clock source 里面,有三个选项core模式,external模式,dynamic模式。

2.1
我们在选择Clock Resource为外部连线的同时,已经确定了使用固定的PLL的资源,软件会自动识别并告知这是pad上哪一个管脚。
external模式代表PLL的输入是从引脚上直接给进来的
如图所示 ,在external模式下,使用PLL_TR0时,占用GPIOR_118资源;在使用PLL_TR1时,占用GPIOR_119资源。

2.2
在使用core模式时候,意味着使用接到全局时钟输入作为参考时钟,有两种情况:
这个时钟管脚可以是任意带有CLKx后缀的输入管脚,x必须是数字,先在interface designer里面建立GPIO并命名,锁定硬件上连接的CLKx管脚;
也可以是任意其他PLL资源的输出时钟频率;
将对应的信号填到下图的 Pin name 回车保存。

2.3
本身dynamic模式使用的比较少,意味可以动态选择以上两种模式,不多赘述。

3 VCO与PLL配置
在此界面,我们可输入对应reset信号,输出locked信号,以及选择反馈模式。

3.1
易灵思的每个数据手册上都有说明,Trion其PLL时钟树 是左边8个,右边8个

每一个从Gclk 和 Pll-in 进入的时钟都会占用一个对应列数的全局时钟资源 ,当某一列的clk资源被使用后,EDA工具会自动识别并分配其他的资源,所以在设计的时候需要注意软件报的warnings和error。

一代Trion PLL支持以下模式:

Internal– PLL反馈在PLL内部。不用自己定义反馈时钟;反馈信号不经过clkmux+Gbuf ,数据和时钟之间会有一个Clkmux+Gbuf的延迟;
local–PLL使用clkout0。反馈信号不经过clkmux+Gbuf ,数据和时钟之间会有一个Clkmux+Gbuf的延迟;
core– PLL反馈来自FPGA内核。反馈时钟可以自己选;反馈时钟和参考时钟相位对齐,数据和时钟之间没有延迟,不需要计算。

当PLL输入时钟的来源不一样的时候,时钟和数据的延迟路径也不一样,需要具体分析;

二代 Titanium PLL支持以下模式:

External– PLL反馈在PLL内部。反馈时钟可以自己选;反馈信号不经过clkmux+Gbuf ,数据和时钟之间会有一个Clkmux+Gbuf的延迟;

3.2 输出PLL

一代Trion每个PLL资源最多可以输出3路时钟;
二代Titanium每个PLL资源最多可以输出5路时钟,并简化了以上的手动配置界面,直接输入想要的频率即可;

4 代码参考 : 上文有说 把PLL资源看做成对逻辑的外设
举例:
我们逻辑内需要50M(sclk_50) 100M(sclk_100)125M(sclk_125)

4.1 输入时钟是50M(clock) PLL-IN管脚 进入

// 逻辑内代码 , 不要把板上的50M输入进来,50,100和125M 由PLL-external模式生成
input sclk_50,
input sclk_100,
input sclk_125,

4.2 输入时钟是50M(clock) GCLK管脚 进入

// 逻辑内代码 , 可以直接把50M输入到逻辑内,100和125M 由PLL-core模式生成
input clock,
input sclk_100,
input sclk_125,

4.3 输出需要150M

  1. PLL Output clock 输出一个150M (sclk_150)
  2. 在GPIO资源内新建一个管脚 ,选clkout ,在Pin name 里面输入sclk_150 回车保存即可;

5 分配具体引脚
如上所示,分配引脚并锁定,点击save,check,最后生成Constraint Files,完成配置。
5 注意事项
5.1 在使用DDR控制器的时候,PLL_BR0只能从对应的PLLIN管脚输入,不能用GCLK管脚输入,也不能用上一级的锁相环的输出作为参考时钟。
5.2 PLL达到锁定时变高;当检测到锁丢失时,它变为低电平。在您的设计中连接此信号以监视锁定状态。该信号是模拟异步信号。
5.3 在相移过程中,
相移CLKOUT 0、45、90、135、180或270度。
180和270要求C分频器为2。
45和135要求C分频器为4。
90要求C分频器为2或4。
要相移225度,请选择45并反转目的时钟。
要相移315度,请选择135并反转目的时钟。
5.3 差分信号的话,只能选择PLL进入,选对外部clock来源即可;

四.总结

在实际工程的移植和操作过程中会遇到各种问题,需要灵活去解决。
例如在原始工程中,PLL是四输出的,而EFinix的3输出的,我们可以使用两个PLL资源去替换。
1, 外部参考时钟如果从GCLK管脚输入,两个PLL的Clock source都用core模式,feedback mode选择local或者core。这样两个锁相环输出的时钟都是对齐的。,
2, 外部参考时钟如果从PLLIN管脚输入,PLL_1的Clock source用external模式,feedback mode用local或者core。PLL_2的 clock source用core模式,参考时钟使用PLL_1的其中一个输出时钟,feedback mode用local或者core。
3, 一代Trion不支持动态切换输出频率,所以得用一些取巧的办法,单端信号可以用DDIO做,差分信号可以用Lvds输出做;

易灵思FPGA--PLL资源相关推荐

  1. Xilinx FPGA PLL 资源与INTEL FPGA PLL资源locked信号的不同

    文章目录 Xilinx FPGA PLL 资源与INTEL FPGA PLL资源locked信号的不同 Xilinx FPGA PLL 资源locked信号仿真图 INTEL FPGA PLL 资源l ...

  2. 易灵思Ti60 FPGA专题(1)-器件和需求介绍

    作者:Hello,Panda 各位朋友们,先生们,女士们,大家早上好,中午好,晚上好.熊猫君最近正在折腾HK的易灵思FPGA芯片做一个Camera,现在弄得差不多了,计划分享一期易灵思的专题,大概有6 ...

  3. 易灵思T35 FPGA驱动LVDS显示屏

    易灵思FPGA,天生适合MIPI/LVDS等相关应用,加上硬核DDR3控制器,简直就是完美. T35F324开发板支持LVDS LCD显示与HDMI显示,具体框图如下.这里,我将就花一定的篇幅,讲讲T ...

  4. 易灵思FPGA---LVDS资源使用

    易灵思FPGA的LVDS设置使用 一.LVDS概述 二.IP调用 三.代码定义 小结 一.LVDS概述 LVDS,Low Voltage Differential Signaling,低电压差分信号: ...

  5. 易灵思发力系统级封装SiP,探索FPGA新玩法

    易灵思发力系统级封装SiP,探索FPGA新玩法 随着半导体工艺技术的演进,传统的工艺缩进技术遇到了很大的挑战,一方面是随着芯片制程节点越来越先进,从10nm.7nm.5nm到3nm,1nm,芯片研发生 ...

  6. 易灵思FPGA-项目设计指南一

    易灵思FPGA-项目设计指南一 原理背景 模块实例 例化顶层和做时序约束 强调 原理背景 我们以往的做工程的是习惯,先完成代码端的任务,工程不大,功能不复杂的情况下,甚至都不会做仿真和约束: 然后在板 ...

  7. 易灵思FPGA--Programming Mode

    易灵思FPGA下载模式的选择 一.下载模式概述 二. 实际中遇到的问题 1. SPI Active 2. SPI passtive 3. SPI JTAG 4. SPI Active using JT ...

  8. FPGA时钟资源PLL与DLL区别

    1.1 FPGA时钟资源PLL与DLL区别 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA时钟资源PLL与DLL区别: 5)结束语. 1.1.2 本节引言 &q ...

  9. 易灵思下载器EFINIX FPGA高速JTAG编程线USB仿真器驱动安装详细使用步骤

    易灵思EFINIX USB下载器驱动安装详细步骤 易灵思EFINX是优秀的国产FPGA公司之一,下面是下载器的驱动安装详细步骤.如果不会使用可以跟着步骤操作即可. 一.驱动安装 当第一次使用时候下载器 ...

  10. 易灵思40nm Trion系列FPGA斩获“数字新芯奖”奖项

    易灵思深圳科技有限公司(以下简称"易灵思")凭借其40nm Trion系列FPGA灵活的可编程特性.丰富的外设接口,快速实现的定制化功能等一系列优秀表现,一举斩获"数字新 ...

最新文章

  1. Contiki Process概述
  2. 提高代码性能及并发性的方法浅谈
  3. ALV输出无法指定STATUS
  4. WPF基本布局(Grid、StackPanel)
  5. LFM回波信号仿真,加汉明窗,可用的matlab代码
  6. LumaQQ安装过程详解(转)
  7. 形容等待时间长的句子_形容等待很久的句子
  8. chrome 打开百度报安全警告
  9. Visual Studio 插件番茄助手2个优秀的特性
  10. 面试官问你如何进行程序设计?——设计模式之七大原则——单一职责、里氏代换、开闭原则、依赖倒转以及C++简单实现
  11. 这五个数据分析师技巧你一定要知道!
  12. 前缀、中缀、后缀(逆波兰)表达式以及逆波兰表达式实现简单计算器
  13. Sony电视投屏 Android,怎样把手机画面投影到电视上观看 乐播投屏使用方法
  14. MiniGUI中的几个画线函数
  15. 怎样计算机表格中算出平均值,怎样设置excel自动计算平均值
  16. 任正非:实事求是的科研方向与二十年的艰苦努力(新年推荐)
  17. 海信将在柏林IFA推出屏幕发声激光电视
  18. AR试妆魔镜操作演示
  19. 使用Android自带的DownloadManager下载ApK并安装
  20. 鲍广华c语言实用教程答案,C语言程序设计实用教程习题答案

热门文章

  1. 入门必学 | R语言常见的报错指南
  2. 安装Python解释器【图文集合 - 详细流程】
  3. 苏联W ndows视频,俄罗斯大神win10精简版32位
  4. 刘意JavaSE 学习笔记 Day1-Day6——环境配置,基本语法
  5. matlab时空地理回归,★时空地理加权回归space-time GWR GTWR分析软件-香港中文大学-黄波教授...
  6. 群晖服务器自动同步到本地电脑,安装群晖Drive,实现多台电脑文件同步
  7. 疫情下的思考:全球疫情带来的危机与机遇
  8. cocos2dx lua 升级spine兼容Spine库v3.8到最新版本
  9. html布局源代码实例,网页实际案例-从设计到代码实现全过程(一)
  10. 学习笔记:OMP算法(Spatially Sparse Precoding in Millimeter wave MIMO Systems)