而在五月旬日,谷歌在IO大会上发布了ChatGPT的竞品,即PaLM 2大措辞模型。谷歌表示,目前ChatGPT类天生式大措辞模型最主要的用户体验之一便是帮助用户编写代码,而PaLM 2的一大特性便是完成20多种编程措辞的支持。个中,对付芯片设计工程师来说,最大的亮点便是PaLM 2支持数字电路设计领域最常用的编程措辞Verilog。
百闻不如一试,目前PaLM 2已经在谷歌的Bard平台上线开放公测,因此我们也考试测验利用Bard去体会了一把PaLM 2天生Verilog代码的能力。在试验中,我们让Bard天生了两段代码,一段代码是天生一个FIFO(数字电路中最常用的模块之一),而另一段代码则是天生一个模块,个中包含了两个前面编写的FIFO,并且让第一个FIFO的输出接入第二个FIFO的输入。天生的方法非常大略,我们只须要给Bard一个基于自然措辞的指令(prompt),Bard就能够在几秒钟之内完成相应的代码天生。例如,在第一个实验中,我们利用的指令是“天生一段Verilog代码来实现FIFO”,天生结果如下图:

从结果来看该天生的代码的语法精确,逻辑基本精确,但是在FIFO full和empty的旗子暗记逻辑上并没有完备弄对(当然实在FIFO的full和empty的逻辑也是口试中常考的问题,要完备弄对并没那么大略)。在代码风格上,我们还可以在指令中加入更多提示,类似“在代码中加入更多注释”,“利用参数来定义接口宽度”等等。
而在第二个实验中,我们紧张看的是Bard能否复用之前天生的模块,并且基于这个来天生新的更大的模块。我们利用的指令是“写一个模块,个中包括两个你前面写的FIFO模块,并且第一个FIFO的输出接入第二个FIFO的输入”。
在这里我们可以看到天生的代码基本精确,因此我们认为PaLM 2基本拥有了能基于自底向上天生繁芜代码的能力。
芯片设计领域天生式AI的进化之路
我们从上述实验中可以看到,谷歌的PaLM 2已经具有了基本的Verilog代码天生能力,可以天生基本模块和复合模块,当然其代码天生的质量还有待提高。而除了PaLM 2之外,我们认为其他公司推出的类似ChatGPT的大措辞模型也有可能会加入对付Verilog类硬件描述措辞的支持。
根据谷歌在IO大会上发布的信息,目前ChatGPT类的大措辞模型已经成为许多工程师在代码编写时的主要助手。如果我们参考IT领域软件开拓工程师运用ChatGPT类大措辞模型帮忙代码编写的发展的话,我们认为在芯片行业大措辞模型也非常有可能会起到主要浸染。这里,根据大措辞模型在开拓流程中起到的角色,我们可以大致分成三种运用。第一种运用是根据用户的指令直接天生代码,即我们在本文前面给出的两个例子。第二种运用是在工程师编写代码的时候,帮助工程师自动补全代码;例如工程师只须要输入一行代码的前几个字符,大措辞模型就可以根据代码的高下文自动帮助补全代码,从而节省工程师的开拓韶光。第三种运用是帮助工程师剖析代码和debug,正如ChatGPT可以帮助用户优化Python代码并找到代码中的bug一样,经由干系数据演习的大措辞模型也可以在Verilog中实现相似的功能。
展望未来,参考大措辞模型在IT行业的运用轨迹,我们认为大措辞模型对付芯片设计方面的帮助估量将会从代码自动补全开始,由于这也是大措辞模型在IT行业的切入口——目前我们已经看到类似Github co-pilot这样的代码补全产品已经得到了许多IT公司的运用来帮助软件工程师提升编程效率。相对来说,代码补全类运用对付大措辞模型的哀求相对较低,目前的模型已经能实现相称高的准确率,因此我们预期在芯片设计领域也会有运用在Verilog领域的基于大措辞模型的代码补全工具会很快涌现帮助工程师提高效率(估计谷歌内部芯片团队已经开始利用类似的工具)。
在代码补全之后,随着大措辞模型的进一步发展,根据用户的指令自动天生代码的大措辞模型也将会得到越来越多的运用。这类代码直接天生类运用从目前来看还须要和全体项目开拓流程进一步磨合——究竟这类代码自动天生的运用最适宜利用在底层模块的编写,还是在上层模块间集成的天生上,还须要进一步探索,但是无论如何ChatGPT在自动代码编写领域的潜力惊人,可以把原来人工须要数小时才能编写完的代码在几秒内完成,这样的效率提升无疑将会给全体行业和芯片开拓流程带来革命性的变革。
目前来看,ChatGPT类大措辞模型在Python等盛行编程措辞的代码编写方面已经有很不错的效果,这证明了大措辞模型实现自动代码编写、补全和debug在理论和工程上都是可以实现的。谷歌的PaLM 2对付Verilog的支持仍旧有待进一步完善的紧张缘故原由我们认为还是演习的数据量不足。从演习数据数量的角度来说,互联网上有海量的开源Python代码可供演习大措辞模型来完成高质量的代码天生,但是互联网上可用于演习大措辞模型的Verilog代码的数量比起Python等盛行措辞来说可能是要少了几个数量级。并不是人类编写的Verilog代码数量不足多,而是绝大多数Verilog代码都不是开源的,而是芯片公司的知识产权,例如谷歌在演习PaLM的时候不太可能得到高通的Verilog代码。未来谁会在开拓芯片设计领域的大措辞模型方面拔得头筹?我们认为有几个不可忽略的力量:
首先是拥有全栈技能能力的大型技能公司,这些公司既有开拓大措辞模型的能力,又有成功的芯片业务,包括美国的谷歌和中国的华为等。从技能上来说,这些公司积累了大量的Verilog干系代码可供演习大措辞模型,而从业务上来说,这些公司同样也有利用大措辞模型来提升芯片设计团队效率的驱动力。
其次是EDA巨子,包括Synopsys、Cadence等。这些EDA公司拥有极强的业务驱动力和紧迫感,由于大措辞模型AI确实会成为EDA行业下一个革命性变革,谁在这个领域盘踞了先机就会不才一代EDA竞争中取得上风;从技能积累上来说,这些公司拥有不错的AI模型能力,同时也有海量的Verilog代码数据量可供演习模型(由于这些EDA公司都有相称成功的IP业务,在开拓这些IP的同时积累了足够的高质量代码数据)。
末了,开源社区的力量也不容忽略。从大措辞模型角度来看,开源社区在CahtGPT以及开源LLAMA措辞模型的根本上做了大量故意义的探索,其余随着RISC-V等开源项目的增加,开源社区拥有的数据量也会越来越多。我们预期开源社区有机会去实现一些小而美的基于大措辞模型的新颖运用,从而也能推动全体大措辞模型在芯片设计领域的技能发展。
天生式AI会如何影响芯片设计工程师的事情
那么,随着ChatGPT式AI在芯片设计中扮演越来越主要的角色,芯片工程师的日常事情将会发生怎么样的变革?由于这里ChatGPT类天生式AI紧张针对代码编写等前端事情,我们这里的谈论范围也紧张是前端数字设计工程师。
首先,对付紧张事情是前端模块设计和集成的芯片工程师来说,我们估量很快就会有ChatGPT类的工具可以帮助代码补全,从而增加效率。而在未来三到五年的韶光范围内,直策应用ChatGPT类天生式AI首先模块代码编写有望得到真正的运用。从这个角度来说,我们并不认为前端工程师的事情会被取代;相反,数字前端工程师的事情可能会越来越多地专注于模块的功能定义,以及如何利用天生式AI能理解的办法来描述这个设计,让AI能产生和工程师设计符合的代码;从这个角度,乃至可能会涌现一些标准化的模块功能定义描述措辞,从而让AI能产生合理的代码。
此外,芯片验证工程师的事情将会变得越来越主要。天生式AI可以在几秒钟内天生代码,但是其天生质量从目前来看尚需提高。从这个角度,芯片验证一方面须要确保AI天生的代码没有bug,而更主要的是,芯片验证须要能和代码天生形成闭环,例如如何实现一套事情流程,让AI天生的代码可以快速利用testbench来确保功能是否精确,并且有办法见告AI哪里功能不对来提示AI修正,从而在经由多次迭代后能让AI自动天生精确的代码。虽然可能会须要多次迭代,但是由于每次代码天生须要的韶光很短,因此总得来看须要的代码天生韶光还是比起手写要快许多。此外,利用天生式AI来自动天生testbench以及验证须要的assertion也将会改变验证工程师的事情流程,工程师将会须要花更多韶光教会AI来天生精确的代码,从而大大提升效率。







