Step 1: Coupler Simulation
In this step we will see the utility of the layerbuilder object in easily importing the layout and process information. Once the simulation set up we can proceed to run and inspect the results for our directional coupler.
- Open your FDTD simulation by double-clicking on RM_DirectionalCoupler.fsp. We haven't set up this file yet. We will use the layer-builder to import our layout and the process file.
- From the top click on "Build" to add the layerbuilder. Right click and select edit to modify the object.
- Click on Import GDS file... . Select the prepared GDS, "ring_mod.gds".
- To import process file click on Import process file in the bottom corner and select gopdk.lbr. Click OK through the messages; these indicate that the materials already exist in the library which is fine.
- Now click OK to have layerbuilder create the ring modulator design according to the layout and process file. You should see the structure created in the GUI.
- In your directory find the script file RM_DirectionalCoupler_Setup.lsf. Drag and drop this script into your simulation and run the script. This will add simulation region, ports, and monitors to complete the FDTD setup; the script will also run the simulation. This will take a few minutes.
- We can now view the results from the DFT monitor and the ports. On the left panel, RMB on “monitor” and select “Visualize>E”. Here you can see the electrical field as a function of position. You can see the light getting coupled into the ring.
You may explore other results from the DFT monitor. The other results are:
- H: Magnetic field data as a function of position and frequency/wavelength.
- P: Poynting vector as a function of position and frequency/wavelength.
- T: Transmission as a function of frequency/wavelength.
We can also view the results in the ports of the waveguide. Port 4 is the through port of the ring. RMB on “FDTD>port4” and select “Visualize>S” (see screenshot below). The S result is the complex transmission coefficient from the input at Port 2. You may change the scalar operation to “Abs”. This result can be used to find the coupling coefficient for the ring.
You may also explore other results from this and other ports. Other results include:
- neff
- loss
- mode profile
You can now close the FDTD simulation.
Step 2: Charge Analysis
The steps specific to the layerbuilder object are not repeated here; you will work with a file where the layerbuilder object and simulation is set up. We will run the simulation and analyze the charge distribution across the cross-section of our ring-modulator structure as we apply a bias voltage to the phase shifter. As the bias changes, the depletion region of the phase shifter will become larger, and the change in the charge carrier density will create a phase shift in the ring modulator. This phase shift changes the resonance condition of the ring and will shift the resonance wavelength.
- Launch the CHARGE solver with the project file loaded by double clicking on RM_Electrical.ldev. It takes few seconds for the file to be fully loaded. The project has already been set up with the layer builder object to create the geometry.
- Only a small portion of this geometry is needed and used for the charge simulation. Click on the partition mode button (in top right of the UI) to better inspect the simulation region. You can change the perspective angle and zoom in to see the defined contacts and region of simulation.
- Click run to run the simulation. This should take a minute or two.
- We can now explore the results. On the left panel, RMB on “C_2D” charge monitor, select
“visualize>charge.” You can then change the settings to view the charge in log scale and set the axis to
“square.” Select the “n” attribute and slide the “V_cathode” value to see how the distribution changes
with varying bias conditions. You may do the same for the “p” attribute.
The monitor is set up to automatically export this into a format that can be used in the modal analysis simulation in Step 5. You can now close Lumerical CHARGE.
Step 3: Heat Analysis
Here we will analyze the effects the of thermal tuner on our ring modulator layout. We will monitor the
temperature of the silicon layer of the ring as a voltage is applied to the heating pads. When the temperature of the silicon changes, the silicon waveguide's effect index will change accordingly. This will produce a shift in the phase of the ring modulator, and therefore a change in the resonance conditions.
- Launch the HEAT solver with the project file loaded by double clicking on the file RM_Thermal.ldev.
Similar to the previous steps the layout has already been set up, and the simulation is run in order to save time. Here we can directly proceed to inspecting the results in the next step.
- We can now view the results. On the left panel, expand the “HEAT” field and right click on the “T_3D”
temperature monitor, click “Visualize>temperature”. In the visualizer, select the “T” attribute (for
temperature). Change the settings to log scale and keep track of the color bar min and max value. Also change the data visualization to Clipped plane. Select the applied heater voltage (“V_h1”) as the parameter, and use the slider to see how the temperature at the silicon layer changes when the heater voltage is applied (note that as you change the applied voltage, the color bar scale may change. Use the settings to readjust to a consistent range [300 ; 330]).
Please be patient when you change value with the slider: it may take few seconds for the screen to refresh.
You can now close the HEAT simulation.
Step 4: Waveguide Properties
In this step, we will analyze the waveguide properties. We will use this layout to analyze the
basic properties of the waveguide in the ring modulator. Results from CHARGE and HEAT simulations are also imported to inspect and extract the voltage and temperature dependency of the waveguide properties.
- Launch the FDE solver with the project file loaded by double clicking on RM_WaveguideProperties.lms. Similar to previous steps, the layerbuilder object has been used to create the geometry you see in this file.
- The file also includes and accounts for the carrier density data and temperature profile calculated in previous steps. These data are stored in "np density" and "temperature" objects. You can visualize to inspect the data you imported from CHARGE and HEAT.
- The relation between index and charge density or temperature has been defined in MODE's material database. To inspect the relation used in this simulation, go to Materials and find the material used for the waveguide (here "gopdk Si (Silicon) - Palik [Index perturbation]") and then scan through the np Density and Temperature tabs. Here you can see the defined variation of n and k as a function of mentioned properties. For more details about the index perturbation feature please check this article. You can close the window after inspecting the waveguide material.
- In the bottom right go to the Eigensolver Analysis tab and click on Calculate Modes. The mode profile will be displayed to the right, and the mode properties (including effective index, group index, and loss) will be shown at the top. We can also see the effects that a bend will have on the waveguide mode (bend radius is set to 8.5 microns and the bend orientation is 90 degrees).
You can see the mode profile shift when the bend is introduced. This can be more clearly seen when plotting using the log scale (the picture above is linear scale).
- Go to the optimization and sweeps tab. Here you will see two sweep objects that are already run to extract the mode properties vs carrier density and temperature. Right click on the np_density_sweep and visualize neff to see the effective index vs applied voltage.
Step 5: Compact Model and Analysis in Circuit
In this step, we will use the simulation data from the previous steps to create a compact model, using Ansys Lumerical CML Compiler. We will collect all the data into a single file and use the built-in ring-modulator photonic model to create a compact model that can be used in circuit simulations. We can then analyze our created model in Lumerical INTERCONNECT.
- Open your CHARGE simulation by double clicking on RM_Electrical.ldev.
- Load the data collection script; for this go to the data_collection folder, select and drag ring_modulator_data_collection.lsf into your CHARGE simulation. Then run the script. When the script is finished running, two figures will be displayed.
The first figure shows the effective index (real and imaginary) as a function of phase shifter bias; the second figure displays the phase shift due to the power applied to the thermal tuner.
The collected data that will be used for your compact model is saved in ring_mod.json.
- Go to Ansys Optics Launcher and in the solvers tab open CML Compiler (select new project button next to the solver's name). You should see the CML Compiler UI.
- Select the Library path (click on the dots near this entry to browse). Select the provided folder CML_model and click OK. You should see the ring modulator photonic model populated in your list of elements.
- Select this component (check to enable). Then copy ring_mod.json created earlier and paste in the directory CML_model>source>ring_mod.
- Build a test for this component by clicking on the "Build Tests" button and selecting "Build Tests + Prev Steps". You will notice the progress in the prompt on the right. This might take a few moments to complete.
- Once completed you will be able to launch INTERCONNECT directly from the UI to inspect your model. Once available select the "Launch INTC" on top right (the button will no longer be greyed out).
- A QA script has automatically been generated for this compact model. In INTC in the script file editor section on the right, click on “Open Script” icon (the blue folder). Go to the directory of your compact model and find and open the “QA folder” (located in LumFoundry_templatesourcering_modQA). Here you see all the different tests created for your compact model.
- Open “ring_modulator_modulation_efficiency_qa”. The QA script will be loaded in INTERCONNECT. Run the QA Script by clicking on the “Run script” icon (or equivalently use the hotkey F5). The QA circuit is created and will take a few moments to run.
- Once finished you should be able to see the modulation efficiency results. Notice the shift in the peak as voltage is applied.
Close the visualizer and CML Compiler.
We have successfully created a custom compact model for our ring modulator which is ready to be used in our circuit simulation in INTERCONNECT. The element can be used with other custom-made elements, or default elements provided by the foundry.