591
首页 > 聚焦 > 列表

芯片小白零基础入门芯片设计,两周设计出CPU

时间:2024-04-13 12:31:35       来源:证券之星       阅读量:16525次      

如果您希望可以时常见面,欢迎标星收藏哦~

据Tomshardware报道,一位名为Adam Majmuda软件工程师最近在X平台上分享了他在“没有任何经验”的情况下,只用了两周内就从头开始设计 CPU 的经验。

在这段短暂的时间内,Adam声称他已经了解了芯片架构的基础知识,吸收了芯片制造的细节,并使用EDA 工具准备了他的第一个完整芯片布局。他的“speed-running the chip stack”任务清单中的下一步是从头开始设计 GPU,接下来他将把这个设计流片出来。

这位初出茅庐的芯片设计师自称是一家 web3 开发公司的创始工程师之一,概述了他迄今为止在探索中所采取的步骤。在下文中,我们列出了他迄今为止已完成的步骤:

1.

学习芯片架构的基础知识——深刻的理解是关键的基础;

2.

学习芯片制造的基础知识——材料、晶圆制备、图案化和封装;

3.

通过逐层制作 CMOS 晶体管开始电子设计自动化;

4.

用 Verilog 创建我的第一个完整电路——“我第一次使用软件对硬件进行编程的经验。”;

5.

为我的电路实施仿真和形式验证;

6.

设计我的第一个完整芯片布局 - 使用 OpenLane进行设计和优化;

正如前文所说,Majmudar 现在面临的重要一步是从头开始设计 GPU。他知道这将是一项艰巨的任务。他同时承认,经过初步调查,这比预想的要困难。这位初出茅庐的芯片设计师解释说,根本没有用于构建 GPU 的在线学习资源。“由于 GPU 公司都试图保守彼此的秘密,因此大多数 GPU 架构数据都是专有且闭源的,”该工程师发现。

尽管存在这一障碍,Majmudar 表示,大型 GPU 制造商的保密性使得该项目的这一部分对他来说更加有趣。Majmudar强调,Anthropic 的 Claude Opus AI 工具在 GPU 设计阶段非常有用。

“我一直向 Claude 提出每个单元必须如何工作的想法,然后它将以某种方式引导我找到正确的实施方法,然后我可以通过开源存储库进行确认,”该工程师解释道。然而,他观察到,“如果我公开搜索一些内容,什么也没有出现,这证明了实施细节的隐藏程度。”

仅用了两周左右的时间就完成了清单中的五分之三任务,上述有关 GPU 的担忧可能会让读者担心 Majmudar 可能遇到了障碍,甚至是难以逾越的墙。但事实似乎并非如此,因为他乐观地预测他的 GPU 设计将在“未来几天内”完成,并且会发送精简版本进行流片。

下面,我们来看一下这个0基础的人是怎么学习芯片设计的。

制定的初步计划

以下是Adam Majmuda计划如何加快芯片设计和制造的整个学习过程

1.

开始准备

  • 回顾电路物理 -

  • 回顾计算机系统 -

2.

芯片制造 - 芯片实际上是如何制造的?

  • 阅读微芯片制造

  • 测试:重新观看 szeloof 芯片制造视频,一切都应该有意义,并且应该能够解释它

  • 了解ASML机器的发展

  • 深入了解 EUV 的工作原理

3.

架构 - 当今芯片中使用的主要芯片设计是什么?

  • 了解 x86 与 ARM 与 RISC-V

  • 深入学习RISC-V

4.

电子设计自动化 -

您如何设计和验证要送去制造的自己的芯片?

  • 学习一个博主的从零开始设计芯片的课程

  • 使用 Verilog/OpenLANE/Caravel 设计和测试我自己的 RISC-V ASIC - 现在我正在考虑制作一个最小的 GPU 或转换器加速器,但对任何想法都持开放态度

  • 将芯片设计提交到TinyTapeout

5.

ASIC - 不同行业使用哪些特定应用芯片?

它们是如何工作的?

  • AI 加速器 - Untether、Tenstorrent、Etched、Groq

  • 电信 - 网络交换机、路由器、网卡等

  • 汽车 - 发动机控制单元 、高级驾驶辅助系统 (ADAS) 等

  • Finance - 用于高频交易的 FPGA

