Stichting PDAFlow Foundation
1.0.0
Stichting PDAFlow Foundation, document in progress.
Demo Material
This file shows the drcConvex.
class myDie() extends DieBBxt(2000,2000, "mcsDieArea") {
function getTechnology() {
return &techDemoPDK;
}
setHeight(200);
var bx=getBox();
IOarray_Optical(4,20,"mcsWG") opt0;
opt0.left();
if(mask::CScheck("mcsWG"))
opt0.place(org->bx@org+[50,50] : this,"FAU0");
IOarray_DC(5,50) dc0;
dc0.left();
dc0.place(org->bx@org+[80,200] : this,"DC0");
layout place() {
super.super.place(org->this@org :);
string mcs=mask::CSselect("mcsDiceline");
ml::Straight(bir->this@org : wfix(100),L);
ml::Straight(bir->this@org+[0,W] : wfix(100),L);
mask::CSselect(mcs);
}
};
class myDesignArea() extends myDie() {
}
myDesignArea() chip;
var box=chip.place(org->[0] : );
/* Basic structuree */
double N=2;
//That the whole size of the buildingblock changes with the notch is just for convenience
var A1 = ml::Comb( bir->[0,0]: N, 2*N, 2*N, 2, N);
var A2 = ml::Comb( bir->[5*N,0]: 0.5*N, 1*N, 1*N, 2, 0.5*N);
var A3 = ml::Comb( bir->[10*N,0]: 0.25*N, 0.5*N, 0.5*N, 2, 0.25*N);
var A4 = ml::Comb( bir->[15*N,0]: 0.1*N, 0.2*N, 0.2*N, 2, 0.1*N);
var A5 = ml::Comb( bir->[0,-5*N,90]: N, 2*N, 2*N, 2, N);
var A6 = ml::Comb( bir->[5*N,-5*N,90]: 0.5*N, 1*N, 1*N, 2, 0.5*N);
var A7 = ml::Comb( bir->[10*N,-5*N,90]: 0.25*N, 0.5*N, 0.5*N, 2, 0.25*N);
var A8 = ml::Comb( bir->[15*N,-5*N,90]: 0.1*N, 0.2*N, 0.2*N, 2, 0.1*N);
//Text
ml::GDSText(wher -> A1@bir+[0]: /* Text = */ "large notch");
ml::GDSText(wher -> A2@bir+[0]: /* Text = */ "precise notch");
ml::GDSText(wher -> A3@bir+[0]: /* Text = */ "too small notch");
ml::GDSText(wher -> A4@bir+[0]: /* Text = */ "way too small notch");
ml::GDSText(wher -> A5@bil+[0]: /* Text = */ "large notch");
ml::GDSText(wher -> A6@bil+[0]: /* Text = */ "precise notch");
ml::GDSText(wher -> A7@bil+[0]: /* Text = */ "too small notch");
ml::GDSText(wher -> A8@bil+[0]: /* Text = */ "way too small notch");
1
0
0.001
Waveguide layer
true
open
fill
DRC
Waveguide
The waveguide is a 1:1 mapping to GDS
1.0
50.0
0.01
4.0
20
1.0
// This section does some special OptoDesigner things.
mcsSetAltWG("WGhigh","WGlow");
Metal routing
Ignored for the examples