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

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

相关推荐
aloneboyooo26 分钟前
fpga-编程线性序列机和状态机
fpga开发
碎碎思4 小时前
打开 FPGA 设计之门:深入了解 Verilog-to-Routing (VTR) 开源项目
fpga开发
巧~·13 小时前
静态时序分析与约束
fpga开发·vivado
FPGA_ADDA15 小时前
基于 ZU49DR FPGA 的无线电射频数据采样转换开发平台核心板
fpga开发·无线电射频·xczu49dr·gps+北斗
GateWorld15 小时前
深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第五篇:多主仲裁与错误恢复
fpga开发·开源协议
hexiaoyan82717 小时前
板卡设计资料:基于fpga的10G以太网AD、Camera数据传输适配器
fpga开发·3u pxie·camera数据传输适配器·3u pxie主控板·计算模块·图形处理板卡
FPGA_ADDA18 小时前
基于 AMDXCVU13P FPGA 的 4 路 100G 光纤 PCIe 低时延高性能计算加速卡
fpga开发·加速计算·xcvu13p·pcie 3x16
北城笑笑21 小时前
FPGA 42 ,时序约束深度解析与实战应用指南( FPGA 时序约束 )
fpga开发·fpga
博览鸿蒙1 天前
曾经在知乎上看到一个回答:“入职做FPGA,后续是否还可以转数字IC设计?”
fpga开发
aloneboyooo1 天前
Modelsim的入门使用和Verilog编写
fpga开发