6.

技术进步 - 在过去的几十年里,

芯片行业的技术进展如何?

  • 导致摩尔定律的进步

  • NVIDIA GPU 的进步

  • 台积电制造工艺的进步进展

7.

工业与商业 -

塑造当今芯片行业的主导力量是什么?

  • 阅读芯片战争

  • 了解 CHIPS 法案和地缘政治

  • 了解芯片产业价值链各环节的业务

8.

机会 - 这个领域的重大机会是什么?

  • 大公司有哪些重大机遇?

  • 适合年轻创业者的重要机会领域有哪些?

  • 风险投资的大赌注将在哪里?

  • 哪些公司仍然是好的投资?

步骤一:学习芯片架构的基础知识

我首先学习了芯片如何从二进制到C的工作,这部分很关键。为了设计芯片,您需要对所有架构基础知识有深刻的了解,因为您需要不断处理逻辑、门、存储器等。

我查看了整个堆栈:

  • 二进制 - 使用电压对数据进行编码

  • 晶体管 - 使用半导体创建数字开关

  • CMOS - 使用晶体管构建首款节能逆变器

  • 门 - 使用晶体管计算更高级别的布尔逻辑

  • 组合逻辑 - 使用门构建布尔逻辑电路

  • 顺序逻辑 - 使用组合逻辑持久化数据

  • 内存 - 使用顺序逻辑为数据创建存储系统

  • CPU - 结合内存和组合逻辑来创建冯·诺依曼架构,这是图灵完备的第一步

  • 机器语言 - 程序存储器中的指令如何映射以控制 CPU 上的信号

  • 程序集 - 程序集如何直接映射到 CPU

  • C - C 如何编译成汇编语言,然后编译成机器语言

我有软件背景,充分了解这些层之间的联系,为我解锁了许多直觉。

步骤二:学习芯片制造的基础知识

接下来,我了解了晶体管的实际制造方式。

芯片设计工具都是围绕特定的制造工艺构建的,所以我需要了解这一点才能完全掌握芯片设计流程。

我专注于学习:

  • 材料 - 半导体制造需要大量的材料,包括半导体、蚀刻剂、溶剂等,每种材料都有特定的品质,值得使用。

  • 晶圆制备 - 制造具有多晶硅晶体的硅晶圆,并在其上“生长”二氧化硅层

  • 图案化 - 使用分层、光刻和蚀刻在芯片上创建实际晶体管图案的 10 步工艺

  • 封装 - 将芯片封装在保护盖中,以防止损坏、创建 I/O 接口、帮助散热等。

  • 污染 - 有趣的是,随着晶体管尺寸的减小,污染控制的焦点有多大/它变得多么重要

在这些主题中,有很多深度需要深入研究,制程的每个部分都有许多不同的方法,每种方法都使用不同的材料和机器。我更专注于广泛了解制程的重要部分。

这里最重要的直觉是,芯片是通过定义不同层的布局来生产的。这些层的设计是芯片设计 过程的输出。

步骤三:通过逐层制作 CMOS 晶体管

开始电子设计自动化

CMOS晶体管是使数字计算起飞的基本结构,因为它具有独特的能源效率

手动绘制CMOS的每一层,使晶体管的设计更加清晰。

在计算机体系结构中,对晶体管的常见解释实际上过于简单化,而逐层设计实际的晶体管迫使我更多地研究实际的实现细节。

查看单个nMOS晶体管的电压和电流图与等效图的比较,也使CMOS的功率效率提升更加明显。

在下图中,每种不同的颜色都指定了不同的层,每层都由不同的材料/离子/等制成,并在制造过程的不同步骤中创建 - 例如,红色多晶硅层是顶部nMOS和底部pMOS晶体管的实际GATE,浅蓝色metal 1层是输入和输出的实际连接。

步骤四:在Verilog中创建第一个完整电路

这部分对我来说是一个很酷的解锁,我第一次使用软件对硬件进行编程。我使用硬件描述语言 Verilog 制作了我的第一个电路。

我制作了一个 RGB 混频器电路,将来自 3 个旋转拨盘的信号(rotating dials )转换为 3 个 LED 的脉冲。

