关于芯片设计的一些基本知识

引言:之前给大家介绍了芯片的制造和封装。今天这篇,我们来看看芯片的设计。

芯片的设计理念

众所周知,芯片拥有极为复杂的结构。

英伟达的 B200 芯片为例,在巴掌大的面积上,塞入了 2080 亿个晶体管。里面的布局,堪称一个异次元空间级的迷宫。

关于芯片设计的一些基本知识

英伟达 B200 芯片

如此复杂的架构,无论是制造还是设计,都具有极大的难度。

早期集成电路刚刚诞生的时候,晶体管的数量并不多,结构也不复杂。

所以,基本上都是设计工程师直接在图纸上绘制电路的物理版图,然后把版图送到制造工厂,工厂进行生产。

关于芯片设计的一些基本知识

早期的手绘门电路图纸(来自仙童半导体)

他们手工绘制的版图是非常精细的,直接具体到了晶体管的物理层级,包括布局布线等。

关于芯片设计的一些基本知识

早期手工制作光掩模(1970 年)

随着集成电路变得越来越复杂,他们仍然采用这种方式,先画底层细节,然后进行“拼接”,最终组成一个完整的集成电路。

这种设计理念,叫做自底向上(Bottom-Up)设计。

关于芯片设计的一些基本知识

英特尔 4004 芯片的设计图(1971 年)

这里就要说明一下,一颗芯片从设计的角度来看,是分为不同层级的。

从上到下,依次是:系统层、RTL 层、门级层、晶体管层、布局布线层、掩膜层。

关于芯片设计的一些基本知识

系统层,是最高层,是站在整个宏观的角度对芯片进行整体设计。

RTL 层,是寄存器传输层(Register Transfer Level)。门级层的“门”,就是门电路。门电路是由晶体管搭建的。

掩模,在之前晶圆制造里介绍过,就是光掩模版,是芯片设计的最终产物,是最底层的、最能够从细节对芯片进行描述的东东。掩模层,是最底层。

自底向上(Bottom-Up)设计适用于早期的集成电路和 PCB 传统电路。

到了上世纪 70-80 年代,集成电路发展为大规模和超大规模集成电路,晶体管数量超过 1 万。

此时,再采用自底向上(Bottom-Up)方式就不合适了。于是,自顶向下(Top-Down)的设计理念开始崛起。

关于芯片设计的一些基本知识

简单来说,就是不再从细节开始入手,而是“先宏观,再微观”—— 先做系统级设计,然后再做 RTL 级设计(逻辑功能设计)。等上层设计完成后,再进行下层设计(门级层、晶体管层、布局布线层和掩膜层),完善每一个细节。

自顶向下(Top-Down)设计理念一直到现在都是主流。对于日益复杂的芯片架构来说,这种方式具有更高的效率、更短的设计周期,以及更低的设计成本。

逐级的设计,伴随着逐级的仿真验证,所以,这种设计方式的成功率也很高。

芯片的设计工具

工欲善其事,必先利其器。想要高效进行芯片的设计,当然不能一直依赖于手工作业。

上世纪 70 年代,随着计算机技术的不断成熟,芯片设计逐渐从手工设计走向了计算机辅助设计阶段,出现了 ICCAD(IC Computer Aided Drafting)。

关于芯片设计的一些基本知识

早期的 CAD(1967 年)

到了 80 年代,又出现了 CAE(Computer Aided Engineering,计算机辅助工程)。CAD 专注于产品设计建模与绘图,而 CAE 侧重于工程仿真与性能优化。

再后来,大名鼎鼎的 EDA(Electronic Design Automation,电子设计自动化)诞生了。

关于芯片设计的一些基本知识

EDA 技术的演进阶段

大家需要注意,EDA 并不是一个具体的软件,而是一类软件的统称。它不仅仅用于芯片的设计、验证和仿真,也用于芯片的制造流程。

