上一个虚拟项目ICer萌新入职虚拟项目完成之后更了一段时间的脚本教程IC萌新的脚本培训教程又重新把那个700行RTL代码的risc处理器重新写了一遍,可以说是非常的忙碌啊(主要是还得上班呢嗷,工作才是第一生产力!)
然后闲着的时间就在想着做第二个虚拟项目了,为什么做第二个呢?因为感觉第一个项目其实设计的难度不太大(当然我写出来的bug也不少哈),验证环境搭建也比较简单,整个项目更加侧重于熟悉流程和设计验证的入门。而且包传输协议更多应用在网络芯片架构中,和现在比较火的处理器方向距离比较远。所以呢第二个虚拟项目就显得挺有必要了。
要说明下,这个数据搬运指令处理模块也是曾经做过的虚拟项目(当然并不涉及到关键技术和专利机密等问题),将其根据我的思路进行重新组织后,形成了完成完整的虚拟项目呈现给大家。和之前的虚拟项目一样,工程托管在gitee上:
ic_virtual_project: 芯片前端萌新培训虚拟项目
设计文档在《MVU芯片前端设计验证虚拟项目》路径下,建议在win环境下查看;代码在mvu_prj路径下,可以在win下查看,需要在linux环境下运行。整个虚拟项目的方案与验证文档、RTL代码、验证环境、lint与综合配置与环境和使用的工具均需要个人完成或进行配置,可以说是全方位的训练了。在完成这个虚拟项目的过程中,会涉及和熟悉七个方面的内容:
- linux工作站使用与git/svn项目托管;
- 模块方案设计与RTL代码实现;
- 验证环境设计与环境实现;
- debug和覆盖率收敛;
- lint与综合流程熟悉;
- 时序收敛和面积功耗优化;
- 项目中的脚本使用与实现;
在开始这个虚拟项目之前,建议可以阅读一下之前写的一篇介绍芯片研发部门日常与项目管理的文章,熟悉一下常见的芯片开发流程:
入职芯片开发部门后,每天摸鱼之外的时间我们要做些什么呢
和上一个虚拟项目一样,本专栏仍旧为收费专栏。如果你已经对芯片前端的设计、验证、flow和脚本比较熟悉或者有比较深的了解,那么借助开源的项目工程是可以独立完成整个虚拟项目的。如果你需要更多的参考以及交流沟通,那么可以考虑购买本专栏来对作者进行支持哈。
本专栏的文章预计会包括以下四部分的内容:
linux工作站使用与git/svn项目托管 | |
git和svn项目托管平台的简单使用说明 | |
linux工作站下工程的配置和使用说明 | |
工程目录组织与使用说明 | |
模块方案设计与RTL代码实现 | |
MVU模块方案熟悉与背景熟悉 | |
MVU FS文档编写与注意事项 | |
MVU子模块DS文档编写与注意事项 | |
MVU寄存器文档编写与RTL代码生成 | |
inst_rece子模块DS与RTL编码 | |
read_path子模块DS与RTL编码 | |
write_path子模块DS与RTL编码 | |
mvu顶层集成的原则与技巧 | |
lint与综合流程熟悉 | |
顶层编译环境生成与验证代码初版本交付 | |
spyglass lint环境组织与lint清理 | |
SDC文件编写与DC综合环境组织 | |
时序面积优化与综合代码出版本交付 | |
验证环境设计与环境实现 | |
验证环境方案思路和文档组织 | |
测试点思路和文档编写 | |
接口分析与agent组件生成 | |
axi ddr/sram验证组件思路与编写 | |
验证环境env与base_teat思路与编写 | |
ral model的生成与合入 | |
reference model编写与合入 | |
sanity_case的编写与通包测试 | |
用例的完善与补充 | |
功能测试点的编写与合入 | |
debug与覆盖率收敛 |
此外,工程中所设计的工具脚本和相关知识点说明我也会添加在本专栏中,不会出现重复购买的问题,请放心。而且我感觉以我现在的精神状态吼,写到后面给自己写急眼了我是一定会涨价的,我现在看这个数字就不太顺眼了!
整个虚拟项目的内容还是比较多的,持续时间可能也会比较长,如果感兴趣就一起动起来!
第二个IC前端虚拟项目