您可以使用HDL来指定单个门,但非常感谢大多数晶圆代工厂都提供标准单元库供客户使用。

标准单元只是常见用途的晶体管排列,它针对效率进行了大量优化,并专为特定的代工厂制造工艺而设计。

这些标准单元库几乎包含大多数设计实际需要的所有逻辑单元,因此您无需过多地关注 gate level。

我使用 Skywater 130nm 工艺节点的标准单元库创建了这个电路。

我知道代码大多是无用的,但我想把它包括给任何好奇的人。时序图显示 3 个不同的旋钮被转动,相应的 LED 被打开。

步骤5:为电路实现仿真和形式验证

由于硬件中的错误成本远远高于软件,使用广泛的测试和形式验证是设计过程的关键部分。

在整个 EDA 流程中,您可以使用:

  • 静态定时分析 - 确保没有由于信号在电路中传播而产生的时序误差;

  • 有界模型检查和 k 感应 - 确保您的设计不可能进入某些无效状态

  • 您还需要确保电路能够进入特定的有效状态

我实施了所有这些步骤,以正式验证我的RGB混频器电路和其他设计是否有效

步骤六:设计我的第一个完整芯片布局

这是迄今为止最酷的部分。我使用 OpenLane对我的设计执行整个综合、优化和布局过程,并提出了一个完整的芯片设计。

只是看到我的Verilog代码变成了实际的芯片布局,并且能够进入并玩弄所有层并点击进入每个门,这真是一个病态的解锁。

OpenLane 流程处理以下所有内容:

  • 仿真 - 运行仿真以验证您的设计是否通过了所有测试用例

  • 综合 - 将 HDL 转换为显示设计中所有栅极之间连接的网表

  • 优化 - 优化设计的面积、性能和功耗

  • 布局 - 在物理芯片上布置所有标准单元

  • 接线 - 通过正确的接线将所有组件连接在一起

  • 验证 - 对最终设计进行形式验证

  • GDS - 创建最终输出文件,称为 GDS2 文件,用于指定要发送到晶圆代工厂进行流片的确切层

在EDA工具:

  • 我可以放大并查看单个cell和晶体管

  • 我可以有选择地隐藏不同的金属层,以了解所有东西是如何连接的

  • 我可以在我的设计中查看能量密度、组件密度等

步骤七:从头开始逆向工程和设计 GPU

我的项目的最初目标是构建一个最小的 GPU。我没有意识到这将有多难。我的期望是,构建 GPU 将类似于构建 CPU,在线上有大量学习资源来弄清楚如何做到这一点。

但是我错了。

由于 GPU 公司都试图相互保密,因此大多数 GPU 架构数据都是专有和闭源的。

NVIDIA 和 AMD 发布了高级架构概述,但完全没有记录其 GPU 如何在低级别工作的所有细节。这让我的事情变得更有趣了——我基本上有一些高级架构文档+一些开源 GPU 设计的尝试,以及关于 GPU 架构的公共学习资源为零。

从这一点开始,我一直在尝试根据我所知道的 GPU 架构的工作方式 + 必须是真实的内容,对 GPU 架构如何工作的细节进行逆向工程。

Claude Opus 在这里提供了巨大的帮助——我一直在向 Claude 提出我的想法,即每个单元必须如何工作,然后以某种方式它将引导我走向正确的实现方法,然后我可以去用开源存储库确认 然而,如果我公开搜索一些东西, 没有显示任何内容,这证明了实现细节的隐藏程度。

所以知道现在,我仍在构建一个最小的 GPU 设计。我还将记录一切是如何运作的,并发布一篇关于它的帖子,以便其他任何好奇的人都能更清楚地了解它。

这将在未来几天内发货,并且可能会发送一个精简版本,以便在 Skywater 130nm 工艺节点上流片。

对这个项目感到非常兴奋!后续,我们也会关注这个最终分享。

点这里加关注,锁定更多原创内容

今天是《半导体行业观察》为您分享的第3734期内容,欢迎关注。

『半导体第一垂直媒体』

实时 专业 原创 深度

公众号ID:icbank

喜欢我们的内容就点“在看”分享给小伙伴哦

声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。

C-U501