常规测试首先是mbist测试,原理不用多说,自己看,主要是注意点和考虑点:
1、明确测试用的到func_clk的频率的大小,根据经验值一般大于800M的时钟需要特别考虑Timing的问题:由于pr摆放的位置原因,要提前做好时序slack的考虑,一般在mem_iterf的data_in输入啊上加入打拍cell,来保证时序(setup)紧张的问题。切记func_ck---path上不允许有额外dft_insert。
2、是否做repair修复逻辑,也是根据经验值规格大于32K以及gen_mem_lib_owner是否带冗余逻辑信息来决定是否做此设计。
3、sram外围是否做mem_bypass逻辑?采用T工具做?还是自己写TCL做?覆盖率的高低需要自己try,新增面积后端pr是否接受?
sram内部是否存在bypass逻辑?DFRAM信号如何case?可以检阅对应的工艺厂商的sram_user_guide。
sram是否支持上chain方案?sram的address以及wen/ren信号是否测得到?try_run评估覆盖率和做address以及wen/ren信号的bypass方案。
采用mem_tcd方式串进链,需要手动check是否所有的sram_instance匹对对应的tcd。
4、检阅工艺厂商的sram_user_guide来判断对sram_instance上的一些pins建议值,用于仿真指导,以及tdr接管约束。
5、注意mbist_log中缺失bb,以及补充以及对atpg覆盖率的影响;注意warning的检查
6、注意sram的时序问题,由于pr位置。默认工具自己划分控制器,根据需要可以采用pr提供的mem_group_list或者def坐标文件来划分。一般一个控制器下挂三个step,每个step下挂15个sram。rom单独分组
7、注意atpg_cell_lib、mem_lib等comm_file_List文件类型的选取,保证环境的正确性。根据综合网表中std_cell类型判断。
8、注意mbist_sdc问题:首先确认是否有分频逻辑?其次明确时钟来源?频率大小?
同时判断分频逻辑是由什么构成?icg还是普通的reg分频?switc结构?接管mux掉?pr是否接受加入mux_cell?mux插入位置?还是接管控制信号?最终目的是保证一路可控的clk过去驱动sram。
同时merge结构中的分频点的生成时钟到吐出来的sdc文件中,release给后端
mbist_sdc容易缺失的原因:主要是分频点导致;其次是专用的mbist_clk。
都需要在mbist_inster的时候creat_clk -lable 映射出去。