FPGA - 7系列 FPGA内部结构之Clocking -04- 多区域时钟

2024-03-12 23:20

本文主要是介绍FPGA - 7系列 FPGA内部结构之Clocking -04- 多区域时钟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

本文节选UG472进行整理翻译,用于介绍时钟资源的跨多个时钟区域的时域说明和注意要点。

文章目录

  • 前言
  • 简介
  • 跨多个区域的时钟
    • BUFMR 原语
  • 使用示例
    • 跨时钟区域的时钟对齐
    • 每个时钟区域的单个缓冲器
      • 驱动多个BUFIO
      • 驱动多个 BUFR
    • 每个时钟区域的多个缓冲器
      • 驱动多个 BUFR(带分频)和 BUFIO
      • 驱动多个 BUFR(有和没有分频)
    • BUFR 对齐
  • 每个时钟区域的时钟资源和连接变化
  • reference

简介

7 系列 FPGA 中跨多个时钟区域的时钟和 I/O 互连逻辑不同于前几代赛灵思 FPGA 中的实现方式。 虽然时钟区域中 I/O 和逻辑资源的增加减少了跨越多个时钟区域的时钟信号的需求,但这些相同的宽 I/O 接口仍然需要能够在多个时钟区域中驱动互连和 I/O 逻辑 时钟区域。 7 系列 FPGA BUFMR/BUFMRCE 原语使具有时钟功能的输入引脚能够驱动输入所在区域以及上方和下方区域中的 BUFIO 和 BUFR。
本附录详细介绍了使用 BUFIO 和 BUFR 时钟缓冲器来驱动跨多个时钟区域的时钟信号。

所有 7 系列 FPGA 都被划分为称为时钟区域的区域。 时钟区域从器件中心的全局时钟列跨越到器件的左边缘或右边缘,高 50 行 CLB。

image-20220629212945613

每个时钟区域都有自己的资源。 水平时钟行(图 A-2)位于时钟区域的中间,上面有 25 行 CLB,下面有 25 行 CLB。 驻留在每个时钟区域中的 I/O 列是 50 个 I/O 高,并且正好是一个 I/O bank。每个时钟区域内的 I/O bank 中有四个具有时钟能力的输入 (CCIO) 引脚,两个在水平时钟行上方,两个在下方。

image-20220629213023147

跨多个区域的时钟

虽然时钟区域内逻辑和 I/O 资源的增加减少了设计跨越多个时钟区域的需求,但一些设计仍然需要更大的 I/O 接口来驱动来自多个输入源的相同时钟信号 时钟区域。 在不使用任何其他原语的情况下,通过 CCIO 引脚进入器件的时钟信号只能驱动同一区域内的 BUFR 和/或 BUFIO。 某些设计要求输入时钟信号以多个时钟为互连逻辑(例如 slice 触发器、块 RAM 和 DSP slice)和 I/O 逻辑(例如 ISERDES、OSERDES、ILOGIC、OLOGIC、IDELAY 和 ODELAY)提供时钟 地区。 为此,必须使用 BUFMR 原语。

BUFMR 原语

BUFMR 原语是一个多区域时钟缓冲器,它允许时钟信号访问时钟信号进入器件的区域上方和下方的区域中的 BUFR 和 BUFIO。 BUFMR 可以跨越多个时钟区域。

image-20220629213147265

每个时钟区域有两个 BUFMR。 BUFMR 驱动位于 CMT 列中的专用低偏差时钟资源,确保在将时钟信号驱动到多个区域时插入尽可能少的偏差。

