资讯详情

简谈 Xilinx FPGA 原理及结构

FPGA是在PAL、PLA和CPLD一种更复杂的可编程逻辑器件,可以在可编程器件的基础上进一步发展。ASIC该领域的半定制电路不仅解决了定制电路的不足,而且克服了原可编程器件门电路有限的缺点。

由于FPGA需要反复烧写,不可能实现组合逻辑的基本结构ASIC通过固定和非门完成,只能使用易于重复配置的结构来查找表格-Look Up Table,LUT,能很好地满足这一要求。目前,主流FPGA都采用了基础SRAM搜索表结构的过程,也有一些军事和航天级别FPGA采用Flash/熔丝/反熔丝工艺搜索表结构。

查找表的结构和功能

根据布尔代数理论,n输入的逻辑运算最多产生2^n不同的组合。因此,如果将相应的结果提前保存在存储单元中,则相当于实现与非门电路的功能。

FPGA原理的本质是通过配置文件来配置搜索表,从而在相同的电路条件下实现不同的逻辑功能。

1.输入查找表结构

LUT本质是一个RAM。自FPGA自诞生以来,多使用4输入LUT,可以看作是一条包含四位地址线的地址线RAM。当设计师通过原理图或原理图或HDL描述逻辑电路后,FPGA制造商提供的集成开发工具将自动计算逻辑电路的所有可能结果,并提前写下真实值表RAM中。这样,每输入一个信号进行逻辑操作,就等于输入一个地址查表,找出地址对应的内容,然后输出内容。

以下是4输人逻辑和门电路的例子LUT实现组合逻辑的原理。LUT描述4输入逻辑与关系如表2.1所示。

表2.1 输入和门的真值表

从表2.1可以看到,LUT它具有与逻辑电路相同的功能,但是LUT执行速度更快,规模更大。与传统的简化值表结构组合逻辑方法相比,LUT主要表现为:

(1)LUT组合逻辑的功能取决于输入,而不是复杂性。

(2)LUT实现组合逻辑有固定的传输延迟。

1.输入查找表新结构

在65nm与其它电路(尤其是互连电路)相比,在工艺条件下,LUT常规结构大大缩小。具有4倍比特性的6输入LUT结构只占用CLB面积增加了15%,但平均而言,每个面积增加了15%LUT上可集成的逻辑数量增加了40%。当使用更高的逻辑密度时,通常会降低级联LUT提高关键路径延迟性能的数量。

新一代的FPGA提供真正的6输入LUT此时,它可以用作逻辑或分布式存储器,LUT64位分布式RAM(甚至双端口或四端口)或32位可编程移位寄存器。每个LUT具有两个输出,从而实现了五个变量的两个逻辑函数,存储32X2 RAM比特,或6输入16X2比特移位寄存器工作。公众号:OpenFPGA

LUT每个都有逻辑结构LUT它集成了更多的逻辑块,使用了更少的局部互连节点或更少的高电容节点(逻辑功能之间),降低了逻辑水平,从而缩短了路径延迟。这种新的对称布线也使相邻逻辑之间的连接更直接,并进一步减少了布线电容。

以下通过使用4和6输入LUT实现多路选择器(MUX)例子显示了6输入搜索表的优点。如图2.16(a)所示,在4输入LUT在结构中实现8:1MUX需要四个4输入LUT和三个MUXF模块;如图2.16(b)所示,在6输入LUT在同一架构中实现8:1MUX只需要两个LUT和一个MUX模块。因此,使用6输入LUT结构时,构造的逻辑 结构性能更高且利用率更好。

1.3可配置的逻辑块

可配置的逻辑块(Configurable Logic Block,CLB)是FPGA实现时序和组合逻辑电路的主要逻辑资源。CLB提供高性能FPGA逻辑:

  • 真正的6输人搜索表:

  • 双LUT5(5输人LUT))选项;

  • 可作为分布式存储器和移位寄存器;

  • 快速进位逻辑用于算术功能;

  • 宽多路复用器。

