LEF file contains library information for a class of designs. Library data includes layer, via, placement site type, and macro cell definitions. You can define all of your library information in a single LEF file. However this creates a large file that can be complex and hard to manage. Instead you can devide the information into two files,
1. "technology" LEF file
2. "cell library" LEF file.
Technology LEF file :
This file contains all of the LEF technology information for a design, such as placement and routing design rules, and process information for layers. It may contain following statements
[VERSION statement]
[BUSBITCHARS statement]
[DIVIDERCHAR statement]
[UNITS statement]
[MANUFACTURINGGRID statement]
[USEMINSPACING statement]
[CLEARANCEMEASURE statement ;]
[PROPERTYDEFINITIONS statement]
[LAYER (Nonrouting) statement
| LAYER (Routing) statement] ...
[SPACING statement ]
[MAXVIASTACK statement]
[VIA statement] ...
[VIARULE statement] ...
[VIARULE GENERATE statement] ...
[NONDEFAULTRULE statement] ...
[SITE statement] ...
[BEGINEXT statement] ...
[END LIBRARY]
Cell Library LEF file :
This file includes the macro and standard cell information for a design. This file can include any of the following statements,
[VERSION statement]
[BUSBITCHARS statement]
[DIVIDERCHAR statement]
[VIA statement] ...
[SITE statement]
[MACRO statement
[PIN statement] ...
[OBS statement ...] ] ...
[BEGINEXT statement] ...
[END LIBRARY]
Ok now let us understand in brief what the above statements are used for.
BUSBITCHARS :
Specifies pair of characters that can be used to specify the bus bits.
Example when you are going to use "[]" for specifying bus bit characters, like signal[8:0] then you need to define it before using it as,
BUSBITCHARS "[]" ;
CLEARANCEMEASURE :
Defines the clearance spacing requirement. This is nothing but the spacing between the objects.
This will be applied to pins and blockages in the cells. The two types that you can specify is,
[CLEARANCEMEASURE {MAXXY | EUCLIDEAN} ;]
MAXXY - Uses the largest of x or y for spacing between the objects.
EUCLIDEAN - Uses x2 + y2 distance for spacing.
DIVIDERCHAR :
Specifies the character used for hierarchy separation. Default value is "/"
DIVIDERCHAR "/" ;
BEGINEXT with ENDEXT:
This commands can be used to add new custom syntax or just specify information other than what LEF file is intended for. The tools will ignore them if they are not supported by them. Example :
BEGINEXT "1VSI Signature 1.0"
CREATOR "company name"
DATE "timestamp"
REVISION "revision number"
ENDEXT
LAYER :
This is the most important command since it almost defines 90 % of the LEF file information. The integrated circuit usually has many layers. The number of layers usually differs. The layers need to be defined in the process order from bottom to top as shown,
poly masterslice
cut01 cut
metal1 routing
cut12 cut
metal2 routing
cut23 cut
metal3 routing
.....
You have to visualize the chip in a 3D view something like the picture bellow,
Can you see how the top metal layers are connected to the metal layers bellow ? Those connections are called via. The Cut layer is the one which has the vias. Now let us learn how each layer is defined in LEF file:
1. LAYER (cut) :
Cut layer consist of the 'via' connecting the metal layer above to the layer bellow. There are many attributes that are used to specify the cut layer rules. Let us see them in brief.
ACCURRENTDENSITY - Specifies how much AC current the cut layer of certain area can handle
at a certain frequency.
ANTENNAAREAFACTOR - This is some thing like a derate factor. The metel layers should adhere
to the antenna rules of the technology. In order to calculate the metal
area the actual metal area is multiplied with this area factor. To know in
detail about the antenna effect see process antenna effect.
ANTENNAAREARATIO - Specifies the ratio of metal area to the diffusion area connected to the
metal node.
ANTENNACUMAREARATIO -
No comments :
Post a Comment