背景:对数字芯片进行scan chain测试时会有两种方式,一种是CP测试,一种是FT测试。CP测试可以理解成封装前裸die的测试,FT测试是封装后整颗芯片的测试。想要在FT测试时对数字芯片做scan chain的测试,就需要把多余的port删除。因为不会把所有的数字部分的电路port封装出来。
处理方法:
1.首先,需要具备的文件:.SPF文件(DC综合生成的);网表文件(PR后的.V);spfgen.pl文件(Synopsys安装包里面可以找到/tools/Synopsys/txs_vl-2016.03-sp2/auxx/syn/tmax)。
2.然后,修改网表文件,一般数字PR后的网表包含很多PORT,这时需要修改成只保留与scan的相关port。修改方法:新建一个module只保留scan相关port,然后例化pr后网表的top层,其余port悬空。如下图:
修改前的网表:
修改后的网表:
3.此时做tmax时,run_drc会出错,因为网表改掉后与.spf文件对应不上,所以需要相应的修改.spf文件.手动修改会很累,需要借助脚本进行修改。此时spfgen.pl就起到了作用。
4.先建立一个配置文件,比如说config.txt ,配置文件中需要说明remove掉了哪些port,如:
INPUT_SPF ../../pr/xx.spf
OUTPUT_SPF out.spf
REMOVE_PORT i_input0
REMOVE_PORT i_input1
REMOVE_PORT i_input2
REMOVE_PORT i_input3
REMOVE_PORT i_input4
REMOVE_PORT i_input5
REMOVE_PORT i_input6
...
5.运行 spfgen.pl config.txt则会生成一个新的out.spf文件。
6.用修改后的网表和新生成的.spf文件做tmax,就会得到没有多余port的stil或wgl文件。
7.下图是有多余port和仅有scan相关port的文件对比