每个 BUFMR 都能够驱动同一区域以及正上方和下方区域中的 BUFR 和 BUFIO。 BUFMR 由同一时钟区域中的 CCIO 或千兆位收发器 (GT) 输出驱动。 这允许 CCIO 和 GT 输出时钟使用相同的电路拓扑跨越多个区域。 在每个时钟区域中存在的四个 CCIO 中,两个可以驱动 BUFMR。 这些引脚被标记为 MRCC 以表示它们的多区域能力。 不能驱动 BUFMR 的两个 CCIO 被标记为 SRCC 用于单区域 CCIO。 每个 MRCC 引脚都有一个主机或 P 侧和一个从机或 N 侧。 使用 MRCC 引脚驱动 BUFMR 时,仅使用主端或 P 端。 要识别主端或 P 端,请在引脚名称中查找 P(例如:IO_LxxP_Tx_MRCC_xx)。

Virtex-6 FPGA BUFR 的 GT 输入在 7 系列 FPGA 架构中不可用。 但是,BUFMR 可以从时钟区域内的任何一个 GT 时钟获取其输入。 这允许 GT 时钟使用相同的电路拓扑跨越多个区域,如上图所示。 此外,BUFMR 不能跨越使用堆叠硅互连技术的设备上的超级逻辑区域 (SLR) 之间的边界。

使用示例

当使用 BUFMR 驱动多个区域中的逻辑时,将由多个 BUFR 或 BUFIO 驱动的逻辑分组为(最多三个)子集,每个子集都有一个单独的 BUFR 或 BUFIO。 使用 Vivado 设计工具对设计进行布局规划和约束,以便将逻辑分配给各个 BUFR 和 BUFIO。

出于说明目的,以下时钟方案使用 MRCC 作为输入; 但是,可以使用 GT 时钟。 此外,其中一些示例显示了使用 BUFR 的内置分割功能时的拓扑。 BUFR 可以以整数步长除以 1 到 8。 除值由设计期间的 BUFR_DIVIDE 属性指定。此外,BUFR 有一个 BYPASS 设置,它可以关闭除法功能和禁用输出时钟使能 (CE) 和除法逻辑 (CLR) 的异步清零。

跨时钟区域的时钟对齐

尽管使用 BUFR_DIVIDE=BYPASS 或 BUFR_DIVIDE=1 属性时 BUFR 原语的行为相似,但使用 BUFR_DIVIDE=BYPASS 时通过 BUFR 的延迟小于使用 BUFR_DIVIDE=1 时的延迟。 但是,当使用 BUFR_DIVIDE=1 属性或 BUFR_DIVIDE=2、3…8 时,通过 BUFR 的延迟是相同的。 因此,当使用具有分频功能的 BUFR 时,非分频 BUFR 应将 BUFR_DIVIDE 设置为 1 而不是 BYPASS,以确保在时钟区域内实现最佳时钟对齐。

每个时钟区域的单个缓冲器

驱动多个BUFIO

当只驱动跨三个时钟区域的 I/O 逻辑时,BUFMR 可以驱动三个 BUFIO。 尽管 BUFR 可以执行此功能,但 BUFIO 提供最高性能的操作并驱动 I/O 列中的专用时钟网络。 将三个 BUFIO 的 I/O 逻辑分组为三个独立的子集,每个子集由其自己的 BUFIO 提供时钟1。

image-20220629215131120

驱动多个 BUFR

在跨三个时钟区域以相同时钟速率从相同时钟源驱动互连逻辑和 I/O 逻辑时,请使用 BUFMRCE 原语(带时钟使能的多区域时钟缓冲器)。 一个 BUFMRCE 可以驱动三个 BUFR,而这三个 BUFR 又驱动互连逻辑和 I/O 逻辑。 将由三个 BUFR 计时的逻辑分组为单独的子集,每个子集由其自己的 BUFR 驱动。

image-20220629215248702

如果正在使用 BUFR 中的分频值,则必须在禁用 BUFMRCE 时重置所有 BUFR 实例。布局器软件会自动将缓冲区放置在适当的位置。

每个时钟区域的多个缓冲器

驱动多个 BUFR(带分频)和 BUFIO

