1 FPGA组成原理——IO资源

文章目录

一、前言

本文是FPGA组成原理教程的IO资源原理篇,FPGA六大资源:IO资源、逻辑资源、存储资源、时钟资源、布线资源和专用硬核,后续有时间出一篇有关FPGA组成结构的概述文章。
在开始阅读本文之前,这里先问大家一个问题:各位对IO的理解是什么? 可能对于绝大多数初学者而言,IO就是一个普通的管脚,没什么特别。各位在FPGA开发时应该都做过IO分配,如引脚位置、输出驱动电流和上下拉等,作为FPGA六大资源之一的IO真的仅局限于管脚的分配吗?
经验丰富的开发者可能接触过IBUFDS、OBUFDS、IDDR、ODDR、ISERDESE2、OSERDESE2、IDELAYE2和ODELAYE2等原语(各类原语具体作用可自行查询相关技术资料),其实这些原语都属于IO资源。什么是IO?它的基本构成是什么?信号从管脚到FPGA内部逻辑电路之间都经历了哪些电路处理?本文将带着上述问题分析当前国内外主要厂商FPGA的IO架构。

二、基本组成

当前主流FPGA厂商的IO结构(Xilinx称其IO技术为SelectIO)通常包含IO BUFFER(后续简称IOB)​ 和IO LOGIC(后续简称IOL)两部分。 Xilinx IO组成如下图(参考UG471 Figure 2-1和Figure 2-2):

Xilinx IO结构


Xilinx IO结构


紫光Logos系列产品的IO组成如下图(参考Pango UG020006 图1-1),其中左侧为IOL而右侧为IOB:

紫光IO结构


高云产品的IO同样包括IOB和IOL两部分,具体组成如下图(参考Gowin UG289 图2-1):

高云IO结构


各厂商IO结构基本一致,但Xilinx把ISERDES和OSERDES视为“Advance SelectIO Logic Resources”,而其他厂商普遍将上述部件划分到IOL范畴, 这里个人更倾向其余厂商的做法。下表详细列出了各厂商IO组件的具体命名:

-Xilinx紫光安路高云
IOBIOBIO BUFFERIOB输入输出缓存
IOLSelectIO Logic ResourcesIO LOGICIOL输入输出逻辑

IOB主要负责处理电气特性,具体作用包括:

  1. 信号类型转换: 由于FPGA内部资源通常采用单端信号进行互联,因此需将差分输入信号转化为单端信号或将FPGA内部单端信号转化为差分信号再进行输出;
  2. 电平标准转换: 外部信号电平标准可能为LVCMOS、LVTTL、SSTL和LVDS等,但FPGA内部资源通常为单一电源供电,如CLB使用VCCINT电源供电,因此需对电平进行转换;
  3. 其他: 如IO压摆率设置和上下拉电阻设置等。

而IOL则用于实现特定逻辑功能,具体作用包括:

  1. 串并转换(具体原理可阅读本人串并转换专题文章): 将高速串行输入数据转化为并行数据以便于FPGA内部处理,或将FPGA内部并行数据转化为高速串行数据进行输出;
  2. SDR/DDR转换(具体原理可阅读本人IDDRODDR专题文章): 将SDR信号转换为DDR信号;
  3. 其他: 如信号延时和输入输出寄存器等。

2.1 IOB

IOB的复杂度较高且更多涉及底层电路,同时不同厂商的IOB具体配置存在较大差异。此外个人对这部分内容了解程度相对有限, 下面给出各厂商IOB原理示意图作为学习参考。
下图为安路DR1系列FPGA的IOB基本组成结构原理图(参考Anlogic UG1210 图2-1),该示意图直观展示了IOB的多种功能特性,包括可编程上下拉电阻(图中标注为Programmable Pull up/down)、三态控制(图中标注为Driver)、LVDS电平标准支持(图中标注为LVDS)以及差分信号的片内终端电阻配置(图中标注为100Ω)等。(PS:下图相对通俗易懂)

Anlogic IOB原理图


