The UMLe file system is composed by 4 major file extensions:
There is an additional file format
The UMLe file is the project definition file. It references all of the used cells along with the Rules file and the Layers file. Bellow is the print of a sample file.
LayersConfigFile=Layers.LAY RulesConfigFile=Rules.RUL LayoutFile=ALU.UML LayoutFile=UC.UML LayoutFile=Processor.UML
The format interpretation is straightforward.
Token=Value
All project files must be in the same directory as the project definition file (.UMLe).
The UML file defines a cell's contents. In it you can also find references to other cells ( instantiated cells ), building an hierarchy.
**********************************Universidade do Minho Layout File********************************** FileVersion="1.0.0" Author="Jorge Sottomaior Braga" Organization="UMLe" Description="This Cell implements a standard UC" RulesFile="This token is obsolete" PlugIn="False" LeftUpperCorner=-5990,5993 RightLowerCorner=6066,-6064 Locked="False" Begin Active,2467,401,2525,372,"" SelectN,3297,-5832,3373,-5913,"" Metal2,-3347,4007,-3302,3964,"" InsertFile,"ALU.UML",600,600,"" Text,600,600,"This is the ALU object!",2 End EOF
Please note that some of the parameters referred in the file are for compatibility with previous versions only, and have currently no meaning.
The Rectangle elements in the Begin End section have the following sintax:
[LayerToken],[X1],[Y1],[X2],[Y2],"[Caption]"
The Text elements in the Begin End section have the following sintax:
Text,[X1],[Y1],"[Text]",[Size]
The InsertFile elements in the Begin End section have the following sintax:
InsertFile,"[FileName]",[X1],[Y1],"[Caption]"
The .LAY file stores information about the project layers. These layers are defined accordingly to the technology of the fabrication process.
Layer=255,Poly1,5,Poly1,2 Layer=33023,Poly2,7,Poly2,3 Layer=65280,Active,4,Active,1 Layer=16711680,Metal1,6,Metal1,4 Layer=12632256,Metal2,7,Metal2,5 Layer=8454143,nWell,1,nWell,1 Layer=8421376,SelectN,1,SelectN,1 Layer=12583104,SelectP,1,SelectP,1 Layer=8421504,Poly1Contact,0,Poly1Contact,2 Layer=8421504,Poly2Contact,0,Poly2Contact,3 Layer=8421504,ActiveContact,0,ActiveContact,2
The Layer elements have the following sintax:
Layer=[Color],[Name],[Pattern],[Token],[ZOrder]
Value Description 0 Solid 1 Transparent 2 Horizontal line 3 Vertical line 4 Upward diagonal 5 Downward diagonal 6 Cross 7 Diagonal cross
The .RUL file stores information about Design Rule Check ( DRC) rules. These rules are defined to a particular manufacturer/fabrication process.
Name=UMLe Test Rules Tolerance=0,00201 Rule=True,12,0,False,True,True,True,Poly1,Poly1,rule 0,0 Rule=True,12,0,True,True,True,False,Poly1,Poly2,rule 1,1 Rule=True,12,1,False,True,True,True,Poly2,Poly1,rule 2,2 Rule=True,12,1,False,True,True,False,Poly2,Poly2,rule 3,3 Rule=True,12,1,False,True,True,False,Poly1,Poly1,rule 4,4 Rule=False,12,1,False,False,True,True,Poly1,Poly2,rule 5,5
The Rule elements have the following sintax:
Rule=[Active],[Distance],[DistanceType],[Ignore45],[IgnoreCoincidences],[IgnoreIfL1OutsideL2],[IgnoreIntersections],[Layer1Token],[Layer2Token],[Name],[RuleType]
Value Description 0 Minimum Width 1 Exact Width 2 Not Exist 3 Overlap 4 Spacing 5 Surround 6 Extension
The .XTR file implements a very simple netlist representation.
********************************** Universidade do Minho Netlist File UMLe AddIn - Layout Versus Network ********************************** FET: P1, 3600, 660 SRC: P1.src, 3615, 1380 [P2.drn] GTE: P1.gte, 4350, 675 [] DRN: P1.drn, 5100, 1380 [N1.drn]FET: P2, 1290, 675 SRC: P2.src, 1290, 1395 [N2.src] GTE: P2.gte, 2040, 690 [] DRN: P2.drn, 2775, 1395 [P1.src, N2.drn]FET: N1, 3570, 3255 SRC: N1.src, 3585, 3975 [N2.drn] GTE: N1.gte, 4320, 3270 [] DRN: N1.drn, 5070, 3975 [P1.drn]FET: N2, 1290, 3240 SRC: N2.src, 1290, 3960 [P2.src] GTE: N2.gte, 2040, 3255 [] DRN: N2.drn, 2775, 3960 [P2.drn, N1.src]EOF
The format is defined using the following grammar:
NETLIST ::= FET NETLIST | "eof"FET ::= "fet:" DESCRIPTIONFET "," X "," Y REGIONSREGIONS ::= SOURCE GATE DRAINSOURCE ::= "src:" DESCRIPTIONREG "," X "," Y "[" REGIONLSTGATE ::= "gte:" DESCRIPTIONREG "," X "," Y "[" REGIONLSTDRAIN ::= "drn:" DESCRIPTIONREG "," X "," Y "[" REGIONLSTREGIONLST ::= DESCRIPTIONREG "," REGIONLST | "]"DESCRIPTIONREG ::= stringDESCRIPTIONFET ::= stringX ::= integerY ::= integer