版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、给 MCU 工程师详解 FPGA 硬件属性FROM 我的许多朋友都是经验丰富的嵌入式设计工程师,但他们都 是微控制器 (MCU) 背景,因此对于 FPGA 是什么以及 FPGA 能做什么只有一个模糊的概念。如果问急了,他们会说“你 可以通过配置 FPGA 让它做不同的事情”诸如此类的话,但 他们真的不是很清楚 FPGA 里面有什么,或者如何在设计中 使用 FPGA 。事实上, MCU 对有些任务来说是很适合的,但对其它 一些任务来说可能做的并不好。举例来说,当需要并行执行 大量计算任务时, FPGA 可能会让你喜出望外。在本文中我 们将讨论 FPGA 的硬件属性。简单的 FPGA 构造在集成电
2、路领域人们经常会听到构造 (fabric) 这个术语,它指的是 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 来说,编 程器件相当于通过“硬件连线”将第一组复用器的输入连接 到实现
5、目标逻辑功能所需的正确 0 或 1 值。下图中所示的值 反映的实际结果是, 我们使用这个 LUT 实现了前面那张图隐 含的公式 y=(a & b)|c 。在实际应用中,复用器可以用场 效应管的分支“树”来实现,但我们在这里真的不用担心最 底层的实现细节。图 2:输入值经“硬件连接的”反熔丝型LUT( 左 ),输入从 SRAM 单元馈入的 SRAM 型 LUT( 右 )。另外一种非常常见的 FPGA实现技术是使用SRAM配置单元。同样,我们会在以后的文章中讨论更多的细节。这里 我们所要知道的仅是当电路板第一次上电时, 基于 SRAM 的 FPGA 会加载配置信息 (我们可以把这个
6、过程想像为器件的 编程 )。作为这种配置的一部分,用作 LUT 复用器输入的 SRAM 单元会被加载进上图所示的目标0或 1值。我没有显示 0和 1被加载进 SRAM 单元的那种机制, 因 为我不想让问题变得复杂。出于这次讨论的目的,我们真的 无需担心这种“魔术”是如何发生的。我在这里唯一要提的 事(给你考虑的空间 )是使用一种被称为部分再配置的技术 FPGA 的一部分可以发起对另一部分进行再配置(当然反过来也行 )。对于具有微控制器和 /或软件背景的读者来说, 我们可以将这种技术想象为相当于自我修改代码的硬件。这 意味着这种技术是非常非常强大的,但也会带来很难隔离和 调试的问题。通用的输入和
7、输出FPGA器件还包含有通用的输入/输出(GPIO)引脚和焊 盘(图 1 中没有显示 )。通过配置单元, FPGA 器件内的互连 部分可以被编程为这样:将器件的主输入连接到一个或多个 可编程逻辑块的输入。任何逻辑块的输出也可以用来驱动任 何其它逻辑块的输入和/或FPGA器件的主输出。另外,GPIO 引脚可以被配置为支持种类广泛的 I/O 标准,包括电压、终 端阻抗、摆率等。世界上第一块 FPGA 与本文中讨论的架构非常类似。这块FPGA就是赛灵思公司在 1985年推出的XC2064(是用2um工艺节点制造的),它包含有8X 8=64的逻辑块阵列,每个逻辑块包含一个四输入 LUT 和其它一些简单
8、功能。从那以后,FPGA发展势不可挡,正像我们看到的那样 更为复杂的FPGA 架构正如我们在前面说的那样,赛灵思公司在 1985 年推出 的第一块FPGA XC2064包含8X 8=64的逻辑块阵列,每 个逻辑块包含一个四输入查找表及其它一些简单功能。由于 它们的容量非常有限,因此早期的 FPGA 只用来执行一些相对简单的任务,比如集中一些胶合逻辑,或实现基本的状态 机。然而随着时间的推移,事情开始改变随着时间的推 移和工艺节点的进步, FPGA 的容量和性能不断得到提高, 功耗却不断的下降。直到大约 2006 年以前广泛使用的一直 是四输入查找表。 事实上, 在写这篇文章之时, 较小的 FP
9、GA 系列器件仍在使用四输入的查找表,但一些高端器件可能使 用六、七或八输入的查找表。这些大家伙可能被用作一个大 的查找表,或分裂成许多更小的功能,比如两个四输入的查 找表或一个三输入一个五输入的查找表。在实际的高端器件 中,这种可编程构造可以描述相当于百万级(有时甚至千万级 )的原始逻辑门。如果某个逻辑功能 (比方说计数器 )是用 FPGA 的可编程 构造实现的,那么这个功能可以被说成“软功能” 。相比之 下,如果某个功能是直接用芯片实现的, 则被说成“硬功能” 。 (随着这些功能变得越来越大越来越复杂,我们一般称它们为内核 )。软内核的优势在于, 你可以让它们做你想让它们做的 任何事。硬内
10、核的优势是它们占用较少的硅片面积,具有较 高的性能,并且功耗较低。最优的解决方案是混合使用软内 核(用可编程构造实现 )和硬内核 (直接用硅片实现 ) 。这样, 除 了基于查找表的可编程构造外,今天的 FPGA 可以利用以下介绍的各种硬内核进行性能增强:图 3 :更复杂的 FPGA 架构。举例来说,该器件可能包含数千个加法器、乘法器和数 字信号处理 (DSP) 功能;数兆位的片上内存,大量的高速串 行互连 (SERDES) 收发器模块,以及众多的其它功能。带嵌入式处理器的 FPGA这是真正让人兴奋的事情你可以用FPGA中的普通可编程构造做的事情之一是,使用其中的一部分实现一个或 多个软处理器内
11、核。当然,你可以实现不同规模的处理器。 举例来说,你可以创建一个或多个 8 位的处理器,加上一个 或多个 16 位或 32 位的软处理器所有处理器都在同一器件如果 FPGA 供应商希望提供一个占用较少硅片面积、消 耗较低功率但性能更高的处理器,解决方案是将它实现为硬 内核。一个非常令人兴奋的开发成果是 Altera 和赛灵思等公 司最近推出的SoC FPGA。考虑下面所示这个例子:图 4:一种新的 SoC FPGA这个漂亮的小东西整合了一个完全以硬内核方式实现 的双路 ARM Cortex-A9 微控制器子系统 (运行时钟高达 1GHz,包含浮点引擎,片上缓存,计数器,定时器等 ),以 及种类
12、广泛的硬内核接口功能 (SPI,I2C,CAN 等),还有一个 硬内核的动态内存控制器,所有这些组件都利用大量传统的 可编程构造和大量的通用输入输出(GPIO)引脚进行了性能增强。(即将在16nm节点推出的一款 SoC FPGA据称包含四 内核的 64 位 ARM Cortex-A53 处理器,双内核 32 位 ARM Cortex-R5 实时处理器,以及一个 ARM Mali-400MP 图形处 理器。这些可不是你祖母时候的 FPGA 哦!)传统的嵌入式系 统架构师可能将其中一个器件放置在电路板上,并将它用作 传统的高性能双内核 ARM Cortex-A9 微控制器。 当电路板上 电时,硬微控制器内核立即启动,并在任何可编程构造完成 配置之前就可用了。这样可以节省时间和精力,并让软件开 发人员和硬件设计师同时开始开发。一种情形是软件开发人员捕获他们的代码,在 SoC FPGA 的 Cortex-A9 处理器上运行这些代码,然后通过分析 识别任何可能严重影响性能并成为瓶颈的功能。这些功能随 后可能就转交给硬件设计工程师
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年淮北市精神(心理)卫生中心和朝阳医院招聘19人考试模拟试题及答案解析
- 2026重庆武隆区法院招聘聘用制书记员1人笔试备考题库及答案解析
- 2026上海青年报社招聘4人(第一批)笔试备考题库及答案解析
- 2026湖北恩施州利川市仁才职业技能培训有限公司招聘10人考试备考题库及答案解析
- 2026贵州黔南州惠水县公益性岗位招聘8人笔试备考题库及答案解析
- 2026武警河北总队幼儿园社会招聘笔试参考题库及答案解析
- 2026江苏省药品监督管理局审评中心招聘高层次人员4人考试备考试题及答案解析
- 50米以上落地式脚手架专项施工方案
- 2026临沂沂南县教育科学研究与发展中心公开选聘部分教研员(15名)考试备考题库及答案解析
- 2026江西工业职业技术学院驾驶员岗位招聘1人考试模拟试题及答案解析
- 2025网格员招聘笔试必考题库(含答案)
- 法学网络诽谤行为的法律规制与责任认定毕业论文答辩
- 初升高语文专项知识点巩固练习题库
- DB61T 1986-2025《林木采伐技术规范》
- 汽车雨刮器检修课件
- 2025年大学《创业管理-商业计划书撰写与创业项目路演实训》考试备考试题及答案解析
- 《智慧水电厂建设技术规范》
- 弦子舞曲课件
- 婚姻登记员上岗培训课件
- 企业行政人员安全培训课件
- 项目 传统茶艺教学设计-2025-2026学年小学劳动六年级上册湘教版《劳动实践指导手册》
评论
0/150
提交评论