吕辰把车骑进陈教授家楼下,和诸葛彪提着蔬菜鸡蛋上了楼。
敲门之后,陈师母开门出来。
“师母好,我们是来给教授拜年。”
二人把礼物递过去,陈师母接过菜篮子,翻看下面的菠菜和蒜苗,惊讶道:“腊月里还能见到这个?还带着水珠呢!”
吕辰笑着说:“自家暖棚种的,不值什么。”
陈教授从书房走出来,摘下老花镜,看见二人,乐了:“小吕、诸葛。来,坐坐坐。”
寒暄几句,陈师母去厨房张罗。
屋里安静下来,只听得见炉子上水壶咕嘟咕嘟的声音。
陈教授端起茶杯,看着二人:“你们来得正好,标准单元库的事,我让研究生想了几个方案,年后想找你们一起讨论。”
吕辰接过茶杯:“教授,我们今天来,就是想请教这个事。我们集成电路实验室是分布式系统的用户,有些地方没想明白。”
“你说。”
吕辰看了看诸葛彪。
诸葛彪会意,从兜里掏出个小本子,翻开一页。
“陈老师,我在琢磨一个事。标准单元库有四百多个单元,每个单元有逻辑图、版图、仿真模型、测试向量。这些东西,现在都记在纸面上,手册、图纸、卡片。工程师画图的时候,翻手册查参数,翻图纸看布局,翻卡片找测试数据。”
陈教授点点头。
诸葛彪继续说:“以后上分布式系统了,用计算机辅助设计。我就琢磨着,这些数据是要存在存储柜里给计算机调用的。工程师坐在终端前面,敲几个命令,就能查到某个单元的参数,就能调出它的版图,就能跑仿真……”
陈教授放下茶杯:“的确是这样,你遇到什么问题了?”
诸葛彪笑了笑:“问题就是——这些数据怎么存?”
他从本子里抽出一张纸,上面画了一个简单的增值表。
“您看,一个与非门单元,它的逻辑功能可以用真值表描述:输入a、输入b、输出y。四个组合,每个组合对应一个输出。这个真值表,在纸面上很好写,四行两列。但存在计算机里呢?怎么表示?是存成一张表,还是存成一组数?怎么让计算机知道‘这是一个与非门’,而不是一个‘与门’或者‘或非门’?”
陈教授接过那张纸,看了一眼,笑了。
“你这个问题,问到了根子上。”
他站起来,走到书桌前,拿了一张大纸和一支铅笔,坐回沙上。
“你刚才说的真值表,在数学上是一个映射,从输入组合的集合,映射到输出值的集合。这个映射,可以用表来表示,也可以用逻辑表达式来表示。但你说得对,光存这个表不够。计算机要知道‘这是一个与非门’,还要知道它的版图在哪儿、仿真模型在哪儿、测试向量在哪儿。”
他在纸上画了一个树状图。
“你看,单元库是一个‘根’,每个单元是一个‘分支’,每个单元的属性是‘叶子’。这种结构,在数学上叫树。计算机要存这些数据,就需要一种能表示‘树’的数据结构。”
吕辰插了一句嘴:“陈老师,您这么一说,我倒想起一个东西,图书馆。”
陈教授愣了一下:“图书馆?”
“对。”
吕辰指着那个树状图,“图书馆里几万本书,是怎么找到想要的那本的?先查卡片目录,找到索书号,再去书架上找。卡片目录就是索引,按书名查、按作者查、按分类查。书架就是存书的地方,索书号告诉你去哪个书架拿。”