【FPGA】FPGA芯片结构

devtools/2024/11/15 4:39:42/

目录

  • 1 可编程输出/输出单元(IOB)
  • 2 可配置逻辑块(CLB)
  • 3 数字时钟管理模块(DCM)
  • 4 嵌入式块存储器(BRAM)
  • 5 布线资源
  • 6 内嵌功能模块(专用IP单元)
    • 6.1 PLL(锁相环)原理
    • 6.2 DLL(延迟锁相环)原理
    • 6.3 DLL和PLL相似点与区别
  • 7 内嵌专用硬核
  • 参考资料

目前主流的FPGA仍是基于查找表技术的。FPGA芯片主要包括7部分,分别为可编程输入/输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入式RAM、丰富的布线资源、底层内嵌功能单元和内嵌专用硬核。

1 可编程输出/输出单元(IOB)

  • 什么是可编程输入输出单元?

可编程输出/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。为了便于管理和适应多种电器标准,FPGA的IOB被划分成了若干个组(Bank),每组都能够独立的支持不同的I/O标准。通过软件的灵活配值,可适配不同的电气标准与I/O物理特性,可以调整驱动电流大小,可以改变上、下拉电阻大小。每个组的接口标准由其接口电压Vcco决定,一个组只有一种Vcco(Vcco是FPGA芯片中的一个电源引脚,它代表的是输出的高电压电源),只有相同电气标准的接口才能连接在一起,Vcco电压相同是接口标准的基本条件。

  • 输入输出IO标准有哪些?

I/O std详见链接:【FPGA】I/O接口标准

2 可配置逻辑块(CLB)

  • 什么是可配置逻辑块?

可配置逻辑块(Configurable Logic Block,CLB)是FPGA内的基本逻辑单元,每个CLB都包含一个可配置开关矩阵。在Xilinx公司的FPGA器件中,Slice是Xilinx公司定义的基本逻辑单元,CLB由多个相同的Slice和附加逻辑构成。每个CLB模块不仅用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。例如,s7系列的每个CLB包含两个Slice,每个Slice由4个(A、B、C、D)6输入LUT和8个寄存器REG组成,功能上包括查找表、寄存器、进位链和多个多数选择器。

3 数字时钟管理模块(DCM)

  • 为什么需要管理时钟?
    时钟源一般来自外部,通过专用的时钟输入引脚进入FPGA,通过FPGA内部的时钟树传递到整个器件并连接到需要的寄存器。在FPGA中,采用时钟树结构保证所有触发器收到的时钟信号尽可能相同。如果用一个长的数据路径一个接一个地驱动触发器,那么最接近时钟引脚的触发器接收的信号看上去将比位于时钟路径最末端所接收到的时钟沿早到,这种时钟沿的延迟被称为时钟抖动,可能带来很多严重问题。在FPGA中,时钟树都采用专门的走线,于通用可编程互连相分离,从而降低时钟抖动。
  • 时钟资源有哪些?
    时钟管理模块用于产生高质量的时钟,时钟资源分为全局时钟资源、区域时钟资源和I/O时钟资源。全局时钟网络是一种全局布线资源,他可以保证时钟信号到达哥跟目标逻辑的延时基本相同。区域时钟网络是一组独立于全局时钟网络的时钟网络。I/O时钟资源可用于局部I/O串行/解串器的电路设计,对于源同步接口设计尤其重要。Xilinx提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,能够降低抖动,并且能够实现过滤功能。

4 嵌入式块存储器(BRAM)

嵌入式块存储器(Block Memory,BRAM)是FPGA内部除了逻辑资源使用频率最高的功能块。大多数FPGA都具有内嵌的BRAM,可配置为单端口RAM、双端口RAM、内容地址存储器(Content Addressable Memory,CAM)以及FIFO等常用存储结构。 
可以根据需要改变其位宽和深度。单片BRAM的容量为18 Kbit,即位宽为18 bit、深度为1024 bit,,但要遵循两个原则:第一,修改后的容量不能大于18 Kbit;第二,位宽最大不能超过36位。当多片BRAM级联起来形成更大的RAM时,只受限于芯片内的BRAM数量,而不再受上面两条原则约束。

5 布线资源

布线资源联通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内由丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。

  • 全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;
  • 长线资源,用以完成芯片间的高速信号和第二全局时钟信号的布线;
  • 短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;
  • 分布式的布线资源,用于专有时钟、复位等控制信号线。
    在FPGA设计流程中,设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件,选择布线资源来连通各个模块单元。基本上,布线资源的使用结果和前端设计的架构有密切、直接的关系

