UMLe Start Page

UMLe - Universidade do Minho Layout Learning Environment

Welcome to the UMLe documentation. We’ve worked to make this documentation easy to use.

In the right there are a few quick links to some of the major documentation parts.

The UMLe File System
Here you will find a brief description on how the UMLe Data is saved on disc.

UMLe on the Web
Here you will find the UMLe web site.


UMLe File System

The UMLe File System

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

  • UMLe - the project file.
  • UML - the layout file.
  • LAY - the layer configuration file.
  • RUL - the rules configuration file.

There is an additional file format

  • .XTR - the netlist definition file.

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]"
  • [LayerToken] - token that represents the Layer. This token is associated with the Layer defined in the the .LAY file.
  • [X1,Y1,X2,Y2] - rectangle's coordinates. X1,Y1 are the coordinates for the Left Upper corner, and X2,Y2 are the coordinates for the right lower corner.
  • [Caption] - an information string associated with the rectangle.

The Text elements in the Begin End section have the following sintax:

Text,[X1],[Y1],"[Text]",[Size]
  • [X1],[Y1] - the text's insertion point.
  • [Text] - the text you want to insert.
  • [Size] - Text's size.

The InsertFile elements in the Begin End section have the following sintax:

InsertFile,"[FileName]",[X1],[Y1],"[Caption]"
  • [FileName] - name of the file to insert
  • [X1],[Y1] - insertion point.
  • [Caption] - an information string associated with the instanciated cell.

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]
  • [Color] - color that will be used to draw the label. This color is in the RGB format ( 24 bits per pixel ).
  • [Name] - name of the Layer. This is normaly a user-friendly name.
  • [Pattern] - pattern that will be used to render the layer. The pattern can have one of the following values:

    • 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

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]

  • [Active] - indicates if the rule is active. If the rule is active the DRC will check it on the layout.
  • [Distance] - this is the rule's value (e.g. the distance between two elements of the same layer must be at least [Distance]
  • [DistanceType] - this indicates if the rule is defined in Lambda (1) or in absolute value (0)
  • [Ignore45] - this tells the DRC to ignore 45 degrees acute angles.
  • [IgnoreCoincidences] - this tells the DRC to ignore coincidences.
  • [IgnoreIfL1OutsideL2] - this tells the DRC to ignore if Layer 1 is completely outisde Layer 2
  • [IgnoreIntersections] - this tells the DRC to ignore intersections.
  • [Layer1Token] - this represents Layer 1
  • [Layer2Token] - this represents Layer 2
  • [Name] - this is the rule's user-friendly name.
  • [RuleType] - this is the Rules Type. The rule type can be one of the following.

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