FPGA时钟资源与设计方法——Xilinx(Vivado)

目录

  • [1 FPGA时钟资源](#1 FPGA时钟资源)
  • [2 时钟设计方案](#2 时钟设计方案)

1 FPGA时钟资源

1.时钟资源包括:时钟布线、时钟缓冲器(BUFG\BUFR\BUFIO)、时钟管理器(MMCM/PLL)。

2.时钟类型有三种:全局时钟,可以驱动整个内核上的同步逻辑;局部时钟,可以驱动特定和相邻区域的逻辑;IO时钟,可以驱动某个IO的特定逻辑。

3.混合模式时钟管理器(MMCM)和数字时钟管理器(DCM),DCM与MMCM设计差别很大。

4.时钟复用:Xilinx提供了BUFGMUX原语,能够在两个全局时钟源之间进行选择。该原语还确保了当输入时钟选择改变时,系统能不受毛刺干扰。

5.FPGA提供专用的低偏移时钟布线资源,偏移被定义为时钟边沿到达同步逻辑元件的时间偏差。

2 时钟设计方案

1.内部产生的时钟是组合逻辑或寄存器的输出,组合逻辑产生的时钟会有毛刺,会被错误的当成有效时钟边沿触发寄存器工作,从而导致功能错误,因此,禁止使用组合逻辑的输出作为时钟。

2.内部产生的时钟使用普通布线资源,与专用时钟布线相比延迟较长,其后果是时钟偏移增加,满足时序的过程更加困难,设计中尽量减少使用内部逻辑生成的时钟。

3.使用时钟的单个边沿(单单使用上升沿或是下降沿),除了一些特殊情况,寄存数据通常总是使用时钟的上升沿或下降沿。使用两个边沿带来的问题是由于时钟占空比可能并不总是50%,这会对电路的正常工作产生影响。

4.使用差分时钟,建议在频率高的情况下使用差分时钟。通常认为频率高于100MHz以上属于高频。差分时钟相比单端时钟的主要优势是共模噪声抑制,因此抗噪声性能更好。具有PECL、LVPECL和LVDS信号电平的差分时钟是高速逻辑下时钟的首选。

5.使用门控时钟,能够禁止或允许时钟输入到寄存器或其他同步元件上的一种方法。能够有效降低功耗,被使用在ASIC中,在FPGA中尽量避免使用这种方法。

6.不建议将时钟信号作为通用逻辑的控制、复位或数据输入。

7.源同步时钟,许多与FPGA接口的外设都使用与数据一样的源同步时钟。如果接口在高速下工作,可能需要对时钟边沿进行校准,以便在数据窗口的中间捕获数据。为实现动态校准,Xilinx的MMCM原语提供了动态重新配置端口(DRP),允许时钟的可编程相位偏移。

8.Xilinx提供了能在两个全局时钟源之间进行复用的BUFGMUX原语。他还确保了当输入时钟切换后不会产生毛刺。参与复用的时钟可以毫不相关,并且建议使用专用的时钟资源实现时钟复用,确保输入和输出时钟使用专用时钟线。

9.检测时钟缺失(absence),一种方法是使用其他更高速的时钟对其进行过采样,缺点是时钟可能没有可用的高速时钟。还有一种方法是使用Xilinx的MMCM原语的locked输出。

作为曾经的初学者,在开发的过程中对于时钟资源的使用,以前也犯过一个错误,这里总结一些精练笔记,减少大家在开发的过程中少出错;如果对您有帮助,请不吝赐赞和关注,我会不断分享。

相关推荐
JoYER_cc12 小时前
FPGA 调试实录:LED 闪烁程序从踩坑到仿真验证的完整经验总结
fpga开发
ktd00714 小时前
复旦微开发环境搭建流程备忘录
fpga开发
ERROR:9914 小时前
陈工,试试Agent开发FPGA
fpga开发
威嵌神州17 小时前
复旦微 FMQL100TAI 开发 8 问:仿真器、系统、接口高频问题解答
人工智能·嵌入式硬件·fpga开发
北京青翼科技18 小时前
青翼基于PCIe的VU13P FPGA信号处理板
fpga开发·fpga开发板·图像处理卡·pcie板卡
szxinmai主板定制专家19 小时前
NXP LS1046A 硬件方案: LS1046A+FPGA 异构加速架构实践
大数据·图像处理·人工智能·嵌入式硬件·fpga开发
Riwuarua2 天前
从近似0基础开始FPGA开发 -- part.14 JESD204协议、IP核与嵌入式初始化
fpga开发·jesd
第二层皮-合肥2 天前
Vivado 自动生成的 AXI‑Lite 从机 IP 的操作步骤
fpga开发
blue_ice .2 天前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
薛定谔的bug~3 天前
【vivado】10G ibert 工程
fpga开发