FPGA开发全攻略——FPGA内部结构

原文链接:

FPGA开发全攻略连载之五:FPGA主要功能模块介绍(1)

FPGA开发全攻略连载之六:数字时钟管理模块与嵌入式块RAM

FPGA开发全攻略连载之七:底层内嵌功能单元与软核、硬核以及固核

1. 可编程输入输出单元(IOB)

可编程输入/ 输出单元简称I/O 单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/ 输出信号的驱动与匹配要求,其示意结构如图2-4 所示。FPGA 内的I/O 按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O 物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。目前,I/O 口的频率也越来越高,一些高端的FPGA 通过DDR 寄存器技术可以支持高达2Gbps 的数据速率。


图2-4 IOB内部结构
外部输入信号可以通过IOB 模块的存储单元输入到FPGA 的内部,也可以直接输入FPGA 内部。当外部输入信号经过IOB 模块的存储单元输入到FPGA 内部时,其保持时间(Hold Time) 的要求可以降低,通常默认为0。为了便于管理和适应多种电器标准,FPGA 的IOB 被划分为若干个组(bank),每个bank 的接口标准由其接口电压VCCO 决定,一个bank 只能有一种VCCO,但不同bank 的VCCO 可以不同。只有相同电气标准的端口才能连接在一起,VCCO 电压相同是接口标准的基本条件。

2.可配置逻辑块(CLB

CLB 是FPGA 内的基本逻辑单元。CLB 的实际数量和特性会依器件的不同而不同,但是每个CLB 都包含一个可配置开关矩阵,此矩阵由4 或6 个输入、一些选型电路( 多路复用器等) 和触发器组成。 开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在赛灵思公司公司的FPGA 器件中,CLB 由多个( 一般为4 个或2 个) 相同的Slice 和附加逻辑构成,如图2-5 所示。每个CLB 模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM 和分布式ROM。


图2-5 典型的CLB结构示意图
Slice 是赛灵思公司公司定义的基本逻辑单位,其内部结构如图2-6 所示,一个Slice 由两个4 输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。


图2-6 典型的4输入Slice结构示意图
算术逻辑包括一个异或门(XORG) 和一个专用与门(MULTAND),一个异或门可以使一个Slice 实现2bit 全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC) 组成,用于实现快速的算术加减法操作;4 输入函数发生器用于实现4 输入LUT、分布式RAM 或16 比特移位寄存器(Virtex-5 系列芯片的Slice 中的两个输入函数为6 输入,可以实现6 输入LUT 或64 比特移位寄存器) ;进位逻辑包括两条快速进位链,用于提高CLB 模块的处理速度。

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

业内大多数FPGA 均提供数字时钟管理( 赛灵思公司的全部FPGA 均具有这种特性)。赛灵思公司推出最先进的FPGA 提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。

4.嵌入式块RAM(BRAM)

大多数FPGA 都具有内嵌的块RAM,这大大拓展了FPGA 的应用范围和灵活性。块RAM 可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM) 以及FIFO 等常用存储结构。RAM、FIFO 是比较普及的概念,在此就不冗述。CAM 存储器在其内部的每个存储单元中都有一个比较逻辑,写入CAM 中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块RAM,还可以将FPGA 中的LUT 灵活地配置成RAM、ROM 和FIFO 等结构。在实际应用中,芯片内部块RAM 的数量也是选择芯片的一个重要因素。


图2-7 内嵌的块RAM

单片块RAM 的容量为18k 比特,即位宽为18 比特、深度为1024,可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量( 位宽 深度) 不能大于18k 比特;其次,位宽最大不能超过36 比特。当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受上面两条原则约束。

5. 丰富的布线资源

布线资源连通FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/ 置位的布线;第二类是长线资源,用以完成芯片Bank 间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。


图2-8 FPGA内部互连布线

在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。

6、底层内嵌功能单元

内嵌功能模块主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP 等软处理核(Soft Core)。现在越来越丰富的内嵌功能单元,使得单片FPGA 成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC 平台过渡。

DLL 和PLL 具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。赛灵思公司生产的芯片上集成了DCM 和DLL,Altera 公司的芯片集成了PLL,Lattice 公司的新型芯片上同时集成了PLL 和DLL。PLL 和DLL 可以通过IP 核生成的工具方便地进行管理和配置。DLL 的结构如图2-8 所示。


图2-9 典型的DLL模块示意图

7. 内嵌专用硬核

