在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: damonzhao

[讨论] 后端基本概念讨论专用贴

[复制链接]
发表于 2013-6-23 00:32:51 | 显示全部楼层
回复 210# damonzhao


   谢谢版主,上面那个问题是我从头开始翻帖子看你回复时候自己凭空想象的。下面是我这周刚开始开始用ICC时候用到的(有点罗嗦,麻烦了):我的库的 目录结构 tsmc65fb_tsmc65gp-rvt_sc-adv10-v21_2008q2v1      fb_TSMCHOME_tpzn65lpgv2_140b                sc12_base_rvt           TSMC_65n_mc_2port_RF  TSMC_65n_mc_SP_SRAM
fb_tsmc65gp-rvt_sc-adv10-v21-pmk_2008q2v1  ft_tsmc65gp-rvt_1p0v_sc-adv10-v21_2008q2v1  T-N65-CL-SP-036-B4_11a  TSMC_65n_mc_DP_SRAM
fb_TSMCHOME_BondPad_tpbn65gv_140a          PDK_CMN65GP_1.8V_v1.2a_official_20091208    TSMC_65n_mc_1port_RF    TSMC_65n_mc_ROM



问题1:.对于physical libraries ,是不是一定要包含在一个milyway库内。我看文档说要通过milyway 去转换GDS2 或是 lef 生成milyway,fb_tsmc65gp-rvt_sc-adv10-v21_2008q2v1/aci/sc-ad10 目录下是这样的:
astro  cell_list  doc  gds2  lef  lpe_netlist  lvs_netlist  primetime  symbols  synopsys  verilog  vhdl
其中astro目录是:
clf                    defineTracks_3X1Z.cmd  defineTracks_4X2Z.cmd  defineTracks_6X1Z.cmd  gds2InLayer.map   README
defineTracks_2X1Z.cmd  defineTracks_3X2Z.cmd  defineTracks_5X1Z.cmd  defineTracks_6X2Z.cmd  gds2OutLayer.map  tf
defineTracks_2X2Z.cmd  defineTracks_4X1Z.cmd  defineTracks_5X2Z.cmd  gds2Arcs.map           plib              tsmc_cln65_sc_a10_rvt

其中 tsmc_cln65_sc_a10_rvt “应该是个milyway库,我在ICC中创建库的时候,这个目录能被识别成 L 样式”


CEL  FRAM  lib  lib_1  lib_2  lib_bck
这个CEL目录下 有很多类似 XOR3X4MA10TR:2  的文件。
那么我在ICC中创建库的时候,在reference libraries 中 选上上面这个  tsmc_cln65_sc_a10_rvt 是不是,物理库的信息就被加上了,还是仍然需要通过lef或是GDS2文件来生成?


问题2:
在另外一个目录下:tsmc65/sc12_base_rvt/r3p0-00eac0/milkyway 有几个子目录
CN65S_6M_3X2Z  CN65S_6M_4X1Z  CN65S_7M_4X2Y  CN65S_7M_4X2Z  CN65S_7M_5X1Z  CN65S_8M_5X2Z  CN65S_8M_6X1Z  CN65S_9M_6X2Z
每个下面都有
sc12_cln65gplus_base_rvt目录 下面都有
CEL  FRAM  lib  lib_1  lib_2  lib_bck
其中这些CEL里面只有一个unitTile_1 文件。 FRAM目录下有很多 类似 XOR3_X4M_A12TR_1 的文件。
6M_3X2Z  ,这些数字代表什么,我应该如何去选择?
sc12_base_rvt 目录下面是没有 .tf 文件的,但是在 fb_tsmc65gp-rvt_sc-adv10-v21_2008q2v1/aci/sc-ad10/astro/tf 目录下有
tsmc_cln65_a10_2X1Z.tf  tsmc_cln65_a10_3X1Z.tf  tsmc_cln65_a10_4X1Z.tf  tsmc_cln65_a10_5X1Z.tf  tsmc_cln65_a10_6X1Z.tf
tsmc_cln65_a10_2X2Z.tf  tsmc_cln65_a10_3X2Z.tf  tsmc_cln65_a10_4X2Z.tf  tsmc_cln65_a10_5X2Z.tf  tsmc_cln65_a10_6X2Z.tf
在ICC创建库的时候,可以用这里的.tf 文件,给上面的比如用CN65S_6M_3X2Z做参考库时候用吗?  

问题3:
icc 创建库的时候,reference libraries 我如何确定是填一个还是不填,填reference libraries的根据什么去选一个milyway的库。同样是milyway的库就是目录 被识别成 L 符号的目录,有的内容多,有的少。是不是就是有的包含物理库的信息,有的没有? 那我在什么时候要通过 gds2或是 lef去生成milyway的库?

问题4:
最后,我用tsmc65/fb_tsmc65gp-rvt_sc-adv10-v21_2008q2v1/aci/sc-ad10/astro/tf/tsmc_cln65_a10_6X2Z.tf 参考库选择的 /tsmc65/fb_tsmc65gp-rvt_sc-adv10-v21_2008q2v1/aci/sc-ad10/astro/tsmc_cln65_sc_a10_rvt  
但是有warming(其中一部分如下):
Warning: ContactCode 'CONT1' is missing the attribute 'unitMaxResistance'. (line 1147) (TFCHK-014)
Warning: ContactCode 'CONT1' has undefined or zero enclosures. (line 1147). (TFCHK-073)
Warning: Layer 'M1' has a pitch 0.2 that does not match the recommended wire-to-via pitch 0.225 or 0.185. (TFCHK-049)
Warning: Layer 'M7' has a pitch 0.2 that does not match the recommended wire-to-via pitch 0.41 or 0.35. (TFCHK-049)
Warning: Layer 'M3' has a pitch 0.2 that does not match the doubled pitch 0.4 or tripled pitch 0.6. (TFCHK-050)

设计也换成用 tsmc65/ft_tsmc65gp-rvt_1p0v_sc-adv10-v21_2008q2v1/aci/sc-ad10/synopsys 里面target lib 综合的,现在设计能能读进去,但是还是有warming:bus naming style _<%d> is not consistent with main lib. (MWNL-111)
,这能表示我的icc的第一步的建milyway的库的步骤完成了吗?后面步骤需要的physical library 的信息都包含进去了吗?


发表于 2013-6-23 20:42:27 | 显示全部楼层
还是不太明白你的意思啊楼主啊!!!
发表于 2013-6-24 08:48:10 | 显示全部楼层
回复 211# damonzhao

谢谢版主的解答!
至于anchor cell,在 Timing Constraints and Optimization User Guide和IC Compiler Design Planning User Guide中都有提到,其中有一句是这样说的:
Clock planning inserts anchor cells to isolate the clock trees inside the plan group from the top-level clock tree.
谢谢版主的指导!
 楼主| 发表于 2013-6-24 18:02:49 | 显示全部楼层
回复 214# qioip


   问题1:.对于physical libraries ,是不是一定要包含在一个milyway库内。我看文档说要通过milyway 去转换GDS2 或是 lef 生成milyway,fb_tsmc65gp-rvt_sc-adv10-v21_2008q2v1/aci/sc-ad10 目录下是这样的:
astro  cell_list  doc  gds2  lef  lpe_netlist  lvs_netlist  primetime  symbols  synopsys  verilog  vhdl
其中astro目录是:
clf                    defineTracks_3X1Z.cmd  defineTracks_4X2Z.cmd  defineTracks_6X1Z.cmd  gds2InLayer.map   README
defineTracks_2X1Z.cmd  defineTracks_3X2Z.cmd  defineTracks_5X1Z.cmd  defineTracks_6X2Z.cmd  gds2OutLayer.map  tf
defineTracks_2X2Z.cmd  defineTracks_4X1Z.cmd  defineTracks_5X2Z.cmd  gds2Arcs.map           plib              tsmc_cln65_sc_a10_rvt

其中 tsmc_cln65_sc_a10_rvt “应该是个milyway库,我在ICC中创建库的时候,这个目录能被识别成 L 样式”


CEL  FRAM  lib  lib_1  lib_2  lib_bck
这个CEL目录下 有很多类似 XOR3X4MA10TR:2  的文件。
那么我在ICC中创建库的时候,在reference libraries 中 选上上面这个  tsmc_cln65_sc_a10_rvt 是不是,物理库的信息就被加上了,还是仍然需要通过lef或是GDS2文件来生成?


一般来说,有stdcell的库,IO的库,还有macro的库,你都要作为reference的library 添加的。要知道stdcell库中有什么cell,可以看看那个cell_list,确认下。
tsmc_cln65_sc_a10_rvt就是个stdcell的库。

milkyway转到库一般都是macro的库,那些是通过memory compiler产生的,没有milkyway格式的库数据。





问题2:
在另外一个目录下:tsmc65/sc12_base_rvt/r3p0-00eac0/milkyway 有几个子目录
CN65S_6M_3X2Z  CN65S_6M_4X1Z  CN65S_7M_4X2Y  CN65S_7M_4X2Z  CN65S_7M_5X1Z  CN65S_8M_5X2Z  CN65S_8M_6X1Z  CN65S_9M_6X2Z
每个下面都有
sc12_cln65gplus_base_rvt目录 下面都有
CEL  FRAM  lib  lib_1  lib_2  lib_bck
其中这些CEL里面只有一个unitTile_1 文件。 FRAM目录下有很多 类似 XOR3_X4M_A12TR_1 的文件。
6M_3X2Z  ,这些数字代表什么,我应该如何去选择?
sc12_base_rvt 目录下面是没有 .tf 文件的,但是在 fb_tsmc65gp-rvt_sc-adv10-v21_2008q2v1/aci/sc-ad10/astro/tf 目录下有
tsmc_cln65_a10_2X1Z.tf  tsmc_cln65_a10_3X1Z.tf  tsmc_cln65_a10_4X1Z.tf  tsmc_cln65_a10_5X1Z.tf  tsmc_cln65_a10_6X1Z.tf
tsmc_cln65_a10_2X2Z.tf  tsmc_cln65_a10_3X2Z.tf  tsmc_cln65_a10_4X2Z.tf  tsmc_cln65_a10_5X2Z.tf  tsmc_cln65_a10_6X2Z.tf
在ICC创建库的时候,可以用这里的.tf 文件,给上面的比如用CN65S_6M_3X2Z做参考库时候用吗?  

