The UMLe File System

 

The UMLe file system is composed by 4 major file extensions:

There is an additional file format

The .UMLe File

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

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

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]

 

The .RUL file

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

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 REGIONS 
REGIONS ::= SOURCE GATE DRAIN 
SOURCE ::= "src:" DESCRIPTIONREG "," X "," Y "[" REGIONLST 
GATE ::= "gte:" DESCRIPTIONREG "," X "," Y "[" REGIONLST 
DRAIN ::= "drn:" DESCRIPTIONREG "," X "," Y "[" REGIONLST 
REGIONLST ::= DESCRIPTIONREG "," REGIONLST | "]" 
DESCRIPTIONREG ::= string 
DESCRIPTIONFET ::= string 
X ::= integer 
Y ::= integer