吕辰、诸葛彪、钱兰三人带着汪涵教授,从第八组的设计室出来,下到一楼,往星河cad的机房走。
钱兰在前面引着,吕辰、诸葛彪在左右护着,汪涵教授把黑皮本子夹在腋下,背挺得很直。
他一句话没说,但吕辰看得出来,这位老教授心里压着一股火。
双轨对比的结果,手工版的问题固然不少,但cad版的问题同样扎眼。
那些问题,关键路径绕远、特殊结构不智能、冗余过孔过多、缺乏模拟直觉,每一条都像是打在汪涵教授脸上的巴掌。
星河cad是他的成果,他带着人,没日没夜的不知熬了多少夜,白了多少头。
现在被人一条一条地挑出毛病,搁谁心里都不好受。
机房的门口,两个穿着防静电工装的年轻技术员正蹲在地上拆一个纸箱,里面是一台刚送来的磁带机。
看见吕辰等人过来,他们站起来,让开门口。
“汪教授,您请。”
钱兰推开门。
机房里的温度比走廊低了好几度,空调吹出来的风带着一股干燥的凉意。
墨绿色的机柜在日光灯下泛着冷光,指示灯一排一排地闪烁着,绿的、黄的、红的,像是某种沉默的语言。
墙上挂着一块大白板,上面用红蓝铅笔写着各台机器的任务分配和当前状态,密密麻麻。
汪涵教授走到管理员终端前,转身看着吕辰。
“调出来吧。让我看看,你们说的那些问题,到底长什么样。”
吕辰在终端前坐下,手指在键盘上敲了几行命令。
屏幕上跳出一个文件列表,他选了一个文件名,“gy_cu_o1_cad_Layout”
,回车。
屏幕上开始加载版图数据,绿色的字符在黑色背景上交织,像奔腾的瀑布。
吕辰站起来,把位置让给汪涵教授。
汪涵教授拉过椅子坐下,眯着眼睛看屏幕。
他手指在键盘上飞敲击,一会看单元库调出某个标准单元,一会又查逻辑、看版图。
屏幕上一会是字符,一会是短线连接的线路,一会是看整体,一会又显示局部。
他看了大约十分钟,停在了16位加法器的进位链位置,输入打印。
绘图机启动,不一会儿,16位加法器就画了出来。
汪教授拿起图,那条线,从芯片的一端绕到另一端,歪歪扭扭,绕过了一大堆标准单元,总长目测接近3毫米。
汪涵教授盯着那条线看了几秒,声音里但带着一种承认事实之后的平静。
“这条线,确实绕远了。”
诸葛彪把烟从耳朵上取下来,在指间转了一圈。
“汪教授,这不是您算法的问题,是咱们当初定的目标就有问题。”
他用手指在图纸上点了一下那条进位链的位置。
“您当初写布线微程序的时候,目标函数是‘总连线长度最短’和‘布线率最高’。这个目标,对普通信号线是对的,但对关键路径,不对。”
他转过身,看着汪涵教授。
“关键路径要的不是总长最短,是单条路径延迟最小。总长最短,可能让一百条普通线各短了o。1毫米,但让一条关键路径长了1毫米。算总账是赚了,但时序收不住了。”
汪涵教授盯着图纸又看了一会儿。
“你说得对。”
他点了点头,“目标函数要改。”
钱兰接了一句:“不只要改目标函数。布线的时候,算法不知道哪条线是关键路径,哪条线不是。得在布线之前,先把关键路径标记出来。”
汪涵教授转过头看着她。
钱兰继续说:“设计师在做逻辑设计的时候,心里是有数的。这条加法器进位链,从仿真就能看出来是时序关键。他可以在布局阶段就把这条路径标记为‘关键路径组’,告诉布线器‘这几条线,优先级最高,不惜代价拉直’。”
汪涵教授拿出笔记本,写了一行伪代码,思路清晰地表达了出来: