Virtuoso 中 display.drf、techfile.tf、tech.db 之间的关系,以及 Packet 在它们之间的作用
https://www.cnblogs.com/yeungchie/
一般工艺库下的“技术文件”有 tech.db 和 techfile.tf , Packet 是 display.drf 中的“颜色包”
其中 tech.db 称为 Reference Technology Libraries (参考技术库)
tech.db 和 techfile.tf 一起称为 Local Technology Library (本地技术库)
techfile.tf 内为自然语言,可以用vim等工具直接编辑,tech.db 经过编译,直接打开显示为乱码。
函数
tcLoadTechFile并不会修改上述任意一个文件,只会写入虚拟内存,需要手动save到上述任一个库才能写入 tech.db 。Virtuoso 启动时自动加载的不是 techfile.tf ,而是 tech.db 。
display.drf 中含有一个个的 Packet,理解为颜色包 ,techfile 含有 Layer 与 Packet 的对应关系。因此 Packet 像是一个“纽带”,把 display.drf 中的颜色信息跟 techfile 中的 Layer 联系起来。
新增自定义的 Packet ,和修改与 Layer 之间的对应关系
实例问题:海力士 110nm 工艺下(hl110lpf),metal 层与之对应的 TXT 层为相同的 PacketName ,所以在默认的配置下不容易发现 metal 与 TXT 混淆使用的误操作。(这个问题会导致验证环节难以定位错误)
解决方法
- copy 一份 display.drf 文件,增加新的 PacketName。

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

- 原则上 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 无法找到对应关系。
Virtuoso 中 display.drf、techfile.tf、tech.db 之间的关系,以及 Packet 在它们之间的作用的更多相关文章
- 通俗易懂理清mybatis中SqlSessionSql、SqlSessionTemplate、SessionFactory和SqlSessionFactoryBean之间的关系
我潇洒的灰大狼又回来啦.今天送大家的一句话是: 保持耐心,永远年轻,永远热泪盈眶. 前言 先容我哭一会儿,呜呜呜~昨晚写了一半的文章,还没保存就盖上盖子准备回家,拔下电源准备把电脑塞进书包带回家完成时 ...
- 关于让simulink中display组件显示二进制的方法
关于让simulink中display组件显示二进制的方法 1.首先需要配置gateway out模块,勾选propagate data type to output 2.配置display模块 fo ...
- DIV中display和visibility属性差别
DIV中display和visibility属性差别 DIV中display和visibility属性差别还是挺大的,虽然Visibility和Display属性都可以达到隐藏页面元素的目的,但它们的 ...
- 浅谈CSS3中display属性的Flex布局
浅谈CSS3中display属性的Flex布局 最近在学习微信小程序,在设计首页布局的时候,新认识了一种布局方式display:flex 1 .container { 2 display: fle ...
- ArcGIS engine中Display类库——Display
转自原文 ArcGIS engine中Display类库——Display Display类库包括了用于显示GIS数据的对象.除了负责实际输出图像的主要显示对象(display object)外,这 ...
- ArcGIS engine中Display类库 (局部刷新)
转自原文 ArcGIS engine中Display类库 (局部刷新) Display类库包括了用于显示GIS数据的对象.除了负责实际输出图像的主要显示对象(display object)外,这个类库 ...
- Tensorflow中的图(tf.Graph)和会话(tf.Session)详解
Tensorflow中的图(tf.Graph)和会话(tf.Session) Tensorflow编程系统 Tensorflow工具或者说深度学习本身就是一个连贯紧密的系统.一般的系统是一个自治独立的 ...
- DB表的关系及EF中Fluent API的使用
现在使用多数的数据库是关系型数据库,那么表与表之间的关系就会显得尤其重要,对于数据的CRUD处理和以后数据的分析有很大的好处.下面是对于数据库中对表关系的理解以及在EF中使用Fluent API来创建 ...
- 【转载】OLE DB, ADO, ODBC关系与区别
原文:OLE DB, ADO, ODBC关系与区别 OLE DB, ADO, ODBC 一. ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(W ...
随机推荐
- 利用FlubuCore用C#来写持续集成和持续部署脚本
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采纳和使用,它的确提供了很多的优势也解决了很多的问题,但是我们也知道也并不是银弹,提供优势的同时它也给我们的开发人员和团队也带来了很多的挑战. ...
- STA树的深度(树型DP)
STA树的深度 题目大意 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=1000000 下面N-1条边. Outpu ...
- Springboot下实现阿里云短信验证功能(含代码)
Springboot下实现阿里云短信验证功能 一 开通阿里云短信服务 阿里云官网注册登录 找到短信服务并开通 打开短信服务的管理台 在国内消息那栏中添加签名管理和模板管理(按照格式要求去写) 在右上角 ...
- android手机的微信H5弹出的软键盘挡住了文本框,如何解决?
window.addEventListener("resize", function () { if (document.activeElement.tagName == &quo ...
- Python 之 Restful API设计规范
理解RESTful架构 Restful API设计指南 理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式 ...
- Zabbix 4.0 API 实践,主机/主机群组 批量添加模板和删除模板
场景 我们日常在管理Zabbix 的时候,经常会需要批量添加模板和批量删除模板,Zabbix页面是提供的批量链接的功能,但是它链接的也只是当前页的主机,我们想扩展这个功能,在链接的时候,可以批量链接整 ...
- python3将字符串unicode转换为中文
在我们的python使用过程中,可能会遇到这样的情况: 我们得到的中文数据是unicode编码类型的,这在python中是没有问题的,可以直接打印显示为中文. 但是,如果我们需要和其它语言或前端进行交 ...
- OSCP Learning Notes - WebApp Exploitation(4)
Local File Inclusion[LFI] Target Pentester Lab: Download from the following website: https://www.vul ...
- Python Ethical Hacking - BACKDOORS(2)
Refactoring - Creating a Listener Class #!/usr/bin/env python import socket class Listener: def __in ...
- 【Docker】Redis 安装使用教程
1.安装 1.1 拉取镜像 docker pull redis redis:4.0 1.2 创建redis容器名"redistest1",并开启持久化 docker run -d ...