提升EDA软件水平应从建立“工业软件意识”开始
随着国际形势的变化,EDA软件的关键作用凸显,引起了专家、从业人员甚至是普罗大众的关注。就如何发展 EDA 软件,诸多专家学者也多次发表意见、建言献策,其中也不乏大有见地的发言。然而就笔者看来,仅仅将目光局限在 EDA 软件,很难厘清我国EDA软件落后的真正原因。对待EDA软件应该从整个“工业软件”的视角入手,从我国长期以来缺乏“工业软件意识”中去寻找落后的根源和改变的方法。本文将从这一问题切入,探讨如何更好地发展EDA软件。
1.从几个故事开始
在开始这个沉重而严肃的话题之前,笔者准备先讲述几个身边的小故事。
故事一:“编程大神”的落寞
2005 年,笔者还是一名本科生,笔者的班上有一位“编程大神”。为了行文方便,以下将其简称为“B 大神”。B 大神很早就展现出很强的编程能力。大三时 B大神参与了学校一个科研团队的流片后的IC测试项目,测试项目的内容是手动使用测试仪器测得一些数据后填写到Excel中加以分析。一共有5位本科生和硕士生参与了该项目。B大神辛苦地干了两天以后觉得这种方法实在是过于痛苦,在认真熟悉了各种测试仪器半天后,B大神又用了一天左右的时间编写了一个程序实现了自动测试与分析。一时间,B大神被惊为天人。
后来该芯片团队的老师了解到B大神的成果也赞叹不已,极力劝说B大神跟自己读研。然而临近研究生毕业之时,B大神发现自己居然只能以“嵌入式软件开发”的方向去应聘各类工作。几经辗转,最后被成都的一家本土IC公司录用为“嵌入式软件工程师”。而当年那些技术水平不如他的同学,由于选择了纯软件或IC设计方向,在毕业之时都有比较明确的去向。为此B大神苦恼不已,也后悔不已。此后的岁月中他几经波折,也曾经在APP最疯狂的那几年自主创业过几次,但很可惜都无果而终。最终他还是又回到了另外一家“知名”IC公司在成都的分部,还是从事IC应用开发和嵌入式系统设计。
后来有机会和B大神闲聊,谈到目前国内IC设计公司从业人员最缺乏的能力是什么时,他说道:“应该说还是IT技术能力太低。和我们合作的国外工程师(这家IC设计公司的IP来源和技术源头之一)可以很熟练地利用各种IT技术搭建自动化的设计、验证平台,并把一些重复的流程用IT技术固化为自有的一些小工具。而我们的工程师普遍缺乏这样的能力,业务主管往往也缺乏这种能力创建的概念。”
那一刻他的眼中闪烁着光芒,不知道他是否想起 2005 年的那个夏天,他用自己的IT技术能力,一天之内完成了别人一个星期的工作量。而此刻,他依然只是一个“资深”的技术人员而非技术主管,只能在自己多年的好友面前敞开心扉谈论一些看法。
(后记:在近两年IC大发展的浪潮中,B大神终于得以在一家知名“独角兽”芯片设计公司发光发热,迎来了迟来的春天。)
故事二:那个“硬件不通,软件不精”的女生
故事二的主角是我指导过的一位女生,当时我还在读博士。虽然我那时已留校任教,但说起来她更应该算是我的师妹而非学生。师妹当时做的方向是偏向片上多核系统设计方法学,具体说就是根据设计目标研究如何确定设计方案的“方法”。确定设计方案显然不可能靠拍脑门,可行的方法是首先对于系统进行抽象建模,而后利用各种搜索算法在众多参数中确定最为恰当的参数值。师妹当时做得很努力,我们合作的文章发表在IEEE Embedded System Letter上。
但当就业季来临,相比于其他做FPGA开发、嵌入式系统设计的同学,师妹的就业之路和B大神一样艰难。在师妹面试国内某通信大厂的时候,被面试官下了“硬件不通,软件不精”的评语。师妹回来以后大哭一场,后来有机会进入某金融机构,从此了断与技术的瓜葛。比较讽刺的是,通信大厂后来多次以“社招”名义邀请师妹面试,被师妹很有涵养地婉拒。
(后记:颇具黑色幽默意味的是通信大厂如今号称有“几千人马”投入到EDA的研发之中,当年与师妹同届的那些做芯片设计、验证的同学如今正在为国产EDA技术挥汗如雨,而师妹则在安静地吃瓜、带娃、做一个优雅的“金融女”。)
故事三:“不要砸了别人的饭碗”
说了两个久远的故事,再说两个近一点的。我校示范性微电子学院实施“三个一”工程,即:“完成一条龙IC综合实验,参与一年工程实践教育,实现一次芯片流片”。其中,参与一年工程实践教育中最为重要的就是到企业参加为期半年的实习。
作为校内导师,有一天一位学生突然找到我想聊一下他实习的感想。学生非常不解地问:“我看这帮工程师好像都在混日子,他们每天都在进行一些重复和无效的工作”。我愣了一下,问他何出此言。他说发现该公司的大部分工程师每天都在改各自的脚本文件。但他观察了一个月以后发现其实大部分脚本文件可以合并和参数化。他又用了不到一个月的时间,完成了这项工作,以后完成不同的任务时仅需要进行少量修改,就可以完成项目。如果时间再多一点他会再做一个界面,把参数都通过界面输入后自动生成各种脚本。
他对此疑问的是:“我一个实习生都能想到的办法,为什么这么多老工程师想不到?这样可以显著提升工作效率啊!!”听罢我呵呵一笑:“回去好好干吧,不过你做的东西自己用用就好,以后还可以留个纪念,别砸了别人的饭碗。”
(后记:该同学本科毕业以后未再和我联系,后来听说是出国读研究生去了。)
故事四:“你不是来实习的,你是来扶贫的”
如果说故事三的同学还只是发现了一般的工程师对于工作的懈怠和对 IT 技术的轻视,那么故事四的同学的经历就着实有些“打脸”,打的是我们国内的某些 IC设计公司的脸了。
故事四的同学在国内某知名 IC 设计公司实习,在实习期间发现该公司的流程过于“手工”,很多IC设计流程都没有打通。于是这位同学在实习的业余时间,利用自学的软件编程知识实现了一套基于云平台的IC设计流程整合系统。每个参与流程的设计人员都可以在这套整合系统中看到自己的工作流程、进度,还可以把各种工具取得的数据可视化。从他在实习答辩上展示的成果来看,这套系统的可用程度很高。我问他说:“实习单位对此是什么评价?”他哈哈一笑说:“我的那些师傅和同事们都说我不是来实习的,是来扶贫的。”但是这一笑过后,他这套颇有建树的系统也就没有然后了。
(后记:该同学后来参加考研,好像是考得不太理想,最后的出路未知。)
2.树立“工业软件意识”应从改造观念入手
上面讲的四个故事虽然主角不同、经历不同,但都反映出我们国家的集成电路产业界甚至整个工业领域的“工业软件意识”极其淡泊,对于以信息技术支撑工业设计的理解极不到位。
EDA软件本质是一种工业软件,其目的是提升设计能力、加快设计自动化程度。广义上任何一种用于工业设计、生产、组织、流通环节的软件都可以称为“工业软件”。这种软件本质上和“工业母机”一样,是工业能力的体现。最新被“瓦森纳协定”纳入管制名单的“计算光刻软件(Computational lithography software)”就是一个典型的例子。在纳米级集成电路工艺条件下,光刻机要生成芯片必须依赖于计算光刻软件先行计算、仿真确定生产参数。离开了计算光刻软件,光刻机生产芯片的良率就无法得到保障。
长期以来我们对于 EDA 软件的认识局限化、刻板化,在意识和观念中存在很大不足。国内早在10多年前就高瞻远瞩地提出“以信息化带动工业化,以工业化促进信息化”的方针政策,而目前在 EDA 领域的认识偏差恰恰是对这一方针认识不到位的体现。目前,我们更重视一些有型的、可以直接用于生产的设备或工具,而对提升设备能力、加快生产流程的信息化技术的重视程度非常有限。
这种工业软件思维的缺乏导致的国内学界和产业界对于 EDA 的错误观念主要表现为以下几点:
(1)对EDA软件理解“窄化”和“片面化”,没有从信息技术促进设计能力提升的角度来理解EDA软件,更没有从工业软件的全局来衡量和定义EDA软件。其实信息技术在多个设计/验证环节均能够起到加强设计能力、提升生产效率的作用,提升这些能力必然要以某种软件或程序作为载体,而这些软件或程序都是广义上的EDA软件。但长期以来这些软件或程序不被承认为EDA软件,也得不到足够的重视。其实国内 EDA 软件的起步完全可以走“服务信息产业”的道路,先从一些能够提升设计效率的环节、流程入手。目前没有把这些软件、程序纳入 EDA 工业软件的范畴予以重视和支持,使得一些原生性的 EDA 工业软件,在一开始就得不到承认和支持,以至于“胎死腹中”,这使得我国具有原创性的EDA技术研发找不到生存的土壤。
(2)长期以来,高校和业界将EDA技术更多视为“学习如何使用EDA软件做不同层次的电子系统设计”的工具,很少从工业软件的角度,研究 EDA 的设计方法学。在高校的课程中冠名“EDA技术”的课程一般不讲EDA背后的运行原理,主要介绍硬件描述语言和各种工具的使用方法。出版的“EDA技术”的书籍大多也是同样的情况。国内某些所谓的“EDA协会”不研究EDA技术本身,大多是国外EDA 公司/FPGA 公司的“推广协会”。这种名不符实的现象不但挤占了原本属于真正的EDA技术的学术资源和课程资源,也在青年学子中造成了长期的概念混乱。这种“挤占效应”使得本就不够“肥沃”的土壤上杂草丛生,进一步恶化了本土EDA软件的生态环境。
(3)由于观念的缺失,现有的各种考评机制并不鼓励发展各种自主的 EDA 技术。由于我国在信息技术上是后发国家,我国的信息技术处于“吸收、消化、赶超”的阶段,电子信息产业也长期处于“有所为有所不为”的状态。长期以来,无论是在产业界还是在学术界,我们更加注重那些能够直接“产出”的技术和工作,而对于能力建设的重视程度偏低。具体到集成电路领域,长期习惯依赖既有的、现成的工具软件来产出成果,而对于自主建设一些 EDA 软件,哪怕是辅助性的、广义的EDA 软件,也持否定态度。这种观念在学术界的表现就是“五唯”,而在产业界的表现就是KPI导向的公司短视化的发展策略。这种短视化的考核机制只监督“砍柴”,不鼓励“磨刀”,更不鼓励去“制造伐木锯”。虽然“伐木锯”造好以后能更好地“砍柴”,传播制造“伐木锯”的技术可以帮更多人更好更快地“砍柴”。但大量一线的科研人员、工程师由于时刻担心每天要上交足够的“柴”,而无法真正花费时间、精力和心思去思考如何造“伐木锯”。少部分有兴趣、有追求的科研人员和工程师在这种机制下也备受折磨,逐渐熄灭了研究EDA软件的热情。
从以上分析可以看出,观念上的偏差对我国包括 EDA 软件在内的工业软件造成了长期的损害,对人才培养、学术研究、产品研发及各个公司内部IT能力建设都造成了非常不良的影响。因此,必须从意识上、思想根源上对这个问题加以解决。
3.正本清源,从思想源头上做好EDA人才队伍建设
通过以上分析可以看出,从认识上进行“纠偏”是我国发展 EDA 软件发展急需解决的一个重要问题。而首要问题是培养出一批具备“工业软件思想”的人才,通过这样一支稳定的人才队伍把正确的理念运用到国产 EDA 软件及更为广泛的工业软件开发上。
要想从思想源头上做好 EDA 人才队伍建设,需要从几个方面排除不利影响,造就培养、发掘人才队伍的良好环境。个人建议应从以下几个方面入手:
(1)建议教育部、国家新闻出版署和国家标准化委员会等做好 EDA 技术名词的规范工作。对于出版的教材、书籍中对“EDA技术”的滥用、乱用的行为应尽快予以规范;对于内容中并不包含讲授“EDA技术”的教材、书籍(包括翻译的书籍)的书名应予以改正,用“数字系统设计”“电路设计工具应用”等更符合实际内容的书名加以替代。
(2)建议科技部、国家自然科学基金委等科技主管部门和机构,明确包含EDA软件在内的工业软件研究范畴与范式,保证各级科研范畴中对工业软件的研究支持不滥用、不乱用,切实落到实处。对于针对工业软件这种既不能马上产生经济效益又不能发表论文和申请专利而开展的研究,提供稳定的研究经费支持并进行合理的考核研究,为这类研究保留足够的持续发展空间。
(3)建议教育部及其教指委等部门和机构从专业认证的角度对各校所谓的“EDA技术”的课程大纲、教学内容进行严格核查,对实际上没有讲授EDA技术的课程要予以整改甚至撤销。在此基础上推动高校开设“真正的”EDA技术课程,释放被占用的教育资源来培养真正学习过EDA技术的后备技术人才。
(4)建议各级学会、科协组织对于挂靠/下属的“EDA学会”进行清查和规范,对于没有真正从事EDA学术研究、交流与推广的学会应予以限期整改或改名。
(5)以赛促学,产教融合。通过竞赛搭建国内真正从事EDA相关技术的学者、学生、产业公司之间交流的平台。通过公司出题、学校参与、学生答题的形式,让学生真正认识到产业需求和真正的 EDA 技术在关注什么问题。通过“真刀真枪”的比拼,考查各个学校在 EDA 软件领域的培养成果。以此推动培养一批真正具备“工业软件”意识、熟悉EDA技术背后关键科学理论和方法学的年轻学子,为产业培养足够的后备军。
(6)通过网络课堂、直播讲座等方式对已经工作的年轻从业人员进行培训,将工业软件的意识更加广泛地传播开,鼓励他们尝试在自己的工作中利用信息技术提升设计自动化水平。
(7)对于企业中开展的 EDA 软件等工业软件的研究应予以扶持,通过知识产权保护、高新企业认定等政策鼓励企业对自身员工自主开展相关研究予以保护和支持,从而推动国内EDA技术的原发性生长。
以上是本人对于国产EDA技术发展的一些观察和建议。
作者简介:
黄乐天,电子科技大学电子科学与工程学院副教授,电子科技大学博士,CCF集成电路设计专业组委员。主要研究方向为计算机系统架构与系统级芯片设计方法学,已在IEEE Transactions on Computers(CCF A类期刊)等高水平期刊和 CODE+ISSS、FCCM、ASPDAC 等顶级会议上发表高水平论文 50 余篇,申请专利20余项,出版学术著作1部。参加工作以来主持和参与过国家自然科学基金项目重点项目、国家科技重大专项、国家“863”重点研究计划等国家级重点科研项目,曾荣获Altera公司(Intel PSG)金牌培训师,第七、第八、第十二届研究生电子设计大赛优秀指导教师,电子科大网络名师等称号。先后担任过多个国际会议的PC Chair、TPC Chair、Special Session Chair、Session Chair等学术职务。