内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA 处理能力强大的硬核(Hard Core),等效于ASIC 电路。为了提高FPGA 性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA 的乘法速度,主流的FPGA 中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA 内部都集成了串并收发器(SERDES),可以达到数十Gbps 的收发速度。

赛灵思公司的高端产品不仅集成了Power PC 系列CPU,还内嵌了DSP Core 模块,其相应的系统级设计工具是EDK 和Platform Studio,并依此提出了片上系统(System on Chip) 的概念。通过PowerPC™、Miroblaze、Picoblaze 等平台,能够开发标准的DSP 处理器及其相关应用,达到SOC 的开发目的。

此外,新推出赛灵思的FPGA 系列如Virtex-5 LXT 还内建了PCI Express 和三态以太网MAC 硬核(TEMAC),与软核实现方式相比,硬核可以把功耗降低5~10 倍, 节约将近90% 的逻辑资源。

Xilinx 三态以太网MAC 核是一个可参数化的核,非常适合在网络设备中使用, 例如开关和路由器等。可定制的TEMAC 核使系统设计者能够实现宽范围的集成式以太网设计,从低成本10/100 以太网到性能更高的1GB端口。TEMAC 核设计符合 IEEE 802.3 规范的要求,并且可以在 1000Mbps、100 Mbps 和 10 Mbps 模式下运行。

另外,它还支持半双工和全双工操作。TEMAC 核通过 Xilinx CORE Generator™ 工具提供,是 Xilinx 全套以太
网解决方案的一部分。

2.1.3 软核、硬核以及固核的概念

IP(Intelligent Property) 核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。到了SOC 阶段,IP 核设计已成为ASIC 电路设计公司和FPGA 提供商的重要任务,也是其实力体现。对于FPGA 开发软件,其提供的IP 核越丰富,用户的设计就越方便,其市场占用率就越高。目前,IP 核已经变成系统设计的基本单元,并作为独立设计成果被交换、转让和销售。
从IP核的提供方式上,通常将其分为软核、固核和硬核这3类。从完成IP核所花费的成本来讲,硬核代价最大;从使用灵活性来讲,软核的可复用使用性最高。

1. 软核(Soft IP Core)

软核在EDA 设计领域指的是综合之前的寄存器传输级(RTL) 模型;具体在FPGA 设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。软核是IP 核应用最广泛的形式。

2. 固核(Firm IP Core)

固核在EDA 设计领域指的是带有平面规划信息的网表;具体在FPGA 设计中可以看做带有布局规划的软核,通常以RTL 代码和对应具体工艺网表的混合形式提供。将RTL 描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。目前,固核也是IP 核的主流形式之一。

3. 硬核 (Hard IP Core)

硬核在EDA 设计领域指经过验证的设计版图;具体在FPGA 设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个:首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图;其次是保护知识产权的要求,不允许设计人员对其有任何改动。IP 硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。

时间: 2024-10-12 10:54:03

FPGA开发全攻略——FPGA内部结构的相关文章

FPGA开发全攻略——FPGA发展以及赛灵思系列产品

原文链接: FPGA开发全攻略连载之八:从可编程器件发展看FPGA未来趋势 FPGA开发全攻略连载之九:FPGA主要供应商与产品(1) FPGA开发全攻略连载之九:FPGA主要供应商与产品(2) FPGA开发全攻略连载之九:FPGA主要供应商与产品(3) 可编程逻辑器件的发展历史可编程逻辑器件的发展可以划分为4个阶段,即从20世纪70年代初到70年代中为第1段,20世纪70年代中到80年代中为第2阶段,20世纪80年代到90年代末为第3阶段,20世纪90年代末到目前为第4阶段. 第1阶段的可编程

FPGA开发全攻略——FPGA选型

原文链接: FPGA实战开发技巧(1) 第五章.FPGA实战开发技巧 5.1 FPGA 器件选型常识 作者: 童 鹏.胡以华/中科院上海技术物理研究所 FPGA 器件的选型非常重要,不合理的选型会导致一系列的后续设计问题,有时甚至会使设计失败:合理的选型不光可以避免设计问题,而且可以提高系统的性价比,延长产品的生命周期,获得预想不到的经济效果.FPGA 器件选型有以下7 个原则:器件的供货渠道和开发工具的支持.器件的硬件资源.器件的电气接口标准.器件的速度等级.器件的温度等级.器件的封装和器件的

FPGA开发全攻略——配置电路

