关于encounter里加IO pad的流程问题
于是我才明白IO是一直有的,关键词应该是Pad。
现在我在服务器上找到了关于IO的两个库: gp_inline_IO 和 gp_staggered_IO
我虽然不理解区别在何处,但是随便选择了gp_inline_IO然后解压到我项目文件夹里。
打开手册以后,发现所谓的IO就是cell嘛,估计用法和standard cells (XOR, ADD.....)一样吧?
手册里提到support cell包括:
PCORNER, PFILL, PVDD, PVSS, PDVDD, PDVSS, PBBREAK, PANALOG, PAVDD, PAVSS (cell_list里查有300多个)
根本不知道怎么用呢。
一般是写在DC生成的gatelevelnetlist.v里面吗(然后不需要综合,直接import到encounter里面吗)?
假如需要DC综合,必须用到.db 和.sldb 吧,但是我没有找到.sldb.
如果需要encounter,必须用到.lib 和 .lef 文件,我都找到了。
请问具体流程是怎样的?如何在verilog里加上IO cell?
试了一整天,终于能让encounter出现IO pad 了
我本来希望工具能自动地给我default的IO pad结果,压根没有反应。
于是,我照着好不容易找到的具体例子,在我的netlist.v里面,例化了PANALOG这个cell:
module Chip(clkout,rst_nout,ACKout);
input clkout,rst_nout;
output ACKout;
MYDESIGN mydesign(clk, rst_n, ACK);
PANALOG Pad_I1 (.PADR1(clkout), .P(clk));
PANALOG Pad_I2 (.PADR1(rst_nout), .P(rst_n));
PANALOG Pad_O1 (.PADR1(ACKout), .P(ACK));
endmodule
没有经过DC综合,所以似乎.db和.sldb没有用。然后在SoC encounter里面加上 io 对应的 .lef 文件就成了。终于成功了,希望分享给和我一样的新手们。
不过我还是有2个问题:
1)我在网上搜了很长时间,感觉有不改写verilog代码,就能按照EDA工具默认推荐的设置,给设计自动加上IO Pad的, 请高手指点啊。
2)我现在知道这样一种流程了,但是具体,选择什么PAD都不知道(比如,我这是数字电路,结果我只是看PANALOG的cell简单,只有2个端口,所以就选用它了),感觉不对,还看到有的PAD cell竟然有好几个端口。我都不敢碰了
对于PCORNER, PFILL, PVDD, PVSS, PDVDD, PDVSS, PBBREAK, PANALOG, PAVDD, PAVSS 这些cell,我们手册里只是很简略的说了下,根本没细讲。请问普通的数字电路的信号IO,比如CLK,RESER, A,B,Y一般IO都是怎么选择和设置的呢?
听说CLK信号需要特殊对待.
我知道选择IO时,只要是考虑driving和fanout的关系。
这些在datasheet上都没有体现。
bang ding ding