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

本地多模型切换利器——Llama-Swap全攻略

本地多模型切换利器——Llama-Swap全攻略

运行多个大语言模型(LLM)非常有用: 无论是用于比较模型输出、设置备用方案(当一个模型失败时自动切换)、还是实现行为定制(例如一个模型专注写代码,另一个模型专注技术写作),实践中我们经常以这种方式使用 LLM。 一些应用(如 poe.com)已经提供了多模型运行的平台。但如果你希望完全在本地运行、多省 API 成本,并保证数据隐私,情况就会复杂许多。 问题在于:本地设置通常意味着要处理多个端口、运行不同进程,并且手动切换,不够理想。 这正是 Llama-Swap 要解决的痛点。它是一个超轻量的开源代理服务(仅需一个二进制文件),能够让你轻松在多个本地 LLM 之间切换。简单来说,它会在本地监听 OpenAI 风格的 API 请求,并根据请求的模型名称,自动启动或停止对应的模型服务。客户端无需感知底层切换,使用体验完全透明。 📌 Llama-Swap 工作原理 概念上,Llama-Swap 就像一个智能路由器,

内容创作新范式——从 AIGC 到智能体工作流

内容创作新范式——从 AIGC 到智能体工作流 摘要:2026 年,AI 内容创作从"生成"进化到"创作"。本文解析 AIGC 工具的演进,分享智能体工作流如何重塑内容生产,以及创作者如何拥抱这一变革。 一、AIGC 的 2026:从新鲜感到生产力 1.1 三年演进路 2023:猎奇阶段 ├── "AI 写的文章能看吗?" ├── 生成内容质量不稳定 └── 主要用于娱乐和实验 2024:探索阶段 ├── "AI 能帮我写初稿" ├── 人机协作模式出现 └── 部分场景开始实用 2025:应用阶段 ├── "这个内容是用 AI

AIGC - Raphael AI:全球首个无限制免费 AI 图片生成器

AIGC - Raphael AI:全球首个无限制免费 AI 图片生成器

文章目录 * 引言 * 一、Raphael AI 是什么? * 二、核心引擎:Flux.1-Dev 与 Flux Kontext * 1. Flux.1-Dev:极速与精细的结合 * 2. Flux Kontext:精确的语义理解 * 三、主要功能一览 * 1. 零成本创作 * 2. 多风格引擎 * 3. 高级文本理解 * 4. 极速生成 * 5. 隐私保护 * 四、实测体验与使用方式 * 五、与其他 AI 绘图平台的对比 * 六、未来发展与生态计划 * 七、总结:AI 创意的平权时代 引言 在生成式 AI 技术飞速发展的时代,图像生成的门槛正在被彻底打破。

Whisper语音识别:开启本地智能音频处理新时代

Whisper语音识别:开启本地智能音频处理新时代 【免费下载链接】whisper-base.en 项目地址: https://ai.gitcode.com/hf_mirrors/openai/whisper-base.en 在数字化浪潮席卷各行各业的今天,语音识别技术正以前所未有的速度改变着我们的工作与生活方式。作为OpenAI推出的革命性语音识别模型,Whisper凭借其卓越的本地处理能力和多语言支持,正在重新定义音频内容处理的边界。 技术演进:从云端到本地的范式转移 语音识别技术经历了从传统算法到深度学习的跨越式发展。早期的语音识别系统依赖复杂的声学模型和语言模型,处理精度有限且对计算资源要求极高。随着Transformer架构的广泛应用,语音识别进入了新的发展阶段。 行业洞察:传统云端语音识别虽然便捷,但面临着数据隐私、网络延迟和成本控制三大挑战。Whisper的本地部署方案恰好解决了这些痛点,让用户能够在完全离线的环境中享受专业级的语音转文字服务。 真实场景:语音识别如何重塑工作流程 案例一:法律行业的数字化转型 张律师是一家知名律所的合伙人,每天需要处理