查看工艺库(TSMC 90nm 或者SMIC 180nm )中NAND的面积
使用Design Complier进行综合得到的Total cell area是实际面积,但是论文中都是用的等效门(GE)。为了方便,一般是把2输入NAND门作为参考,等效门数(综合的门级数)是将综合得到的面积除以2输入NAND门的面积,计算公式为:等效门数=\(\frac{\text{总面积}}{\text{NAND2的面积}}\)
工艺库 | NAND2X1面积(2表示2输入,X1表示驱动) |
---|---|
SMIC 180nm | 9.979200 平方微米 |
TSMC 90nm | 2.8224平方微米 |
下面给出具体查询NAND面积的方法
1. 查询 SMIC180nm 中 NAND2X1 的面积
1. 1. 首先要找到工艺库.lib文件的地址(如果知道地址,这步省略)
如果不知道具体的位置,那么就直接在\home里面找,使用find搜索.lib文件:
find /home -name "*.lib"
如果知道在某个文件夹,比如我把下载的SMIC180nm 的工艺库放在了/home/ICer/SMIC180里,那么我就可以直接在这个文件夹里找:
find /home/ICer/SMIC180 -name "*.lib"
在输出结果中找到了想要的文件地址,如下:
[ICer@IC_EDA /home/ICer]$find /home/ICer/SMIC180 -name "*.lib"
/home/ICer/SMIC180/smic180/std_cell/fb_2005q4v1/aci/sc-x/synopsys/fast.lib
/home/ICer/SMIC180/smic180/std_cell/fb_2005q4v1/aci/sc-x/synopsys/slow.lib
/home/ICer/SMIC180/smic180/std_cell/fb_2005q4v1/aci/sc-x/synopsys/typical.lib
可以看到我这里这里有三种,fast.lib,slow.lib和typical.lib
1. 2. 接下来直接解析 .lib文件,查看单元面积:
grep -A 10 "cell *(NAND2X1)" /home/ICer/SMIC180/smic180/std_cell/fb_2005q4v1/aci/sc-x/synopsys/typical.lib
其中/home/ICer/SMIC180/smic180/std_cell/fb_2005q4v1/aci/sc-x/synopsys/typical.lib是存放工艺库的地址 ,NAND2X1是想找的单元。输出结果如下,说明SMIC 180nm中NAND2X1的面积是9.979200 平方微米。
[ICer@IC_EDA /home/ICer]$grep -A 10 "cell *(NAND2X1)" /home/ICer/SMIC180/smic180/std_cell/fb_2005q4v1/aci/sc-x/synopsys/typical.lib
cell (NAND2X1) {
cell_footprint : nand2;
area : 9.979200;
pin(A) {
direction : input;
capacitance : 0.004328;
}
pin(B) {
direction : input;
capacitance : 0.004047;
}
另外也可以查看fast.lib,slow.lib中的NAND2X1的面积:
grep -A 10 "cell *(NAND2X1)" /home/ICer/SMIC180/smic180/std_cell/fb_2005q4v1/aci/sc-x/synopsys/fast.lib
grep -A 10 "cell *(NAND2X1)" /home/ICer/SMIC180/smic180/std_cell/fb_2005q4v1/aci/sc-x/synopsys/slow.lib
2. 查询 TSMC 90nm 中 NAND2X1 的面积
方法和上面一样,先找.lib文件的地址,再解析NAND单元。
假设我不知道TSMC 90nm的.lib文件在哪,首先用find广泛寻找:
find /home -name "*.lib"
输出的结果中可以找到想要的地址,如下:
/home/ic_libs/TSMC.90/aci/sc-x/synopsys/fast.lib
/home/ic_libs/TSMC.90/aci/sc-x/synopsys/slow.lib
/home/ic_libs/TSMC.90/aci/sc-x/synopsys/fastz.lib
/home/ic_libs/TSMC.90/aci/sc-x/synopsys/typical.lib
/home/ic_libs/TSMC.90/aci/sc-x/synopsys/fast_leakage.lib
/home/ic_libs/TSMC.90/aci/sc-x/synopsys/typical_leakage.lib
接下来利用这个地址查看NAND单元:
grep -A 10 "cell *(NAND2X1)" /home/ic_libs/TSMC.90/aci/sc-x/synopsys/typical.lib
cell (NAND2X1) {
cell_footprint : nand2;
area : 2.822400;
pin(A) {
direction : input;
capacitance : 0.001744;
}
pin(B) {
direction : input;
capacitance : 0.001637;
}
上面的输出结果表明TSMC 90nm中NAND2X1 面积为2.8224平方微米
注:存放.lib的地址可能不同,上面只是我电脑中的地址。不知道怎么放代码输出结果的图片,就把输出结果用两条横线夹起来了。
3. 这里也存放一些其他cell的面积
3. 1.使用grey命令查看库里有哪些cell(如果知道cell的名称,该步骤可以省略)
grep "^cell" your.lib
其中your.lib是工艺库的地址,这个命名会输出类似结果:
cell (ADDFHX1) {
cell (ADDFHX2) {
cell (ADDFHX4) {
cell (ADDFHXL) {
然后利用1中的方法查看这些cell的面积,只需要把1中的NAND2X1改成其他cell名称
3. 2.也可以直接查看所有cell及其面积
grep -A 2 "^cell" your.lib
其中your.lib是工艺库的地址,grep -A 2 "^cell"是找出cell开头并显示后2行(因为area显示在cell(...)的第二行,这里显示2行就足够了),这个命名会输出类似结果:
cell (ADDFHX1) {
cell_footprint : addfh;
area : 76.507200;
cell (ADDFHX2) {
cell_footprint : addfh;
area : 113.097600;
cell (ADDFHX4) {
cell_footprint : addfh;
area : 116.424000;
3. 3.常见cell的面积记录
cell | area | GE | |
---|---|---|---|
SMIC 180nm | NAND2X1 | 9.979200 | 1GE |
SMIC180 | NOR2X1(nor2) | 9.979200 | 1GE |
SMIC180 | AND2X1(and2) | 13.305600 | 1.3333GE |
SMIC180 | OR2X1(or2) | 13.305600 | 1.3333GE |
SMIC180 | XOR2X1(xor2) | 26.611200 | 2.6666GE |
SMIC180 | XNOR2X1(xnor2) | 26.611200 | 2.6666GE |
SMIC180 | AND3X1(and3) | 16.632000 |