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输出。

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

相关推荐
ZPC82104 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82104 天前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
tiantianuser4 天前
RDMA设计53:构建RoCE v2 高速数据传输系统板级测试平台2
fpga开发·rdma·高速传输·cmac·roce v2
博览鸿蒙4 天前
FPGA 和 IC,哪个前景更好?怎么选?
fpga开发
FPGA_小田老师5 天前
xilinx原语:ISERDESE2原语详解(串并转换器)
fpga开发·iserdese2·原语·串并转换
tiantianuser5 天前
RDMA设计50: 如何验证网络嗅探功能?
网络·fpga开发·rdma·高速传输·cmac·roce v2
Lzy金壳bing5 天前
基于Vivado平台对Xilinx-7K325t FPGA芯片进行程序在线更新升级
fpga开发·vivado·xilinx
unicrom_深圳市由你创科技5 天前
医疗设备专用图像处理板卡定制
图像处理·人工智能·fpga开发
tiantianuser5 天前
RDMA设计52:构建RoCE v2 高速数据传输系统板级测试平台
fpga开发·rdma·高速传输·cmac·roce v2
luoganttcc5 天前
Taalas 将人工智能模型蚀刻到晶体管上,以提升推理能力
人工智能·fpga开发