每个CLB如图2所示,将开关矩阵连接到访问通用布线资源.17所示。一个CLB包括两个切片(Slice)每个切片包括4个6输入搜索表、8个触发器、多路复用器和算术进位逻辑。

注:这两个切片没有直接连接,每个切片以列的形式排列在一起。

在7系列的FPGA中,约2/3Slice是SLICEL逻辑(L表示Logic),剩下的是SLICEM逻辑(M表示Memory)对于SLICEM除了实现SLICEL除了内部逻辑功能外,它还可以使用其内部LUT分布式结构的64位RAM或者32位的移位寄存器(SRL32)或者2个SRL16。

每个CLB由两个Slice构成,如图2.18.对每一个CLB来说:

(1)SLICE(0)在CLB底部和左边的一列。

(2)SLICE(1)在CLB顶部和右边的列。

注:X标记后面的数字CLB每个切片的位置,以及切片所列的位置。

(1)X编号:切片位置从底部以顺序0,1开始计算(第1列CLB),2、3(第2列CLB)等等。微信官方账号:OpenFPGA

(2)Y编号:识别切片所在行的位置。在同一个位置CLB内Y后面的值是一样的。从底部计算CLB从一行开始CLB增加到下一行CLB。

SLICEM内部结构和SLICEL如图2所示.19和图2.20所示。

1.3时钟资源

7系列的FPGA六种不同类型的时钟线,包括BUFG、BUFR、BUFIO、BUFH、BUFMR以及高性能时钟来解决不同的时钟要求,包括高风扇出口、短传输延迟和特别低抖动。组和全球时钟的描述如图2所示.21所示。

1.全局时钟

7系列FPGA它提供了32个全球时钟线,可以到达每个触发器时钟,使时钟和位置/复位。通过水平时钟缓冲区BUFH在任何时钟域驱动12个全球时钟线。每个BUFH它可以独立使用/禁止,并允许关闭一个区域的时钟,从而提供细粒度控制时钟域功耗的能力。全局时钟缓冲区还能驱动全局时钟线,实现无毛刺时钟复用和时钟使能功能。全局时钟常常由CMT基本时钟分布延迟可以完全消除驱动。

2.区域时钟

区域时钟可以驱动区域内所有时钟的目的。一个区域被定义为50个区域I/O以及 50个CLB跨越半芯片宽度的高度和区域 在域内,提供4小时跟踪。4小时使能(Clock-capable Clock,CCIO)其中一个引脚可以驱动每个区域的时钟缓冲区。在7系列FPGA有两种类型的CCIO:两个多区域(Multi-region Clock-capable,MRCC)和两个单区CCIO(Single-region Clock capable CLOCK,SRCC)。

CCIO输入为差异/单端模式,用于驱动4个I/O时钟BUFIO、4个区域时钟BUFR以及该地区的任何一个CMT。公众号:OpenFPGA

7系列FPGA多时钟区缓冲区引入BUFMR提供跨区域/组的能力。

3.I/O时钟

I/O时钟频率很高,只用于I/O逻辑与串行/解串行电路。FPGA中,提供从MMCM到I/O它为低扭曲和高性能接口提供时钟。

1.4小时管理模块

7系列FPGA每个时钟管理模块(Clock Management Tile,CMT)时钟管理器包含混合模式(Mixed-mode Clock Manager,MMCM)与相位相环(Phase Locked Loop,PLL)。PLL包含了MMCM功能部分。

7系列FPGA内CMT的结构,如图2.图中显示了各种时钟源和MMCM/PLL输人多路复用器的连接IBUFG、BUFG、BUFR、BUFH、GT或在本地互联网中,选择参考源和反馈时钟。

7系列的FPGA提供最多24个CMT。MMCM和Pll用于频率合成器频率合成器。MMCM和PLL符号描述如图2所示.23所示。

