汪波
写写代码就能设计芯片? --《芯片简史》系列 精选
2023-5-30 09:20
阅读:5962

- 本文节选自2023年出版的《芯片简史》(by 汪波)


20 世纪 70 年代,一个叫菲尔·摩比(Phil Moorby)的学生到曼彻斯特大学求学。

曼彻斯特大学有着自己研发计算机的传统。1948 年,艾伦·图灵来到这里,发展了最早的存储程序计算机,他曾想象有一种与人类大脑媲美的计算机。

不过,即使在摩比求学的 70 年代,图灵的那个梦想看起来依然十分遥远,因为当时芯片上最多只有几万个晶体管,CPU 的算力不够强、内存不够大。

增加 CPU 算力的途径就是继续扩大芯片规模,但这受制于芯片设计。工程师设计芯片的方法跟建筑设计师类似,他们要先在电脑上绘制原理图和版图,然后将晶体管互连起来组成电路,最后把不同的电路模块拼成芯片。

但随着芯片规模的扩大,图形规模已远远地超出了设计师和计算机能掌控的极限,这种方法走到了尽头。让我们举个例子,早期人类在拉斯科岩洞里的石壁上描绘了野牛、鹿和熊等野生动物,虽然很壮观,但能画出的内容还是很有限。

Lascaux_painting.jpg

拉斯科岩洞的石壁画

直到后来出现了文字,人们才从纷繁的绘画中解脱出来。一旦有了文字,我们就能描写出图画中所没有的东西。

正如《小窗幽记》卷六“景”中所说的:“绘花者,不能绘其香;绘风者,不能绘其声;绘人者,不能绘其情。”文字之所以比图形更强大,是因为文字能描述更精微的含义,传递更深刻的思想。

将图形转化为文字的方法是抽象,正如《说文解字》中所说的:“黄帝之史仓颉,见鸟兽蹄爪之迹,知今之可相别异也,构造书契。”从图画中忽略细枝末节,抽象出骨架结构,就得到了象形文字。如此一层一层地抽象演变下去,就得到了现代文字。

horse-nand.jpg

象形文字的抽象演化(上图)与电路图的抽象演化(下图)

同样,如果人们能将电路图抽象并去掉细节、抓出特征,构造出一种描述硬件电路功能的文字,就可以构建出一个包含海量电路元件的复杂世界。

从版图开始,逐层抽象,我们就得到了原理图、逻辑模块,最后就是代码语言。越往后,细节丢失得越多,但也变得越简约,越容易描述大规模电路。

例如,一个由 4 个晶体管组成的“与非门”电路的版图,需要包含栅长、线宽等细节。经过第一层抽象后,就只剩下了呈现内部晶体管连接关系的原理图。再经过进一步抽象,就只剩下了只包含外部接口的逻辑模块,接着就能抽象成为逻辑语言符号。最后,我们的抽象之旅就抵达了终点:硬件描述语言(简称HDL)的一行代码。

有了硬件描述语言,人们才能设计出更复杂的芯片,突破设计者在电路图上能画出来的最大极限,从而推动芯片规模按照摩尔定律继续扩大。

世界上约有 6 500 种人类语言,然而芯片设计使用的硬件描述语言用一只手就数得过来,其中使用最广泛的是 Verilog。而发明 Verilog 的就是菲尔·摩比。

2016_phil_moorby.jpg

菲尔·摩比

在攻读硕士学位期间,摩比选择了一个既包含硬件,也包含软件的研究项目,这让摩比同时熟悉了编程和硬件。之后,他加入了一家开发逻辑仿真系统的初创公司,放弃了博士论文写作。

1983 年,摩比到美国参加学术会议,遇到了王安公司的普拉布·戈埃尔(Prabhu Goel),戈埃尔正在创办一家新公司捷威(Gateway)。在这年圣诞节期间,摩比来到了美国,加入了捷威公司。

