Xilinx-FPGA关于BUFFER(时钟/普通IO信号)的使用总结

2023-10-26


目录

前言

一、时钟BUFFER使用总结

二、普通IO输出时钟信号时的推荐方法

使用ODDR


前言

Xilinx-FPGA开发过程中,关于时钟信号和普通IO信号引入FPGA内部需要遵循一定的使用方法,现在自己一年多使用过的内容做一个总结,也供新手参考。关于BUFFERS原语,主用用于对端口时钟信号及其他重要信号的缓冲和驱动,满足FPGA底层硬件综合布线规则,以正确且充分的利用FPGA全局时钟树资源。


一、使用总结

1、IBUFG+BUFG
IBUFG+BUFG是最常用的使用方法,可以用BUFGP,BUFGP=IBUFG+BUFG。

个人经验:如工程设计中使用局时钟树资源,一般使用clocking wizard IP和更为方便,该IP和包含了MMCM+IBUFG+BUFG,,如下图一个单端系统输入时钟+三个输出时钟的WIZ IP核所示:

2、IBUFG+DCM+BUFG
首先通过DCM数字锁相环适用于动态调整,然后再通过BUFG利用全局时钟树走线。

3、logic+BUFG
FPGA内部的普通logic信号也可以通过通过BUFG利用全局时钟树走线,需要注意的是logic到BUFG之间大概有10ns的延时。

4、logic+DCM+BUFG
FPGA内部的普通logic信号也可以首先通过DCM数字锁相环调整,然后再通过BUFG利用全局时钟树走线。

5、IBUFGDS+BUFG
差分时钟信号的组合使用方法。

一般使用是同1.所述常用clocking wizard IP得到工程所需的各速率的时钟信号,该IP核的输入可选择为差分输入时钟。

6、IBUFDS+BUFG
差分普通信号作为全局时钟信号的的组合使用方法。

二、普通IO输出时钟信号时的推荐方法

若直接使用assign 将clk_object(BUFG输出信号)赋值给IO管脚作为输出,

推荐使用原语ODDR作为实现,代码如下:

    ODDR #(
      .DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE" or "SAME_EDGE" 
      .INIT(1'b0),    // Initial value of Q: 1'b0 or 1'b1
      .SRTYPE("SYNC") // Set/Reset type: "SYNC" or "ASYNC" 
   ) ODDR_inst1 (
      .Q(实际作为时钟输出信号的IO管脚),   // 1-bit DDR output
      .C(本计划作为输出的时钟信号),   // 1-bit clock input
      .CE(1'b1), // 1-bit clock enable input
      .D1(1'b1), // 1-bit data input (positive edge)
      .D2(1'b0), // 1-bit data input (negative edge)
      .R(1'b0),   // 1-bit reset
      .S(1'b0)    // 1-bit set

UG472中P24对BUFIO的描述:

The main purpose of the BUFR and BUFIO combination is to support source-synchronous
interfaces. When an interface is placed into a single region, the BUFIO clocks the
high-speed side of the SelectIOs and the BUFR clocks the deserialized/serialized side at a
lower speed into the FPGA logic providing the clock domain transfer function. For
interfaces that require more logic and/or I/Os than are available in a single clock region/
bank, the BUFMR (BUFMRCE) is used to expand clock domain transfer functionality into
the clock regions above and below. Certain types of applications that require a divided
clock not related to the source-synchronous I/O use case can use a BUFR as a simple clock
divider when an MMCM/PLL cannot be used or is not available for the frequency divide
function. In this case, particular attention must be paid to the timing and skew because this
is not the primary purpose of the BUFR. For more information on clocking SelectIO
resources, consult UG471, 7 Series FPGAs SelectIO Resources User Guide.

BUFIO的输入输出YG472中描述如下:(因此BUFIO的输出可以驱动SELECTIO的I/OLOGIC)

Within the same clock region, BUFIOs are driven by:

•   MRCCs (dedicated 1:1)

•   SRCCs (dedicated 1:1)

•   MMCM.CLKOUT0– MMCM.CLKOUT3

•   CLKFBOUT

•   BUFMRs in the same clock region and clock regions below and above

When used within the same clock region, BUFIOs drive:

•   ILOGIC.clk

•   ILOGIC.clkb

•   OLOGIC.clk

•   OLOGIC.clkb

•   OLOGIC.oclk

•   OLOGIC.oclkb


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xilinx-FPGA关于BUFFER(时钟/普通IO信号)的使用总结 的相关文章

  • TestBench编写_激励产生

    TestBench编写 激励产生 TestBench编写 激励产生 基本背景 读取函数介绍 a fopen函数使用 b fread函数使用 c fclose函数使用 实际使用 TestBench编写 激励产生 基本背景 最近遇到项目中需要对
  • verilog 基本语法 {}大括号的使用

    的基本使用是两个 一个是拼接 一个是复制 下面列举了几种常见用法 基本用法 表示拼接 第一位 第二位 表示复制 4 a 等同于 a a a a 所以 13 1 b1 就表示将13个1拼接起来 即13 b1111111111111 拼接语法详
  • JESD204B(RX)协议接口说明。

    解释一下Vivado IP协议中的Shared Logic in Example 与 Shared Logic in Core 首先 什么是Shared Logic 字面意思很好理解 就是共享逻辑 主要包括时钟 复位等逻辑 当选择Share
  • Verilog HDL——Modelsim仿真

    常用testbench语法 finish 和 stop finish任务用于终止仿真并跳出仿真器 stop任务则用于中止仿真 timescale time unit time precision time unit指定计时和延时的测量单位
  • BUCK电路分析(二)

    BUCK电路分析 二 PSIM仿真同步BUCK电路 在上片文章中 初步的分析了BUCK电路的工作原理 本章使用PSIM软件仿真BUCK电路 观察分析BUCK电路器件关键波形 图1是同步BUCK电路图 开关频率设置为200K 固定占空比 在仿
  • FPGA Lattice Diamond 开发环境搭建

    FPGA Lattice Diamond 开发环境搭建 Lattice Diamond 软件下载 在浏览器中输入 Lattice 的官网地址 http www latticesemi com 进入官网首页在上方选择产品系列选项 出现如下图所
  • 【FPGA多周期时序约束详解】- 解读FPGA多周期时序约束的全过程

    FPGA多周期时序约束详解 解读FPGA多周期时序约束的全过程 FPGA作为数字电路设计的常见工具 其设计中必然会遇到时序约束的问题 而多周期时序约束更是FPGA设计中不可避免的难点之一 本文将详细介绍FPGA多周期时序约束的全过程 并结合
  • Spartan-3E 上的随机数生成

    我需要在 Spartan 3E FPGA 上为我的遗传算法生成伪随机数 并且我想在 verilog 中实现它 您能给我任何关于此的指示吗 当然 Adam 的随机生成器是不可合成的 您必须显式创建一个LFSR 以下示例可能会有所帮助 它是一个
  • 【FMC141】基于VITA57.4标准的4通道2.8GSPS 16位DA播放子卡(2片DAC39J84)

    FMC141是一款基于VITA57 4标准的4通道2 8GSPS 2 5GSPS 1 6GSPS采样率16位DA播放FMC子卡 该板卡为FMC 标准 符合VITA57 4与VITA57 1规范 16通道的JESD204B接口通过FMC 连接
  • 用python接收高速率的UDP数据包

    我正在使用 python 来从 FPGA 接收 UDP 数据包流 并尝试丢失尽可能少的数据包 数据包速率从大约 5kHz 到一些 MHz 我们希望在特定时间窗口 代码中的 acq time 内获取数据 我们现在有这样的代码 BUFSIZE
  • Verilog、FPGA、统一寄存器的使用

    我有一个问题 关于我正在开发的 AGC SPI 控制器在我看来奇怪的行为 它是用 Verilog 完成的 针对的是 Xilinx Spartan 3e FPGA 该控制器是一个依赖外部输入来启动的 FSM FSM的状态存储在状态寄存器它没有
  • 【ZYNQ学习】PL第一课

    这节课讲什么 这节课的名字本来是想写为LED 但这一课里除了LED也有按键 又想换为GPIO控制 但关于PL的GPIO控制 不应该这么草率和简单 而且这一课有很多和ZYNQ或者PL关联性不强的东西要说 所以我写了删删了写改了好几遍 终于定为
  • 用于 Verilog 或 SystemVerilog 的 TAP(测试任何协议)模块

    是否有 TAP 测试任何协议 http testanything org Verilog 的实现 那就太好了 因为这样我就可以使用证明来自动检查我的结果 更新 10 9 09 有人问为什么不使用断言 部分 TAP 为我提供了一些很好的报告
  • 修改后的 baugh-wooley 算法乘法 verilog 代码不能正确乘法

    以下 verilog 源代码和 或测试平台可以很好地工作商业模拟器 iverilog https www edaplayground com x 3TuQ也形式化验证工具 yosys smtbmc https gist github com
  • VHDL门控时钟如何避免

    我收到了避免使用门控时钟的建议 因为它可能会导致松弛和时序限制问题 但我想问一下我可以认为什么是门控时钟 例如 此代码对时钟进行门控 因为 StopCount 对它进行门控 process ModuleCLK begin if rising
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • MINI-UTDE 10 BASE-T 集成控制器

    MINI UTDE 10 BASE T 集成控制器 MINI UTDE 10 BASE T 拥有多达三个本地I O板和远程I OS总线通信 为用户提供了一系列生产单元功能的单一控制点 包括诸如夹头 反馈器和辅助机器等外围生产设备 支持所有主
  • VHDL 中的 BRAM_INIT

    我正在模拟基于处理器的设计 其中程序存储器内容保存在 BRAM 中 我正在使用 VHDL 推断 BRAM 实现程序存储器 我试图避免使用 CoreGen 因为我想保持设计的可移植性 最终该设计将进入 FPGA 我想看看是否有一种方法可以使用
  • 如何使用 Verilog 和 FPGA 计算一系列组合电路的传播延迟?

    我是 FPGA 和 HDL 的新手 但我正在尝试学习 但无法弄清楚这一点 如何通过多个级别的组合逻辑来计算或估计传播延迟 我可以仅凭经验确定这一点 还是可以在设计时弄清楚 在这种情况下 我使用 FPGA 来实现奇偶校验设置和检查电路 该电路
  • 可以购买哪些 FPGA(现场可编程门阵列)在家中进行实验? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 什么是 FPGA 在哪里可以买到 它们要花多少钱 您需要什么样的系统来试验它们 如何对它们进行编程 如果这是正确的术语 您能否使用普通 M

随机推荐

  • vue3中使用webcamjs拍照

    最近做了一个考试答题的pc端vue3项目 就是pc端有人脸识别这个流程 于是熟悉了下 附上官方文档地址 https www npmjs com package webcamjs 一 第一步下载 npm i webcamjs 二 vue3中引
  • React如何使用styled-component

    首先需要安装style component 在控住台输入npm install styled component save 全局如何使用呢 在index js中引入style js 以下是style js中的代码 其中使用了reset cs
  • 【数学】张量通俗入门

    1 张量 张量就是一组有序数 或者说 张量就是一组有序数的表现方式 或者说是记号 比如向量是一种表现方式 矩阵是一种表现方式 张量同样也是一种表现方式 它本质就是一组有序的数字而已 值得指出的是 张量是比向量和矩阵更高级的记号 它向下包含了
  • 射频功率衰减器一般采用电阻元件,有两种主要电路形式:π型和T型

    射频功率衰减器一般采用电阻元件 有两种主要电路形式 型和T型 工具下载 https download csdn net download xingqingly 12921701 1 型 输入阻抗和输出阻抗50欧姆
  • STM32中iic驱动mpu6050例程

    一 mpu6050寄存器相关知识 1 本机地址 可在寄存器使用手册查找 mpu6050在iic中是七位地址 Bit6 Bit1是他的前六位地址 默认是110100 末位由AD0引脚的值确定 并不是该寄存器的Bit0位 若AD0引脚置0 则m
  • 电赛需知

    电赛是大学生活里一个很好锻炼自己的机会 电赛前需要规划好电赛期间的几天生活 要撰写好方案 坚定信念 要注意饮食 电赛一般三到五人组队 需要很好的协作能力 较强的沟通能力 参赛期间难免会有争议 不要好高骛远 不要中途改方案
  • 部署langchain+chatglm

    先参考 window零基础部署langchain ChatGLM 飞奔的屎壳郎的博客 CSDN博客 安装一部分 1 GCC安装 gcc64位下载 一定要装64位的gcc 因为我的电脑是w10 64位的 装32位运行langchain报错并配
  • 在android studio下怎么引入android framework来使用隐藏的api

    在eclipse上很容易引入自己编译的android framework来使用系统隐藏的API 在android studio上就有点麻烦了 在gradle 1 0以前可以设置Provided编译属性来支持编译但不打包到dex里面 可是在新
  • 使用JS获得IP地址及其归属

    相关的API接口 ip 获取自己IP https api ip sb ip ip 获取自己IP https api ipify org 获取自己IP以及归属 https api ip sb geoip ip api com 接口 http
  • String 字符串 转为字符数组

    推荐阅读 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画 AI讲话 翻译 GPU点亮AI想象空间 资源分享 史上最全文档AI绘画stabledif
  • Csharp:The .dat File using BinaryReader and BinaryWriter Convert to DataTable

  • Css3透明、background-size 属性

    background size length percentage cover contain 值 描述 测试 length 设置背景图像的高度和宽度 第一个值设置宽度 第二个值设置高度 如果只设置一个值 则第二个值会被设置为 auto 测
  • Python小知识点总结

    1 super 在类的继承中 如果重定义某个方法 该方法会覆盖父类的同名方法 但有时 我们希望能同时实现父类的功能 这时 我们就需要调用父类的方法了 可通过使用 super 来实现 class Animal object def init
  • ipv6 socket bind 失败 - accept_dad

    file proc sys net ipv6 conf interface accept dad variable net ipv6 conf interface accept dad Official reference Whether
  • 阿里一面:讲一讲 Spring、SpringMVC、SpringBoot、SpringCloud 之间的关系?

    大家好 我是Tom哥 搞后端开发的同学 对 Spring 家族一定不陌生 Spring 全家桶了为了解决不同场景的问题 逐渐演化出多套生态环框 如 Spring SpringMVC SpringBoot SpringCloud 它们之间的关
  • 区块链原理与应用(一)

    1 什么是区块链 mermaid svg z62l3eavYilXMK3m label font family trebuchet ms verdana arial font family var mermaid font family f
  • 【ML】2023 年面向初学者的十大机器学习项目

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • elementUI 的 table 表格改变数据不更新问题

    预期效果 点击输入框旁边的图标 输入框变为可输入状态 这里控制输入的 editable 字段不是 data 原有的属性 也不是 data 赋值时就存在的字段 问题原因 在 Vue 实例创建时 以及 data 赋值时 editable 并未声
  • 随机从数组或集合中抽取一个值或 从list集合中随机抽几个值 或算权重

    直接上代码 package cn itcast jk util import java util Arrays import java util HashSet import java util Map import java util S
  • Xilinx-FPGA关于BUFFER(时钟/普通IO信号)的使用总结

    目录 前言 一 时钟BUFFER使用总结 二 普通IO输出时钟信号时的推荐方法 使用ODDR 前言 Xilinx FPGA开发过程中 关于时钟信号和普通IO信号引入FPGA内部需要遵循一定的使用方法 现在自己一年多使用过的内容做一个总结 也