换言之,EDA 贯穿于芯片的整个研发和生产周期,能够帮助工程师完成大量的细分任务,可以显著提高设计效率、精度以及成功率。

关于芯片设计的一些基本知识

关于芯片设计的一些基本知识

很多人都知道光刻机,也知道光刻机是我们被“卡脖子”的一个关键点。事实上,在 EDA 方面,我们也是被“卡脖子”的,问题同样很严重。

从全球范围内来看,处于 EDA 行业第一梯队的,就是三家公司 ——Synopsys(新思科技)、Cadence(铿腾电子)、Siemens EDA(原 Mentor)。

关于芯片设计的一些基本知识

他们都于上世纪 80 年代创立于美国,目前拥有完整的、全流程的 EDA 产品体系,市场占有率超过 70%,竞争优势非常明显。

weenCompany闻名企业网站系统5.3.0 繁体中英文 UTF8 weenCompany闻名企业网站系统5.3.0 繁体中英文 UTF8

weenCompany闻名企业网站系统(免费开源)是一个功能强大, 使用简单的中英文企业智能建站系统, 您只需要一些基本的计算机知识就可以利用此系统完成中小型企业网站的建设; 是低成本企业网站架设方案之首选CMS系统, 也适合建设个人网站。weenCompany闻名企业网站系统功能:1. 程序代码简洁严谨, 整个系统程序仅2M左右大小.2. 中英文双语版共用一套网站程序, 双语页面实现自由切换.3

weenCompany闻名企业网站系统5.3.0 繁体中英文 UTF8 0 查看详情 weenCompany闻名企业网站系统5.3.0 繁体中英文 UTF8

国内虽然也有华大九天等一些 EDA 企业,但市场份额较小,和第一梯队的差距较大。

前几天传出新闻,漂亮国那边又在 EDA 上搞事,对我们进行封禁。这也是一件麻烦事。

芯片设计的投入成本

在之前的文章中,小枣君介绍过,芯片的研发和制造有非常明确的分工。

关于芯片设计的一些基本知识

除了极少数公司(IDM,整合元件制造商)设计、制造、封测全都做之外,大部分公司都只做其中一块(Fabless、Foundry、OSAT),或者是某个更加细分的领域。

关于芯片设计的一些基本知识

国内的很多知名芯片公司,例如华为海思、中兴微电子、寒武纪等,都是 Fabless(无晶圆芯片设计企业)。

小米前两天发布了自己的手机 SoC 芯片 —— 玄戒 O1。他们也是 Fabless,只负责设计,芯片制造还是交给了台积电(3nm 工艺)。

芯片设计的难度,由芯片的种类、功能和性能所决定。

数字芯片处理数字信号,通常都可以做很大规模,尤其是现在很多 CPU、GPU、NPU 计算芯片,还有手机 SoC 芯片,结构都极为复杂,晶体管数量极多,设计难度极大,成本也极为高昂。

设计这种高端芯片,往往需要几百甚至几千人的专业技术团队,耗费一年甚至几年的时间,投入上亿甚至上百亿美元的资金。芯片工艺制程越先进,成本就越高。

关于芯片设计的一些基本知识

芯片的设计成本估算(单位:美元),仅供参考

成本中,包括了专业人才的薪资(芯片设计人才的薪资很高)、EDA 工具的授权费、IP 核(待会会提到)的采购费、设备购买费以及运营费用等。

模拟 / 射频芯片,处理模拟信号,往往是针对一些具体的功能,规模远不如刚才说的高端数字芯片。另外还有一些数模混合信号芯片,例如 ADC(模数转换)、DAC(数模转换),也是针对一些具体应用。这些芯片,大部分相对数字芯片来说简单一些。

对于较为简单的芯片,一些中小型团队,借助目前比较齐全的芯片设计软件工具平台(例如 EDA)和硬件设备,也能够进行自主设计。当然,哪怕是简单的芯片,设计周期大概是 1-1.5 年,耗费资金在百万至千万级。

