📄 mocmos.java
字号:
private MoCMOS(Generic generic, String techName, String techShortName, String techDesc, Foundry.Type defaultFoundryType, double factoryScale, boolean haveMocmosExtensions) { super(generic, techName, defaultFoundryType, 6); setFactoryScale(factoryScale, true); setTechShortName(techShortName); setTechDesc(techDesc); setNoNegatedArcs(); setStaticTechnology(); setFactoryTransparentLayers(new Color [] { new Color( 96,209,255), // Metal-1 new Color(255,155,192), // Polysilicon-1 new Color(107,226, 96), // Active new Color(224, 95,255), // Metal-2 new Color(247,251, 20) // Metal-3 }); setFactoryResolution(0.01); // value in lambdas 0.005um -> 0.05 lambdas //**************************************** LAYERS **************************************** /** metal-1 layer */ metalLayers[0] = Layer.newInstance(this, "Metal-1", new EGraphics(false, true, null, EGraphics.TRANSPARENT_1, 96,209,255, 0.8,true, new int[] { 0x2222, // X X X X 0x0000, // 0x8888, // X X X X 0x0000, // 0x2222, // X X X X 0x0000, // 0x8888, // X X X X 0x0000, // 0x2222, // X X X X 0x0000, // 0x8888, // X X X X 0x0000, // 0x2222, // X X X X 0x0000, // 0x8888, // X X X X 0x0000}));// /** metal-2 layer */ metalLayers[1] = Layer.newInstance(this, "Metal-2", new EGraphics(false, true, null, EGraphics.TRANSPARENT_4, 224,95,255, 0.7,true, new int[] { 0x1010, // X X 0x2020, // X X 0x4040, // X X 0x8080, // X X 0x0101, // X X 0x0202, // X X 0x0404, // X X 0x0808, // X X 0x1010, // X X 0x2020, // X X 0x4040, // X X 0x8080, // X X 0x0101, // X X 0x0202, // X X 0x0404, // X X 0x0808}));// X X /** metal-3 layer */ metalLayers[2] = Layer.newInstance(this, "Metal-3", new EGraphics(false, true, null, EGraphics.TRANSPARENT_5, 247,251,20, 0.6,true, new int[] { 0x2222, // X X X X 0x0000, // 0x8888, // X X X X 0x0000, // 0x2222, // X X X X 0x0000, // 0x8888, // X X X X 0x0000, // 0x2222, // X X X X 0x0000, // 0x8888, // X X X X 0x0000, // 0x2222, // X X X X 0x0000, // 0x8888, // X X X X 0x0000}));// /** metal-4 layer */ metalLayers[3] = Layer.newInstance(this, "Metal-4", new EGraphics(true, true, null, 0, 150,150,255, 0.5,true, new int[] { 0xFFFF, // XXXXXXXXXXXXXXXX 0x0000, // 0xFFFF, // XXXXXXXXXXXXXXXX 0x0000, // 0xFFFF, // XXXXXXXXXXXXXXXX 0x0000, // 0xFFFF, // XXXXXXXXXXXXXXXX 0x0000, // 0xFFFF, // XXXXXXXXXXXXXXXX 0x0000, // 0xFFFF, // XXXXXXXXXXXXXXXX 0x0000, // 0xFFFF, // XXXXXXXXXXXXXXXX 0x0000, // 0xFFFF, // XXXXXXXXXXXXXXXX 0x0000}));// /** metal-5 layer */ metalLayers[4] = Layer.newInstance(this, "Metal-5", new EGraphics(true, true, EGraphics.Outline.PAT_S, 0, 255,190,6, 0.4,true, new int[] { 0x8888, // X X X X 0x1111, // X X X X 0x2222, // X X X X 0x4444, // X X X X 0x8888, // X X X X 0x1111, // X X X X 0x2222, // X X X X 0x4444, // X X X X 0x8888, // X X X X 0x1111, // X X X X 0x2222, // X X X X 0x4444, // X X X X 0x8888, // X X X X 0x1111, // X X X X 0x2222, // X X X X 0x4444}));// X X X X /** metal-6 layer */ metalLayers[5] = Layer.newInstance(this, "Metal-6", new EGraphics(true, true, null, 0, 0,255,255, 0.3,true, new int[] { 0x8888, // X X X X 0x4444, // X X X X 0x2222, // X X X X 0x1111, // X X X X 0x8888, // X X X X 0x4444, // X X X X 0x2222, // X X X X 0x1111, // X X X X 0x8888, // X X X X 0x4444, // X X X X 0x2222, // X X X X 0x1111, // X X X X 0x8888, // X X X X 0x4444, // X X X X 0x2222, // X X X X 0x1111}));// X X X X /** poly layer */ poly1Layer = Layer.newInstance(this, "Polysilicon-1", new EGraphics(false, true, null, EGraphics.TRANSPARENT_2, 255,155,192, 1,true, new int[] { 0x1111, // X X X X 0xFFFF, // XXXXXXXXXXXXXXXX 0x1111, // X X X X 0x5555, // X X X X X X X X 0x1111, // X X X X 0xFFFF, // XXXXXXXXXXXXXXXX 0x1111, // X X X X 0x5555, // X X X X X X X X 0x1111, // X X X X 0xFFFF, // XXXXXXXXXXXXXXXX 0x1111, // X X X X 0x5555, // X X X X X X X X 0x1111, // X X X X 0xFFFF, // XXXXXXXXXXXXXXXX 0x1111, // X X X X 0x5555}));// X X X X X X X X /** poly2 layer */ poly2_lay = Layer.newInstance(this, "Polysilicon-2", new EGraphics(true, true, null, 0, 255,190,6, 1,true, new int[] { 0xAFAF, // X X XXXXX X XXXX 0x8888, // X X X X 0xFAFA, // XXXXX X XXXXX X 0x8888, // X X X X 0xAFAF, // X X XXXXX X XXXX 0x8888, // X X X X 0xFAFA, // XXXXX X XXXXX X 0x8888, // X X X X 0xAFAF, // X X XXXXX X XXXX 0x8888, // X X X X 0xFAFA, // XXXXX X XXXXX X 0x8888, // X X X X 0xAFAF, // X X XXXXX X XXXX 0x8888, // X X X X 0xFAFA, // XXXXX X XXXXX X 0x8888}));// X X X X /** P active layer */ activeLayers[P_TYPE] = Layer.newInstance(this, "P-Active", new EGraphics(false, true, null, EGraphics.TRANSPARENT_3, 107,226, 96,/*107,204,0,*/ 1,true, new int[] { 0x0000, // 0x0303, // XX XX 0x4848, // X X X X 0x0303, // XX XX 0x0000, // 0x3030, // XX XX 0x8484, // X X X X 0x3030, // XX XX 0x0000, // 0x0303, // XX XX 0x4848, // X X X X 0x0303, // XX XX 0x0000, // 0x3030, // XX XX 0x8484, // X X X X 0x3030}));// XX XX /** N active layer */ activeLayers[N_TYPE] = Layer.newInstance(this, "N-Active", new EGraphics(false, true, null, EGraphics.TRANSPARENT_3, 107,226, 96,/*107,204,0,*/ 1,true, new int[] { 0x0000, // 0x0303, // XX XX 0x4848, // X X X X 0x0303, // XX XX 0x0000, // 0x3030, // XX XX 0x8484, // X X X X 0x3030, // XX XX 0x0000, // 0x0303, // XX XX 0x4848, // X X X X 0x0303, // XX XX 0x0000, // 0x3030, // XX XX 0x8484, // X X X X 0x3030}));// XX XX selectLayers = new Layer[2]; /** P Select layer */ selectLayers[P_TYPE] = Layer.newInstance(this, "P-Select", new EGraphics(true, true, null, 0, 255,255,0, 1,false, new int[] { 0x1010, // X X 0x2020, // X X 0x4040, // X X 0x8080, // X X 0x0101, // X X 0x0202, // X X 0x0404, // X X 0x0808, // X X 0x1010, // X X 0x2020, // X X 0x4040, // X X 0x8080, // X X 0x0101, // X X 0x0202, // X X 0x0404, // X X 0x0808}));// X X /** N Select layer */ selectLayers[N_TYPE] = Layer.newInstance(this, "N-Select", new EGraphics(true, true, null, 0, 255,255,0, 1,false, new int[] { 0x0101, // X X 0x0000, // 0x1010, // X X 0x0000, // 0x0101, // X X 0x0000, // 0x1010, // X X 0x0000, // 0x0101, // X X
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -