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

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

3天内不再提示

FPGA设计如何最优化

FPGA快乐学习 来源:FPGA快乐学习 2023-06-25 15:46 次阅读

这是笔者去年某个时间节点的感悟,由于工作繁忙,写完后搁置一边了。而对于“设计最优化”这个议题,笔者也一直深感功力不够,不敢多做阐释。但是,不管怎样,若能每隔几年都好好做些反思回顾,让自己对“设计最优化”的认知再做一些提升,也算是给当下的自己一个“设计最优化”吧。基于此,把去年的文章略作梳理,分享给大家。

之所以想写点什么,是基于近期的一些工作触动。两年前,由于公司人力资源的需要,笔者从当时基本稳定的FPGA设计中抽出身来,大部分的精力投入到了产品算法开发中。而在那个当儿,正好做了一个算法的FPGA实现评估,整个设计,包括代码、仿真基本做完了。在当时,目标是用有限的FPGA资源实现一个复杂的图像处理算法,可以说是绞尽脑汁做了很多实际的FPGA设计优化。

时过境迁,经过两年算法的学习研究和工程实践后,基于系统最优化的一些考虑,又重新回到原点,需要再次评估和实现当年那个图像处理算法的FPGA版本。而当重新审查当年的那些设计代码时,忽然感受到当时一些设计细节做得尤为精妙,虽然大多数方法其实是一些经典的通用的优化方法——用加法和流水线设计减少乘法器数量;用移位比较以及流水线的方式定制化一个资源占用率极低的除法器;用查找表实现指数运算;甚至尝试过自己实现开根号的逻辑源码……当然,我并不是觉得这些设计已经登峰造极,做到设计最佳了。反而,让我重新思考FPGA的设计最优化问题。做算法的经历,让我感受到了CPU的强大算力;但是一些实时应用场景下,又让我感受到了CPU在面对一个复杂和大计算量的算法时的力不从心。做FPGA的经历,让我即便是在写着跑在CPU上的代码,也处心积虑的考虑速度性能问题——能用加法或移位就绝不用乘法、能用乘法就绝不用除法、能查表的就绝不直接进行指数或根号等复杂的运算……总而言之,不做一次多余的或不必要的复杂的运算。

对于FPGA的工程实现而言,设计本身并没有绝对的最优化。对于一些没有实用性要求的研究或评估,对于FPGA的器件资源、实时的速度性能或许不会太在意。但是对于必须产品化的工程实现来说,目标通常是在FPGA器件的资源有限制、吞吐量有要求的情况下完成既定功能。FPGA的资源,通常包括FPGA内部的逻辑资源、乘法器资源、片内存储器资源、布局布线资源以及其它诸如时钟、高速接口等专用资源。FPGA的数据吞吐量,通常表现为FPGA在单位时间内的平均处理能力或瞬时最大处理能力,这可能涉及FPGA片内或片外存储器的读写访问速度、满足必须的并行运算处理所需的资源可用性、达到设计目标的最低FPGA时钟频率的时序性能等。

由此看来,FPGA的设计最优化,并不意味着最高的绝对精度、最快的处理速度或最大的数据吞吐量,也不意味着最高的资源利用率或最低的实现资源……纯粹的研究或评估,或许可以只关注某一方面的最佳性能;但对于FPGA的产品实现而言,在众多的限制条件下,各方面性能达到一个动态平衡,让我们的目标FPGA器件物尽其用,或许才是我们这些务实的工程师所追求的“最优化设计”。
责任编辑:彭菁

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

    关注

    9

    文章

    428

    浏览量

    26606
  • 存储器
    +关注

    关注

    38

    文章

    7528

    浏览量

    164312
  • 图像处理
    +关注

    关注

    27

    文章

    1300

    浏览量

    56876

原文标题:设计最优化