应该有个readme文件供参考吧。CN65S_XM,这个应该表示是适用于几层metal设计的数据。后面的
_3X2Z就不清楚啥意思了






问题3:
icc 创建库的时候,reference libraries 我如何确定是填一个还是不填,填reference libraries的根据什么去选一个milyway的库。同样是milyway的库就是目录 被识别成 L 符号的目录,有的内容多,有的少。是不是就是有的包含物理库的信息,有的没有? 那我在什么时候要通过 gds2或是 lef去生成milyway的库?

参见问题1解答。

主要看你的设计中需要什么,然后选择用什么做reference library。


问题4:
最后,我用tsmc65/fb_tsmc65gp-rvt_sc-adv10-v21_2008q2v1/aci/sc-ad10/astro/tf/tsmc_cln65_a10_6X2Z.tf 参考库选择的 /tsmc65/fb_tsmc65gp-rvt_sc-adv10-v21_2008q2v1/aci/sc-ad10/astro/tsmc_cln65_sc_a10_rvt  
但是有warming(其中一部分如下):
Warning: ContactCode 'CONT1' is missing the attribute 'unitMaxResistance'. (line 1147) (TFCHK-014)
Warning: ContactCode 'CONT1' has undefined or zero enclosures. (line 1147). (TFCHK-073)
Warning: Layer 'M1' has a pitch 0.2 that does not match the recommended wire-to-via pitch 0.225 or 0.185. (TFCHK-049)
Warning: Layer 'M7' has a pitch 0.2 that does not match the recommended wire-to-via pitch 0.41 or 0.35. (TFCHK-049)
Warning: Layer 'M3' has a pitch 0.2 that does not match the doubled pitch 0.4 or tripled pitch 0.6. (TFCHK-050)

设计也换成用 tsmc65/ft_tsmc65gp-rvt_1p0v_sc-adv10-v21_2008q2v1/aci/sc-ad10/synopsys 里面target lib 综合的,现在设计能能读进去,但是还是有warming:bus naming style _<%d> is not consistent with main lib. (MWNL-111)
,这能表示我的icc的第一步的建milyway的库的步骤完成了吗?后面步骤需要的physical library 的信息都包含进去了吗?



存在上述Warning一般没有什么问题。如果pitch真要是错了的话,最后calibre drc会查出space错误的。
一般来讲,依foundry给ICC的tf文件为准,这种warning可无视。
 楼主| 发表于 2013-6-24 18:03:20 | 显示全部楼层
回复 215# 哇哈


   哪个问题?
 楼主| 发表于 2013-6-24 18:16:37 | 显示全部楼层
回复 216# Alicezw
If there is a level-shifter cell for an interface clock net (a net that comes from the top level
clock net into a plan group), it is interpreted as an anchor cell. Then, during clock planning,
anchor cells are inserted for each interface clock net only as long as they do not cross
voltage areas. This prevents the insertion of buffers and inverters into the wrong voltage
areas. Both plan-group-level clocks and voltage areas now isolated from the top-level clocks.

我貌似懂了,你呢?
发表于 2013-6-24 23:33:42 | 显示全部楼层
回复 216# damonzhao


   谢谢版主的耐心解答,我有点了解了。
发表于 2013-6-25 09:12:49 | 显示全部楼层
回复 218# damonzhao

哦,好的,谢谢您!我消化消化。
发表于 2013-6-25 11:29:26 | 显示全部楼层
咨询一个IO pad 例化的问题:
我的库中 IO pad 仿真用的verilog模型都是这种形式(没有说明文档):
module PDB02DGZ (I, OEN, PAD, C);
    input I, OEN;
    inout PAD;
    output C;

    bufif0      (PAD, I, OEN);
    buf         (C, PAD);

    always @(PAD)
       begin
         if (!$test$plusargs("bus_conflict_off"))
            if ($countdrivers(PAD) && (PAD === 1'bx))
                $display("%t ++BUS CONFLICT++ : %m", $realtime);
       end
    specify
       (I => PAD)=(0, 0);
     (OEN => PAD)=(0, 0, 0, 0, 0, 0);
       (PAD => C)=(0, 0);
    endspecify
endmodule

我例化的时候,也是根据这个来吧?问题就是  I, OENAD;C;  要怎么连接? 是不是 原来设计中的 每一位输入/输出 都要连接一个例化?  OEM使能我原来没用到啊,这个PAD信号是做什么用的? I,C是连接数据的?

谢谢。
发表于 2013-6-25 15:48:33 | 显示全部楼层
clock sinks怎么理解??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-4 16:13 , Processed in 0.029272 second(s), 5 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表