6 内嵌功能模块(专用IP单元)

  • 内嵌功能模块通常有哪些?
    内嵌啊功能模块主要指延迟锁相环(Delay Locked Loop,DLL)、锁相环(Phase Locked Loop,PLL)、DSP和CPU等处理器软核,以及FPGA内部处理能力强大的硬核,整合后可以等效于ASIC电路。丰富的内嵌功能单元使得单片FPGA成为系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC平台过渡。

6.1 PLL(锁相环)原理

  • 原理
    PLL通过VCO(Voltage Controlled Oscillator)来调整输出信号相位,使其与参考信号相位保持同步。通过鉴频鉴相器将输入信号与参考信号进行比较,并产生与其相位差成正比的误差信号。误差信号随着相位的增加而增加,这回反方向驱动VCO相位,从而减少误差信号。结果,输出的相位被锁定到另一个输入相位。当PLL输出密切跟踪输入并且误差信号较小且相对稳定时,PLL被称为锁相。根据应用,系统中使用PLL系统的输出,要么时VCO的输出,要么时VCO的控制信号。
    在这里插入图片描述
图1 PLL基本结构图

相位/频率检测器 (PFD)(通常简称为相位检测器 PD):将输入信号与参考信号进行比较,并产生与其相位差成正比的误差信号(请记住,相位和频率密切相关,因为频率是相位的时间导数);相位检测器的输出通常进入电荷泵,将小电流差转换为更大的电压
低通滤波器 (LPF):它对误差信号的频谱进行整形
压控振荡器:输出相位/频率由误差信号控制
分频器:使 PLL 以参考频率的倍数 N 生成频率;N 可以是整数,许多 PLL 设计支持小数 N 非整数除法

当 PLL 输出密切跟踪输入并且误差信号较小且相对稳定时,PLL 被称为“锁相”或简称为“锁相”。根据应用,系统中使用的 PLL 系统的输出要么是 VCO 的输出,要么是 VCO 的控制信号。
PLL 可以使用模拟、数字或混合信号电路构建。早期的 PLL 是全模拟的,带有模拟鉴相器、低通滤波器、VCO 和可选的分频器;除法器很快升级为数字除法器,以允许整数和小数整数除法。数字 PLL 现在用升降计数器代替相位检测器,该计数器在数字域中执行类似功能,并且还可以使用数字滤波器,误差信号驱动直接数字合成器作为 VCO。

  • PLL设计
    与大多数电子电路一样,有一些基本参数适用于几乎所有应用,有些在特定情况下更为关键。通过调整相位检测器、低通滤波器、VCO 和分频器的一些设计细节,PLL 设计可以在这些参数之间权衡性能,以最好地满足应用优先级。顶级因素包括:

    • 工作频率:PLL 及其 VCO 的标称、自由运行频率
    • 工作范围:PLL 和 VCO 将工作的频率跨度。这包括 PLL 可以获取信号并实现锁定的拉入范围,以及一旦实现它可以保持锁定的更宽范围
    • 转换或捕获时间:PLL 捕获并锁定在操作外部限制的信号所花费的时间,这在很大程度上由低通滤波器决定;带宽较窄的滤波器具有较长的捕获时间,但会限制噪声和抖动,而带宽较宽的滤波器具有更快的响应,但允许更多噪声通过 PLL 系统
    • 噪声和抖动:由 PLL 的元件添加并因此出现在其输出端的任何噪声或抖动,即使是完美的信号也是如此。整体噪声品质因数 (FOM) 以 dBc/Hz 表示,有几种不同类型的 FOM
    • 死区当相位/频率检测器的两个输入非常接近时,检测器可能看不到这一点,因此不会产生错误输出;这有点类似于电子滞后或机械静摩擦。
  • PLL优点
    高稳定性、高精度、易于控制,适用于频率合成、频率变换、时钟恢复和同步通信等领域。

  • PL缺点
    输出的相位误差较大,且需要精确的参考时钟源。

6.2 DLL(延迟锁相环)原理

dll是延迟锁相环(Delay—locked Loop)的简称,该技术是在PLL技术上改进得到的,被广泛应用于时序领域中。它继承了PLL电路的锁相技术,但去掉了PLL电路内的振荡器部分,取而代之的是一根延迟量可控制的延迟线。

  • 原理
    相位检测器检测输入时钟信号和延时后的时钟信号之间的相位差,将其转换为数字信号,并送入环路滤波器,以控制延时线的长度,从而实现输出信号与输入信号相位同步。
    在这里插入图片描述