特别值得一提的是,芯片设计具有极高的风险性。

如果流片(芯片设计最后要进行流片,相当于做一个测试版)失败,损失会非常大(28nm 单次流片需要 1000 万元,7nm 需要超过 1 亿美元)。

直接经济损失还只是一方面。流片失败还会拉长芯片的研发周期,导致错失市场机遇。

严重情况下,流片失败可以直接导致一家公司破产倒闭。

IP 核

芯片设计,也是有一些“捷径”的。例如采用 IP 核。

IP 核,即知识产权核,代表着一种预先定义、经过验证且可重复使用的模块化功能单元。它是构建大规模集成电路的基础元素。

简单来说,你在设计一个复杂芯片的时候,不必每个部分都从零开始,一些成熟的或通用的功能单元,你就可以直接购买 IP 核,大幅减少芯片设计的工作量。

手机 SoC 芯片的设计理念,其实就来自于 IP 核的复用。

关于芯片设计的一些基本知识

手机 SoC 芯片

根据特性,IP 核可以分为硬核、固核和软核。具体区别可以参考下面的表格:

关于芯片设计的一些基本知识

目前,芯片 IP 核的主要市场份额也被欧美企业所占据,其中 Arm、Synopsys 和 Cadence 位列市场前三。

大家发现了,Synopsys 和 Cadence 不就是刚才 EDA 三强的第一和第二吗?

没错,搭配捆绑销售,软件授权和 IP 核授权一起卖,效果更好,利润更高。

在芯片设计的产业链中,上游的 EDA 工具和 IP 核授权环节毛利率高达 90% 以上。然而,这些利润基本上都被刚才说的那几家公司所占据。

目前,EDA 工具的国产化率尚不足 5%,高端 IP 核仍严重依赖进口,形势真的是不容乐观。

根据有关机构的数据显示,2020 至 2024 年间,全球芯片设计市场的复合增长率是 9.8%,2024 年市场规模突破 4800 亿美元。中国市场的增长更为惊人,占比从 19% 迅速提升至 28%。

随着整个社会数字化转型的不断推进,还有 AI 浪潮的蓬勃发展,相信包括芯片设计在内的整个芯片产业还会继续高歌猛进。这其中,蕴藏着巨大的商业机会和挑战。

好啦,以上就是今天文章的全部内容。

这期是关于芯片设计的一些基本知识铺垫,算是一个“开胃菜”。

下一期,我们就要进入“正餐”环节,详细介绍芯片设计的完整流程步骤

敬请关注!

本文来自微信公众号:鲜枣课堂(ID:xzclasscom),作者:小枣君

以上就是关于芯片设计的一些基本知识的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/730632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月25日 11:11:26
下一篇 2025年11月25日 11:12:27

