为什么 FPGA 的效率低于 ASIC?

news2024/12/28 18:47:38

FPGA是“可重构逻辑”器件。先制造的芯片,再次设计时“重新配置”。

ASIC 不需要“重新配置”。你先设计,把它交给代工厂,然后制造芯片。

现在让我们看看这些芯片的结构是什么样的,以及它们的不同之处。

● 逻辑单元:FPGA的基础模块

75211c28f649145e00656e671d08d223.png

这是最小的逻辑块。LUT 充当组合逻辑。在DFF的帮助下,可以形成时序逻辑。

它可以构建逻辑门、多路复用器、编码器、加法器;任何真值表都可以作为布尔表达式存储在 LUT 中。

一个 LUT 可以保存有限数量的数据。逻辑单元的 LUT 也是有限的。

具有许多项的布尔表达式需要更多的内存空间,工具在布局布线的时候会将剩余项放入另一个逻辑单元中。这就需要在两个逻辑单元之间有路由信号。

● FPGA路由信号

da7d97efea3af48fbe631b64d91a4047.png

白线是从一个逻辑单元路由到另一个逻辑单元的信号。可以想象如果实现更大逻辑时候这个导线长度会增加多大。这增加了额外的延迟,降低了时钟频率,消耗了更多的面积和功耗。

所有这一切都只是为了“重构”。

即使设计不需要其他单元或路由信号,它们仍然存在于FPGA芯片路由区域和静态功率中,从而降低了效率。

● 标准单元:ASIC的构建模块

148a25d1b000b86a8fa3130a5ff35315.png

标准单元库可以具有小至 NAND 门的组件和 IP,例如加法器、FF、BRAM、多路复用器等。

所有标准单元库都针对面积和功率进行了优化。

● ASIC布局:

2ca84af45b8161617182712f704d434e.png

单个单元彼此紧密连接,形成更大的逻辑功能。位置也针对信号传播进行了优化。与FPGA相比,ASIC没有不必要的逻辑和路由开销。这样可以节省更少的面积和功率。还可以实现更快的时钟。

以上这些ASIC会比FPGA具有更高的效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1945254.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(leetcode学习)21. 合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 [], l2 [] 输出:[]示例…

Ethernet/IP转ModbusTCP协议转化网关(经典通讯案例)

怎么样把EtherNet/IP和ModbusTCP网络通讯连接起来呢?最近有很多朋友咨询这个问题,在这里统一为大家详细说明一下。其实有一个设备可以很轻松地解决这个问题,名为YC-EIP-TCP,下面是详细信息。 一,设备主要功能 1YC-EIP-TCP工业级…

数据结构(5.3_1)——二叉树的先中后序遍历

先序遍历——根左右——前缀表达式 中序遍历——左根右——中缀表达式 后序遍历——左右根——后缀表达式 二叉树的遍历(手算) 先序遍历代码 struct ElemType {int value; }; //二叉树的结点(链式存储) typedef struct BiTNode {ElemType data;//数据域struct BiTNode *lchil…

数据采集产品 搭建智能水房实现远程控制的案例分享

一、系统简介 随着科技的逐步发达,在各个领域都迫切的希望有一种控制系统能代替传统的操作方式,智能水房控制系统则是一种符合人们要求的系统,他可代替传统的人工机械操控,真正实现控制智能化。通过水房的各种数据采集可以实现24小…

学习记录——day15 数据结构 链表

链表的引入 顺序表的优缺点 1、优点:能够直接通过下标进行定位元素,访问效率高,对元素进行查找和修改比较快 2、不足:插入和删除元素需要移动大量的元素,效率较低 3、缺点:存储数据元素有上限,当达到MAX后,就不能再…

VScode tab不能正常使用

现象不能够在文本编辑器中按下tab键,如果按下了,就焦点会跑到终端或者是其他地方,猜测是因为装了某些插件导致的。 解决方案比较简单: 删除掉其他的按键 比如这样的,保存就可以了

mysql1055报错解决方法

目录 一、mysql版本 二、 问题描述 三、解决方法 1.方法一(临时) 2.方法二(永久) 一、mysql版本 mysql版本:5.7.23 二、 问题描述 在查询时使用group by语句,出现错误代码:1055&#xf…

Facebook的创新之路:科技驱动的社交革命

