LEF 文件是布局布线根据使用的cell 几何信息库的文件格式,下面是一个LEF文件的部分,右边是对他的解释。布局布线工具将根据LEF文件的信息决定怎样布局,怎么走线,怎样生成通孔。

VERSION 5.5;版本说明

NAMESCASESITIVE ON;LEF 区分格式大小写。

BUSBITCHARS "< >";  设置定义bus标志符,端口名称为X<1>,X<2>,...X<n> 将看作bus

UNITS

DATABASE MICRONS 100;  设置定义1微米分成100个unit,即为单位长度的值。

END UNITS

LAYER metal1  设置定义层为金属1层,同时下面是对定义的金属1层的具体细节设置。

  TYPE ROUTING;   定义metal1用于routing

  WIDTH 0.10;  定义金属1层在作为布线金属时,默认线宽为0.1 um

  SPACING 0.30;    定义金属1层的走线间距为0.3um

  PITCH 1.2;  定义金属1层到通孔的距离为1.2

  DIRECTION HORIZONTAL;  金属1层走线方向为水平走线。

  CAPACITANCE CPERSQDIST 0.000140; 该设置定义每一个方块(1x1um)的电容大小。

  RESISTANCE RPERSQ 0.04;  设置每一个金属的方块电阻。

END metal1

LAYER via

TYPE CUT;  定义via为布局布线下的CUT类型,即Metal1 和 Metal2 的通孔

END via

LAYER metal2 该设置定义金属2,与上面的金属1设置类似。

TYPE ROUTING ;

WIDTH 0.30 ;

SPACING 0.30 ;

PITCH 1.20 ;

DIRECTION VERTICAL ; 该设置与金属1层有区别,走线方向为垂直。

CAPACITANCE CPERSQDIST 0.000120 ;

RESISTANCE RPERSQ 0.020000 ;

END metal2

VIA M1_POLY1 DEFAULE  该设置定义怎样产生通孔,这里生成默认情况下metal 与poly1 之间的通孔。这里产生的通孔在上下两层都是default width时产生的,当上下两层不是默认宽度时,有另外的规则定义。

LAYER poly1;

RECT -0.30 -0.30 0.3 0.3 ;  设置定义Poly1(多晶) 的形状。

LAYER cont;

RECT -0.15 -0.15 0.15 0.15;  设置定义cont(接触孔)的形状。

LAYER metal1;

RECT  -0.3 -0.3 -0.3 0.3;  设置定义metal1的形状

END M1_POLY1

VIA M2_M1 DEFAULT 该设置定义默认情况下metal1 与 metal2 之间的通孔。与上面通孔设置类似。

LAYER metal1 ;

RECT -0.30 -0.30 0.30 0.30 ;

LAYER via ;

RECT -0.15 -0.15 0.15 0.15 ;

LAYER metal2 ;

RECT -0.30 -0.30 0.30 0.30 ;

END M2_M1

VIA M3_M2 DEFAULT 该设置定义metal2 与 metal3 之间的通孔。

LAYER metal2 ;

RECT -0.30 -0.30 0.30 0.30 ;

LAYER via2 ;

RECT -0.15 -0.15 0.15 0.15 ;

LAYER metal3 ;

RECT -0.30 -0.30 0.30 0.30 ;

END M3_M2

VIARULE VIAGEN21 GENERATE 与前面通孔设置不同,该设置定义在非默认情况时通孔的生成规则。

LAYER metal1 ;

DIRECTION HORIZONTAL ;

OVERHANG 0.3 ;

metaloverhang 0.0 ;

LAYER metal2 ;

DIRECTION VERTICAL ;

OVERHANG 0.3 ;

metaloverhang 0.0 ;

LAYER via ;

RECT -0.15 -0.15 0.15 0.15 ;

SPACING 0.6 BY 0.6 ;

END VIAGEN21

SITE standard 该设置定义各种site,此处定义标准单元的site。

SYMMETRY y ;

CLASS core ;

SIZE 1.20 BY 10.80 ;

END standard

SITE IO 该设置定义IO 单元的site。

SYMMETRY y ;

CLASS pad ;

SIZE 21.05 BY 70.80 ;

END IO

SITE corner 该设置定义芯片四个拐角上的pad 的site。

CLASS pad ;

SIZE 70.80 BY 70.80 ;

SYMMETRY y r90 ;

END corner

SITE SBlockSite 该设置定义硬核单元block 的site,用于block,如RAM/ROM, HardIP。

CLASS core ;

SIZE 1.00 BY 1.00 ;

END SBlockSite

以上LEF 定义了各种布局布线规则,工具根据这些规则进行布局布线。以上LEF即为布局布线工具使用类似工艺文件性质的LEF数据。

下面定义各种不同cell 的几何信息,提供给布局布线工具使用。

MACRO AOI21_B 该设置定义单元AOI21_B的LEF信息。

ORIGIN 0.00 0.00 ; 该设置定义原点坐标。

SIZE 6.00 BY 10.80 ; 该设置定义单元大小,单位为um

SYMMETRY x y ; 该设置定义工具可以在x y 方向旋转摆放该单元。

SITE standard ; 该设置定义standard site, 该设置说明该单元类型为标准单元,其他类型还有IO,则是SITE为IO。

CLASS CORE ;该设置定义该单元是在芯片内核中使用而不是可以放置在IO的位置。

PIN vdd! 该设置定义电源的名称 pin vdd!。

USE POWER ; 该设置定义vdd!是用于power。

DIRECTION INPUT ; 该设置定义vdd!是输入PIN脚。

SHAPE FEEDTHRU ;

PORT

LAYER metal1 ; 该设置定义该单元的vdd! 的 形状。。

RECT 0.00 9.15 6.00 10.65 ; 该设置定义vdd!的金属1层RECT 矩形形状参数。

END

END vdd!

PIN gnd! 该设置定义地线名称 pin gnd!。

USE GROUND ; 该设置定义gnd!用于地。

DIRECTION INPUT ; 该设置定义gnd!是输入PIN脚。

SHAPE ABUTMENT ;

PORT

LAYER metal1 ;

RECT 0.00 0.15 6.00 1.65 ; 该设置定义gnd!的金属1层RECT 矩形形状参数。

END

END gnd!

PIN Y 该设置定义PIN脚Y。

DIRECTION OUTPUT ; 该设置定义Y 是输出端。

PORT

LAYER metal1 ;

RECT 4.12 2.32 4.28 2.48 ; 该设置定义Y 在金属1层的形状。

RECT 5.32 8.32 5.48 8.48 ;

RECT 5.32 7.12 5.48 7.28 ;

RECT 5.29 5.89 5.51 6.11 ;

RECT 5.29 4.69 5.51 4.91 ;

RECT 5.29 3.49 5.51 3.71 ;

LAYER cont ;

RECT 4.05 3.15 4.35 3.45 ;

RECT 4.05 2.25 4.35 2.55 ;

RECT 5.25 8.10 5.55 8.40 ;

RECT 5.25 7.20 5.55 7.50 ;

END

END Y

OBS 该设置定义OBStruct阻塞的参数, 即下面定义的区域不可以布线(这里是metal1)。

LAYER metal1 ;

RECT 5.09 1.95 5.85 2.71 ;

RECT 5.09 3.29 5.85 3.91 ;

RECT 5.09 4.49 5.85 5.11 ;

RECT 5.09 5.69 5.85 6.31 ;

RECT 5.09 6.89 5.85 7.51 ;

LAYER via ; 该设置定义布局布线工具不可打孔的地方。

RECT 5.28 7.08 5.52 7.32 ;

RECT 5.28 8.28 5.52 8.52 ;

RECT 4.08 2.28 4.32 2.52 ;

END

END AOI21_B

END LIBRARY

1, SITE

SITE standard 该设置定义site。

SYMMETRY y ;

CLASS core ;

SIZE 1.20 BY 10.80 ;

END standard

site 是布局布线工具识别单元中最小的几何单位,一个设计中可能有几种site,site standard 指标准单元的site,site IO 指IO pad 的site。一般说来,cell 的高度是一定的,等于site 的高度,cell 的宽度是site 的整数倍。

2, Via rule

通孔生成规则,布线时,不同层的线连接时需要打通孔,不同的情况需要不同的通孔生成,生成什么样的通孔由LEF 内的通孔生成规则决定。

3, pitch

pitch 是LEF 中一个重要的概念,它定义了将来布线的间距,它对布线的效果有很大的

影响。pitch 就是同一层中金属的间距,布局布线是一个有网格布线器,它布线的最小网格就是1 个pitch,如下图所示。

信号线是沿着网格走的,pitch 大于等于line to via spacing, 即保证1 个格点上走线,相邻格点打孔,孔与线的间距不违反间距规则。在多层布线中,一般定义各层pitch 相同或保持一个简单关系,如1:2,这样保证好的布线效果。pitch 的大小一定要仔细考虑。

4, abstract

一个cell 的完整版图包含了所有层的信息,但是在布局布线工具使用中,并不需要那么多的信息,布局布线工具只要知道pin 的位置、什么地方不能布线、等较少的信息就可以了,这样可以减少数据量,提高处理速度。

