0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA设计流程及原理

e9Zb_gh_8734352 来源:FPGA技术联盟 作者:FPGA技术联盟 2020-11-12 18:22 次阅读

01

FPGA的设计流程

FPGA是可编程芯片,因此FPGA的设计内容包括硬件设计和软件设计两部分。硬件包括FPGA芯片威廉希尔官方网站 、 存储器、输入输出接口威廉希尔官方网站 以及其他设备,软件即是相应的HDL程序以及最新才流行的嵌入式C程序。

FPGA的开发流程即是利用EDA开发软件以及编程工具对FPGA芯片进行开发的过程。EDA ( Electronic Design Automation,电子设计自动化)是充分发挥LSI性能的关键技术。理论上,一款FPGA所能达到的性能上限是由制程等物理因素决定的,而在实际应用中用户威廉希尔官方网站 的性能很大程度上取决于器件的架构和EDA工具。这就像汽车一样,无论引擎(制程)多么强劲,都需要配合适当的车体(架构)和驾驶技术( EDA工具)才能发挥出极限速度。尤其是与威廉希尔官方网站 实现直接相关的EDA工具,其对性能的影响不可估量。

FPGA的设计流程由HDL源代码的逻辑综合开始,经过工艺映射、逻辑打包、布局布线等过程,最终生成比特流。逻辑综合将HDL描述转换为门级网表,工艺映射将这个网表转换为查找表级别的网表。逻辑打包是将多个查我表和触发器集合到一个逻辑块的过程。布局布线工具先决定逻辑块在器件上的位置,然后通过布线结构实现逻辑块之间的连接。最终,基于这些布局布线信息可以决定FPGA中各个开关的连接关系,以此生成比特流。

器件上查找表的输入数是既定的(查找表能实现输人数不大于自己的任意逻辑),而FPGA的设计就是要从目标威廉希尔官方网站 的逻辑函数中不断分离出既定输入数之内的逻辑,并将其映射到查找表上。然后将这些查找表通过布线相连, 就可以在FPGA 上实现目标威廉希尔官方网站 。

FPGA和ASIC的区别在于,ASIC通过组合使用标准单元库中的逻辑实现威廉希尔官方网站 ,而FPGA则使用统一构造的查找表。这种区别也体现在了EDA工具上。下面我们就对这种不同于ASIC的EDA技术原理进行详细介绍,具体包括上述的工艺映射、逻辑打包、布局布线。

02

工艺映射

工艺映射是指将不依赖于任何工艺的门级网表转换为由特定FPGA逻辑单元所表示的网表的过程。这里所说的逻辑单元依赖于特定的FPGA架构,是由查找表或MUX等逻辑威廉希尔官方网站 实现的FPGA上的最小逻辑单位。工艺映射是从HDL开始的逻辑转换的最后一步,因此对最终威廉希尔官方网站 实现的质量(面积、速度、功耗等)至关重要。下面我们就通过工艺映射最具代表性的工具FlowMap,来讲解工艺映射的原理。Flow Map是由加州大学洛杉矶分校丛京生教授(Jason Cong)的研究团队开发的工艺映射算法。将目标威廉希尔官方网站 网表转换到k输入的查找表(k-LUT)的工艺映射过程由下面两个步骤组成。

(1)分解:门级网标实际上都是以布尔网络的形式来表示的。先将布尔网络的各个节点不断分解,直至输人数小于查找表的输人数k。

(2)覆盖:基于过程(1)所得到的布尔网络,使用某种基准对输入进行切分,使用k-LUT覆盖多个节点。

FlowMap第(2)步的覆盖过程,是一种可以在多项式时间内找到逻辑层数最优解的方法。

03

3、逻辑打包

目前,主流FPGA的逻辑块都具有多个查找表,因此将查找表高效地打包到逻辑块的过程是不可或缺的。逻辑打包主要有两个要点:第一,逻辑块内部布线(局部布线)和逻辑块外部布线(布线通道中的布线)的延迟相差很大;第二,如果逻辑块中有查找表空闲,资源使用率就会降低(增加逻辑块的使用量),因此要尽量在每个逻辑块内填装更多逻辑。

之前世界上出现了许多可以实现多种性能优化的打包工具,但他们的装箱算法都只能处理单一的查找表结构。近些年的逻辑块包含了自适应查找表等更为复杂的结构。自适应查找表不仅需要在工艺映射时选择最佳输入数的查找表,对装箱算法也有很大影响。比如,在打包自适应查找表的网表时为了改善布通率和延迟,不能只考虑逻辑块中查找表的数量,还要考虑主输入数量、逻辑块所允许的查找表模式组合等因素。因此要找到同时满足逻辑块数最少、延迟最小、布线数最少的解是非常困难的。

VTR(Verilog-to-Routing)中集成的AAPack(ArchitectureAware Packer)就是为了挑战这个问题而诞生的。VTR系统使用XML的形式建立器件的架构模型。其架构的定义分为单元结构( physical block,相当于逻辑块内的逻辑单元)和布线结构( interconnect,相当于physical block间的连接关系和连接方式)。单元结构的描述方式为嵌套式,可以描还含有多个逻辑单元的逻辑块。使用模式单元还可以表达具有多种模式的结构,例如将多输入查找表拆分为多个少输人的查找表(多种模式)等。

AAPack实现了对上述架构模型的支持,其装箱算法如下所示。

(1)如果有未打包的查找表,则选其作为种子并确定要插入的逻辑块。

(2)按照如下算法向当前逻辑块填装查找表。

(a)寻找可填装的候补查找表。

(b)将选择的查找表填入逻辑块。

(c)如果逻辑块还有空位,返回到步骤(2)的(a)。

(3)将装箱完毕的逻辑块输出到文件,返回到步骤(1)。

综上,AAPack可以对结构复杂的逻辑块实现查找表打包功能。

04

布局布线

布局布线是FPGA设计流程的最后一个步骤——在物理上确定逻辑块的位置和信号连接路径。一般来说首先会确定逻辑块的布局,然后再对逻辑块间的连接进行布线。

多数FPGA的逻辑块都呈二维阵列状排列,因此逻辑块布局问题可以视为标准的二次分配问题。然而,此类问题也被公认为是NP问题,通常只能使用SA ( Simulated Annealing)等算法获取近似解。

布线过程中主要使用两种布线方法:全局布线和详细布线。全局布线阶段主要决定线网的布线路径,例如通过哪些通道形成连接。详细布线则基于全局布线所得的信息,确定路径具体使用了哪些布线资源、通过了哪些开关等。

下面我们使用由多伦多大学开发、在学术界被广泛应用的布局布线工具VPR(Versatile Place and Route)进行介绍。VPR的布线过程如下。

(1)先将逻辑块、I/O块随机放置。

(2)计算当前布局的布线拥挤度。

(3)随机选择两个逻辑块并对调其位置。

(4)计算对调后的布线拥挤度。

(5)比较对调前后拥挤度的数值,决定是否接受新的布局。

目前,作为最主要的开源FPGA设计框架,VPR已经发展到了7.0的版本了,其中也加入了一些更加实用的功能和工具,例如支持进位信号等专用连接、多时钟域时序分析、功耗分析等。

责任编辑:xj

原文标题:FPGA设计原理

文章出处:【微信公众号:FPGA技术联盟】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    455

    文章

    50771

    浏览量

    423419
  • FGPA
    +关注

    关注

    1

    文章

    24

    浏览量

    16017

原文标题:FPGA设计原理

文章出处:【微信号:gh_873435264fd4,微信公众号:FPGA技术联盟】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA与ASIC的优缺点比较

    适应各种应用场景。这意味着用户可以根据需要,通过编程来更改FPGA的功能,而无需更改硬件设计。 设计周期短 :与ASIC相比,FPGA的设计、验证和生产周期更短。这主要是因为FPGA可以通过软件编程来实现功能,而无需进行复杂的硬
    的头像 发表于 10-25 09:24 429次阅读

    莱迪思Propel工具套件加速FPGA应用开发

    许多嵌入式系统的开发者都对使用基于FPGA的SoC系统感兴趣,但是基于传统HDL硬件描述语言的FPGA开发工具和复杂流程往往会令他们望而却步。为了解决这一问题,莱迪思的Propel工具套件提供了基于图形化设计方法的设计环境,用于
    的头像 发表于 08-30 17:23 1018次阅读

    FPGA实现LeNet-5卷积神经网络

    ,利用 FPGA 实现神经网络成为了一种高效、低功耗的解决方案,特别适合于边缘计算和嵌入式系统。本文将详细介绍如何使用 FPGA 实现 LeNet-5 网络,包括网络结构、FPGA 设计流程
    的头像 发表于 07-11 10:27 2201次阅读

    FPGA的学习笔记---FPGA的开发流程

    与通常的单片机应用开发不同,FPGA有自己的开发流程。但具体上怎样操作,作为初学者,没有一点经验。网站奖励的清华FPGA需要的开发软件,到目前还没有安装成功。暂且先看看相关学习,慢慢积累这方面的知识
    发表于 06-23 14:47

    AMD FPGA中MicroBlaze的固化流程详解

    AMD FPGA在配置了适当的启动模式后,上电即会按该模式去加载配置文件。以7系列FPGA为例,假设设置模式引脚M[2:0]=3’b001,上电后FPGA会以Master SPI方式尝试从FLASH加载配置文件,其与工程是否含有
    发表于 04-25 12:49 520次阅读
    AMD <b class='flag-5'>FPGA</b>中MicroBlaze的固化<b class='flag-5'>流程</b>详解

    深入探索Vivado非工程模式FPGA设计流程

    在设计过程的每个阶段,设计者均可以打开Vivado集成开发环境,对存储器中保存的当前设计进行分析和操作。
    发表于 04-03 09:36 1014次阅读
    深入探索Vivado非工程模式<b class='flag-5'>FPGA</b>设计<b class='flag-5'>流程</b>

    现场可编程门阵列设计流程

    现场可编程门阵列(FPGA)设计流程是一个综合性的过程,它涵盖了从需求分析到最终实现的各个环节。下面将详细介绍FPGA设计流程的主要步骤。
    的头像 发表于 03-16 16:38 1954次阅读

    fpga仿真器是什么?它有哪些优势?

    FPGA仿真器是一种用于模拟FPGA(现场可编程门阵列)硬件行为的软件工具。它通过模拟FPGA内部的逻辑威廉希尔官方网站 、时序和接口等,帮助工程师在FPGA设计过程中进行功能验证和性能测试。
    的头像 发表于 03-15 15:15 1751次阅读

    fpga原型验证流程

    FPGA原型验证流程是确保FPGA(现场可编程门阵列)设计正确性和功能性的关键步骤。它涵盖了从设计实现到功能验证的整个过程,是FPGA开发流程
    的头像 发表于 03-15 15:05 1582次阅读

    fpga开发一般用什么软件

    FPGA(现场可编程门阵列)开发通常使用一系列专门的软件工具,这些工具涵盖了从设计、仿真到编译和调试的整个流程
    的头像 发表于 03-15 14:43 3436次阅读

    fpga设计流程

    首先,根据功能需求选择合适的FPGA型号和开发板,并进行硬件资源评估、时序分析等,以确定芯片的工作频率和性能参数。同时,深入研究所选芯片的特点、布局、电气参数等,为后续设计做好知识储备。
    的头像 发表于 03-14 15:45 411次阅读

    FPGA的PL端固化流程

    电子发烧友网站提供《FPGA的PL端固化流程.pdf》资料免费下载
    发表于 03-07 14:48 8次下载

    FPGA系统规划的简化流程

    数据接口的同步在 FPGA/CPLD 设计中一个常见问题。很多设计工作不稳定都是源于数据接口的同步问题。
    发表于 02-21 15:14 577次阅读
    <b class='flag-5'>FPGA</b>系统规划的简化<b class='flag-5'>流程</b>

    FPGA? 开搞!

    SRC 目录中,您将找到用于演示的示例 Verilog 和 VHDL 文件以及 CCF 文件。CCF 文件是 GateMate FPGA 流程中使用的约束,提供的示例文件概述了 IO 布局和有效选项的所有
    发表于 01-11 00:52

    FPGA基本开发设计流程

    FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。FPGA的开发流程一般包括功能定义、设计输入、功能仿真、综合
    发表于 12-31 21:15