吕辰、诸葛彪、钱兰三人带着汪涵教授,从第八组的设计室出来,下到一楼,往星河cAd的机房走。
钱兰在前面引着,吕辰、诸葛彪在左右护着,汪涵教授把黑皮本子夹在腋下,背挺得很直。
他一句话没说,但吕辰看得出来,这位老教授心里压着一股火。
双轨对比的结果,手工版的问题固然不少,但cAd版的问题同样扎眼。
那些问题,关键路径绕远、特殊结构不智能、冗余过孔过多、缺乏模拟直觉,每一条都像是打在汪涵教授脸上的巴掌。
星河cAd是他的成果,他带着人,没日没夜的不知熬了多少夜,白了多少头发。
现在被人一条一条地挑出毛病,搁谁心里都不好受。
机房的门口,两个穿着防静电工装的年轻技术员正蹲在地上拆一个纸箱,里面是一台刚送来的磁带机。
看见吕辰等人过来,他们站起来,让开门口。
“汪教授,您请。”钱兰推开门。
机房里的温度比走廊低了好几度,空调吹出来的风带着一股干燥的凉意。
墨绿色的机柜在日光灯下泛着冷光,指示灯一排一排地闪烁着,绿的、黄的、红的,像是某种沉默的语言。
墙上挂着一块大白板,上面用红蓝铅笔写着各台机器的任务分配和当前状态,密密麻麻。
汪涵教授走到管理员终端前,转身看着吕辰。
“调出来吧。让我看看,你们说的那些问题,到底长什么样。”
吕辰在终端前坐下,手指在键盘上敲了几行命令。
屏幕上跳出一个文件列表,他选了一个文件名,“GY_cU_01_cAd_LAYoUt”,回车。
屏幕上开始加载版图数据,绿色的字符在黑色背景上交织,像奔腾的瀑布。
吕辰站起来,把位置让给汪涵教授。
汪涵教授拉过椅子坐下,眯着眼睛看屏幕。
他手指在键盘上飞速敲击,一会看单元库调出某个标准单元,一会又查逻辑、看版图。
屏幕上一会是字符,一会是短线连接的线路,一会是看整体,一会又显示局部。
他看了大约十分钟,停在了16位加法器的进位链位置,输入打印。
绘图机启动,不一会儿,16位加法器就画了出来。
汪教授拿起图,那条线,从芯片的一端绕到另一端,歪歪扭扭,绕过了一大堆标准单元,总长目测接近3毫米。
汪涵教授盯着那条线看了几秒,声音里但带着一种承认事实之后的平静。
“这条线,确实绕远了。”
诸葛彪把烟从耳朵上取下来,在指间转了一圈。
“汪教授,这不是您算法的问题,是咱们当初定的目标就有问题。”
他用手指在图纸上点了一下那条进位链的位置。
“您当初写布线微程序的时候,目标函数是‘总连线长度最短’和‘布线率最高’。这个目标,对普通信号线是对的,但对关键路径,不对。”
他转过身,看着汪涵教授。
“关键路径要的不是总长最短,是单条路径延迟最小。总长最短,可能让一百条普通线各短了0.1毫米,但让一条关键路径长了1毫米。算总账是赚了,但时序收不住了。”
汪涵教授盯着图纸又看了一会儿。
“你说得对。”他点了点头,“目标函数要改。”
钱兰接了一句:“不只要改目标函数。布线的时候,算法不知道哪条线是关键路径,哪条线不是。得在布线之前,先把关键路径标记出来。”
汪涵教授转过头看着她。
钱兰继续说:“设计师在做逻辑设计的时候,心里是有数的。这条加法器进位链,从仿真就能看出来是时序关键。他可以在布局阶段就把这条路径标记为‘关键路径组’,告诉布线器‘这几条线,优先级最高,不惜代价拉直’。”
汪涵教授拿出笔记本,写了一行伪代码,思路清晰地表达了出来:
“设计师标记关键路径组→布局器优先放置相关单元,缩短距离→布线器为这些路径分配最短走线,允许绕过标准单元、允许牺牲周边线长→布线完成后自动检查延迟,不达标则局部重布。”
他写完,盯着看了两秒,然后点了点头。
“这个可以做。”
诸葛彪把烟叼在嘴角,含混地说:“还有串扰的问题。cAd版没自动加屏蔽地线,相邻线间距全按同一规则。您那个布线算法里,串扰约束只有一条‘间距不小于最小间距’。但敏感信号和普通信号,不能一个待遇。”
汪涵教授又写了一行伪代码:
“敏感信号标记→布线时自动增加间距、两侧插入地线、禁止临近大电流开关信号。”
他写到一半,停下来,想了想,又加了一行:
“布线完成后自动运行串扰分析,高风险区域局部重布。”
他把这行字又看了一遍,然后抬起头,看着吕辰。
“你说的敏感信号,具体指哪些?”
吕辰走到白板前,拿起红笔,写了几行字。
“时钟信号。时钟沿的抖动和毛刺直接影响全系统时序,必须隔离。”
“复位信号。复位线上的毛刺可能导致系统误复位,整机死机。”
“模拟信号。Adc、dAc的输入输出,对噪声极其敏感。”
“高速并行总线。数据总线的相邻线串扰会导致数据错误。”
他放下笔,转过身。
“这四类信号,只要设计师在原理图上做了标记,布线器就应该特殊对待。”
汪涵教授把这四类信号抄在黑皮本子上,钢笔沙沙地响。
这时,钱兰走到白板前面,拿起蓝笔,在上面写了几个字:电源网格。
“手工版IR drop超标的问题,cAd版虽然没有手工版那么严重,但汪教授,您的电源网格综合,是基于平均电流估算的。”
她在白板上画了一个简图。
“每个门区域的电流消耗不是恒定的。输出缓冲器翻转的时候,电流尖峰可能达到平均值的十倍。您用平均值算出来的电源线宽度,在峰值电流的时候不够。”
她转过身,看着汪涵教授。
“要基于瞬态电流波形来设计电源网格。门级仿真的时候,记录每个门区域的电流随时间变化的波形,找出峰值。然后根据峰值电流来算电源线宽度。”
汪涵教授的眉头皱了一下:“门级仿真的数据量很大。16位加法器同时翻转,几千个门在同一时刻产生电流尖峰。要把所有这些数据都存下来,存储柜不够用。”
钱兰想了想:“不需要存全部波形。只存每个门区域的峰值电流,以及峰值出现的时间窗口。布线器根据这个来加宽电源线、插入去耦电容。”
汪涵教授在黑皮本子上记了一笔,又抬起头:“去耦电容的插入,你刚才也提到了。这个可以自动化。在高电流跳变区域附近,自动添加片上去耦电容。电容的值根据电流尖峰的幅度和持续时间来算。”
他在本子上写了几行公式,然后合上本子。
“电源网格的问题,不只是自动加宽走线。还要把分析结果可视化。设计师不能只看一串数字,他要能看见哪儿是灾区。”
他顿了顿:“升级2.0的时候,我尝试写过热力图的代码,但当时觉得算得太慢,跑一颗芯片要三四个小时,就没有加上去。”
他沉默了两秒:“现在看,慢也得跑。设计师看见热力图,就知道这里要加宽电源线。”
吕辰问道:“汪教授,这个热力图,能不能做到交互式的?设计师改了电源网格之后,热力图实时刷新,不用重新跑几个小时?”
汪涵教授想了想:“实时刷新做不到,计算量太大。但可以做到‘增量更新’。设计师只改了一小块区域,系统只重新算那一块,其他区域用缓存数据。这样十几分钟就能出结果。”
他顿了顿,又补了一句:“但这需要改存储结构,原来的数据格式不支持增量更新。”
吕辰点了点头:“那就改。存储结构是底层的事,现在不改,以后改更麻烦。”
汪涵教授看了他一眼,没说话,但在本子上又记了一笔。
诸葛彪把烟点着了,吸了一口,慢慢吐出来。
“汪教授,还有一个事儿,可制造性规则自动检查与修复。手工版有锐角、接触孔尺寸不一致;cAd版虽然避免了基础错误,但对金属密度、拐角圆滑度这些‘软规则’没做优化。”
他走到白板前,拿起粉笔,在上面写了几行字。
“禁止小于135度的锐角拐弯,遇到锐角自动切成两个135度角或者弧线。”
“拐角处自动加粗,线宽增加50%,长度是线宽的两倍。”
在金属密度不均匀的地方自动插入tal,让密度均匀化,目标密度50%±10%
接触孔尺寸标准化,同一工艺节点下,所有接触孔直径偏差不超过±0.05微米
他在每一条后面都画了一个问号,看着汪涵教授。
“这些,cAd能不能自动做?”
汪涵教授盯着那几行字看了几秒,然后站起来,走到白板前,拿起粉笔,在诸葛彪的字下面加了几行。
“锐角检测。布线完成后自动扫描所有拐角,发现<135°的自动修正。”
“拐角加粗。在金属拐角处自动添加一个补丁图形,增加线宽。这个补丁的形状和尺寸做成参数化单元,dRc自动认。”
“tal填充。先计算局部金属密度,低于45%的区域自动添加方块形dummy,尺寸和间距可配置。填充后重新检查密度,迭代直到达标。”
他放下粉笔,转过身,看着吕辰。
“这些东西,技术上都能做。但有一个前提。”
他竖起一根手指。
“要有足够精确的工艺模型。拐角加粗多少?tal的最小尺寸是多少?接触孔的标准化公差是多少?这些参数不是我能定的,是6305厂工艺线给的。他们没有,我写不了。”
吕辰点了点头:“这个我去协调。6305厂那边一直在收集工艺数据,应该已经积累了不少。我下周去找他,把参数表格要过来。”
汪涵教授没再说什么,坐回终端前。
钱兰走到白板前,拿起粉笔,又加了一行字:混合信号与定制模块的“保留区”设计。
“汪教授,双轨对比的时候我发现,cAd版在存储阵列、锁相环、模拟比较器这些定制模块上表现很差。自动布线破坏了它们的对称性和匹配性。”
她在白板上画了一个简图,一个大方框,里面画了几个小方框,小方框周围画了一圈虚线。
“我的想法是,引入定制模块边界锁。设计师可以把一块区域标记为保留区,自动布线只允许指定引脚连接,不触碰内部结构。”
她顿了顿,又在旁边画了一个图。
“在保留区内,设计师手工画关键匹配线,比如差分对、电流镜。cAd自动完成外围连接和填充。”
“对于存储单元、运放、比较器这些常用定制模块,建立专用器件库。设计师输入尺寸参数,系统自动生成版图,不需要手工画,也不需要cAd乱布。”
汪涵教授听完,沉默了几秒。
“保留区的想法,技术上可以实现。布线器在布局阶段,把标记为‘保留区’的区域当成障碍物,走线不进去。只从边界上的指定引脚引出连接线。”
他在黑皮本子上飞快地写了几行:
“文件格式要加一个新属性,REGIoN_tYpE,可设为coRE、bLocKAGE、RESERVEd。布线器遇到RESERVEd,跳过内部,只处理边界引脚。”
他写完,抬起头看着钱兰。
“但专用器件库的事,不是我能做的。那需要有人专门画参数化单元的版图,不同工艺节点要重新画。6305厂那边现在5微米和2微米两套工艺,每套都要做。”
钱兰点了点头:“这个我来组织人做。”
汪涵教授继续在本子上写,写完又停下来,看着白板上那满满一板的字。
时钟树综合、串扰感知布线、电源网格热力图、可制造性规则、保留区设计、专用器件库……
每一项都是一座山。
他把钢笔帽拧上,面无表情道:“吕辰,我问你一个事。”
“您说。”
“你们说的这些东西,全部做出来,需要多长时间?”
“如果人手够,两年。”
“两年?”汪涵教授哼了一声,“我程序设计院现在满打满算才几个人,我们要支持昆仑1的微程序库,要帮全国各单位定制算法,要做指令集,你让我这几个人再去搞3.0,你以为我们是生产队的驴?”
他站起来,手指在桌面上敲了两下。
“吕辰,我跟你交个底。你要我做的这些东西,需要的是专门的人,算法工程师、计算几何专家、图形学程序员、数据库工程师。这些人,我一个都没有。”
他看着吕辰:“你让我写微程序,我能写。你让我写解析器、编译器,我也能写。但你让我搞计算几何、搞图论算法、搞大规模数值优化,我不是干这个的。我手底下那些人也不是干这个的。”
他顿了顿,声音低了一些。
“你要我做,可以。拿人来。”
机房里的空气凝滞了几秒。
诸葛彪把烟掐灭在烟灰缸里,走过来拍了拍汪涵教授的肩膀。
“汪教授,您别激动。我们不是在逼您。这些问题,是大家坐下来一起想的。能做多少做多少,做不了的,咱们想办法。”
汪涵教授没理他,看着吕辰。
吕辰沉默了几秒,然后说:“汪教授,您说个数。要多少人?”
汪涵教授竖起两根手指。
“200。再给我200个人,我保证把星河cAd3.0做出来,你们说的这些,一件不落。”
吕辰还没开口,诸葛彪先倒吸了一口凉气。
“200百?汪教授,您这不是要人,是要一个研究所。”
汪涵教授看着他,表情没有任何变化。
“你以为这些东西是好做的?时钟树综合要搞h树平衡算法,串扰感知布线要解电磁场方程,电源网格热力图要跑瞬态电流仿真,可制造性规则要跟工艺线的统计数据对接,保留区设计要改文件格式和布线器核心架构。哪一样是三五个人能啃下来的?”
他掰着手指头数。
“算法组,至少40人。写时钟树综合、串扰感知、热力图核心算法的。”
“图形组,至少30人。做版图浏览器、问题可视化、交互式编辑的。”
“数据库组,至少20人。改存储结构、支持增量更新、做数据版本管理的。”
“测试组,至少20人。写测试用例、跑回归验证、做性能分析的。”
“架构组,至少10人。定总体方案、写接口规范、协调各组进度的。”
“应用组,至少30人。做用户体验、写培训文档、搞技术支持的要算在里边?还要跟6305厂对接工艺参数、跟各设计组对接需求……”
他放下手,看着诸葛彪。
“两百个人,我还觉得紧。”
诸葛彪张了张嘴,没说出话来。
钱兰在旁边轻声说了一句:“汪教授,200个人,星河计划那边能批吗?现在形势不太好,各单位都在压缩。”
汪涵教授看了她一眼,没说话。
吕辰有点麻爪,200个人,一个工程师的工资、津贴、住房、医疗、子女入学……
加上设备、耗材、机时、软件工具的采购和开发,一年下来不是小数目。
但他也知道,汪涵教授说的没错。
星河cAd是芯片设计的基础工具,已经证明了价值,虽然有这样那样的问题,但它的效率是手工的十倍以上。
现在要搞3.0,要解决手工版和cAd版各自暴露出来的问题,200个人,真的不算多。
他想了想:“汪教授,200个人的事,我去找刘教授谈。今天之内给您答复。”
说完,他转身出了机房。
来到刘星海教授的办公室,吕辰敲了敲门框,里面传来一声“进来”。
刘星海坐在办公桌后面,面前摊着一本打开的黑皮本子,手里握着一支钢笔,正在写什么。
他抬起头,看见吕辰:“怎么了?脸色不太好看。”
吕辰在他对面坐下,把事情从头到尾说了一遍。
双轨对比的结果,手工版的问题、cAd版的问题,汪涵教授在机房发的那通火,还有那200个人的需求。
他说的很客观,没有添油加醋,也没有隐瞒什么。
刘星海教授听完,沉默了一会儿:“星河cAd,是我们在不会到会这个阶段交的答卷。能用,有缺点,效率不高,但能用。”
他看着吕辰:“3.0,是要解决好不好的问题。时序收敛、信号完整性、电源完整性、可制造性、混合信号支持,这些不是锦上添花,是芯片设计从手工走向自动化的必经之路。”
他走拿起钢笔,在黑皮本子上写了一行字。
“200个人,我给。星河计划下一批人才招募,编制还没用完。我会去跟国防科委对接,以星河cAd系统研发为课题,面向全国高校和科研院所定向招聘。算法、图形、数据库、编译器方向,200人,分批到位,一年内招满。”
他在本子上又写了一行字,然后抬起头看着吕辰。
“你回去跟汪教授说,人我给他。但有一条……”
他想了想:“算了,我跟一起去。”
两人一前一后出了办公室,往机房走。
汪涵教授站在白板前,白板上又多了几行字,是他在这段时间里想到的新功能。
听见脚步声,他转过头,看见刘星海,愣了一下。
“刘教授。”
刘星海走到他面前,伸出手。
汪涵教授握住他的手,两个人的手掌都很瘦,指节分明,握在一起的时候,像两根老树根纠缠在一起。
刘星海笑呵呵道:“老汪,年轻人办事,难免经验不足。不过冲劲是有的,出发点也不错,就是有些毛躁,咱们多教育就是了,你别往心里去。”
他顿了顿:“200个人,我给你。一年之内,分批到位。”
汪涵教授的手微微抖了一下。
他松开手,然后说了一句让在场所有人都没料到的话。
“老刘,话都说到这份了,就别说什么年轻人急躁,赤子情怀我也有,咱们要做就做彻底一点!”
他站起来,走到白板前,拿起笔,在最下面写了一行字:图形化交互与问题可视化。
“星河cAd 2.0,还是命令行为主。设计师敲命令、看文本输出、自己算、自己猜。设计师不是程序员,他不应该看那些数字。”
他在白板上画了一个方框,代表屏幕。
“3.0,我要做一个图形化版图浏览器。支持缩放、层切换、测量距离、高亮显示特定线网。所有分析结果,时序违例路径、串扰高风险区、IR drop热点,用不同颜色叠加在版图上显示。”
他在方框里画了几个色块,绿的、黄的、红的。
“设计师打开版图,一眼就能看见哪里有问题。红色的区域,说明时序违例;黄色的线,说明串扰风险;暗红色的块,说明IR drop超标。”
他转过身,看着刘星海。
“还要做一个问题导航功能。系统自动列出所有警告和违例,设计师点一下,版图自动定位到对应位置,旁边弹出一个对话框,给出建议修复操作,建议加宽电源线至40微米’、‘建议在相邻线间插入地线’、‘建议将拐角改为135度’。”
他顿了顿,声音提高了一些。
“还要支持双版图比对。设计师可以同时加载手工版和cAd版,并排显示,或者叠加对比。系统自动计算差异区域,标出哪里手工版画得好、哪里cAd版画得好。”
他放下笔,拍了拍手,转过身,看着刘星海和吕辰。
“也别缝缝补补了,要做,就做让人看得见、摸得着、喊得动的cAd。你们把硬件解决了,软件就没问题。但你们要把人给我。”
刘星海看着他,摇了摇头。
“我说了,200个人,一年之内到位。”
他声音低了一些。
“老汪,星河cAd 3.0的事,不是程序设计院一家的事。集成电路实验室要派人参与需求定义,6305厂要提供工艺参数和测试反馈,计算机所要配合做文件格式和接口规范。这是全星河计划的会战,不是你一个人的事。”
他看着汪涵教授,目光里带着一种只有老一辈知识分子之间才懂的东西。
“你放手去做。缺什么,直接找我。”
汪涵教授站在那里,看着刘星海,嘴唇动了动,想说什么,没说出来。
他转过身,走到白板前面,看着那满满一板的字。
时钟树综合、串扰感知布线、电源网格热力图、可制造性规则、保留区设计、专用器件库、图形化交互、问题导航、双版图比对……
“老刘,你放心。这套系统做出来,中国芯片设计,就再也不用靠手工画了。”
刘星海没说话,只是拍了拍他的肩膀。
吕辰站在机房门口,看着白板上那行字,心里有一种说不清的踏实。
200个人,星河cAd 3.0,从今天起,不再是想法了。
《四合院:我是雨水表哥》— 做梦都不放过 著。本章节 第564章 汪教授的怒火 由 玉宇小说库 整理,如需阅读完整章节请翻页。
本章共 7413 字 · 约 18 分钟阅读 · 章节有错误?点此报错
玉宇小说库 全本小说免费阅读网 - 内容仅供交流学习
投诉/建议请发送至 dmca@www.biaobenwu.com,我们会及时处理