DEF解析

news/2024/10/25 9:30:17/
DEF 全称Design Exchange Format, 用于电路物理信息交互,是将数字实现前后端连接起来的桥梁。目前常用的DEF version 是5.8, 在DEF 中可以定义如下信息,本文不解析每一部分的含义,只概述做物理综合需要的部分信息。DEF file 有如下限定:
  • 标识符的长度不能超过2048 个字符,如net 跟cell 的名字,通常如果设计中的某些cell 名字太长,在综合结束后都会做change_name 的动作,将其名字长度限定在2048 个字符之内;

  • DEF 中的声明都是以";" 结束,而且必须在";"前加一个空格。

  • DEF 中每个section 都只能指定一次,而且以"END SECTION" 结尾,DEF 文件通常都比较大,在拿到DEF 后可以用『 grep END 』来check 在当前的DEF file 中定义了哪些Section. 

  • DEF 中,除了NETS section 中 + ORIGINAL 之外,所有的objects 必须先定义后使用,其中一部分objects 从netlist 中读入,一部分objects 从techlef/lef 中读入,一部分objects 在DEF 中定义。


DEF 头部包含:

  • 生成的工具及工具版本,此处为:Innovus 18.12-s102_1.

  • Linux 的操作系统;

  • 文件生产的日期;

  • 当前设计的名字;

  • 产生DEF 的命令,此处为:defOut -floorplan ../fp.def


units 

DEF 文件的第一部分定义了:
  • DEF 的版本号,此处为5.8;
  • 分割符;
  • 总线比特符;
  • 设计名;
  • Units distance microns, 此处为2000.

其他部分都好理解,需要特别说一下Units, 这个units 的定义不是随心所欲可以改的,协议规定该值必须小于等于tech lef 中在DATABASE MICRONS 中指定的值,最好两边值一致,在某些先进工艺点,如果两个值定义不一致,VIA 会出现偏移。该值用于DEF 中实际距离的计算,如果为2000 则表示 1um = 2000 units, 所有合法值为:


Properties and Die Area


需要在Properties 部分定义DEF 用到的所有Property, 同时Core2Die 的距离也在Properties 部分定义,到目前为止除了7nm H300 其他工艺对Core2Die 的距离无特殊要求,7nm H300 有特别具体的要求,否则会出现Track 偏移的问题。DIEAREA 定义了当前设计的形状及大小,如果是矩形为两个坐标,如果是多边形会有一串坐标。对应的坐标值除以Units distance microns 中units 的值即为实际的距离。

ROWS


所有的std cell 都需要摆放在ROW 上,所以在DEF 中需要将所有用到的SITE 都定义全,SITE 从Tech lef 中读入。

在DEF 中有几个section 的定义都需要指定方向,在ROW 的定义中也会指定方向,DEF 中的有效方向有以下几种。在上例中每两条相邻ROW 的方向差180 度,这样做的目的是:多条ROW 共用电源跟地。

TRACKs


要给每层可用于routing 的layer 定义好track 否则绕线资源不可用。这段原文描述比较好,翻译过来会变味,原文欣赏:" Defines the routing grid for a standard cell-based design. Typically, the routing grid is generated when the floorplan is initialized. The first track is located at an offset from the placement grid set by the OFFSET value for the layer in the LEF file. The track spacing is the PITCH value for the layer defined in LEF."

Components

用于综合的DEF 该部分内容:
  • 所有的hard macro 都应该定义为placed 或fixed.

  • 将所有的physical only cell 都写出来,占位置;

  • 如果有power swtich 最好也写出来,占坑;

  • 所有的hard macro 都应该有lef, 否则工具无法知道其形状,也会报错;

  • 不要把STD cell 写出来,除非某些手工例化且有位置要求的STD cell. 


Pins

此处的pin 指hard macro 的输入输出端口,该部分定义每个pin 的位置,最好每个pin 都assign 好位置,但是通常在实现初期有一些pin 没用到如DFT 的pin, 没有位置可以接受。

VIAs and SPECIALNETs