在7系列FPGA内,PLL是MMCM功能的一部分。MMCM支持的额外特征包括:

  • 使用CLKOUT[0...3]实现到BUFR或者BUFIO的直接高性能路径连接;

  • 相反的时钟输出CLKOUT[0...3];

  • CLK0UT6;

  • CLK0UT4_CASCADE;

  • 为CLKOUTO_DIVIDE_F行小数分频;

  • 为CLKFBOUT_MULT_F行小数倍频;

  • 微相位移动;

  • 动态相位移动。MMCM如图2所示.24所示。MMCM相位-频率检测器PFD比较输入时钟和反馈时钟的上升沿频率和相位。两个时钟之间,PFD与相位和频率成比例的信号驱动充电泵CP和环滤波器LF,用于压控振荡器VCO产生参考电压。

1.存储存储资源

大多数FPGA都有嵌入式块RAM,这是一个很大的扩展FPGA应用范围和灵活性。BRAM可用于高性能状态机的高效数据存储或缓冲,FIFO缓冲区,大移位寄存器,大LUT或者ROM块。RAM的结构如图2.25所示。

7系列的FPGA每个双端口提供20个块存储器和1880个块存储器BRAM的容量为36KB,在7系列FPGA内,BRAM关键特征包括:

  • 双端口存储器的数据宽度最多为72位;

  • 内建可选的纠错电路。

FPGA内的每个BRAM提供了两个可访问的端口,但是它也能配置为单端口RAM。

每个存储器的读/写访问由时钟控制。所有的输入数据、地址、时钟使能和写使能都经过寄存。输人地址总是由时钟驱动,一直保持数据,直到下一个操作。可选的输出数据流水线寄存器,允许以一个额外时钟的代价,产生更高的时钟速率。

1.BRAM的配置

每个端口可以配置成32KX1、16KX2、8KX4、4KX9、2KX18、1KX36或者512X72。

两个相邻的BRAM能级联构成一个64KX1的双端口存储器,且不需要添加任何逻辑。

注:上面的容量以比特计算。

2.检错和纠错

每个64位宽的BRAM可以产生、保存和使用8位额外的海明码。在读过程中,可以纠正单比特错误以及检测两比特错误。在读写外部64〜72位宽的存储器时,也可以使用ECC逻辑。

3.UFO控制器

7系列FPGA提供了FIFO结构,内部结构如图2.26所示。

该结构便用单时钟(同步)或双时钟(异步)操作,递增内部的地址,并且提供了4个握手信号线:full(满)、empty(空)、almostfull(几乎满)和almostempty(几乎空)。

注:1、可自由编程几乎满和几乎空标志;2、FIFO的宽度和深度也可以编程,但是读和写端口总是相同的宽度;3、图2.26中的读写指针专用于FIFO。

在首字跌落(First Word Fall-through)模式中,在第一个读操作前,第一个写人的字自动出现在数据输出端。当读取第一个字后,这个模式就和标准模式一样了。

1.6互联资源

互联是FPGA内用于在功能元件,例如IOB、CLB、DSP和BRAM的输人和输出信号提供通路的可编程网络。互联也称为布线以规则的阵列排列,被分段用于最优的连接。

在7系列FPGA中,CLB以规则的阵列排列。每个岛开关矩阵的连接用来访问通用的布线资源,如图2.27所示。

在7系列FPGA中,提供不同类型的布线,如图2.28所示。这些布线通过长度来定义。互联类型有:快速连接、单连接、双连接和四连接。

  • (1)快速连接:将模块的输出连接到自己模块的输人。

  • (2)单连接:在垂直和水平方向上,布线连接到相邻的单元。

  • (3)双连接:在所有四个方向上,水平和垂直连接到所有其他的单元和对角线相邻的单元。

  • (4)四连接:在水平和垂直方向上,每隔4个CLB连接一个单元或者以对角线方式连接到相隔两行和两列距离的单元。

