I am a Snow fish , a FPGA lovers , The research direction is FPGA Architecture exploration .
Official account , Pull you in “IC Design communication group
”.
@
One 、LEF brief introduction
LEF yes Library Exchange Format Abbreviation , Describes the library information of the design , The library data includes layer、via、placement site type 、macro cell Definition .
1.1 General rules
- Identifier such as net name 、cell name Are limited to 2048 Within characters
- Distance is defined in microns .
- The distance accuracy is determined by
UNITS
Statement control - LEF The statement is semicolon (
;
) ending . There must be a space between the last character of the statement and the semicolon .
1.2 management LEF file
Can be in a LEF The file defines all the library information required for the design ; But doing so will create a large file that is complex and difficult to manage . So you can split the library information into two files , One is “technology
”LEF file , The other is “cell library
”LEF file .
- technology LEF file: process LEF The document contains all process information of the design , For example, layout and routing design rules and layer processing information . One technology LEF The file can include any of the following LEF sentence :
[VERSION statement]
[BUSBITCHARS statement]
[DIVIDERCHAR statement]
[UNITS statement]
[MANUFACTURINGGRID statement]
[USEMINSPACING statement]
[CLEARANCEMEASURE statement ;]
[PROPERTYDEFINITIONS statement]
[FIXEDMASK ;]
[LAYER (Nonrouting) statement
| LAYER (Routing) statement] ...
[MAXVIASTACK statement]
[VIA statement] ...
[VIARULE statement] ...
[VIARULE GENERATE statement] ...
[NONDEFAULTRULE statement] ...
[SITE statement] ...
[BEGINEXT statement] ...
[END LIBRARY]
- cell library LEF file : Cell library LEF The file contains the macro and standard unit information required for the design .
library LEF The file can contain any of the following LEF sentence :
[VERSION statement]
[BUSBITCHARS statement]
[DIVIDERCHAR statement]
[VIA statement] ...
[SITE statement]
[MACRO statement
[PIN statement] ...
[OBS statement ...] ] ...
[BEGINEXT statement] ...
[END LIBRARY]
notes : Read LEF When you file , Must read first technology LEF file, Because in cell library LEF file Will be used in
technology LEF file Some library information defined .
Two 、Layer (Cut)
Define each by assigning names and design rules cut
layer . Every cut Layers must be defined separately . Define layers from the bottom up order . for example :
poly masterslice
cut01 cut
metal1 routing
cut12 cut
metal2 routing
cut23 cut
metal3 routing
This should be easy to understand for friends who have made territory , Namely poly + via + metal1 + via1 + metal2 + via2 +... Multi stack ,cut Layers are actually used to define vias Of .
grammar :
LAYER layerName
TYPE CUT ;
[MASK maskNum ;]
[SPACING cutSpacing
[CENTERTOCENTER]
[SAMENET]
[ LAYER secondLayerName [STACK]
| ADJACENTCUTS {2 | 3 | 4} WITHIN cutWithin [EXCEPTSAMEPGNET]
| PARALLELOVERLAP
| AREA cutArea
]
;] ...
[SPACINGTABLE ORTHOGONAL
{WITHIN cutWithin SPACING orthoSpacing} ... ;]
[ARRAYSPACING [LONGARRAY] [WIDTH viaWidth] CUTSPACING cutSpacing
{ARRAYCUTS arrayCuts SPACING arraySpacing} ... ;]
[WIDTH minWidth ;]
[ENCLOSURE [ABOVE | BELOW] overhang1 overhang2
[ WIDTH minWidth [EXCEPTEXTRACUT cutWithin]
| LENGTH minLength]
;] ...
[PREFERENCLOSURE [ABOVE | BELOW] overhang1 overhang2 [WIDTH minWidth] ;] ...
[RESISTANCE resistancePerCut ;]
[PROPERTY propName propVal ;] ...
[ACCURRENTDENSITY {PEAK | AVERAGE | RMS}
{ value
| FREQUENCY freq_1 freq_2 ... ;
[CUTAREA cutArea_1 cutArea_2 ... ;]
TABLEENTRIES
v_freq_1_cutArea_1 v_freq_1_cutArea_2 ...
v_freq_2_cutArea_1 v_freq_2_cutArea_2 ...
...
} ;]
[DCCURRENTDENSITY AVERAGE
{ value
| CUTAREA cutArea_1 cutArea_2 ... ;
TABLEENTRIES value_1 value_2 ...
} ;]
[ANTENNAMODEL {OXIDE1 | OXIDE2 | OXIDE3 | OXIDE4} ;] ...
[ANTENNAAREARATIO value ;] ...
[ANTENNADIFFAREARATIO {value | PWL ( ( d1 r1 ) ( d2 r2 ) ...)} ;] ...
[ANTENNACUMAREARATIO value ;] ...
[ANTENNACUMDIFFAREARATIO {value | PWL ( ( d1 r1 ) ( d2 r2 ) ...)} ;] ...
[ANTENNAAREAFACTOR value [DIFFUSEONLY] ;] ...
[ANTENNACUMROUTINGPLUSCUT ;]
[ANTENNAGATEPLUSDIFF plusDiffFactor ;]
[ANTENNAAREAMINUSDIFF minusDiffFactor ;]
[ANTENNAAREADIFFREDUCEPWL
( ( diffArea1 diffAreaFactor1 ) ( diffArea2 diffAreaFactor2 ) ...) ; ]
END layerName
example :
LAYER mcon
TYPE CUT ;
WIDTH 0.17 ; # Mcon 1
SPACING 0.19 ; # Mcon 2
ENCLOSURE BELOW 0 0 ; # Mcon 4
ENCLOSURE ABOVE 0.03 0.06 ; # Met1 4 / Met1 5
ANTENNADIFFAREARATIO PWL ( ( 0 3 ) ( 0.0125 3 ) ( 0.0225 3.405 ) ( 22.5 408 ) ) ;
DCCURRENTDENSITY AVERAGE 0.36 ; # mA per via Iavg_max at Tj = 90oC
END mcon
There are many grammars involved here , I will not explain them one by one , When we use it later , Update again , First, explain the above examples .
sentence | describe |
---|---|
WIDTH | Through hole width ( Square ) |
SPACING | Minimum spacing between through holes |
ENCLOSURE | BELOW : Specifies the minimum distance between the through hole boundary and the adjacent metal layer boundary below ABOVE: Specifies the minimum distance between the through hole boundary and the upper adjacent metal layer boundary |
Look at the picture to explain , The width of the through hole refers to the middle square in the figure above ( It's a bit like a rectangle ) Width ,overhang1
It refers to the distance between the left and right sides of the through hole and the metal boundary ,overhang2
It refers to the distance between the upper and lower sides of the through hole and the metal boundary .
and SPACING
Is the spacing between the through holes .
3、 ... and 、Layer(Masterslice or Overlap)
Define... In the design MasterSlice
( Non wiring ) or overlap
layers. Masterslice layers Usually polysilicon layer , Only when the macro cell is on the polysilicon layer pins Will be defined .
grammar :
LAYER layerName
TYPE {MASTERSLICE | OVERLAP} ;
[MASK maskNum ;]
[PROPERTY propName propVal ;] ...
[PROPERTY LEF58_TYPE
"TYPE [NWELL | PWELL | ABOVEDIEEDGE | BELOWDIEEDGE | DIFFUSION | TRIMPOLY | TRIMMETAL | REGION]
];" ;
[PROPERTY LEF58_TRIMMEDMETAL
"TRIMMEDMETAL metalLayer [MASK maskNum]
]; " ;
END layerName
sentence | describe |
---|---|
LAYER layerName | Specify the name of the layer . This name will be used later when referencing this layer . |
TYPE | Specify the purpose of the layer , There are two kinds of - MASTERSLICE : Layer fixed in base array . If pins Appear in the MASTERSLICE Layer , Must define vias To allow the router to connect those pin And the first wiring layer .Masterslice Layers are not allowed to be used for wiring . stay MASTERSLICE A must be defined between the layer and the adjacent wiring layer cut layer - OVERLAP: Layer for line block overlap check . |
example :
LAYER nwell
TYPE MASTERSLICE ;
PROPERTY LEF58_TYPE "TYPE NWELL ;" ;
END nwell
LAYER pwell
TYPE MASTERSLICE ;
PROPERTY LEF58_TYPE "TYPE PWELL ;" ;
END pwell
- More technical articles and learning materials , Please pay attention to my official account :【 Integrated circuit design tutorial 】
- The whole platform is unified :【 Snow fish 】
Cadence Physics library LEF File grammar learning 【 Continuous updating 】 More articles about
- nodejs Grammar learning ( Continuous updating )
Merge objects var o1 = { a: 1 }; var o2 = { b: 2 }; var o3 = { c: 3 }; var obj = Object.assign(o1, o2, o ...
- MongoDB Study —— Continuous updating
Refer to MongoDB Authoritative guide , Learning phase . Let's exchange more questions . Keep updating this article MongoDB Strengths MongoDB Rich data models , It's a document oriented database . easy Expand . It can be used in multiple channels server Between cutting data . ...
- Reading notes |Windows Debugging principle learning | Continuous updating
Learning notes about debugging , Mainly from < Software debugging > Reading notes and video tutorials of dream weaving future Forum 1. The debugger uses an endless loop to listen for debugging information . DebugActiveProcess(PID);while(TRU ...
- flask Plug in family bucket integrated learning --- Continuous updating ing
Have to say flask Your design is better than django It's much smaller and more exquisite , Not so bloated , Retain only the core functionality , Others need to be introduced by themselves , That is, a variety of plug-ins to meet our needs , Here I will record the plug-in usage and some skills used in my learning project ...
- nodejs Study [ Continuous updating ]
1. sign out node process.exit(0) 2. hold API Look at it all from top to bottom , Look familiar first . 3. end
- canvas Learning is constantly updated
Reference resources : Novice tutorial ,canvas course Draw a simple rectangle <body> <canvas id="myCanvas" width="200" hei ...
- java And C# Basic grammatical differences -- Continuous updating
1. Determines whether the strings are equal java : equals() The comparison is the content of the object ( Case sensitive formatting of letters ), But if you use “==” When comparing two objects , Compare the memory addresses of the two objects , So it's not equal . Even if they are equal in content , But it's different ...
- java Summary of terminal input , Input to array 、 Documents, etc. ( Continuous updating )
One : Save the number entered by the keyboard into the array , Unknown array length public class Test{ public static void main(String[] args){ Scanner sc = new Sc ...
- Linux command ( Continuous updating ing)
*. Command syntax : a. When setting parameters , Usually it is “-” Number , For full parameter name , Then input. “--” Symbol ; b. When the instructions are too long , have access to “\” Symbols make instructions continue to the next line ; c. The meaning of various symbols : '' ...
- T-SQL Grammar learning 1 ( Continuous updating )
T-SQL Grammar learning ( One ) Section 1 Rarely used statements Rarely used statements - It refers to some uncommon query statements , Not for business data query SET STATISTICS IO ON( Used to query the number of logical reads , Number of physical reads ) picture sele ...
Random recommendation
- Recommended information —— Most recommended by netizens 30 Share HTML Front end development materials
w3cmark A new column will be added recently , Focus on collecting front-end resources to download , Including e-books related to the front end . file PPT. manual . Video tutorials and so on . The media for downloading is the micro disk of microblog , As for why choose micro disk , That's because it's associated with microblogging , Through the micro disk ...
- PHP: configure: error: mysql configure failed. Please check config.log for more information.
by php increase mysql Wrong module times configure: error: mysql configure failed. Please check config.log for more informat ...
- [Ynoi2019 Simulation game ]Yuno loves sqrt technology III
The main idea of the topic : Here's a long one for you n Sequence a,m Time to ask , The number of times the mode of an interval is queried each time , Forced Online . Their thinking : The author of the question answers the question as everyone knows lxl It's a cancer ,Ynoi All of them are immortal questions First, discretization . After segmentation , Preprocessing Fi, ...
- Flask- Forum development -2-Jinja2 Templates
Yes Flask Interested in , Take a look at this video tutorial :http://study.163.com/course/courseLearn.htm?courseId=1004091002 1. Jinja2 Template Introduction ...
- 170809、 hold list The data in the set is grouped by a certain number
/** * @Desc : segmentation list Bit multiple fixed length list aggregate ( My business needs , Is directly 1w Data segmentation ) * @Author : RICK * @Params: [historyList] * @ ...
- Remastersys--- Make the current ubuntu System image iso, Customize ubuntu System
Remastersys--- Make the current ubuntu System image iso, Customize ubuntu System Remastersys Then software , We just use it to make the current system iso Mirror image , On the one hand, it can be used to back up the system , Second, you can ...
- 3、JVM-- Garbage collection period and memory allocation strategy (1)
Preface : Java And C++ There is a gap between the dynamic allocation of memory and garbage collection technology “ High wall ”, People outside the wall want to go in , The people in the wall came up with . 3.1. summary garbage collection (Garbage Collection,GC), Most people ...
- java File pointer reset
BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("userremain.l ...
- Kali-linux Fingerprint identification of services
To ensure a successful penetration test , You must know the fingerprint information of the service in the target system . Service fingerprint information includes service port . Service name and version, etc . stay Kali in , have access to Nmap and Amap Tools identify fingerprint information . This section describes how to use Nmap and Amap ...
- Scrum Project preparation 4.0
4.0----------------------------------------------- 1. Prepare Kanban . Form reference drawing 4. 2. Mission claim , And mark the claim on the task tag on the Kanban . Take the initiative first ...