驱动 ISERDES/OSERDES CLK 和 CLKDIV 引脚时,将 BUFIO 与已激活分频功能的 BUFR 结合使用。 BUFIO 为 ISERDES/OSERDES 的 CLK 端口驱动干净、低偏差的时钟,而 BUFR 驱动较慢的 CLKDIV 输入。

例如在下图中,当 250 MHz 输入时钟通过 MRCC 引脚进入 FPGA 时,BUFIO 以 250 MHz 的全速率驱动 CLK 输入,BUFR_DIVIDE=2 的 BUFR 驱动 CLKDIV 输入 125 MHz的半速率。

image-20220629215439096

以这种方式驱动多个缓冲区时,手动放置具有 LOC 约束的缓冲区。 由缓冲器驱动的逻辑会自动放置在适当的位置。

驱动多个 BUFR(有和没有分频)

与上图中的示例类似,如果 BUFIO 不可用(用于其他目的),则 ISERDES/OSERDES 的 CLK 输入可以由 BUFR 驱动。

image-20220629215557867

当一个 BUFMR 驱动三个以上的 BUFR 时,手动放置带有 LOC 约束的 BUFR。 由 BUFR 驱动的逻辑会自动放置在适当的位置。

BUFR 对齐

当使用 BUFR 的内置分频功能时,时钟必须在 BUFMR 处停止并将复位信号应用于 BUFR,以在多个 时钟区域。这将需要使用 BUFMRCE 原语,它允许您在复位期间禁用 BUFMR 的输出。要成功对齐相邻区域中的 BUFR,必须遵循以下程序:

  • 将时钟使能连接到 CE 端口 BUFMRCE
  • 将 BUFMRCE 的 CE 引脚保持在其无效状态以禁用 BUFMRCE 的输出
  • 通过向 BUFR 的 CLR 引脚施加复位信号来复位所有 BUFR
  • 在 BUFR 复位/CLR 后重新启用 BUFMRCE 信号被施加
  • 释放BUFR 上的reset/CLR 信号 所有BUFR 必须在同一个时钟周期内释放,以确保所有BUFR 输出时钟的相位对齐

要在电路操作期间关闭时钟,即在解除置位 BUFR 的复位/CLR 信号后,请使用其 CE 引脚禁用 BUFMRCE。 这可确保在时钟信号恢复时 BUFR 继续对齐。 BUFMRCEs CE 引脚应至少在一个输入时钟周期内有效。

每个时钟区域的时钟资源和连接变化

下面几个图显示了不同型号的器件时钟区域的时钟资源和连接。

image-20220629220040990

image-20220629220106913

image-20220629220139541

image-20220629220157470

reference

  1. UG472

这篇关于FPGA - 7系列 FPGA内部结构之Clocking -04- 多区域时钟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/802906

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

Java基础回顾系列-第七天-高级编程之IO

Java基础回顾系列-第七天-高级编程之IO 文件操作字节流与字符流OutputStream字节输出流FileOutputStream InputStream字节输入流FileInputStream Writer字符输出流FileWriter Reader字符输入流字节流与字符流的区别转换流InputStreamReaderOutputStreamWriter 文件复制 字符编码内存操作流(

Java基础回顾系列-第五天-高级编程之API类库

Java基础回顾系列-第五天-高级编程之API类库 Java基础类库StringBufferStringBuilderStringCharSequence接口AutoCloseable接口RuntimeSystemCleaner对象克隆 数字操作类Math数学计算类Random随机数生成类BigInteger/BigDecimal大数字操作类 日期操作类DateSimpleDateForma

Java基础回顾系列-第三天-Lambda表达式

Java基础回顾系列-第三天-Lambda表达式 Lambda表达式方法引用引用静态方法引用实例化对象的方法引用特定类型的方法引用构造方法 内建函数式接口Function基础接口DoubleToIntFunction 类型转换接口Consumer消费型函数式接口Supplier供给型函数式接口Predicate断言型函数式接口 Stream API 该篇博文需重点了解:内建函数式