文章出处:【微信号:FPGA快乐学习,微信公众号:FPGA快乐学习】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA与ASIC的区别 FPGA性能优化技巧

    FPGA与ASIC的区别 FPGA(现场可编程门阵列)和ASIC(专用集成电路)是两种不同的集成电路技术,它们在多个方面存在显著的区别: FPGA ASIC 基本定义 由通用的逻辑单元组成,可以通过
    的头像 发表于 12-02 09:51 343次阅读

    如何优化FPGA设计的性能

    优化FPGA(现场可编程门阵列)设计的性能是一个复杂而多维的任务,涉及多个方面和步骤。以下是一些关键的优化策略: 一、明确性能指标 确定需求 :首先,需要明确FPGA设计的性能指标,包
    的头像 发表于 10-25 09:23 462次阅读

    25G/28G重定时器与转接驱动器在常见应用中的最优化实现

    电子发烧友网站提供《25G/28G重定时器与转接驱动器在常见应用中的最优化实现.pdf》资料免费下载
    发表于 09-06 11:26 0次下载
    25G/28G重定时器与转接驱动器在常见应用中的<b class='flag-5'>最优化</b>实现

    FPGA如何消除时钟抖动

    FPGA(现场可编程门阵列)设计中,消除时钟抖动是一个关键任务,因为时钟抖动会直接影响系统的时序性能、稳定性和可靠性。以下将详细阐述FPGA中消除时钟抖动的多种方法,这些方法涵盖了从硬件设计到软件优化的各个方面。
    的头像 发表于 08-19 17:58 1618次阅读

    优化 FPGA HLS 设计

    优化 FPGA HLS 设计 用工具用 C 生成 RTL 的代码基本不可读。以下是如何在不更改任何 RTL 的情况下提高设计性能。 介绍 高级设计能够以简洁的方式捕获设计,从而
    发表于 08-16 19:56

    FPGA的PCIE接口应用需要注意哪些问题

    ,选择高性能的PCIe IP核并进行精细的设计优化是至关重要的。 软件和驱动程序 : 即便硬件设计得当,软件和驱动程序的效率也会影响到系统的最终性能。需要确保软件和驱动程序与FPGA和PCIe接口兼容
    发表于 05-27 16:17

    中高端FPGA如何选择

    这种高带宽的互联做了设计和优化,更是在FPGA上集成了NOC,跟传统FPGA中的routing有很大的区别,这也让我们在复杂设计中可以减少因为Congestion导致的各种问题,减少代码的开发和编译
    发表于 04-24 15:09

    CAM在FPGA上的最优化实现方案

    我们都知道RAM是根据地址查找对应的数据,而对于CAM,则恰好相反,是已知数据查找其对应的地址。像在网络报文处理里,根据报文的五元组的一些信息去查询其所属的规则地址,随后通过该地址去查询对应的RAM获取对应的Action信息。
    发表于 04-15 11:06 910次阅读
    CAM在<b class='flag-5'>FPGA</b>上的<b class='flag-5'>最优化</b>实现方案

    FPGA时序优化:降低MUXF映射的策略

    我们都知道,在7系列的FPGA中,每个CLB有两个Slice;而在UltraScale系列中,每个CLB中只有一个Slice,Slice又分成了两种类型SliceL(Logic)和SliceM(Memory),其中SliceM中的LUT可以当作分布式RAM来使用。
    发表于 04-01 11:41 943次阅读
    <b class='flag-5'>FPGA</b>时序<b class='flag-5'>优化</b>:降低MUXF映射的策略

    FPGA布局布线优化技术

    寄存器排序是布局工具把多位寄存器的相邻位分组放进单个逻辑元件所利用的方法。大多数基于单元的逻辑元件有不止一个触发器,因此,相邻位放置在一起,时序可以被优化
    发表于 03-29 11:30 433次阅读
    <b class='flag-5'>FPGA</b>布局布线<b class='flag-5'>优化</b>技术

    FPGA布局布线优化方案

    调整电压和温度设置不要求FPGA 实现任何改变,可以提供一个方便的手段增量地改善最坏条件的性能。
    发表于 03-26 14:32 1196次阅读
    <b class='flag-5'>FPGA</b>布局布线<b class='flag-5'>优化</b>方案

    fpga是干什么工作的

    FPGA(现场可编程门阵列)主要被用于进行逻辑设计、算法实现、功能定义以及时序优化等工作。具体来说,FPGA工程师的主要职责包括但不限于以下几个方面。
    的头像 发表于 03-14 17:09 1567次阅读

    AMD推出Spartan UltraScale+ FPGA系列产品

    AMD公司,全球知名的芯片巨头,近日宣布推出全新的AMD Spartan UltraScale+ FPGA系列产品组合。这一新系列作为AMD成本优化FPGA、自适应SoC产品家族的最新成员,特别针对成本敏感型边缘应用进行了
    的头像 发表于 03-07 10:15 766次阅读

    AMD推出全新Spartan UltraScale+ FPGA系列

    AMD日前正式推出了全新的Spartan UltraScale+ FPGA系列,该系列作为AMD广泛的成本优化FPGA和自适应SoC产品组合的最新成员,专为边缘端各种I/O密集型应用设计。
    的头像 发表于 03-06 11:09 891次阅读

    FPGA资源与AISC对应关系

    情况下,FPGA可以被用作ASIC的原型验证平台,帮助设计师验证和优化ASIC的设计。然而,由于FPGA的灵活性和可重构性,它的资源使用效率通常低于专门为特定任务优化的ASIC。
    发表于 02-22 09:52