给MCU工程师详解FPGA硬件属性

上传人:壹****1 文档编号:422840833 上传时间:2023-05-08 格式:DOCX 页数:11 大小:13.87KB
返回 下载 相关 举报
给MCU工程师详解FPGA硬件属性_第1页
第1页 / 共11页
给MCU工程师详解FPGA硬件属性_第2页
第2页 / 共11页
给MCU工程师详解FPGA硬件属性_第3页
第3页 / 共11页
给MCU工程师详解FPGA硬件属性_第4页
第4页 / 共11页
给MCU工程师详解FPGA硬件属性_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《给MCU工程师详解FPGA硬件属性》由会员分享,可在线阅读,更多相关《给MCU工程师详解FPGA硬件属性(11页珍藏版)》请在金锄头文库上搜索。

1、给 MCU 工程师详解 FPGA 硬件属性FROM http:/ 我的许多朋友都是经验丰富的嵌入式设计工程师,但他们都 是微控制器(MCU)背景,因此对于FPGA是什么以及FPGA 能做什么只有一个模糊的概念。如果问急了,他们会说“你 可以通过配置 FPGA 让它做不同的事情”诸如此类的话,但 他们真的不是很清楚 FPGA 里面有什么,或者如何在设计中 使用 FPGA 。事实上,MCU对有些任务来说是很适合的,但对其它 一些任务来说可能做的并不好。举例来说,当需要并行执行 大量计算任务时,FPGA可能会让你喜出望外。在本文中我 们将讨论 FPGA 的硬件属性。简单的 FPGA 构造在集成电路领

2、域人们经常会听到构造(fabri这个术语, 它指的是 FPGA 器件的底层基础结构。(作为一个兴趣点,单 词“构造”来自中世纪英语fabryke意思是“建造的某些东 西”)。下面让我们从FPGA中的内核可编程构造开始吧 如果我们仔细观察 FPGA 封装的内部,我们将看到硅片(技术 术语裸片)。可编程构造表现为可编程逻辑块阵列,如下图所 示。如果我们用放大镜“放大查看”,我们可以看到这种构 造由沉浸于可编程互连“海洋”中的许多逻辑“岛”(可编程 逻辑块)组成。图 1:简单的 FPGA 构造。基本 FPGA 可编程构造的一般性表示。是啊,我确实是用自己的双手亲自创作的这幅图片,我 因此感到非常自豪

3、呢,非常感谢你加以关注。如果我们进一步放大,我们可以看到,每个可编程模块都包含有许多数字 功能。在这个例子中,我们可以见到一个三输入的查找表 (LUT)、一个复用器和一个触发器,但重要的是我们要认识 到,这些功能的数量和类型对不同系列的 FPGA 来说是会变 化的。触发器可以被配置(编程)为寄存器或锁存器;复用器可以被配置为选择一个到逻辑块的输入或LUT的输出;LUT 可以被配置为代表任何所要求的逻辑功能。更详细地了解LUT上面所示的简单例子包含一个二输入的查找表(LUT)。 在实际应用中,即使最简单的 FPGA 都会使用四输入 LUT , 而一些更大更复杂的器件甚至会宣称使用六、七或八输入的

4、 LUT ,但为了简单起见,我们还是讨论二输入版本。我们会在以后的文章中讨论各种类型的 FPGA 实现技术。现在我们只需要知道,FPGA内部的可编程单元可以用 反熔丝、闪存单元或SRAM内存单元来实现。先让我们看一 个用反熔丝技术创建的FPGA吧。这是一种一次性可编程 (OTP)技术,这意味着一旦你编程了这个FPGA,它将永远保 持这个状态而不再改变。形象化介绍这种技术的最简单方法是用下图所示级联 的2:1复用器(MUX)。对基于反熔丝技术的FPGA来说,编 程器件相当于通过“硬件连线”将第一组复用器的输入连接 到实现目标逻辑功能所需的正确0或1值。下图中所示的值 反映的实际结果是,我们使用这

5、个LUT实现了前面那张图隐 含的公式y=(a & b) |c在实际应用中,复用器可以用场 效应管的分支“树”来实现,但我们在这里真的不用担心最 底层的实现细节。图2:输入值经“硬件连接的”反熔丝型LUT(左),输入从SRAM单元馈入的SRAM型LUT(右)。另外一种非常常见的 FPGA 实现技术是使用 SRAM 配置 单元。同样,我们会在以后的文章中讨论更多的细节。这里 我们所要知道的仅是当电路板第一次上电时,基于 SRAM 的 FPGA 会加载配置信息(我们可以把这个过程想像为器件的 编程)。作为这种配置的一部分,用作 LUT 复用器输入的 SRAM 单元会被加载进上图所示的目标 0

6、 或 1 值。我没有显示 0 和 1 被加载进 SRAM 单元的那种机制,因 为我不想让问题变得复杂。出于这次讨论的目的,我们真的 无需担心这种“魔术”是如何发生的。我在这里唯一要提的 事(给你考虑的空间)是使用一种被称为部分再配置的技术 FPGA 的一部分可以发起对另一部分进行再配置(当然反 过来也行)。对于具有微控制器和/或软件背景的读者来说, 我们可以将这种技术想象为相当于自我修改代码的硬件。这 意味着这种技术是非常非常强大的,但也会带来很难隔离和 调试的问题。通用的输入和输出FPGA器件还包含有通用的输入/输出(GPIO)引脚和焊 盘图1中没有显示)。通过配置单元,FPGA器件内的互连