戈埃尔成立捷威公司的最初目的是实现“逻辑综合”。所谓综合,是指一种自动设计电路的方法。打个比喻,这就像是某种写作软件,接收到一些关键词和要求,它就能谋篇布局、遣词造句,生成一篇像模像样的文本。

那时逻辑综合的概念还很新,主要局限在学术圈里的讨论。如果要用计算机来自动生成电路,计算机更擅长处理文本而不是画电路图,所以用文字描述的方式来实现电路自动设计更加合适。

这就要求研究人员发明一种能描述逻辑电路的语言,换句话说,发明一种描述“硬件”的“软件”。有了语言,计算机就能发挥其特长—分析处理能力,设计者也不用再拘泥于电路的具体形状,而是将其逐层抽象,删繁就简。

对于摩比来说,他只需要数十名“老兵”足矣—26 个字母、10 个阿拉伯数字符号和一些特殊符号。他要将这些无形的符号深深地嵌入有形的电路中去,就像人类的语言深深地融入大脑而后者浑然不觉一样。

人类的文字虽然浩如烟海,但是它的基本元素只是一小群“老兵”,它们数量不多,却永不退役,只要稍微变换队列,就能让我们从开怀大笑变成泪水涟涟,或者让我们从亲如手足变成反目成仇。

芯片也是如此。所有的逻辑芯片都受制于硬件描述语言。这种语言规定了芯片的每一种行为,构造了它内部的每一个结构。

如何通过语言来表达芯片的功能和结构呢?摩比用一部分语言描述模块的结构(接口类型、连接关系等),而用另一部分语言描述模块的逻辑功能和行为(如果……那么……)。最后,将两者合在一个模块里,这个模块就“活”了,既有“形”,又有“行”。

Verilog_Getting_Started_AAC4.jpg

verilog_getting_started_AAC_8.jpg

Verilog  语言

摩比和同事密切合作,没日没夜地工作。1984 年 1 月,新语言成型了。一年后,当仿真器和 Verilog 语言的编译器都开发完成时,捷威公司准备将其推出上市。戈埃尔来找摩比商量这款编译器的名称,摩比把 Verifification(验证)和Logic(逻辑)这两个词拼在一起,组成了“Verilog”。

随后,摩比开发出了对应的逻辑仿真器 Verilog-XL。它竟然比当时最大的逻辑仿真器提供商之一的黛斯公司的产品还快 3 ~ 4 倍。由此,Verilog-XL 变成了芯片仿真的“黄金仿真器”。

就在这时,Verilog 的竞争对手出现了。美国国防部召集了几家半导体大公司开发了另一种硬件描述语言 VHDL。从一开始,VHDL 就是开放使用的,因此立马获得了极大的市场占有率。而 Verilog 只是捷威公司的私有语言,这显然不利于 Verilog 的推广。1991 年,Verilog 开放给业界使用,成了美国电气与电子工程师协会标准中的一种语言。1996 年后,Verilog 扩展了功能,引入了模拟电路部分 Verilog-A 以及混合电路语言 Verilog-AMS。

如今,不论是英特尔公司和超威半导体公司的 CPU,还是移动端的 ARM 芯片,都是研发人员用硬件描述语言写出来,然后使用计算机软件自动地“综合”出逻辑原理图和版图的。对此,20 世纪六七十年代的芯片设计者一定很惊讶,现在的数字芯片竟然是用代码设计出来的!



  • 书名:《芯片简史》

  • 作者:汪波

  • 出版时间:2023年4月

  • 出版社:湛庐文化/浙江教育出版社

  • ISBN:9787572254758

汪波的小站:https://wangbo66.com/


封面.PNG


转载本文请联系原作者获取授权,同时请注明本文来自汪波科学网博客。

链接地址:https://wap.sciencenet.cn/blog-813107-1389894.html?mobile=1

收藏

分享到:

当前推荐数:7
推荐到博客首页
网友评论3 条评论
确定删除指定的回复吗?
确定删除本博文吗?