熟悉C++和gdb调试工具,能够根据项目需求独立完成API的开发工作和后期维护,有EDA软件开发开发经验
了解数字IC后端设计流程和place的基本流程框架,具备数电、模电、微机原理等集成电路相关专业知识背景
熟悉MATLAB,了解Python、C shell、cuda等编程语言并进行辅助开发工作
熟悉基本的Linux指令,git指令,vim指令,tcl指令
Congestion driven global placement子模块开发 2022.9-2023.4
负责Congestion driven global placement中auto_blockage_in_channel和hot area blockage模块的开发与验证,减小place结果造成的congestion,主要工作内容为:
与PE对齐auto_blockage_in_channel和hot area blockage的功能与使用场景,确定实现方案,编写function spec
以channel width构建search box,结合region query,搜索出满足auto_blockage_in_channel要求的channel box
将auto_blockage_in_channe找到的channel box以及hot area box按照垂直方向最大化box的原则进行merge,并将merged box转换成相应的blockage
利用不同case进行基础功能测试,编写对应UT,并实现相关tcl command
Physical cell子模块开发 2023.5-2023.9
负责physical cell中tie cell以及gate array filler cell模块的开发与验证,tie cell用于输出恒定的高/低电平来保护晶体管,gate array filler cell用于在post_mask阶段以尽可能小的代价修改电路设计,主要工作内容为:
调研Tie cell和Gate array filler cell的相关背景知识,和PE对齐功能及使用场景,编写function spec
参考greedy算法,利用pendulum search和diamond search搜索tie cell的最优位置
使用划分bin和bin内随机分布的方式实现Gate array filler cell初始位置的均匀随机分布
编写相关UT,与PV协作,测试并修改相关代码来对齐innovus相应行为,添加相关tcl command
Detail placement子模块开发 2023.10-2023.12
负责detail placement中cost manager模块的开发与验证,用于整合detail placement中的各种cost function,通过cost manager的统一接口进行调用,主要工作内容为:
利用builder模式构建cost manager
实现local density cost和wire length cost,并添加到cost manager中,用来替换detail placement中原有的cost function
利用sum collector分析程序性能,减少运行时间
在wire length cost新增hybrid mode,在180nm工艺的benchmark系列case中,可以在原有wire length不变的情况下,runtime下降5%