《05-姚治成.pdf》由会员分享,可在线阅读,更多相关《05-姚治成.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、万众一芯:基于开源众包芯片验证的探索与实践万众一芯验证团队报告人:姚治成2贡献列表谢云龙 刘锦程 姚治成 葛琦 宋方圆 高梓源 杨尚锦 朱金彬 王俊越 陈潇 岳俊宇 饶嘉怡 杨泽辰 周泓韬 李小龙 马久跃 刘珊 安旭 朱航 徐易难 余子濠 陈璐 孟建熠 唐丹 王卅 包云岗万众一芯验证团队当前芯片验证面临的挑战开源众包验证的可行性万众一芯开源验证项目34当前芯片验证面临的挑战传统芯片验证:验证工作量大,占比超过70%验证工程师 设计工程师源代码闭源,属于商业机密,只能在公司内完成验证高端芯片越来越复杂,验证投入也越来越大2024年英伟达GB200 Grace Blackwell有208,000,
2、000,000208,000,000,000个晶体管The 2018 Wilson Research Group Functional Verification Study5当前芯片验证面临的挑战闭源硬件验证城堡/烟囱模式:各验各的,人力成本巨大公司B公司A公司C开源硬件众包验证共享协作平台共享协作平台待验芯待验芯片设计片设计企业企业组织组织学生学生爱好者爱好者协作模式:开源共享开放验证过程、材料工具学习文档测试验证能否开源协作6开源硬件众包验证的可行性基础开源芯片验证工具、IP等已经成熟可用在软件设计、AI数据处理等领域有成熟众包案例Linux kernel(28M LoC)已使用开源开放模
3、式的bug管理(基于开源bugzilla平台)开源的全球众包模式成功有效,ImageNet项目采用该方式收集标注了1400万张图片现有开源验证工具、验证框架等已基本满足验证需求7开源硬件众包验证的可行性挑战:开发者基数少、学习材料少、生态薄弱等49.8%49.8%0.15%0.15%50.5%50.5%2024第一季度各语言Github Push占比49.8%传统软件编程(Python,C/C+,Java,Golang)0.15%传统硬件验证(System Verillog/Verilog)50.5%其他0 01000010000200002000030000300004000040000so
4、ftware testsoftware testhardwarehardwareverificationverification34400339repositoriesrepositoriesGithub上软件测试与硬件验证仓库数对比既然软件从业人数远多于硬件(数量级差距),是否可以让软件开发/测试人员参与到开源芯片验证?8开源硬件众包验证的可行性相同点多:目标相同,都是发现待测试软件/硬件中的缺陷指标类似,都有代码行覆盖率,单元测试,功能覆盖率等指标流程类似,都有编写测试/验证方案,编写测试用例,bug管理与分析,测试报告等方法类似,都需要搭建测试环境,基于测试框架编写测试用例,测试理论通用
5、环境类似,基本都是基于“软件环境”进行管理类似,人员管理,bug管理,质量要求相同不同点少:编程语言不同,软件测试所用语言众多,硬件验证比较单一,主要为 System Verilog,入门难,生态弱待测部分特征不同,电路需要考虑时序(时钟)生态不一样,软件测试生态丰富,框架与案例众多,硬件验证相对封闭,工具与案例匮乏实际上,芯片的大部分验证都是基于软件仿真器进行的,先把“RTL+测试代码”一起转换成C+,然后编译成电路仿真器进行模拟,因此芯片验证某种程度上可以看作软件测试如果不考虑编程语言的差异,且把电路特征进行隐藏(或简单学习),是否软件开发/测试人员就能以其熟悉的方式进行芯片验证呢?9开源
6、硬件众包验证的可行性Life Post Moores Law:The New CAD Frontier(Prof.Mark Horowitz,Stanford University Keynote,MICRO 2023)10万众一芯开源验证(UnityChip Verfication)目标:以开源众包的方式让所有感兴趣的人参与芯片验证挑战一:用哪种语言进行验证挑战三:如何使用现有生态,如何建设生态挑战二:软件层面如何体现电路特征https:/open-verify.cc/Design Under TestAPI硬件生态软件生态挑战一:用哪种语言进行验证1