zoukankan      html  css  js  c++  java
  • [ Virtuoso ] display.drf、techfile.tf、tech.db 之间的关系,以及 Packet 在它们之间的作用

    https://www.cnblogs.com/yeungchie/

    一般工艺库下的“技术文件”有 tech.db 和 techfile.tf , Packet 是 display.drf 中的“颜色包”

    1. techfile.tf 内为自然语言,可以用vim等工具直接编辑,tech.db 经过编译。

    2. 函数 tcLoadTechFile(d_tech t_techfile) 并不会修改上述任意一个文件,只会写入虚拟内存,需要手动 save 到上述任一个库才能写入 tech.db 。

    3. Virtuoso 启动时自动加载的不是 techfile.tf ,而是 tech.db 。

    4. display.drf 中含有一个个的 Packet,理解为颜色包 ,techfile 含有 Layer 与 Packet 的对应关系。因此 Packet 像是一个“纽带”,把 display.drf 中的颜色信息跟 techfile 中的 Layer 联系起来。

    hiLayerDispMainForm() 打开 Layer Purpose Pair Editor

    新增自定义的 Packet ,和修改与 Layer 之间的对应关系

    实例问题:海力士 110nm 工艺下(hl110lpf),metal 的 darwing 层与之对应的 TXT (PIN)层为相同的 PacketName ,所以在默认的配置下不容易发现 metal 与 TXT 混淆使用的误操作。(这个问题会导致验证环节难以定位错误)

    解决方法

    1. copy 一份 display.drf 文件,增加新的 PacketName。

    1. copy 一份 techfile.tf 文件(因为 tech.db 无法直接编辑,所以只能对 techfile.tf 操作),修改这几层 TXT 与新增的 PacketName 对应起来。

    图中 M1 ~ M3 已经修改了,M4 ~ M5 未修改可以看到 drawing 和 TXT 为相同的 PKN

    原则上 PDK 自身的文件不建议修改,普通用户也没有权限去修改,因此可以使用下面的方法写入虚拟内存来使用。

    最好让管理员一次性改了得了,一劳永逸。

    let((lib tech)
          lib = ddGetObj("hl110lpf")            ;获取 pdk 库 id
          tech = techGetTechFile(lib)           ;获取 pdk techfile id
          tcLoadTechFile(tech "./techfile.tf")  ;load techfile 文件
          drLoadDrf("./display.drf")            ;load display 文件
    )
    
    • 上一步的操作必须遵循先加载 techfile.tf,再加载 display.drf 的顺序,否则 display 无法找到对应关系。
  • 相关阅读:
    【动态规划】多重背包
    【动态规划】完全背包问题
    【背包问题】0-1背包、完全背包、多重背包、混合三种背包、二位费用背包、分组背包
    HDU1712ACboy needs your help【分组背包】
    关于kettle
    面向接口编程
    MS Sql添加描述信息 及其他信息
    记录我一个特别酷的梦
    EF 线程内唯一对象
    javascript 学习犯错记录
  • 原文地址:https://www.cnblogs.com/yeungchie/p/13406021.html
Copyright © 2011-2022 走看看