下图为Xilinx FPGA Regular HR Bank IO的IOB基本组成结构原理图(参考UG471 Figure 1-4)(PS:相对比较抽象)

Xilinx IOB原理图


有关IOB各项功能的使用方法,可参阅相关文档,此处不赘述具体操作说明。

2.2 IOL

IOL的复杂度也比较高,但由于其主要为数字电路,因此相比IOB更容易学习和理解, 下面同样给出各厂商IOL原理示意图作为学习参考。
下图为高云FPGA的IOL输入逻辑的基本组成结构原理图(参考Gowin UG289 图4-1),该示意图直观展示了IOL的多种功能特性,包括信号延时(图中标注为IDELAY)、输入寄存器(图中标注为IREG)、串并转换(图中标注为IDES)和输入边沿监测(图中标注为IEM)等。

Gowin IOL原理图


下图为高云FPGA的IOL输出逻辑的基本组成结构原理图(参考Gowin UG289 图4-1),该示意图直观展示了IOL的多种功能特性,包括信号延时(图中标注为IODELAY)、输出寄存器(图中标注为OREG)和并串转换(图中标注为OSER)等。

Gowin IOL原理图


有关IOL各项功能的使用方法,可参阅相关文档,此处同样不赘述具体操作说明。

三、一些思考

在FPGA开发过程中,IOB主要体现在管脚约束设置, 如以下约束条件将led信号分配到L16管脚,采用LVCMOS33电平标准,配置16mA驱动电流,禁用上下拉电阻,并选择低速摆率模式。实际上管脚约束就是配置IOB电路,只是开发工具会自动根据约束完成具体的过程。

set_pin_assignment { led } { LOCATION = L16; IOSTANDARD = LVCMOS33; DRIVESTRENGTH = 16; PULLTYPE = NONE; SLEWRATE = SLOW; } 

而IOL主要体现在原语调用, 如以下原语将输入的rgmii_rxd DDR信号转化为SDR信号。当然并不是所有原语都属于IOL,IOB也有部分功能需要调用原语才能使用,如调用IBUFDS原语实现差分转单端功能。

genvar i; generate for (i = 0; i < 4; i = i + 1) begin: rxdata_bus IDDR # ( .DDR_CLK_EDGE("SAME_EDGE_PIPELINED"), .INIT_Q1(1'b0), .INIT_Q2(1'b0), .SRTYPE("SYNC") ) u_iddr_rxd ( .Q1(gmii_rxd[i]), // 1-bit output for positive edge of clock .Q2(gmii_rxd[4+i]), // 1-bit output for negative edge of clock .C(rgmii_rxc_bufio), // 1-bit clock input rgmii_rxc_bufio .CE(1'b1), // 1-bit clock enable input .D(rgmii_rxd[i]), // 1-bit DDR data input .R(1'b0), // 1-bit reset .S(1'b0) // 1-bit set ); end endgenerate 

最后回到文章开头的问题,什么是IO?IO是FPGA中一系列硬件资源的统称!基本构成?FPGA IO包括IOB和IOL两部分,其中IOB主要用于处理电气特性(如单端转差分),IOL主要用于实现特定逻辑功能(如串并转换)!

四、个人声明

本文由个人整理、创作,旨在进行个人学习、研究或记录,不用于任何商业性行为,文中部分内容参考以下资料:

Xilinx Inc. 7 Series FPGA SelectIO Resources User Guide(UG471).Pango Inc. Logos系列FPGA输入输出接口(IO)用户手册(UG020006).Anlogic Inc. SF1 FPGA IO用户指南(TN805).Anlogic Inc. DR1 FPGA IO用户指南(UG1210).Gowin Inc. 可编程通用管脚用户指南(UG289).

本文引用的任何第三方资料,其知识产权(包括但不限于著作权、商标权等)均归原作者或原始权利人所有。本文对这些内容不主张任何权利。

Read more

什么是GIM、EIM,和BIM、数字孪生有什么关系?用Revit二开还是通过游戏引擎或低代码开发?

什么是GIM、EIM,和BIM、数字孪生有什么关系?用Revit二开还是通过游戏引擎或低代码开发?

