Sugar to SugarCube to GDSII

23
Sugar to SugarCube to GDSII

description

Sugar to SugarCube to GDSII. Table of contents. Page No. Sugar to SugarCube Create a MEMS in Sugar4 Sample Sugar netlist 5 Transfer netlist to SugarCube 6 Load the model in SugarCube 9 SugarCube Interface10 Static analysis-I11 - PowerPoint PPT Presentation

Transcript of Sugar to SugarCube to GDSII

Page 1: Sugar to  SugarCube  to GDSII

Sugar to SugarCube to GDSII

Page 2: Sugar to  SugarCube  to GDSII

Table of contents Page No.

1. Sugar to SugarCube1. Create a MEMS in Sugar 42. Sample Sugar netlist 53. Transfer netlist to SugarCube 64. Load the model in SugarCube 95. SugarCube Interface 106. Static analysis-I 117. Static analysis-II 128. Static analysis-III 139. Sinusoidal analysis 1410. Steady-state analysis 15

2. SugarCube to GDSII1. Generating layout for a single device 172. GDSII layout for a single device 183. Generating layout for a row of devices 194. GDSII layout for a row of devices 205. Generating layout for an array of devices (3x5) 216. GDSII layout for an array of devices (3x5) 22

Page 3: Sugar to  SugarCube  to GDSII

Sugar to SugarCube

Page 4: Sugar to  SugarCube  to GDSII

Create a MEMS in Sugar• To model a MEMS in Sugar, begin with creating a netlist in any text editor using Sugar’s netlist programming language

• Then start Matlab, add Sugar directory to Matlab’s path

• Load a netlist: To load a netlist in Sugar, type the command net=cho_load(netlist name) in the Matlab command window

• Display a MEMS: To display the 3D MEMS structure of the netlist, type the command cho_display(net) in the Matlab command window

A sample netlist and image are shown in the following page

Page 5: Sugar to  SugarCube  to GDSII

uses mumps.net%Ambient temperature is 300 Kelvin. uses subnet_comb_drive_3.net param V = 10param w = 2uparam angle = 10 angle = angle * pi/180param L = 200uparam dT = 0T = 300+dTparam gap = 2uparam h = 2uparam nf = 10wp1 = 2uwp0 = 0.5uwsupport = 10uOL = 5uLbackbone = 20ulf = 20u %Backbonebeam3d p1 [middle up][l=Lbackbone w=10u h=h+1n oz=pi/2]beam3d p1 [middle dn][l=Lbackbone w=10u h=h+1n oz=-pi/2] %Flexures anchorsize = 20ubeam3d p1 [left_anchor middle][l=L w=w h=h oz=angle T=T]bondingpad p1 [right_anchor][l=anchorsize w=anchorsize h=4u oz=0]beam3d p1 [middle right_anchor ][l=L w=w h=h oz=-angle T=T]bondingpad p1 [left_anchor][l=anchorsize w=anchorsize h=4u oz=pi]

%Comb drivessubnet_comb_drive_3 p1 [dn B][ V=V Nf=nf gapf=gap Lf=lf Wf=w Hf=h overlap=OL W_support=wsupport ] subnet_comb_drive_3 p1 [up C][ oz=pi V=V Nf=nf gapf=gap Lf=lf Wf=w Hf=h overlap=OL W_support=wsupport ] %Bond padsbondsize = 100ubondingpad p1 [B][l=bondsize w=bondsize h=1.9u oz=-pi/2]bondingpad p1 [C][l=bondsize w=bondsize h=1.9u oz=pi/2] %Oxidebeam3d p1 [B sb] [h=10u l=2u+wp1/2+wp0/2 w=10u oy=pi/2] %P0 ground layerLen2 = wsupport/2 + (lf-OL*2)/2Len = (wsupport/2 + lf-OL*2 + lf + wsupport + Lbackbone)*2 - Len2*2% beam3dlink p0 [sb sm] [h=0.5u l=Len w=L*2+anchorsize*2 oz=pi/2 L1=Len2 L2=Len2] %To tracerLen3 = (wsupport/2 + lf-OL*2 + lf + wsupport + Lbackbone)commonground p1 [right_anchor tracer] [h=0.5u l=Len3-L*sin(angle)+bondsize+10u w=2u oz=-pi/2]% anchor p1 [tracer][l=anchorsize w=anchorsize h=4u oz=-pi/2]

Sample Sugar netlist

• bondingpad is used to automatically generate a bonding pad that has all the layers• commonground is used to automatically generate tracers that connect to a common ground with all layers

Page 6: Sugar to  SugarCube  to GDSII

Transfer netlist to SugarCube1. Identify key parameters that has to be displayed in SugarCube parameterization window

For example: The key parameters in the above netlist are voltage, flexure width, angle, flexure length, temp. increase, gap between fingers, and number of fingers, etc

2. Also identify the key nodes where the performance has to be investigated in SugarCube For example: A key node in the above netlist is ‘up’, a node on the base of top combfingers

3. Specify them in the ‘sugarcube’ model of the netlist using the following syntaxSyntax for SugarCube model

sugarcube * [ ] [ Parameter1 information Parameter2 information

. . Nodes]

Syntax to enter parameter information:parameter name=‘display name, units, default value, minimum value ,maximum value’where parameter name is the variable used in Sugar netlist, display name is the name to be

displayed in SugarCube Syntax for nodes:

nodes=‘node1,node2,…’

To convert the above Sugar netlist to SugarCube, add the following lines in it

