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

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

相关推荐
brave and determined7 小时前
可编程逻辑器件学习(day29):Verilog HDL可综合代码设计规范与实践指南
深度学习·fpga开发·verilog·fpga·设计规范·硬件编程·嵌入式设计
碎碎思2 天前
不用 JTAG 也能刷 FPGA:TinyFPGA-Bootloader 让比特流加载更简单
fpga开发
贝塔实验室2 天前
Altium Designer 6.0 初学教程-在Altium Designer 中对PCB 进行板层设置及内电层进行分割
嵌入式硬件·fpga开发·编辑器·硬件工程·信息与通信·信号处理·pcb工艺
ThreeYear_s2 天前
【FPGA+DSP系列】——MATLAB simulink单相PWM全控整流电路基础版
开发语言·matlab·fpga开发
forgeda2 天前
赛灵思FPGA的市场份额,要从2025年的55%,进一步提升到2030年的70%,凭什么?
ai·fpga开发
怀民民民2 天前
关于ADC
单片机·嵌入式硬件·fpga开发·adc·学习总结·模数转化
太爱学习了2 天前
步进电机sin曲线加速及FPGA实现
fpga开发·步进电机
尤老师FPGA2 天前
LVDS系列33:Xilinx 7系 ADC LVDS接口参考设计(四)
fpga开发
FPGA_无线通信2 天前
FPGA PCIE 包解析
fpga开发
Aaron15882 天前
通用的通感控算存一体化平台设计方案
linux·人工智能·算法·fpga开发·硬件工程·射频工程·基带工程