1.7专用的DSP模块

在7系列的FPGA中,集成了专用的、充分定制的低功耗的XtremeDSP  DSP48E1 DSP模块,其内部结构如图29所示。其增强的特性主要表现在:

(1)25X18位的补码乘法器/累加器,高分辨率48位信号处理器,其工作频率最高可以达到638MHz;

(2)低功耗的预加法器可用于构建滤波器,它降低了所需的50% DSP Slice资源;

(3)高级的特性包括可选的流水线、可选的ALU以及用于级联的专用总线。

在数字信号处理应用中,会使用大量的二进制乘法器和累加器,因此推荐在专用的DSP Slice中实现数字信号处理算法。在DSP Slice中,设计者可以动态选择旁路掉乘法器。

此外,两个48位的数据可以输人到一个单指令多数据流SIMD算术单元(它可以实现双24位加/减/累加,或者4个12位加/减/累加)操作,或者一个逻辑单元(它可以实现10种不同的逻辑功能运算)。

在DSP Slice中还提供一个48位的模式检测器,用于收敛或者对称的四舍五人操作。当它与逻辑单元一起使用时,模式检测器也可以实现96位宽度的逻辑功能。

DSP Slice所提供的流水线以及扩展功能,显著提高了数字信号处理算法的处理速度和处理效率。

1.8 输入和输出块

7系列FPGA对输入和输出进行了优化,这样可以在物理级和逻辑级上满足不同的要求,这些要求包括高速存储器、网络、视频平板和传感器接口,高速的ADC/DAC连接,以及传统接口。7系列的FPGA使用了统一的I/O架构。公众号:OpenFPGA

物理I/O能力和结构提供了一个I/O标准范围、端接和低功耗模式。每个I/O组的I/O数量,它们相对时钟和新I/O资源放置的位置以及I/O在FPGA晶圆上的排列顺序同等重要。此外,I/O绑定逻辑功能,例如输入/输岀延迟和串行化/解串行化功能,它对于支持高带宽应用也非常关键。在I/O上所增加的新功能,如移相器、PLL和I/O FIFO完整接口特性,可用于支持最高性能的DDR3以及其他存储器接口。基本I/O结构和新I/O相关的模 块,如图2.30所示。

1.I/O物理级

在物理级上,I/O要求支持一个给定范围的驱动电压和驱动强度,以及功能接口可接受的不同I/O标准。此外,I/O也支持不同的输入/输出端接特性。在7系列的FPGA中,支持两种不同类型的I/O。

(1)高性能(High Performance,HP)I/O。在I/O组中,将它们称为HP I/O组。

(2)宽范围(High Range,HR)I/O。在I/O组中,将它们称为HR I/O组,它支持宽范围的I/O标准。

在7系列FPGA中,这两种I/O类型被分别绑定到一个包含50 I/O的整个I/O组内。

(1)在Artix-7系列的FPGA中,只有3.3V的HR I/O组。

(2)在Virtx-7和Kintex-7系列的FPGA中,既有HP I/O组,也有HR I/O组。

下面详细介绍HP I/O和HR I/O组。Kintex-7 XC7K160T的I/O组和CMT的布局结构如图2.31所示。

用于存储器接口的I/O电源主要有三个元件:

(1)DCI用于匹配PCB布线的阻抗。

(2)参考输入接收器,用于将I/O电压调整到核电压。

(3)IDELAY用于将信号同步到时钟。

2.I/O逻辑级

在7系列FPGA中,所有I/O都能被配置成组合或者寄存方式。所有的输入/输出支持双数据率(Double Data Rate, DDR),通过对IDEALY和ODELAY编程,可以对任何一个输入和某些输出进行延迟。

每个I/O块包含一个可编程的绝对延迟原语IDELAY2。IDELAY可以连接到ILOGICE2/ISERDESE2或者ILOGICE3/ISERDESE2模块。每个HP I/O组包含一个可编程绝对延迟原语称为ODELAY2。

注:

(1)原语(primitive)是指FPGA内部的基本功能模块。

(2)对于HR I/O组来说,不提供ODELAY2原语。

此外,对于很多应用而言需要.连接外部高速设备。在这些应用中,往往外部提供高速的串行比特流,然后转换成FPGA内并行低速的宽字节操作。因此,要求在I/O结构内提供一个串行化器和解串行化器。在7系列FPGA的每个I/O引脚中,提供了8位IOSERDES原语,它可以实现串行-并行或并行-串行之间的转换。

注:

7系列内用于精确实现ISERDES的原语是ISERDESE2,精确实现OSERDES的是OSERDESE2。

1.9 吉比特收发器

在7系列FPGA内,提供吉比特收发器,其重要特性包括:

(1)高性能的收发器,其速率最高可以达到6.6Gb/s(GTP)、12.5Gb/s(GTX)、13.1Gb/s(GTH)和28.05Gb/s(GTZ)。

(2)优化的低功耗模式,用于芯片到芯片的接口。

(3)高级的预发送和后加重、接收器线性CTLE以及判决反馈均衡(Decision Feedback Equalization,DFE),包括用于额外余量的自适应均衡。

目前,与光纤和PCB内IC直接、背板、长距离的超高速串行数据发送,变得日益流行,因此,要求专业的专用片上电路和差分I/O能应对这些高数据率的信号完整性问题。

注:Artix-7和Kintex-7系列内提供了0〜32个收发器电路。Virtex-7系列提供最多96个收发器。

每个串行收发器是发送器和接收器的组合。不同7系列的串行收发器使用了环形振荡器以及LC谐振的组合。每个收发器有大量用户定义的特性和参数,它们可以在配置设备的时候进行定义,某些参数和特性甚至可以在操作的时候进行修改。

发送器是一个并行-串行的转换器,转换率为16、20、32、40、64或80。此外,GTZ发送器支持最多160位的数据宽度。这些发送器的输出使用差分输岀信号驱动PC板。通过一个可选的FIFO以及额外的硬件,输人数据支持8B/10B、64B/66B和64B/67B编码策略。

接收器是一个串行-并行的转换器,它将接收到的位串行差分信号变成并行的字流,其宽度为16、20、32、40、64或80位。此外,GTZ接收器支持最多160位的数据宽度。接收器将接收的差分数据流送到FPGA内可编程的线性和判决反馈均衡器,使用参考时钟来初始化时钟识别。数据模式使用NRZ编码。

1.11 XADC模块

在“数字化革命”时代,模拟技术的需求依然强劲。严格定义来说,常用于测量真实世界信息的大多数传感器都是模拟电路。电压、电流、温度、压力、流量和重力等均属于连续的时域信号。由于数字技术具有高度的精确性和可重复性,它常用于监控和控制这些模拟信号。数据转换器(包含ADC DAC和模拟多路复用器),为数字世界和模拟世界架起了至关重要的桥梁。

随着模拟传感器市场和数字控制系统市场的不断发展,对连接模拟世界和数字世界的需求持续增长。推动模拟混合信号技术市场发展的因素包括智能电网技术、触摸屏、工业控制安全系统、高可用性系统、先进马达控制器,以及对各种设备更高安全性的需求。

2005年,随着Virtex-5系列FPGA的推出,Xilinx意识到有必要集成名字为System Monitor的子系统以支持模拟混合信号功能。通过System Monitor子系统,设计人员可实现对FPGA关键性指标和外部环境的监控。

