介绍在项目确立,规格和方案确定之后,这里开始说芯片设计。这个内容挺多的,可能也是大家最关心的部分。可能会分几次。在整个过程中处于这
介绍
在项目确立,规格和方案确定之后,这里开始说芯片设计。
这个内容挺多的,可能也是大家最关心的部分。可能会分几次。在整个过程中处于这个位置。
在这里,因为我对数字芯片系统还是比较了解的,所以就按照数字来说。模拟芯片的设计过程是后续的能源或请一个大老板来弥补概述。芯片的设计过程还是比较长的。让我们从鸟类地图开始。这张图很复杂。名词不懂也不要慌。我将一步一步地谈论它们。
2.算法设计
先说第一部分,其实比较简单。所以我就讲到这里,以后不单独开一章讲这个东西了。芯片最终是算法的加速。如果用C什么都实现不了,芯片怎么实现?第一步是算法。
实现算法其实有两步。为什么有两个步骤?这就涉及到浮点和定点的区别了。浮点精读高,但硬件实现成本高,定点成本低,硬件实现成本小。一般先设计浮点算法,然后牺牲一点精度做一个定点算法。
浮点算法设计浮点算法重在函数。由于浮点的高精度,最原始的功能通常都是用浮点来实现的。比如你想要一个完整的AI芯片,你必须先用pytorch或者tensorflow训练一个浮点网络,看看效果是否可以,网络能否正常工作。算法链接在可以用芯片加速之前要经过测试。浮点算法一般由纯软件工程师设计。他们不需要知道硬件实现,只需要对功能的正确性负责。
定点算法设计定点算法就是找一个位置,把浮点中的指数给一。精度肯定会损失,但是硬件设计简单。这也很好理解。用芯片算一个3.5 0.025和用芯片算一个3500 25完全不一样。为了平衡精度和定点位宽,这里的定点有各种门道,比如批量定点,有些数据一个定点位,有些数据另一个定点位。总之,这一步实现的是如何实现定点位宽最小、精度可接受的浮点算法。
3.前端设计
类似于其他复杂的东西,比如编译器,网站等等,芯片设计也有前端和后端之分,前端到网表,后端到版图。
前端主要包括文档设计、编码、验证、前端实现四个步骤。主要是一个从设计需求到网表的过程。
4.后端设计
这一步主要是使网表成为我们的最终布局。可以直接扔给代工厂生产。
有七个步骤。这里做个概述,然后写篇文章介绍一下。
准备:这一步准备主要是准备一些库文件,前端准备的网表,分harden,然后线程。
设计规划:设计规划主要是放置一些大件,比如内存硬核、IO PAD、电源网络等。以便于下一步放置小户型。
布局:这一步在布局上放置特定的单元。
综合时钟:把时钟网络放好,保证到每个地方的长度都差不多。
布线:真正连接电线。在这里,布局和布线会通过STA不断调整。
ECO:布局完成后,工程师需要手动修复一些东西。
芯片结尾:虚拟、填充单元等。以使密度满足光刻的要求。
最终验证:在移交芯片之前,最后一次验证。主要包括后模仿、形式验证和物理验证。
这七个步骤完成后,你就可以把版图交给代工厂,然后等待芯片回归。
最终的输出看起来像这样。
总结
这篇文章是芯片设计的概要。这个阶段的输入是设计要求,输出是芯片布局。设计主要涉及算法设计、芯片前端设计和芯片后端设计三个方面。整个过程很长,所以芯片的设计过程结束了,接下来就是制造了!
审核编辑:李倩
声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们