图2 DLL基本结构图
  • 优点
    相位误差较小、速度较快、成本较低,适用于高速通信和数字存储领域。
  • 缺点:
    DLL所实现的是延时,而不是频率合成,对频率的改变较为敏感。

6.3 DLL和PLL相似点与区别

PLL和DLL都是基于反馈控制的锁相环结构,可以有效地控制输出信号的相位,将输入信号和参考信号的相位差控制在一定范围之内,并输出一个与参考信号相位同步的输出信号。

他们的主要区别在于其反馈电路的作用方式。PLL利用压控振荡器调整频率来改变相位,DLL利用压控延迟线调整延时来改变相位。

  1. 作用方式
    PLL通过VCO(Voltage Controlled Oscillator)来调整输出信号相位,使其与参考信号相位保持同步。而DLL中,则是通过一个延时线或模拟电路来实现反馈环路来控制输出信号的相位。
  2. 应用领域
    • PLL在数字系统中应用广泛,能够实现高稳定性和高精度的信号输出。
    • DLL适用于高速通信和数字存储领域,其输出相位差小,速度相对较快。

7 内嵌专用硬核

FPGA处理能力强大的硬核,等效于ASIC电路。例如为了提高FPGA的乘法速度,主流的FPGA芯片内都集成了专用的乘法器;为了适用通信总线与接口标准,很多高端FPGA内部都集成了串并收发器(SERDES),以达到10 Gbps+的收发速度。

参考资料

《Xilinx FPGA高级设计及应用》汤琦、蒋军敏著
详解锁相环 (PLL)电路、信号、模块组成
锁相环PLL/DLL
DLL工作原理


http://www.ppmy.cn/devtools/116036.html

相关文章

【DAY20240923】大模型--人工智能驱动的内容创作革命与挑战

大模型应用 前言--名词解释一、大模型幻觉二、AI通用大模型三、工业大模型四、语义大模型五、模型对齐六、知识图谱七、多模态八、NL2SQL九、DALL-E-2十、LLM十一、GAI十二、AIGC 前言–名词解释 大模型幻觉 AI通用大模型 工业大模型 语义大模型 模型对齐 知识图谱 多模态 NL2…

希尔排序(ShellSort)详解

希尔排序的底层是插入排序, 不了解插入排序的友友可以先看我下面这篇文章: 插入排序详解-CSDN博客 思路 就整体而言,希尔排序不过是多用了几次插入排序, 预排序→插入排序, 预排序的作用是让数组元素更接近于有序…

Redis的一些通用指令

首先我们需要先连接客户端服务器,此时我们需要通过redis-cli和redis服务器进行交互,输入ping来确保通路的流畅 (一)get和set redis中最核心的两个命令就是get和set,get就是根据key来取出对应value,set就是把…

react之jsx基础(1)概念和本质

文章目录 JSX 的基本概念1. **语法**2. **表达式**3. **属性**4. **子元素** JSX 的编译过程1. **转换成 JavaScript**2. **React 元素** JSX 的实际应用1. **组件定义**2. **组件嵌套** 总结 当然,以下是对 JSX 的详细讲解,包括其基本概念、语法、编译过…

Linux操作系统面试题记录

一、进程与线程 并发和并行的区别? 并发:一个cpu处理器处理多个任务; 并行:多个cpu处理器处理多个任务; 进程和线程是什么?区别?何时用线程何时用进程? Linux中其实没有进程线程…

速盾:高防cdn防御的时候会封ip吗?

高防CDN(Content Delivery Network)是一种用于提供网站或应用程序防护和内容分发的服务。它通过将内容分发到全球多个服务器上,帮助用户提高网站的访问速度和可用性,并提供强大的防护功能,包括防DDoS攻击、Web应用程序…

Python基础学习(3)

目录 一,函数 1,函数的定义 2,函数的参数 1,默认值 2,传参 3,返回值 4,变量的作用域 5,函数的调用 二,常用数据结构 1,列表 列表的定义 列表的特性…

python爬虫:将知乎专栏文章转为pdf

欢迎关注本人的知乎主页~ 实现思路 用户输入专栏ID: 代码首先提示用户输入一个知乎专栏的ID,默认值为 c_1747690982282477569。输入的ID用于构建API请求的URL。 发送HTTP请求: 使用 requests.get() 向知乎API发送GET请求,获取指定…