粉丝618获赞1758

一个芯片是怎么设计出来的呢? 六十年前,一家名叫仙童的公司造出了一个包含四个晶体管的新产品,而六十年后,这个名叫芯片的东西已经彻底的改变了世界,而他其中包含的晶体管的数量已经超过了一千亿。 芯片战争这本书里说到啊,二零二一年,芯片行业生产的晶体管的数量已经超过了人类历史上所有其他行业的公司生产的所有产品的总和。为了支持如此大的规模,芯片设计的方法也经历了很多阶段的变化。 早年间,芯片里所有的电路和晶体管啊,都是用手画出来的,但是呢,随着芯片的规模和复杂度称指数级的增长,芯片工程师们开始使用计算机和 eda 软件来辅助进行芯片设, 那么 eda 这种工业软件啊,也成为了芯片产业至关重要的核心环节。现在啊,人工智能大爆发,那我是不是可以用 ai 来帮我设计芯片呢?如果可以的话啊, ai 能用在哪些芯片的设计环节? 每次产业发生变革,都将带来洗牌的机会。事实上啊,全球最大的一碟公司 clubs 早在二零二零年就推出了业界首个 ai 加一碟的芯片设计方案。那么对于普通人来说, ai 和一碟的结合又带来了哪些我们能够抓住的新机遇?这期视频就带大家一起来看看这几个问题。 时间线呢,在下面大家可以按需服用,全部都是硬核干货啊,记得点赞收藏保存起来慢慢看! 为了说清楚 ai 如何帮助芯片的设计啊,我们就得先说清楚芯片设计的流程和步骤, 虽然芯片的功能五花八门,但是呢,设计一颗芯片通常遵循着非常类似的流程和步骤,那么就像苹果啊,高通,英伟达这些公司啊,基本也都是按照接下来我要介绍的这些步骤啊,来设计一颗芯片。 总体来看呢,芯片可以分成前端设计和后端设计啊两个部分,前端的呢,是说这个芯片是什么,它有哪些部分啊?后端呢,就是说这个芯片的各个部分长什么样子。 那么具体来说啊,前端负责芯片的逻辑电路设计,包括系统的架构的定义,二条的编码,逻辑综合,那么在这个过程中啊,会进行多次的仿真和验证,最后呢得到门级的网表。 而后端呢,主要负责芯片的物理设计,包括布局布线啊,性能优化啊,功能测试啊等等很多的步骤。那么最终呢,会得到一个芯片电路的物理版图,提供给经验厂去制造。其实呢,设计芯片和盖房子很像啊, 端设计呢,就好比做出房子的这个设计图,比如包含哪几个房间,每个房间的功能是什么?是餐厅啊还是卧室?那么而后端设计呢,就是按照设计图纸啊,去画出这个房子的施工图, 包括建筑施工的步骤,是用钢结构还是砖混,怎么去拉网线或者水电等等。这样呢,建筑队啊,也就是经源代工厂,就可以拿施工图纸去把芯片造出来。那在前面说的这几个步骤里啊, ai 已经无处不在了,我们一个一个来看。 首先呢是边写二条边码啊,这个是万里长征的第一步啊,主要的目的呢是定义芯片的功能和结构。二条呢,是一种硬件描述语言,他能够精确的描述组成电路的各种信号啊,逻辑操作啊,数据传输啊,还有电路结构。 就像我们写软件的时候啊,有编程语言,比如像这个 c 啊, c 加加, python 一样常见的 r t l 语言也有很多,比如说像 very log, which deal system, very log, 还有最近几年比较流行的 tiso 啊等等。通常呢,西面工程师啊,都是人肉来写阿条,非常的痛苦。但是呢,大语言模型出来之后啊,人们开始去探索使用 check gpt 啊这样的大模型来直接生成阿条代码, 我的科技组啊,也做过一些这样的尝试,我们目前的结论是啊,大模型肯定能够帮助提升写阿条代码的效率,用它来写一些比较常见的啊,或者是规模比较小的电路模块是没问题的, 但是呢,当前的效率提升啊还比较的有限。为什么这么说呢啊,我们都知道啊,大模型的表现非常依赖于训练语料的数量和质量,那么对于软件来说,他有很多非常高质量的 开源的代码,所以就出现了像 copilate 啊这样的杀手级的应用,极大的提升了软件工程师的开发效率。但是呢,芯片的硬件的二条代码啊,是各家芯片 公司最核心的技术机密,我们也从来没有看到啊,像英伟达呀,苹果啊,就开源他们的芯片设计对吧,所以呢,缺少高质量的硬件代码做训练数据,那么大模型呢的能力啊,自然就会比较弱了, 是使用 ai 来辅助芯面设计的一个比较大的问题。其实啊,我们组做过一个定量的评测,来看大模型生成的芯面电路到底有多能打啊。回头我们单独做一期视频,慢慢的聊,感兴趣的朋友呢,别忘了给我点一个免费的赞,点赞越多啊,更新的越快。 接下来我们再说说功能验证,这个其实是整个芯片设计环节中最重要,但也是最容易被初学者忽视的环节。 验证呢,顾名思义啊,就是要确保芯片的功能是正确的,比如说你做一个加法电路啊, a 加 b 等于 c, 那就要验证,当 a 等于 e, b 等于一的时候呢, c 等于二。验证之所以非常重要啊,是因为他已经成为了整个芯片开发周期中最耗时最消耗算力啊的这么一个环节。那么说个数据啊,大家就知道了,全球最大的一碟公司啊, snopsis 新思科技呢,就发过一个技术报告,里面说啊,验证已经占据了整个芯片开发周期高达百分之七十的时间, 做一次芯片的流片,也就是去制造一次,它的成本要上亿美元,那么如果因为一个 bug 导致整个芯片报废,那损失就太大了。 你还别说啊,这件事情不是没发生过,一九九四年的美国林七宝学院的一位数学系教授 thomas nicely 啊,发现使用奔腾处理器做特定的浮点数除法的时候,总会出现错误的答案, 比如说他用一个数字啊,去除以八二四六三三七零二四四一的时候啊,答案就一直是错误的。后来呢,来 蓝场正式啊,是因为奔腾处理器的一个用于浮点预算的预编程算法,存在一个小八,平均每做九十亿次常除法啊,就会出现一次错误的结果,那么这相当于七百年一遇。后来呢,蓝场就召回了所有受到影响的奔腾处理器,并且损失了五亿美元啊, 在当时的五亿美元其实已经是很大的数目了,那么三十年过去了,现在的芯片变得越来越复杂,那要在新验证上花的利器就更多了,比如说验证一个 arm 的处理器盒,就需要十的十五次方个验证周期 是什么概念呢?如果用软件仿真的方法去做的话啊,需要一万五千年才能完全跑完,做到完全的验证,这显然是不现实的。通常来说呢,芯片验证并不是要穷举啊所有的这种功能,而是要定义最关键的功能和代码,确保这些内容都要被充分的验证到。 这个其实就是在定义一个验证的状态空间,也就是说我们把汪洋大海啊,缩小到一个大明湖啊,这样就能在有限的时间,人力还有算力的情况下,保证芯片功能的正确。你还记得那年大明湖边的夏雨荷吗? 覆盖率呢,就是用来评估验证完成度的指标,但是呢,在实际的验证中啊,达成百分之百的覆盖率是非常困难的,它主要面临着三个问题,第一,如何定义覆盖率本身啊, 通常呢,需要覆盖的内容是有经验丰富的工程师人工定义的啊,并不一定是全面的。第二个问题呢,就是覆盖率在收敛的过程中啊,会越来越难,越来越慢。 在做验证的过程中啊,需要上千次甚至上万次的防震测试,那么随着覆盖率的提升,简单的随机测试就不够用了。这个是因为啊,低处的果子被摘的差不多了啊,如果要想要摘到更高处的果子,就要搭更高的梯子,或者用更专业的工具,有时候呢,甚至要靠运气 才行。那么第三个问题啊,就是如何确定验证已经完成了?达到百分百覆盖率,并不代表芯片就百分之百的功能正确了,可能是你设置的标准太低了,所以呢,就需要对仿真中收集到的海量数据去进行分析,并且来判断到底是不是真正的实现了最终的验证目标和收敛。 为了芯片工程师啊,这帮大聪明的啊,就用人工智能的方法来帮助做芯片验证了。比如说 synopsis 就提出了一个 vso 点 ai 工具,使用 ai 来优化验证空间,从而加快覆盖率的收敛速度。 比如说啊,针对定义覆盖率目标的这个难题啊, vso 点 ai 呢,就能够推断出一些不同的覆盖率的类型,而不用再拘泥于传统的代码覆盖率,而是和芯片工程师指定的覆盖率啊形成互补。 ai 呢,还能从验证的经验中不断的学习,然后不断去优化覆盖率的目标。那么为了加快覆盖率的收敛速度, ai 还可以解放验证公司 啊,不用去做手动的优化,而是自动的去学习和调整各种测试,同时呢,消除那些重复的劳动,在加快覆盖率收敛的同时节省计算资源。 ai 还能够自动分析覆盖的结果啊,分析导致 bug 的根本原因,或者是尝试推理为什么没有达到某些特定的覆盖点, 这样呢,就能帮助验证工作师更快的判断验证是否完成了。那么有了 ai 之后啊,就会大大缩短覆盖率的收敛时间。比如说在验证 opetaita h mac 这个 ip 的时候啊,就使用了 viso 点 ai 这个工具啊,就能将测试的次数缩短到之前的三分之一, 覆盖率结果的质量呢也提升了百分之十。瑞萨电子啊,在减少功能覆盖盲区方面啊,也实现了十倍的优化,并将 ip 验证的效率提高了百分之三十。那么对一个动辄需要几周甚至几个月啊才能完成的这个验证工程来说, 缩短三分之一的时间带来的效率提升其实是非常巨大的。近年来呢,验证对于芯片来说啊,更是越来越重要了,这也是普通人进入芯片行业其实非常值得去考虑的方向。 我对验证呢算是律动,而且呢,我现在呢就在做芯片验证相关的学术研究,目标也是通过像人工智能技术或者是硬件加速技术这些的方法,让芯片验证过程更快更加的高效。 这里来打个小广告啊,我们的团队也一直在招收工程师和实习同学,我每年呢也有研究生的指标,也欢迎对验证感兴趣的同学朋友们加入我们,一起来做一些有意思的事情。 好,再来说说布局布线啊,这个其实是人工智能用于芯片设计的比较早的尝试。在二零二一年啊,谷歌在自然杂志上发表了一篇工作,介绍了谷歌使用深度强化学习的方法,把芯片布局的设计啊,从原来的数周 缩短到了六个小时。那么布局布线是什么呢?他其实指的是芯片上有各种各样的组件和模块,需要把他们合理的放置在芯片上有限的这个空间之内,并且用导线去连接起来。那么在满足各种电器规则和限制的前提之下, 尽可能的达到最好的功率,性能和面积。通常来说啊,这个工作是由一碟工具来完成的,但是呢,为了性能的最优化,通常也需要芯片工程师不断的去进行手工的调整, 调整之后呢,再给 eta 工具啊,再做一版,然后不断的去重复循环这个过程。这就像是家里软装的时候啊,去放各种家具,看怎么摆放才能达到空间利用的最优动线最合理。 只不过呢,每调整一次,就要把家里所有的家具啊全部都清出去,然后重新来一遍,非常的费时费力。于是呢,谷歌就想啊,能不能像做游戏一样 去做芯片的布局布线呢?比如说,把性能优化的条件看成是游戏获胜的条件,然后呢,用包含状态动作,状态转移啊奖励这四个关键要素的强化学习方法,通过训练一个智能体,用累计奖励最大化,让 ai 优化芯片布局的能力啊持续增强。 于是呢,他们就开了一万局游戏啊,让 ai 在一万个芯片上练习布局布线,并且收集数据,同时呢,也不断学习优化。最终呢,他们发现啊,和人类工程师相比啊,像 ai 呢,在面积,公寓和电线长度方面啊,都优于或者是媲美啊,人力手动的局布局 也满足设计标准所需要的时间要少的多。那么为了得到一个最优的芯片设计啊,核心其实是优化芯片的功耗、性能和面积啊,这三个衡量芯片设计质量的关键指标。那么这个问题啊,在行业里啊,也叫做设计空间探索。功耗优化指的是减少 芯片在运行时候的消耗的电量,这意味着更长的电池寿命和更低的运行成本。功耗优化呢,可以通过多种方法来实现啊,包括使用这种低功耗电路设计啊,或者是先进的电源管理技术等等。性能优化呢,主要关注的是提高芯片处理速度和响应能力, 可以通过改进处理些架构啊,增加核心的数量或者增加流水线啊和这些方式来实现。面积优化呢,就是要减少芯片所占用的这个物理空间,从而减少制造的成本,提高芯片的集成度。 面积优化通常通过更紧凑的布局设计,或者采用更先进的制造工艺来实现。那么有位哲人啊,曾经说过,高富帅易得,但是呢, ppa 难得。 那在实际的芯片设计中啊, ppa 三个因素往往相互制约,比如提升性能就会增加工耗和面积,这就需要根据具体的应用啊,在三个关键指标中取得最佳的平衡。 比如说对于智能手机芯片啊,低功耗和小面积可能就是首先要考虑的因素,而对于高性能计算或者是服务器芯片来说呢,性能可能就是最关键的。但是呢,一个芯片的 ppa 参数啊,不计其数,需要芯片工程师花费大量的时间去探索和寻找最优的组合, 有点大海捞针的那个味。那么说到这里啊,大家应该也就都猜到了,这种不断的去尝试和探索的问题,其实都可以用 ai 来帮忙解决, 比如说把 ai 和用来做 pba 探索的异列工具去结合,让 ai 来自动的找到最优的芯片设计。 ai 呢,还能把一个项目里学到的经验啊,用在未来的项目里,这样就大幅提升了芯片的设计效率。那么基于这些思路啊,工业界呢,其实已经在开发类似的产品了, 比如说 synopsi 的新思科技,就在二零二零年推出了 d s o 点 ai, 它是业界首个 ai 驱动的新 片设计方案,采用强化学技术,通过 ai 来自主搜索设计空间来达到最佳平衡,不需要人工介入啊,这个工作呢,已经在很多的芯片大厂落地使用了。比如说采用了 dso 点 ai 之后啊,微软就将芯片模块的功耗降低了百分之十到百分之十五,但是呢,性能并没有下降, 依法八导体呢,已将 pba 的探索效率提升了三倍以上。存储芯片大厂 ski, 于是呢,将芯片的面积减少了百分之五。那么根据 snops 的数据啊,现在 dso 点 ai 已经成功实现了超过三百次的商业流片, 其实也标志着 ai 其实能够去帮助真正的芯片设计和生产。当然了,除了工业界的工具之外,学术界也有很多探索 ppa 和设计空间探索的研究工作和开源的工具。比如说 ucla 的从新生教授团队啊,也开发了面向深度学习加速器的凹凸地 se 和 cnndse 工具啊等等,这其实也是一个非常热的研究领域,推荐大家去关注。那么今天这期视频呢,我们就不展开了啊,感兴趣的朋友们呢,可以在留言区告诉我,也别忘点赞加关注。人多的话呢,我们就单独安排一期,专门的来聊一聊这个话题。 那么芯片完成设计生产之后啊,并不是大功告成了,芯片开发者呢,还需要把方坠制造的这些有缺陷的芯片啊去筛出来, 这通常需要把芯片插到特定的测试仪器设备里,然后呢,运行大量的测试程序。测试的方法啊,就是给芯片输入大量的测试输入,然后呢看输入是否符合预期。 测试输入的数量越多,意味着测试更加的全面,但是呢,也可能带来更高的测试时间和成本。所以呢,测试项量的数量并不是越多越好的,而是在测试效率和各种场景的这种覆盖率之间啊, 取得一个比较好的平衡。这个时候呢, ai 能力啊就又体现出来了,一方面呢, ai 可以根据测试的需求更加精准的自动产生输入。另一方面呢, ai 可以不断的去学习这些测试指标设计特性和已经完成的测试之间的关系, 对于测试输入啊进行动态的调整,用更少的测试项量实现更高的覆盖率,从而减少测试的时间和资源。再比如啊, snelses 有一个名叫 tso 点 ai 的工具,就实现了上面的这些功能, 根据他们的数据呢,可以将测试的平均数量啊,减少百分之二十到三十。好了,前面说的都是芯片设计开发的关键环节,以他们如何和 ai 进行结合。 那么有没有用 ai 直接设计完整芯片的例子呢?啊,这一步登天啊,目前还有点难度,但是其实也有国内外的团队啊,在尝试了,比如说纽约大学的学者啊,就在用 chat gpt 完全通过 对话的方式,设计了一个非常简单的八位处理器芯片。当然了啊,从专业的角度来看,这可能只是一个比玩具还简单的例子。计算机领域的大牛啊,杜克大学的陈依然老师啊,也说啊,这更像是一个 prompting 之 naring 的功能展示。 不过呢,也有更复杂的用 ai 设计芯片的例子啊,比如说中科院计算所,就使用 ai 花了五个小时生成了一个 respect 处理器芯片启蒙一号, 它有四百万个逻辑门啊,性能呢,和英特尔的八零四八六相当。总体来看啊, ai 设计完整芯片的能力其实还比较的有限,但是呢,这或许也是芯片发展的下一波机遇。 对于各家芯片大厂来说,他们也在开始尝试将 ai 引入芯片设计的全流程了,比如说 a m d 啊,已经在设计、测试和验证阶段采用 ai。 英伟达 ceo 老黄也表示啊,芯片制造会是 ai 的理想应用。为此呢, e d a 工具啊,也在不断的进化啊,再拿 snopsis 来举例啊,他们呢,也推出了面向芯片开发全流程的 snopsis 点 ai 啊,它是业界首个基于 ai 的全站式 e d a 平台,覆盖了从架构设计到制造的整个设计流程, 也集成了名叫 data analytics 点 ai 的这个 ai 大数据分析功能。事实上呢,二零二零年啊,发布首个 ai 驱动的漆面设计方案 dso 点 ai 的时候呢, snopsis 的市值啊,是两百多亿美元。三年之后啊,随着 snopsis 点 ai 的推出, snopsis 的市值啊,一路突破了八百亿美元。 将 eda 和 ai 进行结合,已经成为未来芯片设计的新范式。那么再回到一个很多人都关心的问题啊,人工智能到底会不会取代芯片工程师呢?如果 ai 学会了设计芯片,未来会不会出现像天网那样的超级智能呢?从前面的介绍不难看到啊, 人工智能主要用来帮助自动寻找和探索这种最优解、减化和加速那些重复的任务和劳动,并且主要适用于有比较明确规则的应用领域。 相比之下呢,人类工程师和科学家更擅长设计、创造,或者是从微小啊,甚至是不相关的领域产生灵感,就像一个从树上掉下来的苹果会启发牛顿创造出物理学的基础理论一样。对于芯片来说, ai 已经带来了一场新的革命, 帮助芯片工程师分担了重复性的芯片设计、验证和测试的任务,从而让人们更专注于擅长的事情创新。当 ai 开始设计芯片,阁下该如何应对呢? 其实 ai 和人啊会形成很好的互补, ai 呢,也会极大地提升人们探索新知的能力和效率。而芯片,这个源自于沙子,又汇聚人类最先进知识的 小东西,未来或许将会是人类和 ai 联合创作的艺术品。那么关于 ai 造芯片啊,到底靠不靠谱?你怎么看?也欢迎在评论区说说你的看法。好了,以上就是本期视频的全部内容,有用请点赞,喜欢请关注我是老师,我们下期视频再见。