在经历两代FPGA产品之后,Xilinx进一步强化了这方面的工作,推出了具备模拟混合信号功能的Artix-7、Kintex-7和Virtex-7 FPGA以及Zynq-7000 SoC通过在7系列FPGA内集成两个独立通用1MHz釆样率的12位分辨率ADC。显著增强了嵌入式模拟子系统的功能。该功能强大的模拟子系统与高度灵活、功能强劲的FPGA逻辑紧密结合,实现了高度可编程混合信号平台—灵活混合信号解决方案。

需要注意是,Xilinx的FPGA也在向混合信号处理方向发展。与Xilinx前几代FPGA系列产品相比,采用28nm工艺的7系列FPGA扩展了模拟子系统的功能。在7系列FPGA中,将模拟子系统命名为XADC。在XADC中,包含两路独立的12位1MHz采样率模数转换器(ADC)以及一个17通道模拟多路复用器。这种将模拟系统与可编程逻辑结合的全新技术被XIlinx称为灵活混合信号处理(AMS)技术。

7系列XADC模块的内部结构,如图2.33所示。该ADC(XADC)子系统包括:

(1)17个支持单极性和双极性模拟输入信号的差分模拟输入通道。

(2)可选择片上或者外部参考电源。

(3)提供片上电压和温度传感器。

(4)采样序列控制器。

(5)片上传感器的可配置阈值逻辑及相关告警功能。

其中,控制和状态寄存器为数字可编程逻辑提供了无缝接口。

XADC提供两种类型的接口:JTAG接口和XADC FPGA接口。

XADC的一项独特功能就是能够通过JTAG端口直接访问,因此无需占用FPGA资源源。也不必配置FPGA JTAG访问同时支持数据和控制,可以让JTAG提供另一级功能和系统健康状况监控。负责控制JTAG总线的中央处理器能够采集远程的功率、温度和其他模拟数据,然后执行系统范围内的系统监控。对高可靠性系统,灵活混合信号提供了一种监控系统、控制冗余硬件和报告需求的低成本途径。Vivado提供的分析器为访问片上传感器 的信息以及通过JTAG配置XADC.提供了便利的访问途径。

推荐阅读

【Vivado那些事】如何查找官网例程及如何使用官网例程

【Vivado使用误区与进阶】总结篇

【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键

SystemVerilog数字系统设计_夏宇闻 PDF

图书推荐|ARM Cortex-M0 全可编程SoC原理及实现

1202年了,还在使用虚拟机吗?Win10安装Ubuntu子系统及图形化界面详细教程

Github 上有哪些优秀的 VHDL/Verilog/FPGA 项目

AD936x+ZYNQ搭建OpenWIFI

无招胜有招-Vivado非工程模式下的详细设计

追寻ARM的起源-Acorn电脑简史及FPGA实现

面试中经常会遇到的FPGA基本概念,你会几个?

Xilinx FPGA MIPI 接口简单说明

介绍一些新手入门FPGA的优秀网站

Vivado ML(机器学习) 2021尝鲜

推荐一些可以获取免费的国外的原版书籍(电子版)网站

【Vivado那些事】FPGA的配置方式

FPGA 的重构

浅析FPGA局部动态可重构技术

ISP(图像信号处理)算法概述、工作原理、架构、处理流程

国产CPU概括

浅谈PCI Express体系结构(一)

浅谈PCI Express体系结构(二)

从电子游戏历史看IC发展的助推剂

80年代电子游戏及电脑游戏的发展历史

PCIe总线的基础知识

万字长文带你回顾电子游戏的七十多年历史(完整版)

FPGA中异步复位,同步释放的理解

OpenFPGA系列文章总结

用Verilog设计一个16 位 RISC 处理器

介绍一些新手入门FPGA的优秀网站(新增)如何提高FPGA的工作频率

【Verilog】深入理解阻塞和非阻塞赋值的不同

【Verilog】阻塞和非阻塞赋值引申出的原则分析

点击上方字体即可跳转阅读

标签: 切片机电容器电容屏碎后不触摸n13cp光纤传感器高速背板连接器highhr系列电容基于多模结构的光纤传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台