7、 部分可以被编程为这样:将器件的主输入连接到一个或多个 可编程逻辑块的输入。任何逻辑块的输出也可以用来驱动任 何其它逻辑块的输入和/或FPGA器件的主输出。另外,GPIO 引脚可以被配置为支持种类广泛的I/O标准,包括电压、终 端阻抗、摆率等。世界上第一块 FPGA 与本文中讨论的架构非常类似。这 块FPGA就是赛灵思公司在1985年推出的XC2064(是用2um 工艺节点制造的),它包含有8x8=64的逻辑块阵列,每个逻 辑块包含一个四输入 LUT 和其它一些简单功能。从那以后, FPGA发展势不可挡,正像我们看到的那样更为复杂的 FPGA 架构正如我们在前面说的那样,赛灵思公司在1985

8、年推出 的第一块FPGA XC2064包含8 x 8=64的逻辑块阵列,每 个逻辑块包含一个四输入查找表及其它一些简单功能。由于 它们的容量非常有限,因此早期的 FPGA 只用来执行一些相 对简单的任务,比如集中一些胶合逻辑,或实现基本的状态 机。然而随着时间的推移,事情开始改变随着时间的推 移和工艺节点的进步,FPGA的容量和性能不断得到提高, 功耗却不断的下降。直到大约 2006年以前广泛使用的一直 是四输入查找表。事实上,在写这篇文章之时,较小的 FPGA 系列器件仍在使用四输入的查找表,但一些高端器件可能使 用六、七或八输入的查找表。这些大家伙可能被用作一个大 的查找表,或分裂成许多更

9、小的功能,比如两个四输入的查 找表或一个三输入一个五输入的查找表。在实际的高端器件 中,这种可编程构造可以描述相当于百万级(有时甚至千万级) 的原始逻辑门。如果某个逻辑功能(比方说计数器)是用 FPGA 的可编程 构造实现的,那么这个功能可以被说成“软功能”。相比之 下,如果某个功能是直接用芯片实现的,则被说成“硬功能”。 (随着这些功能变得越来越大越来越复杂,我们一般称它们为 内核)。软内核的优势在于,你可以让它们做你想让它们做的 任何事。硬内核的优势是它们占用较少的硅片面积,具有较 高的性能,并且功耗较低。最优的解决方案是混合使用软内 核(用可编程构造实现)和硬内核(直接用硅片实现)。这样

10、,除 了基于查找表的可编程构造外,今天的FPGA可以利用以下介绍的各种硬内核进行性能增强:图 3:更复杂的 FPGA 架构。举例来说,该器件可能包含数千个加法器、乘法器和数 字信号处理(DSP)功能;数兆位的片上内存,大量的高速串 行互连(SERDES)收发器模块,以及众多的其它功能。带嵌入式处理器的 FPGA这是真正让人兴奋的事情你可以用 FPGA 中的普通 可编程构造做的事情之一是,使用其中的一部分实现一个或 多个软处理器内核。当然,你可以实现不同规模的处理器。 举例来说,你可以创建一个或多个 8位的处理器,加上一个 或多个16位或32 位的软处理器所有处理器都在同一器件中。如果FPGA供

11、应商希望提供一个占用较少硅片面积、消 耗较低功率但性能更高的处理器,解决方案是将它实现为硬 内核。一个非常令人兴奋的开发成果是Alt ere和赛灵思等公 司最近推出的SoC FPGA。考虑下面所示这个例子:图4:种新的SoC FPGA这个漂亮的小东西整合了一个完全以硬内核方式实现的双路ARM Cortex-A9微控制器子系统运行时钟高达 1GHz,包含浮点引擎,片上缓存,计数器,定时器等)以 及种类广泛的硬内核接功能(SPI,I2C,CAN等),还有一个 硬内核的动态内存控制器,所有这些组件都利用大量传统的 可编程构造和大量的通用输入输出(GPIO)引脚进行了性能 增强。(即将在16nm节点推

12、出的一款SoC FPGA据称包含四 内核的64位ARM Cortex-A53处理器,双内核32位ARM Cortex- R5实时处理器,以及一个ARM Mali-400MP图形处 理器。这些可不是你祖母时候的FPGA哦!)传统的嵌入式系 统架构师可能将其中一个器件放置在电路板上,并将它用作 传统的高性能双内核ARM Cortex-A9微控制器。当电路板上 电时,硬微控制器内核立即启动,并在任何可编程构造完成 配置之前就可用了。这样可以节省时间和精力,并让软件开 发人员和硬件设计师同时开始开发。种情形是软件开发人员捕获他们的代码,在SoC FPGA的Cortex-A9处理器上运行这些代码,然后通过分析 识别任何可能严重影响性能并成为瓶颈的功能。这些功能随 后可能就转交给硬件设计工程师用可编程构造来实现,它们 (这些功能,不是设计工程师)将使用较低的时钟频率提供明 显更高的性能,而且功耗更低。前面我们说过,硬内核实现的功能(图4所示的ARM Cor tex-A9就是一种硬内核)与等效的软内核相比具有更高的 性能和更低的功耗。但现在我们又说如果在硬内核处理器上 运行的软件功能是个瓶颈,我们可以用可编程构造来实现,这样它就能 耗。你理解的没错,提供更高的性能和更低的功

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号