sugarcube * [] [V='Voltage,V,10,0,20' w='Flexure Width,m,2e-6,1e-6,3e-6' angle='Angle,deg,10,0,30' L='Flexure Length,m,200e-6,50e-6,250e-6' dT='Temp. increase,K,0,0,10' gap='Gap between fingers,m,2e-6,0,3e-6' nf='Number of fingers, ,10,0,20' nodes='up']

Page 7: Sugar to  SugarCube  to GDSII

Transfer netlist to SugarCubeBefore the model is loaded into SugarCube perform the following steps:

• If the netlist is in .mfile format convert it into .net format. This is to maintain consistency

• An other important step is to ensure that the newly created netlist is placed in the proper folder of SugarCube We explain this step using the following example:

Let us assume that the user models a new type of resonator in Sugar. To convert this into SugarCube, firstly the instructions discussed in the previous slide are followed and the updated netlist is saved .net format. Then as SugarCube has various categories of MEMS in its library, the user needs to identify the proper category to

which this netlist belongs. These categories can be located in the Models folder of SugarCube directory. The categories currently available in SugarCube can be seen in the figure below. In this example, the resonator belongs to Resonators category of the library. So paste the netlist in that folder (/SugarCube/Models/Resonators/)

• If there are any additional supporting files, like subnets, that the model might require, paste them in the same folder as well

SugarCube library window

Page 8: Sugar to  SugarCube  to GDSII

Transfer netlist to SugarCubeOnce the SugarCube model is placed in the proper folder of SugarCube/Models directory, perform the following two final steps. These steps are optional.

The library window of SugarCube displays the preview image of each model in the library, and a brief description of that model.

• Do the following for SugarCube to display the preview image of the newly added model. Create a snapshot image of this model and save it with the same name of the netlist and .TIF extension in the same category that can be located in the Images folder of SugarCube. For example, in the resonator example discussed above, the image of the resonator is placed in /SugarCube/Images/Resonators/ folder. The figure below shows an example of preview image

• To display the description of the device, simply enter the description on the top of the netlist and comment those lines. SugarCube can automatically read these lines and display them in the description region of the library window

SugarCube library window – Image preview and description. If the above two steps are not performed, the preview and description remains blank

Page 9: Sugar to  SugarCube  to GDSII

Load the model in SugarCube

To load a model in SugarCube perform the following steps:

• Click on Load button (1) on Parameterization window

• A load window appears showing the rootdirectory of models

• Double click on it to display the tree of all categories (see right)

• Now expand the desired category to see the netlists

• Single click on the netlist to see the review image and description

• Once the desired netlist is selected, click on Load button (2) of this window to load it in SugarCube

1

2

Enter the command sugarcube in Matlab command prompt to open SugarCube GUI.

Make sure that Sugar directory is still in Matlab’s path, as SugarCube uses some of the Sugar files

Page 10: Sugar to  SugarCube  to GDSII

SugarCube Interface

Page 11: Sugar to  SugarCube  to GDSII

Static analysis - I• Analysis is performed using a single initial value for all the parameters

Procedure:• Enter the desired values for each parameter (single value)

• Select the Node and Coordinate at which the performance has to be tracked using the pull-down menus located at the bottom of Parameterization window

• Click on Static button

• The displacement is shown in Plot window (see right)

1

23

Page 12: Sugar to  SugarCube  to GDSII

Static analysis - II• Analysis is performed over a range of values for a single parameter

Procedure:• Enter the desired values for each parameter. In addition, enter the range of values for one desired parameter (In the example here, this parameter is Voltage)

• Select the Node and Coordinate as explained above and click on Static button

• The 2D displacement plot is shown in Plot window (see right)

Page 13: Sugar to  SugarCube  to GDSII

Static analysis - III• Analysis is performed over a range of values for a two parameters

Procedure:• Enter the desired values for each parameter. In addition, enter the range of values for two desired parameters (In the example here, these parameters are Voltage and Angle)

• Select the Node and Coordinate as explained above and click on Static button

• The 3D SurfacePlot is shown in Plot window (see right)

Page 14: Sugar to  SugarCube  to GDSII

Sinusoidal analysis• This analysis is performed to find the eigen frequencies and shapes of various modes of a device

Procedure:• Click on Sinusoidal button. A window pops up asking for no. of modes required. Enter a value for this and click OK

• SugarCube computes the entered number of modes and displays a pull-down menu in Plot window which has all the modes.

• Go to the pull-down menu and select the desired mode to display the shape and corresponding frequency of that mode

Page 15: Sugar to  SugarCube  to GDSII

Steady-state analysis• This analysis is performed to compute the frequency response of the device

Procedure:• Select the desired Node and Coordinate form the pull- down menus and click on Steady State button

• A window pops-up asking for initial frequency, final frequency, and the number of steps between initial and final frequency

• Enter the desired values and click OK. A bode plot is generated in Plot window (see right)

Page 16: Sugar to  SugarCube  to GDSII

SugarCube to GDSII

Page 17: Sugar to  SugarCube  to GDSII

Generating layout for a single device

SugarCube automatically generates tracers for wirebonding!!

Page 18: Sugar to  SugarCube  to GDSII

GDSII layout for a single device

Note: The layer on the bottom of the device is poly0(yellow). It is not showed in SugarCube display window to avoid confusion that might occur due to overlapping of layers

Page 19: Sugar to  SugarCube  to GDSII

Generating layout for a row of devices

Page 20: Sugar to  SugarCube  to GDSII

GDSII layout for a row of devices

Page 21: Sugar to  SugarCube  to GDSII

Generating layout for an array of devices (3x5)

Page 22: Sugar to  SugarCube  to GDSII

GDSII layout for an array of devices (3x5)

Page 23: Sugar to  SugarCube  to GDSII

GDSII layout for an array of devices (3x5)