IC设计中就怕想的不全面,导致出现功能故障,以至于需要重新流片。
IC设计中的全局思维: 方案设计与verilog实现 需要面面俱到
设计方案方面:全面
功能点,实现方法,时钟,复位,时序,跨时钟设计 以及后端可实现 需要面面俱到。
代码实现方面
功能实现的各类情况考虑充分,没有遗漏,讲究完全穷尽,相互独立
定位手段添加全面
案例1:遇到功能点代码修改,需要做什么
- 修改代码并进行检查:vcs编译、spyglass lint 等
- 修改相关文档描述:寄存器表格,方案设计描述文档
- 通知验证测试相关人员:通知验证人员变动,确定是否需要修改新增测试用例
- 通知后端实现相关人员:代码变动情况,如RAM/寄存器等资源增加,需要通知到后端实现人员
实际举例2:项目中后期遇到验证故障,需要做什么
- 分析问题原因,是否其他功能点也存在相同的问题。
- 反思是否有办法可以减少此类问题发现的概率:方案评审、代码复盘、添加监控手段
- 修改代码,解决验证故障,重复案例1的步骤
- 反思现在出现问题的原因:为什么此问题现在才发现?验证通过准则有问题?其他测试用例是否存在相同的问题?