[ 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 Purpose Pair ( lpp ) 联系起来。

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 无法找到对应关系。(老版本中是这样,新版本貌似不需要了)
posted @ 2020-07-30 19:55  YEUNGCHIE  阅读(9470)  评论(1编辑  收藏  举报