原文链接: FPGA开发全攻略连载之十二:FPGA实战开发技巧(9) FPGA开发全攻略连载之十二:FPGA实战开发技巧(10) FPGA开发全攻略连载之十三:FPGA实战开发技巧(11) 5.5 FPGA相关电路设计知识 FPGA的相关电路主要就是FPGA的配置电路,其余的应用电路只要将外围芯片连接到FPGA的通用I/O管脚上即可. 5.5.1 配置电路 FPGA配置方式灵活多样,根据芯片是否能够自己主动加载配置数据分为主模式.从模式以及JTAG模式.典型的主模式都是加载片外非易失( 断电不丢

FPGA开发全攻略——概念篇

原文链接: FPGA开发全攻略连载之一:FPGA为什么这么热? FPGA开发全攻略连载之二:为什么工程师要掌握FPGA开发知识? FPGA开发全攻略连载之三:FPGA基本知识与发展趋势(part1) FPGA开发全攻略连载之四:FPGA基本知识与发展趋势(part2) 写在前面 2008年,我参加了几次可编程器件供应商举办的技术研讨会,让我留下深刻印象的是参加这些研讨会的工程师人数之多,简直可以用爆满来形容,很多工程师聚精会神地全天听讲,很少出现吃完午饭就闪人的现象,而且工程师们对研讨会上展出的

FPGA开发全攻略——综合

原文链接: FPGA开发全攻略连载之十二:FPGA实战开发技巧(7) FPGA开发全攻略连载之十二:FPGA实战开发技巧(8)(原文缺失,转自:FPGA开发全攻略—工程师创新设计宝典) 5.3.4 综合高手揭秘XST的11个技巧 作者:Ricky Su(www.rickysu.com) 技巧1.XST 主要参考资料:XST User Guide (ISE 安装目录doc 中的xst.pdf)技巧2. 辅助参考资料:WP231 - HDL Coding Practices to Accelerat

FPGA开发全攻略——时序约束

原文链接: FPGA开发全攻略连载之十二:FPGA实战开发技巧(5) FPGA开发全攻略连载之十二:FPGA实战开发技巧(6)(原文缺失,转自:FPGA开发全攻略—工程师创新设计宝典) 5.3.3 和FPGA接口相关的设置以及时序分析5.3.3.1 使用约束文件添加时序约束 一般来讲,添加约束的原则为先附加全局约束,再补充局部约束,而且局部约束比较宽松.其目的是在可能的地方尽量放松约束,提高布线成功概率,减少ISE 布局布线时间.典型的全局约束包括周期约束和偏移约束.在添加全局时序约束时,需要根

FPGA开发全攻略—— 调试

原文链接: FPGA开发全攻略连载之十三:FPGA实战开发技巧(12) FPGA开发全攻略连载之十三:FPGA实战开发技巧(12) 5.6 大规模设计的调试经验 在大规模设计的调试应该按照和设计理念相反的顺序,从底层测试,主要依靠ChipScope Pro 工具.下面主要介绍ChipScope Pro.FPGA Editor 组件的使用方法. 5.6.1 ChipScope Pro组件应用实例 在赛灵思软件设计工具中,ISE 可集成赛灵思公司的所有工具和程序.ChipScope Pro 也不例外

FPGA开发全攻略——ISE基本操作

原文链接: FPGA实战开发技巧(2) FPGA开发全攻略连载之十二:FPGA实战开发技巧(3) FPGA开发全攻略连载之十二:FPGA实战开发技巧(4) 5.2 如何进行FPGA设计早期系统规划 作者:Ricky Su (www.rickysu.com) 这篇文章讲述了如何用工具提高效率的方法,适用程度因人而异. Situation: 在对FPGA 设计进行最初步的系统规划的时候,需要进行模块划分,模块接口定义等工作.通常,我们起初会在纸上进行设计,到了一定阶段的定稿可能会输入Visio 等工

FPGA开发全攻略连载之十:FPGA开发基本流程(1)

原文链接: FPGA开发全攻略连载之十:FPGA开发基本流程(1) FPGA开发基本流程(2) FPGA是可编程芯片,因此FPGA的设计方法包括硬件设计和软件设计两部分.硬件包括FPGA芯片电路. 存储器.输入输出接口电路以及其他设备,软件即是相应的HDL程序以及最新才流行的嵌入式C程序. 目前微电子技术已经发展到SOC阶段,即集成系统(Integrated System)阶段,相对于集成电路(IC)的设计思想有着革命性的变化.SOC是一个复杂的系统,它将一个完整产品的功能集成在一个芯片上,包括