数字流程中添加PAD流程总结

想写这个内容大概是在半个月之前吧,苦于没有比较系统的介绍PAD的放置的教程,一直在到处收集摸索,现在把自己的经验大致总结一下:

首先阐明一点,这次放置的PAD只是应项目需要,在芯片外面添加一些备用的框框给后端使用,因此具体到手动添加时,不知道会不会有什么问题(~。~)

1.首先,可以将PAD分为两类,一种是类似VDD/GND/CORNER之类的全局PAD,这种需要在综合之后手动添加到产生的网表中,一种是需要自己去在前端例化的PAD,如输出PAD_OUT,这些可以跟前段工程师进行讨论

2.对于PAD,这个定义,有的人把它定义为芯片外接的金属,我把它暂时考虑为instance,方便理解。

3.所有关于PAD的结构,选择,适用类型,datasheet等内容,都可以在fab提供的doc文件中找到,此处不再赘述啦~


下面就是在放置PAD的时候的流程了:

1.与前端工程师沟通,大致了解需要在芯片设置的管脚数目和位置,根据以上对PAD的分类在综合之前的verilog中添加例化,例如:

...

module sample(in,out); //芯片core

input in;

output out;

endmodule


module top(in_top,out_top);//在顶层文件中例化,添加PAD

BT3320_PM_A PAD_in(.PAD(in),.Z(in_top));//选择合适的PAD结构和类型,例化需要的管脚即可

...

可以看到,例化PAD的过程,不过是在写好的RTL代码外围再添加一层壳子,可以这么理解吧

2.例化之后,用VCS进行前端的综合,然后会生成一系列网表文件:*.sdc *.v 等等

3.打开生成的*.v就可以在里面添加第一种PAD了。例如:

VDD_33_PM PAD_VDD1();//VDD

VDD_18_PM PAD_VDD2();

GND_PM PAD_GND();//GND

CORNER CORNER1();//这里是例化芯片外围的四个CORNER

...

4.完成了在综合产生的网表中添加PAD之后就可以进行encounter的使用了

5.在encounter时,需要注意的一点是,在import design的时候要顺便添加FAB 给提供的IO的lef库,之后的流程就基本与普通的综合无异了。

6.如果需要固定PAD的位置坐标,有一个比较简单的办法:

先按照以上步骤跑个流程出来,然后在完成optimize deign/post-CTS之后保存一下IO file,可以手动修改这个file然后重新开始一个新的版本,只要额外load进去这个io file即可。


你可能感兴趣的:(数字后端,DC,芯片,encounter,PAD,IO)