随着“碳中和”目标的全球推进,能源行业的数字化转型已成为必然趋势。 对能源、电力企业而言,利用数字化手段实现精准规划、高效建设、智慧运维与碳排放监管,迫在眉睫。 能源数字孪生大屏案例 在数字化浪潮中,BIM(建筑信息模型) 大家已不陌生。 但深入电力、能源领域,你可能还会频繁听到 GIM、EIM 这些词,它们和BIM是什么关系?最近大热的 “数字孪生” 又和它们有何关联? 一、什么是BIM、GIM、EIM、数字孪生? 简单来说,这几项技术都是为了用数字化的方式,更好地“描述”和“管理”我们现实中的物理世界(如建筑、工厂、电网),但它们的侧重点和应用领域有所不同。 1. BIM(建筑信息模型) 🔹名词解释 参考美国国家BIM标准NBIMS-US™的标准,BIM是一个数字化的过程。 它基于开放、可互操作的标准,

从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南

从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南

春晚舞台上,机器人群体的整齐划一令人惊叹——但如果想让机器人真正理解并模仿人类的复杂动作,我们需要怎样的视觉技术? 当16台机器人在春晚舞台上旋转跳跃时,它们的每一个动作都经过工程师数月精心编排。然而,真正智能的机器人不应只会重复预设动作,而应能观察人类、理解姿态、即时模仿。这正是姿态估计技术试图解决的难题——让机器人拥有"看懂"人类动作的视觉智能。 本文将带你深入探索基于YOLO26-Pose的零样本姿态估计技术,揭秘如何让机器人在无需特定场景训练数据的情况下,实时理解并复现人类动作。 一、姿态估计技术解析:从看懂到理解 姿态估计作为计算机视觉的核心技术,通过检测图像或视频中人体/物体的关键点并构建骨架模型,实现对姿态和运动的量化分析。在机器人领域,这项技术正在开启全新应用场景: * 模仿学习:机器人通过观察人类操作,学习抓取物体、使用工具 * 人机协作:实时理解工人意图,实现安全高效的人机协同作业 * 远程操控:将操作者动作精确映射到远端机器人,完成危险环境作业 * 技能传授:专家动作数字化,批量复制到多台机器人 然而,传统姿态估计方案面临一个根本性挑战:每个

【无人机动态路径规划】粒子群优化算法PSO求解复杂三维环境下多无人机动态避障路径规划问题附MATLAB代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室  👇 关注我领取海量matlab电子书和数学建模资料  🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。 🔥 内容介绍 一、背景 (一)多无人机应用场景与挑战 在当今科技发展的背景下,多无人机协同作业在众多领域展现出巨大潜力,如物流配送、环境监测、应急救援以及军事侦察等。在复杂三维环境中执行任务时,无人机面临诸多挑战。这些环境可能包含山脉、建筑物、高压电线等各种障碍物,并且环境状态可能动态变化,例如突发的自然灾害导致新的障碍物出现或原有的障碍物发生移动。多无人机之间还需避免相互碰撞,确保协同作业的安全性与高效性。因此,如何为多无人机规划出既能避开障碍物又能适应环境动态变化的路径,成为亟待解决的关键问题。 (二)传统路径规划方法的局限性 传统的路径规划算法,如 Dijkstra 算法和 A * 算法,在简单、静态的环境中能够有效地找到从起点到终点的最优路

# OpenClaw QQ 机器人接入完整指南

作者: 星期五助手 创建时间: 2026-03-05 适用版本: OpenClaw 2026.2.26+ 📖 目录 1. 项目概述 2. 环境准备 3. 安装 NapCat QQ 机器人 4. 配置 OpenClaw QQ 插件 5. 网络配置(关键) 6. 测试与验证 7. 常见问题 项目概述 本指南介绍如何将 OpenClaw 接入 QQ,实现通过 QQ 与 OpenClaw 智能助手对话。 架构说明 ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │ QQ 用户 │ ──→ │ NapCat │ ──→ │ OpenClaw │ │ (发消息) │ │ (QQ 机器人) │ │ (星期五)