综合用的DEF 不需要signal nets, 但一定要把Special nets 写出来,尤其对16nm 之后的工艺结点,Special nets 会占去许多绕线资源,对timing 跟Congestion 都有很大影响。
Special nets 部分会用到VIA, 需要将所有用到的VIA 都提前定义好。
  • Lists the names and geometry definitions of all vias in the design. Two types of vias can be listed: fixed vias and generated vias. All vias consist of shapes on three layers: a cut layer and two routing (or masterslice) layers that connect through that cut layer. 
  • A fixed via is defined using rectangles or polygons, and does not use a VIARULE. The fixed via name must mean the same via in all associated LEF and DEF files. 
  • A generated via is defined using VIARULE parameters to indicate that it was derived from a VIARULE GENERATE statement. For a generated via, the via name is only used locally inside this DEF file. The geometry and parameters are maintained, but the name can be freely changed by applications that use this via when writing out LEF and DEF files to avoid possible via name collisions with other DEF files.


Blockages and Regions


Blockages 跟Regions 都属于设计约束,最好不要写到DEF 中,可以单独写到Tcl 文件中,如在Innovus 中用命令: “writeFPlanScript -section” 写出。



综合用的DEF 基本就包括这些内容,至于DEF 的其他部分,以后老驴用到,理解更多有必要的时候再进一步解析。



驴说IC

本文分享自微信公众号 - 陌上风骑驴看IC(MoShangFengQiLv)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。


http://www.ppmy.cn/news/170933.html

相关文章

H323——H239演示功能

1. 概述 H239在ITU文档中实际命名为Role management and additional media channels for ITU-T H.300-series terminals,意为H300系列中断的角色管理和额外没媒体流,H239是H323中用来开启辅流的信令流程规范,会为相关的媒体流添加角色&#…

css系列----纯 css 实现轮播图(自动)

3、纯 css 实现轮播图(自动) 实现原理:利用 css3 中 动画和 overflow:hidden 实现 /* 容器大小 */ .container {height: 300px;width: 800px;overflow: hidden; }/* .wrap */ .wrap {position: relative;left: 0px;width: 2400px;animation: animateImg ease 5s i…

虹科分享 | 近距离接触最新的3个勒索软件

上一期内容为大家讲解了遇到勒索软件时支付或不支付赎金的利弊,以及如何利用Datalocker的产品来防止基于USB的威胁进入你的网络。本期小编将带大家了解当今最新的3个勒索软件,以及Datalocker是如何在这之中起到作用的。了解更多内容,敬请阅读…

虹科分享 | 数据泄露的剖析

数据泄露的剖析 数据泄露是什么,当你发现它们时该怎么做? 可以说,在过去的24个月里,没有哪个词比 "数据泄露 "这个词更能主宰科技界了。在过去的两年里,网络安全事故的头条新闻已经饱和,从影响…

虹科分享 | 如何确保工作场所的网络安全?给您保持企业安全的44个提示

在过去的几年里,对各种规模的企业来说,保持信息的安全和保障是一个挑战。从现场到网上再到混合工作场所的快速转变迫使企业改变,或至少重新审视他们的网络安全做法和协议;他们往往没有做好准备。事实上,根据CyberEdge的…

十条ChatGPT常用的Prompt

Prompt 本文数据来源:Will 3.6-6.16 硅谷,原作者:rowancheung 一,简化复杂的信息 Prompt: 将(主题)分解成更小、更容易理解的部分。使用类比和现实生活中的例子来简化概念并使其更相关 Brea…

Nginx 增加二级目录的反向代理时,最常见的两个问题

当我们想在某个Nginx网站中增加一个两级目录(当然也可以是很多级)作为反向代理时,如果使用常见的单个Nginx反向代理配置的方法,非常容易遇到配置有问题的情况。主要由如下两个问题造成: 1、因为不是独立配置反向代理&…

面试专题:JAVA虚拟机(1)

关于Java虚拟机,在面试的时候一般会问的大多就是①Java内存区域、②虚拟机垃圾算法、③虚拟机垃圾收集 器、④JVM内存管理、⑤JVM调优、⑥Java类加载机制这些问题了。推荐书籍《深入理解Java虚拟机:JVM高级特性 与最佳实践(第二版》、《…