Facebook自2004年创立以来,已经从一个大学校园内的社交网站发展成为全球最大的社交媒体平台。其成功的背后,不仅仅是广泛的用户基础和高效的运营模式,更在于其不断推进的技术创新。本文将探讨Facebook在技术创新方面的诸多努力,如…

MYSQL 六、mysql锁 1

一、概述 在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的 资源。为保证数据的一致性,需要对 并发操作进行控制 ,因此产生了 锁 。同时 锁机制 也为实现MySQL 的各…

GitHub Actions是什么

目录 GitHub Actions是什么 GitHub Actions的使用方法 示例 注意事项 GitHub Actions配置文件中-工作流的 :Workflow 一、自动化任务执行 二、规范团队协作 三、灵活配置和定制 四、提高开发效率 五、集成GitHub生态 六、可复用性和共享性 仓库中的“Actions”部分…

新生上大学提前去西藏旅游有什么要注意的,语言上该怎么办?

新生前往西藏旅游并提前适应大学生活是一次充满挑战与发现的旅程。在准备过程中,重要的是要对高原反应有所准备,了解其症状并采取预防措施,同时携带必要的防晒和保暖衣物以应对极端的气候条件。在交通和饮食方面,选择安全可靠的选…

奔跑利润如何释放?来看看怎么分析现货黄金的跟踪止损位

跟踪止损位是现货黄金交易和资金管理中一个重要的概念。我们做现货黄金的时候,将仓位分成两部分(或以上)。第一部分,我们在首个目标位获利离场,剩下那部分就可以让它奔跑,看看市场会不会走出大行情&#xf…

springboot系列十一:Thymeleaf

文章目录 官方文档基本介绍Thymeleaf机制说明Thymeleaf语法表达式运算符th属性迭代条件运算使用Thymeleaf th属性需要注意点 Thymeleaf综合案例需求说明思路分析代码实现 作业布置 官方文档 在线文档: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 离线…

自动导入unplugin-auto-import+unplugin-vue-components

文章介绍 接下来将会以Vite Vue3 TS的项目来举例实现 在我们进行项目开发时,无论是声明响应式数据使用的ref、reactive,或是各种生命周期,又或是computed、watch、watchEffect、provide-inject。这些都需要前置引入才能使用: …

Mem0:个性化的AI记忆层,一款开源的大语言记忆增强工具

在人工智能的浪潮中,个性化体验已成为创新的关键。而随着各种各样的模型迭代更新,如何为AI应用提供持久、智能的记忆系统逐渐成为了一个关键挑战。 最近开源的Mem0项目为我们提供了一个强大的解决方案。它为大型语言模型(LLM)提供了一个智能、自我优化的…

CTF ssrf 基础入门

0x01 引言 我发现我其实并不是很明白这个东西,有些微妙,而且记忆中也就记得Gopherus这个工具了,所以重新学习了一下,顺便记录一下吧 0x02 辨别 我们拿到一个题目,他的名字可能就是题目类型,但是也有可能…

昇思25天学习打卡营第九天|本地安装mindspore之一|Linux的系统在vmware上的安装以及mindspore的安装

课程已经学完了,打算再深入一些。初步的想法是,在本地安装,本地执行。 根据老师的指引,MindSpore官网,“https ://www.mindspore.cn/install/”,注意,因为csdn博客编辑器的原因,当我…

C#与C++交互开发系列(三):深入探讨P/Invoke基础知识

欢迎来到C#与C交互开发系列的第三篇。在这篇博客中,我们将深入探讨P/Invoke(Platform Invocation Services)的基础知识。P/Invoke是C#调用非托管代码的一种机制,能够让C#直接调用C编写的动态链接库(DLL)中的…

轻松翻译,你值得拥有的PDF翻译工具分享

大家好,作为一名初入职场的小菜鸟,我发现了一个让我头疼不已的问题——那就是PDF文件的翻译。在全球化日益加剧的今天,我们经常会遇到需要阅读或者翻译外文PDF文件的情况。但PDF文件不同于Word或Excel,它通常不易直接编辑&#xf…

C语言 | Leetcode C语言题解之第278题第一个错误的版本

题目&#xff1a; 题解&#xff1a; int firstBadVersion(int n) {int left 1, right n;while (left < right) { // 循环直至区间左右端点相同int mid left (right - left) / 2; // 防止计算时溢出if (isBadVersion(mid)) {right mid; // 答案在区间 [left, mid] 中…