Giter VIP home page Giter VIP logo

siepic-tools's People

Contributors

121comeon avatar asinomad-gh avatar atait avatar bruxillensis avatar clalarco avatar dependabot[bot] avatar jasminabrar avatar jaspreetj avatar jevillegasd avatar jfluecki avatar jinwallner avatar lukasc-ubc avatar luzeqin avatar maddy561 avatar mustafacc avatar raptor avatar rounaksingh avatar seanlam97 avatar sqt-sfu avatar stefanpreble avatar stratomaster31 avatar thomaslima avatar yechima avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

siepic-tools's Issues

Simulation: component, create compact model using FDTD

We have already done this before a few years ago (gds2fdtd); it needs to be integrated / redone.

Create a compact model using 3D-FDTD:

  • auto export the GDS for the selected device.
  • configure FDTD using GDS, and DevRec and PinRec.
  • run single simulation using from selection: user can verify it is working
  • run sparam simulation plus corners
  • save data into a Lumerical CML as a custom device

Change waveguide hotkey

Waveguide hotkey should not show GUI, instead use 'current configuration'

This means GUI parameters must be initialized BEFORE gui.show()

Windows GUI font scaling issue

On Windows, when I change the display configuration "change the size of all items", e.g., 200%, the GUI for Waveguides gets messed up.

All the other KLayout GUIs are fine.

image

development vs. master branch

Do we need a development branch for SiEPIC-Tools? Can we just use master?

Right now, master is the old one (essentially 0.2.0) and not working..

Verification for flattened layouts

Limitation in Verification: we assume that the layout was created by SiEPIC-Tools in KLayout, that PCells are there, and that the layout hasn't been flattened. This allows us to isolate individual components, and get their parameters. Working with a flattened layout would be harder, and require:

  • reading parameters from the text labels (OK)
  • find_components would need to look within the DevRec layer, rather than in the selected cell
  • when pins are connected, we have two overlapping ones, so detecting them would be problematic. This could be solved by putting the pins inside the cells, rather than sticking out. But that requires a change in all PDKs and in Tools on how pins are defined in the code.

"arc" function incorrect

Hi Brett,

I discovered that you introduced a bug in the arc function, when you changed it. Namely the arc wasn't stopping exactly at the correct angle. This would introduce tiny gaps between arcs that are supposed to be connected. Did CMC find DRC errors in your layouts, with small gaps?

Anyways, I spent a long time debugging, and more or less returned it to what it was before...

Can you check your functions / PCells that rely on it to make sure it still works for your cases?

Netlist trimming

Convert previous generate_short_spice_files() function netlist trimming into:

# Inputs, and example of how to generate them:
# nets, components = topcell.identify_nets()
# selected_component = components[5]   (elsewhere the desired component is selected)
def trim_netlist (nets, components, selected_component)
  return trimmed_nets, trimmed_components

Location of Waveguide code

Presently it is a Lym file within each PDK. Presumably it should be shared.

Working on moving to pymacros in SiEPIC-Tools (dev branch)

Waveguide Healing

In scripts.py (for the most part, can just call waveguide_to_path then waveguide_from_path, but each waveguide type must be remembered)

import SiEPIC

After installing via Packages, import SiEPIC didn't happen. Screenshot:

image

Python-Lumerical integration

@jaspreetj (perhaps?)

I have it working on Mac OSX. Could someone get this working for Windows?

See SiEPIC.lumerical.interconnect.Setup_Lumerical_KLayoutPython_integration() and SiEPIC.lumerical.interconnect.launch()

thank you
Lukas

py vs lym

I understand the use of py files, since you can import them. But the debugger and "singleton-like" behaviour means we need to exit KLayout each time changes are made to py files.

Can we minimize the use of py files?

Lym files work well in the debugger where you can see the error, breakpoints, etc.

Cell Hierarchy Issue?

@lukasc-ubc @jaspreetj @mustafacc

Has anyone noticed an issue with PCells in KLayout 0.25 like below?

image

When inserting a new PCell, the instance does not show up in the hierarchy where it has been placed. In this example, I tried to add a Lumerical Laser to the cell v1.

menu: Measurement data, new GUI

Created a new menu: Measurement Data. Fetch data from GitHub and plot. Working on OSX/Windows, but presently only downloads the files and opens the PDFs.

Need a GUI to:

  • filter by fabrication foundry, etc.
  • select files: ctrl-click to select multiple ones (e.g., device fabricated several times, resulting in an overlaid plot)
  • plot using INTERCONNECT (or directly in KLayout if possible)
  • measurement versus simulation: simulate the selected opt_in and add to the plot

circuit simulation: DC sources not working

line 1004 in extend. causing an INTC crash.

a Ring_Modulator_DB_0_elec1a Ring_Modulator_DB_0_elec1c Ring_Modulator_DB_0_elec2h1 Ring_Modulator_DB_0_elec2h2 gc_detector1 gc_laser a sch_x=-1 sch_y=-1 sch_r=270

N1 Ring_Modulator_DB_0_elec1a 0 dcsource amplitude=0 sch_x=-2.1 sch_y=-1.875
N2 Ring_Modulator_DB_0_elec1c 0 dcsource amplitude=0 sch_x=-2.2 sch_y=-1.75
N3 Ring_Modulator_DB_0_elec2h1 0 dcsource amplitude=0 sch_x=-2.3 sch_y=-1.625
N4 Ring_Modulator_DB_0_elec2h2 0 dcsource amplitude=0 sch_x=-2.4 sch_y=-1.5

Hot keys

I don't what changed. But yesterday the hotkeys were working, and were automatically loaded.

Sometime tonight they stopped. Have to run manually "SiEPIC installation and initalization", each time a new layout is created or a new GDS file is loaded.

Core: Component/Waveguide map

Data structure that can be used for various verification functions and netlist creation

ENHANCING core.py => Class Map

Simulate from opt_in label

Launch an INTERCONNECT simulation using the opt_in label:

  • user-selected opt_in
  • find closest GC
  • extract the trimmed netlist
  • read simulation parameters from opt_in label and perhaps additional data (CML's wavelength range for each component in the circuit, or configuration for the edX course laser sweep).

Waveguide changes

  • Change LayerInfo list to actual names
  • Change offset/slot to subtraction
  • Guiding shape fix
  • Waveguide to path should read path width from PCell

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.