007_shared_libs : Shared (Multi-User) library access in Expert
Minimum Required Version: Expert 4.10.39.R
Shared libraries allow users to simultaneously work on the same project across a network. This feature is very useful for teams completing large chips, by area, before final tape-out. If you have proper access rights for a shared library, you can check out cells from it for editing. Only one user can edit any particular cell at a time. The changes become visible to the other users after the cell is saved or checked in.
The shared library consists of one <library_name>.sld file and a lot of (one per cell) <cell_name>.eld files in a <library_name>.cll subdirectory.
1.1. Switch from single-user project to the shared project
Expert provides an easy way to switch from one-user to the multi-user environment. Use File->Save As to convert personal design (Exclusive access) to the Shared Project. A Shared library may be saved on local and network drives.
Steps to execute:
- Load the ex019.eld (single-user project), cancel the Open Cell(s) dialog
- Select File->Save As
- Set the File type to Expert Shared Files(*.sld), which changes the File name to ex019.sld automatically (see save_as_dlg.png ).
- Click the Save button, which saves the library as the shared project, then open that shared project.
- Please check the permission of the created file and subdirectory. If it accesses the cell in the shared project by the design group, it has to set the permission for the design group.
1.2. Editing operations
You should check out any cells for editing. Only one user can edit any particular cell at a time. The changes become visible to the other users after the cell is saved or checked in. These cells are changed in their libraries and other users may check them out. Also the Libraries->Update menu command allows you to update the current library after other users have saved or checked in to this library. The basic flow for the usage of shared libraries is as follows:
- Close the opened project
- Open your work project or start a new one. Be sure that it uses the same technology as ex019.sld
- Set the File type to Expert Files(*.eld), and input work.eld in the File name
- Set the Technology to ex019.tcn, then click the Save button to create the work.eld project
- Set the ex019.sld library as follows:
Select Libraries->Setup
Click the Add button at the upper right of the Library Setup dialog (see libraries_setup.png ).
Click the file browser button (with three dots (...)), change the File type to Expert Shared Files(*.sld), select the ex019.sld on your disk and click Open. Then add the ex019.sld to the Add library dialog and click OK (see add_library_dlg.png ).
To use library cells in your project, activate it by the clicking Activate button at the upper right of the Library Setup dialog (see libraries_setup.png ).
1.3. Project/Library Management
The Library Setup panel contains the list of libraries defined for your workspace. If you open a project that contains cells from some library, this library is automatically activated if it was presented in the list. All other libraries must be added to this list manually using the Add command button. To use cells from a library, activate it by clicking the Activate button (see libraries_setup.png ). For the edited cell (either opened directly or through Edit in Place (EIP) commands) the following version control commands are available directly from the Libraries->Edited Cell and from the Version Control Bar and from the Library Setup dialog.
- Check out the selected cells from shared libraries
You must check out a cell from a shared library when you want to edit. Only one user may check out a particular cell at any given time. The remaining users will see the previous version of the cell until it is checked in. - Cancel check out for the selected cells
These cells remain unchanged in their libraries, and other users may check them out. - Check in the selected cells. Cells are saved automatically before checking in
These cells are changed in their libraries and other users may check them out.
Steps to execute:
- Open ex019 cell in ex019.sld from the Cell->Open .
- ex019 cell is the Read-only. To edit it, Check Out the cell from the Libraries->Edited . Then you can edit the cell.
You can check the status of the cell from the Library Setup dialog (see check_status.png ).
For more details, see "Chapter 16. Libraries and Version Control for a Multi-User Design Environment" in Expert User's Manual.
ex019.tcn
TechnologyID = "Non-named technology, ver. 0.0" Version = 101 Unit = "um" UnitValue = 1 Shapes { AllowOffGridWire = FALSE AllowOffGridEllipse = FALSE ApproximationType = POINTS ApproximationValue = 20 AlignedY = FALSE Circumscribed = FALSE } Layer { Name = "Via" Wire { MiterAngle = 20 Width = 2 Joint = MITER End = EXTEND } Stipple = "STP_H_DENSE4" Color = (255,255,0) ColorName = "cyan" GDS2Num = 10 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Contact" Wire { MiterAngle = 20 Width = 3 Joint = EXTEND End = EXTEND } Stipple = "STP_H_DENSE6" Color = (255,255,255) ColorName = "orange" GDS2Num = 8 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "WellCon" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "0ckbrd_2~" Bitmap = "0000000008000000080000000200000001000100CC00CC0033003300CC00CC0033003300" Color = (255,0,255) ColorName = "magenta" GDS2Num = 23 GDS2DataType = 0 Derive = " LogicForm: &tmp1 = (N-SD.and.NWell).and.Contact; LogicForm: &tmp2 = (P-SD.dif.NWell).and.Contact; LogicForm: WellCon = &tmp1.or.&tmp2;" Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Metal1" Wire { MiterAngle = 20 Width = 0.4 Joint = EXTEND End = EXTEND } Stipple = "STP_H_BDIAG" Color = (0,170,255) ColorName = "blue" GDS2Num = 9 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Poly" Wire { MiterAngle = 20 Width = 0.4 Joint = EXTEND End = BUTT } Stipple = "0diag~15" Bitmap = "000000000800000008000000020000000100010088001100220044008800110022004400" Color = (255,0,0) ColorName = "red" GDS2Num = 5 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "dummy" Wire { MiterAngle = 20 Width = 0.4 Joint = EXTEND End = EXTEND } Stipple = "STP_EMPTY" Color = (255,255,255) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Metal2" Wire { MiterAngle = 20 Width = 0.4 Joint = EXTEND End = EXTEND } Stipple = "STP_H_FDIAG" Color = (255,0,255) GDS2Num = 11 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "N-Act" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "STP_H_DENSE6" Color = (170,170,0) ColorName = "red dark" GDS2Num = 21 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "P-Act" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "STP_H_DENSE6" Color = (170,85,0) ColorName = "yellow dark" GDS2Num = 22 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "NWell" Wire { MiterAngle = 20 Width = 5 Joint = EXTEND End = EXTEND } Stipple = "STP_H_BDIAG" Color = (86,86,86) ColorName = "yellow" GDS2Num = 1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Error" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "9" Bitmap = "0000000008000000080000000200000001000100FF00FF00FF00FF00FF00FF00FF00FF00" Color = (0,255,0) GDS2Num = 0 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Met1_Text" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "0solid" Bitmap = "0000000008000000080000000200000001000100FF00FF00FF00FF00FF00FF00FF00FF00" Color = (255,255,0) ColorName = "yellow" GDS2Num = 9 GDS2DataType = 1 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Poly_Text" Wire { MiterAngle = 20 Width = 2 Joint = EXTEND End = EXTEND } Stipple = "0solid" Bitmap = "0000000008000000080000000200000001000100FF00FF00FF00FF00FF00FF00FF00FF00" Color = (128,128,255) GDS2Num = 5 GDS2DataType = 1 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Met2_Text" Wire { MiterAngle = 20 Width = 2 Joint = EXTEND End = EXTEND } Stipple = "0solid" Bitmap = "0000000008000000080000000200000001000100FF00FF00FF00FF00FF00FF00FF00FF00" Color = (255,0,255) ColorName = "magenta" GDS2Num = 11 GDS2DataType = 2 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "N-Gate" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "0solid" Bitmap = "0000000008000000080000000200000001000100FF00FF00FF00FF00FF00FF00FF00FF00" Color = (0,255,0) ColorName = "green" GDS2Num = 16 GDS2DataType = 0 Derive = "And: Layer1=Poly, Layer2=N-Act, LayerR=N-Gate(16);" Scope = PRIMITIVES UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "N-SD" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "StippleDef" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (255,0,255) ColorName = "magenta" GDS2Num = 18 GDS2DataType = 0 Derive = "Dif: Layer1=N-Act, Layer2=N-Gate, LayerR=N-SD(18);" Scope = PRIMITIVES UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "P-Gate" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "0solid" Bitmap = "0000000008000000080000000200000001000100FF00FF00FF00FF00FF00FF00FF00FF00" Color = (0,255,0) ColorName = "green" GDS2Num = 17 GDS2DataType = 0 Derive = "And: Layer1=Poly, Layer2=P-Act, LayerR=P-Gate(17);" Scope = PRIMITIVES UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "P-SD" Wire { MiterAngle = 20 Width = 1 Joint = EXTEND End = EXTEND } Stipple = "StippleDef" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (0,255,255) ColorName = "cyan" GDS2Num = 19 GDS2DataType = 0 Derive = "Dif: Layer1=P-Act, Layer2=P-Gate, LayerR=P-SD(19);" Scope = PRIMITIVES UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 2 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "GND" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "StippleDef" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (255,0,0) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 4 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "VDD" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "StippleDef" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (255,0,0) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 4 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "PSUB" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "StippleDef" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (255,0,0) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Derive = " substrate: LayerR=&bulk; Dif: Layer1=&bulk, Layer2=NWell, LayerR=PSUB;" Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 4 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "mp_wire" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = BUTT } Stipple = "StippleDef" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (0,255,0) ColorName = "green" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 4 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "block_boundary" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "0void" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (174,87,9) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 4 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "bus_wire" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = BUTT } Stipple = "StippleDef" Bitmap = "000000000800000008000000020000000100010000000000000000000000000000000000" Color = (255,0,0) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE Processing { DesignLayer = TRUE Planar = FALSE ProcessingStep = -1 Operation = 4 StepCoverage = 0 Undercut = 0 Angle = 0 } ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Lay-1" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_DENSE4" Color = (168,152,184) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "resdef" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_DENSE6" Color = (140,212,132) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "FramePin" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_DENSE7" Color = (59,93,41) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Met2_Pin" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_BDIAG" Color = (255,0,0) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "PO" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_BDIAG" Color = (255,0,0) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "DieArea" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_BDIAG" Color = (255,0,0) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Frame" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_BDIAG" Color = (255,0,0) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "Substrate" Wire { MiterAngle = 20 Width = 2 Joint = MITER End = EXTEND } Stipple = "STP_H_BDIAG" Color = (0,0,255) GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Layer { Name = "$$HPX$PORT" Wire { MiterAngle = 20 Width = 0 Joint = EXTEND End = EXTEND } Stipple = "STP_H_DIAGCROSS" Color = (0,255,255) ColorName = "0" GDS2Num = -1 GDS2DataType = 0 Scope = FLAT UseGridParams = FALSE ScratchLayer = FALSE EdgeLayer = FALSE LineStyle = 0 } Device { Type = "p-MOSFET" SpName = "pmos" Params = 0 DevLay { NameL = "P-Gate" TypeL = REC } DevLay { NameL = "P-SD" TypeL = PIN } DevLay { NameL = "Poly" TypeL = PIN } DevLay { NameL = "P-SD" TypeL = PIN } DevLay { NameL = "NWell" TypeL = PIN } } Device { Type = "n-MOSFET" SpName = "nmos" Params = 0 DevLay { NameL = "N-Gate" TypeL = REC } DevLay { NameL = "N-SD" TypeL = PIN } DevLay { NameL = "Poly" TypeL = PIN } DevLay { NameL = "N-SD" TypeL = PIN } DevLay { NameL = "PSUB" TypeL = PIN } } Connect = ("Metal1","Metal2","Via") Connect = ("Metal1","Poly","Contact") Connect = ("NWell","N-SD","WellCon") Connect = ("Metal1","N-SD","Contact") Connect = ("Metal1","P-SD","Contact") Connect = ("PSUB","P-SD","WellCon") GridParams { MinGridStep = 100 SnapCursorStepX = 1 SnapCursorStepY = 1 SnapDepend = 0 SnapCursorRatioX = 0 SnapCursorRatioY = 0 GridColor = (0,0,0) GridType = 0 AutomaticGridType = 0 UserVisualGridStepX = 1 UserVisualGridStepY = 1 SuperGridStepX = 10 SuperGridStepY = 10 } InstanceGridParams { MinGridStep = 1 SnapCursorStepX = 100 SnapCursorStepY = 100 SnapDepend = 0 SnapCursorRatioX = 0 SnapCursorRatioY = 0 GridColor = (0,0,0) GridType = 0 AutomaticGridType = 0 UserVisualGridStepX = 100 UserVisualGridStepY = 100 SuperGridStepX = 10 SuperGridStepY = 10 } WellCheck = ("NWell","VDD") WellCheck = ("PSUB","VSS") SoftLayer = ("NWell","VDD","true") SoftLayer = ("PSUB","VSS","true") PwireTemplate { TemplateName = "n+wire" Layer = "N-Act" Width = 1 Joint = EXTEND End = BUTT Offset = 0 Justification = CENTER PwEnclosureWire { Layer = "Metal1" BeginOffset = 0.1 EndOffset = 0.1 Enclosure = 0.1 } PwBox { Layer = "Contact" BeginOffset = -0.4 EndOffset = -0.4 Width = 0.4 Length = 0.4 Justification = CENTER Distribution = MIN Offset = 0 Space = 0.4 BeginCornerOffset = 0 EndCornerOffset = 0 } } PwireTemplate { TemplateName = "p+wire" Layer = "P-Act" Width = 1 Joint = EXTEND End = BUTT Offset = 0 Justification = CENTER PwEnclosureWire { Layer = "Metal1" BeginOffset = 0.1 EndOffset = 0.1 Enclosure = 0.1 } PwBox { Layer = "Contact" BeginOffset = -0.4 EndOffset = -0.4 Width = 0.4 Length = 0.4 Justification = CENTER Distribution = MIN Offset = 0 Space = 0.4 BeginCornerOffset = 0 EndCornerOffset = 0 } } DeviceContact { ContactName = "ncon" ContactLayer = "Contact" Layer1 = "N-Act" Layer2 = "Metal1" Layer1Margin = 0.2 Layer2Margin = 0.1 ContactWidth = 0.4 ContactLength = 0.4 ContactRows = 1 ContactCols = 1 ContactRowDelta = 0.8 ContactColDelta = 0.8 Justification = MIDDLECENTER } DeviceContact { ContactName = "pcon" ContactLayer = "Contact" Layer1 = "P-Act" Layer2 = "Metal1" Layer1Margin = 0.2 Layer2Margin = 0.1 ContactWidth = 0.4 ContactLength = 0.4 ContactRows = 1 ContactCols = 1 ContactRowDelta = 0.8 ContactColDelta = 0.8 Justification = MIDDLECENTER } DeviceContact { ContactName = "polycon" ContactLayer = "Contact" Layer1 = "Poly" Layer2 = "Metal1" Layer1Margin = 0.1 Layer2Margin = 0.1 ContactWidth = 0.4 ContactLength = 0.4 ContactRows = 1 ContactCols = 1 ContactRowDelta = 0.8 ContactColDelta = 0.8 Justification = MIDDLECENTER } DeviceContact { ContactName = "via1" ContactLayer = "Via" Layer1 = "Metal1" Layer2 = "Metal2" Layer1Margin = 0.1 Layer2Margin = 0.1 ContactWidth = 0.4 ContactLength = 0.4 ContactRows = 1 ContactCols = 1 ContactRowDelta = 0.8 ContactColDelta = 0.8 Justification = MIDDLECENTER }