如下图所示是一个cell 的版图(layout)和它的LEF的图形描述。布局布线将用cell 的abstract信息来布线。

有一些专门的工具用于将cell 的完整版图转成abstract,如cadence 的abstract generator。

LEF 格式的更多相关文章

  1. 日期格式代码出现两次的错误 ORA-01810

    错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...

  2. 一个粗心的Bug,JSON格式不规范导致AJAX错误

    一.事件回放  今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...

  3. excel 日期/数字格式不生效需要但双击才会生效的解决办法

    原因: Excel2007设置过单元格格式后,并不能立即生效必须挨个双击单元格,才能生效.数据行很多.效率太低. 原因:主要是一些从网上拷贝过来的日期或数字excel默认为文本格式或特殊-中文数字格式 ...

  4. 很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天说下这些格式,明天做个demo

    有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用. 在看之前你可以扫一扫下面几个二维码先看看效果: 1.二维码生成 网址 (URL) 包含网址的 二维码生成 是大家平时最常接触 ...

  5. System.Guid ToString五中格式

    参考:https://msdn.microsoft.com/en-us/library/97af8hh4.aspx 测试代码: using System; using System.Collectio ...

  6. WebApi返回Json格式字符串

    WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉都不怎么好. 先贴一下, 网上给的常用方法吧. 方法一:(改配置法) 找到Global.asax文件,在 ...

  7. 你所能用到的BMP格式介绍

    原理篇: 一.编码的意义. 让我们从一个简单的问题开始,-2&-255(中间的操作符表示and的意思)的结果是多少,这个很简单的问题,但是能够写出解答过程的人并不 多.这个看起来和图片格式没有 ...

  8. 值得注意的ibatis动态sql语法格式

    一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...

  9. Lind.DDD.LindMQ~关于持久化到Redis的消息格式

    回到目录 关于持久化到Redis的消息格式,主要是说在Broker上把消息持久化的过程中,需要存储哪些类型的消息,因为我们的消息是分topic的,而每个topic又有若干个queue组成,而我们的to ...

随机推荐

  1. uniapp-使用心得

    <view class="cu-item flex-sub" :class="index==TabCur?'text-orange cur':''" v- ...

  2. mybatis 自学笔记

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.本页作为自学整理资料,信息来源网络,侵权速联,但大部份经过自己测试.使用说明:本人测试用编辑软件eclipse_st ...

  3. Android开发之adt bundle安装

    这个学期开了一门手机游戏开发的课,所以就接触到了adt bundle,Android开发环境有三种方式,分别是JDK+SDK+Eclipse+ADT.JDK+adt-bundle与JDK+Androi ...

  4. 记录 Spine骨骼动画导入unity 步骤[unity3d 4.6.6版本 2d动画]

    1:准备好unity使用Spine所需要的运行库,可到如下地址 https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine ...

  5. 如何使用 Vue-TCB 快速在 Vue 应用中接入云开发

    什么是 Vue TCB 我自己平时经常会用到 Vue 来开发前端应用.所以,基于 Vue 的插件系统,封装了一个 Vue 插件. 如何使用 1. 安装 vue-tcb 执行如下命令,安装 vue-tc ...

  6. Linux学习记录(一):常用命令

    此篇文章为博主在Linux学习过程中的一些记录,记录在此方便查阅. 常用命令总结 ls 显示目录内容 (list directory contents) ls 不显示隐藏的文件和子目录 ls -a 显 ...

  7. Java连载87-酒店管理系统练习、哈希表、函数

    一.创建一个酒店的房间管理系统 需求:这个酒店有五层,并且1-2层是标准间,3-4层是双人间,5层是豪华间:我们需要实时的显现各个房间的使用状态,并且我们可以预定某一个房间. package com. ...

  8. 离线安装PostgreSQL11.6

    因为客户最近有一台CentOS7的虚拟机,但是没有联网,需要安装离线安装PostgreSQL 1.首先去官网下载离线安装包 https://www.postgresql.org/download/ 说 ...

  9. Luogu2040 | 打开所有的灯 (广搜+状压)

    题目背景 pmshz在玩一个益(ruo)智(zhi)的小游戏,目的是打开九盏灯所有的灯,这样的游戏难倒了pmshz... 题目描述 这个灯很奇(fan)怪(ren),点一下就会将这个灯和其周围四盏灯的 ...

  10. 吴裕雄--天生自然HADOOP操作实验学习笔记:分布式及RPC通信简介

    实验目的 掌握GOF设计模式的代理模式 了解掌握socket编程.java反射.动态代理 了解NIO.多线程 掌握hadoop的RPC框架使用API 实验原理 1.什么是RPC 在hadoop出现以前 ...