相关推荐

  • PHP 8如何防止代码注入攻击

    PHP 8 防止代码注入攻击的核心方法是:不相信用户输入,将其视为潜在的恶意输入。使用参数化查询和预编译语句,将用户输入作为数据传递,避免被解释为代码执行。进行输入验证和过滤,检查数据类型、长度和格式,确保符合预期。通过代码审查、调试和性能优化,确保代码正确性、效率和可维护性。 PHP 8 如何有效…

    2025年12月11日
    000
  • PHP 8如何安全使用第三方库

    安全使用PHP 8中的第三方库需要贯穿整个开发流程,包括:选择可靠的库源、定期更新依赖、进行代码审查、使用安全扫描工具、关注安全公告。此外,安全编码实践至关重要,如输入验证、良好错误处理和最小权限原则。通过遵循这些步骤,开发者可以确保在使用第三方库时保持代码安全。 PHP 8与第三方库的安全舞步 很…

    2025年12月11日
    000
  • PHP 8如何进行错误和异常处理

    PHP 8 引入了更强大的错误和异常处理机制,包括:增强异常处理,使用 try…catch 语句块捕获和处理异常。自定义异常类,创建更具表达力的错误处理系统。性能考量和最佳实践,在需要特殊处理的情况下使用异常,避免过度使用。 PHP 8 的优雅错误与异常处理:不止是try…catch…

    2025年12月11日
    000
  • 如何优化大型 JSON 文件以与 ChatGPT API 一起使用?

    我正在尝试使用 chatgpt 作为我的 magento 2 网站的聊天机器人,并且我想将产品数据传递给它。为此,我收集了所有产品并将它们存储在一个 json 文件中,然后读取该文件以将数据嵌入到系统角色的 systemrolecontent 中。然而,我面临的问题是 json 文件相当大。 { “…

    好文分享 2025年12月11日
    000
  • PHP7各个版本之间有什么区别

    PHP 7 各个版本差异总结:性能显著提升,得益于 Zend 引擎优化和底层改进;引入了标量类型声明、null 合并运算符等新特性,增强了代码可读性;每新版本持续优化性能和新增特性,如 PHP 7.2 支持 ::class 获取类名,PHP 7.4 引入箭头函数;选用版本应根据项目复杂度、依赖库、团…

    2025年12月11日
    000
  • PHP7都有哪些具体版本号

    PHP 7 的主要版本迭代包括 7.0 至 7.4,每个版本通过 bug 修复、安全更新和新特性不断完善语言。7.0 以性能提升为主,7.1 修复了 bug 并添加了新特性,7.2 进一步优化性能,7.3 侧重稳定性,7.4 引入新特性并改进旧特性。选择版本时,7.4 提供最高性能,7.2 或 7.…

    2025年12月11日
    000
  • PHP 8如何防止XSS攻击

    PHP 8 XSS防御要求采取多层次策略,包括:1. 输入验证(包括数据类型检查、长度限制、正则表达式过滤);2. 输出编码(根据输出上下文选择合适的函数,如 htmlspecialchars、js_encode 等);3. 安全头设置(如 CSP、X-XSS-Protection、X-Frame-…

    2025年12月11日
    000
  • 您应该在 5 年内使用的 PHP 功能

    PHP在2025年及以后仍将是Web开发的核心技术。PHP 8.x版本带来了革命性的改进,使其更强大、更高效、更易于使用。本教程将介绍PHP 8.x中一些值得关注的功能,帮助您构建可靠、面向未来的应用程序。 JIT (即时) 编译:性能飞跃 JIT编译器是PHP 8.x最显著的改进之一。它通过在运行…

    2025年12月11日
    000
  • 像对待对象一样使用变量

    本文仅代表个人观点,不构成任何建议。 Ruby和JavaScript等语言的一个吸引人的特性是其变量作为对象处理的方式。这种设计在某些情况下提升了代码可读性,但在另一些情况下则并非如此。 例如: # Ruby程序,演示length方法str = “hello, world!”puts str.len…

    2025年12月11日
    000
  • 如何在 Laravel 中为多种资源构建通用 CRUD 控制器

    Laravel 通用 CRUD 控制器:高效管理多种资源 在 Laravel 应用中,管理多个资源的 CRUD 操作可能变得复杂,尤其当模型数量不断增加时。本文将指导您构建一个通用的 CRUD 控制器,以便在一个控制器中高效处理所有现有的和未来的 CRUD 操作。 为何选择通用控制器? 通用控制器带…

    2025年12月11日
    000
  • PHP7的最新版本是什么

    PHP 7 已寿终正寝,PHP 8 及更高版本已取代其地位。PHP 7 以其大幅提升的执行速度著称,而 PHP 8 则引进了命名参数、联合类型等新语言特性,提升了代码的可读性和可维护性。开发者需要根据项目需求谨慎选择版本,并通过持续学习掌握新特性以保持竞争力。 PHP 7的暮年与PHP 8的崛起:一…

    2025年12月11日
    000
  • PHP 8如何防范SQL注入

    PHP 8 提供了多个防御 SQL 注入的方法:参数化查询、PDO 强化功能和输入验证过滤。参数化查询将 SQL 查询和数据分开处理,防止恶意代码执行。 PDO 具有数据类型检查、错误处理和跨数据库兼容性。输入验证过滤在使用参数化查询前检查用户输入,去除恶意代码。结合这几种方法,构建多层防御体系,保…

    2025年12月11日
    000
  • PHP 框架:需要避免的隐藏错误

    Symfony (本文撰写时版本为7.2) 和 Laravel 等框架高度灵活,鼓励最佳实践,但仍可能出现设计、安全或性能问题。 Symfony:避免直接调用 $container 错误示范:直接在控制器中使用 $container 获取依赖项。 class LuckyController exte…

    2025年12月11日
    000
  • 探索 Laravel 目录结构的一天

    Laravel,这个优雅的PHP框架,旨在简化现代Web应用的开发。新建Laravel项目时,自带的清晰目录结构鼓励最佳实践,并实现明确的关注点分离。让我们深入了解其主要目录及用途。 Laravel 目录结构详解 一个标准Laravel安装包含以下核心目录: 项目根目录/|– app/|– bo…

    2025年12月11日
    000
  • Lithe SwissHelper 简介:简化 PHP 开发

    Lithe SwissHelper:您的PHP开发助手 Lithe SwissHelper是一个轻量级、功能强大的PHP实用程序库,旨在简化您的日常开发工作。它提供了一套全面的工具,涵盖字符串处理、数组操作、数据验证、日期时间处理、货币格式化以及URL操作等常见任务,帮助您编写更简洁、高效和易于维护…

    2025年12月11日
    000
  • Laravel 路线替代方案

    最近关于Laravel Folio的讨论引发了我对Laravel路由设置方法的思考,总结如下: Laravel内置路由机制 Laravel默认使用路由目录下的文件定义路由。每个HTTP动词都有对应的Route类方法(GET, POST, PUT, DELETE等),也可使用Route::any()方…

    2025年12月11日
    000
  • 为什么我构建了在其他地方找不到的 Laravel 编码包

    Laravel项目中的编码难题及解决方案 在开发Laravel项目时,我遇到了一个棘手的字符串编码解码问题。Laravel内置的加密解密函数虽然可用,但生成的字符串过长,不适用于URL或共享场景。Base64编码虽然更简洁,但要使其URL安全则需要额外处理,不够便捷。 市场上也缺乏一个简单易用、可定…

    2025年12月11日
    000
  • 如何选择合适的PHP 8开发工具?

    PHP 8開發工具選擇取決於項目規模和個人偏好。主流選項包括:程式碼編輯器/IDE:VS Code:免費、輕量級、可擴展,適合各種平台。PHPStorm:強大的功能集,但收費且資源需求高。Sublime Text:輕量級、自訂性高,可用於簡單的PHP開發。除錯工具:Xdebug:配合VS Code或…

    2025年12月11日
    000
  • 如何安装Nginx服务器并配置PHP 8?

    Nginx与PHP 8集成指南安装Nginx:使用apt软件包管理器(Ubuntu示例)。安装PHP 8:使用ppa源和apt软件包管理器(Ubuntu示例)。配置Nginx:添加location块处理PHP文件(根据系统路径修改socket)。测试配置文件并重启Nginx。定位问题:检查Nginx…

    2025年12月11日
    000
  • 如何配置PHP 8的时区?

    PHP 8的时区配置主要依靠php.ini和源码。在源码中,使用date_default_timezone_set()函数设置时区,需指定准确的时区标识符。若使用DateTimeZone类,则可更精细地控制时区。常见错误包括忘记设置时区或使用错误的标识符,可通过date_default_timezo…

    2025年12月11日
    000

发表回复

登录后才能评论
关注微信