PhotoCAD
  • Introduction
    • PhotoCAD Introduction
      • fnpcell
      • link
  • Installation
    • Installing PhotoCAD
      • System Requirement
      • Install Python IDE and Python package
      • Install PhotoCAD
      • PhotoCAD file structure
  • PhotoCAD Hands-on
  • gpdk (generic PDK)
    • Components: gpdk built-in components
      • Passive components
      • Active components
    • Examples: gpdk built-in examples
    • Routing: gpdk built-in routing method
    • Technology: gpdk-related process setting
      • Default process
      • Customized process
      • Waveguide information
    • layout01: Project Development
  • fnpcell
    • Definition of each component class in fnpcell
      • Full script
      • Section Script Description
    • The use of classes in fnpcell (generating components)
      • Section Script Description
    • Example of using fnpcell to build class
      • Example1: bend_bezier.py
        • Full script
        • Section Script Definition
      • Example2: bend_circular.py
        • Full script
        • Section Script Definition
    • Design Rule Check(DRC)
      • Generate SVRFTM template
      • Generate DRC template files using SVRFTM templates
        • Full script
        • Section Script Definition
      • Using DRC template files
      • Format instructions
    • Writing a user-defined PCell in PhotoCAD
      • Import module
      • Define RingResonator
      • Define RingResonator2
      • Create examples(layout units) using classes RingResonator and RingResonator2
      • GDS Layout

Guides

  • Create a Parametrized Cell(PCell)
    • Create shapes and boundaries
      • fp.el API
        • fp.el
      • fp.g API
        • fp.g
    • Default values for PCell Parameters
      • Ways to implement default values for PCell parameter
    • Define Ports/Pins
      • Ports/Pins from existing PCells
      • Manually adding Ports/Pins
        • Full Script
        • Section Script Description
        • View the layout
    • Generate array of cells
      • new_array
        • Full script
        • Section Script Description
        • Export GDS Layout
    • List of gpdk components
      • BendEuler
        • Full script
        • Section Script Description
        • Extend PCells from BendEuler
        • Export GDS Layout
      • Taper
        • Full script
        • Section Script Description
        • Extension of the taper ports
      • Splitter
        • Full Script
        • Section Script Description
        • Run the script and view the layout
      • Directional Coupler Bend
        • Full script
        • Parameter description
      • Ring filter
        • Full script
        • Parameters and testing descriptions
      • Elliptical Rings
        • Full script
        • fp.el.Ring Description
        • fp.el.EllipticalRing Description
      • Phase Shifter
        • Full script
        • Segment Description
          • 1. Import function module
          • 2. Main function
          • 3. Define function
      • Sampler Periodic
        • Full script
        • Left graph
        • Right graph
      • Mach-Zehnder modulator
        • Full Script
        • Section Script Description
        • Export GDS Layout
      • Grating Coupler with linecap
        • Full script
          • Section Script Description
          • Run the script and view the layout
  • Create a CUSTOM PDK
    • technology
      • layers.csv
      • waveguide factory.py
        • Straight
        • CircularBend
        • Implementation
      • wg.py
        • waveguide configuration
        • Define parameters in each waveguide types
        • Generate waveguide class
        • Generate wg information to csv file
      • auto_transition.py
        • Create transition components
        • Set up transition settings
        • Example
      • auto_link.py
        • LESS_TRANS
        • MAX_SWG
        • Usage
      • linker.py
    • components
      • Straight
      • bend_circular
      • Taper
      • Transition
      • grating_coupler
      • MMI
    • Standard Procedure
      • technology
        • layers.csv
        • waveguide factory.py
          • Straight
          • CircularBend
          • Implementation
        • wg.py
          • waveguide configuration
          • Define parameters in each waveguide types
          • Generate waveguide class
          • Generate wg information to csv file
        • auto_transition.py
          • Create transition components
          • Set up transition settings
          • Example
        • auto_link.py
          • LESS_TRANS
          • MAX_SWG
          • Usage
        • linker.py
      • components
        • Straight
        • bend_circular
        • Taper
        • Transition
        • grating_coupler
        • MMI
  • Design a circuit
    • Common used transformation
      • place
      • translated
      • scaled
      • rotated
      • mirrored
    • Waveguide Routing
      • Single-port to Single-port
        • Examples
      • Multi-port to Multi-port
        • fp.Linked example ( Recommendation★★★ )
        • fp.create_links example ( Recommendation★★★★★ )
      • Routing Path Selection
        • waylines
          • Absolute control points provided
          • Relative control points provided
        • waypoints
        • target_length
    • Electrical wire Routing
      • Link Electrical Pad
        • Full script
        • Parameters and testing descriptions
        • Connections
          • Top connection
          • Middle connection
          • Bottom connection
      • Link Electrical pad with turning angle
        • Full script
        • Parameters and testing description
          • Components positioning
    • Advanced Waveguide Routing
      • Routing in batch form
        • Components Scan
          • Full script
          • Section Script Definition
        • Importing python libraries and functional modules of PhotoCAD
        • Define device adaptation, fiber coupling, constant fiber coupler and several other classes
        • Define the batch class Block
        • Define Alignment
        • Define Title
        • Define Blank
        • Define method to get the port center
        • Define methods for obtaining module content
        • Define CompScan
        • Define CompScanBuilder
        • Create the component and export the layout
          • Script Description
          • GDS Layout
      • Extension of the ports
      • Extended
        • Full script
        • Section Script Definition
          • Create extended ports and export layout
        • GDS Layout
      • Expand the footprint for downstream devices
      • HFanout
        • Full script
        • Section Script Definition
          • Importing libraries and modules
          • Define HFanout
          • Create components and export layouts
        • GDS Layout
      • Horizontalization of device ports
      • Horizontalized
        • Full script
        • Section Script Definition
          • Create horizontalized components ports and export layouts
        • GDS Layout
      • LinkBetween
        • Import function module
        • Main function
        • Define function
        • Test for waypoints in LinkBetween
      • Routing automation between components ports
        • Linked
          • Full Script
          • Section Script Description
        • AutoTransitioned
      • LinkSmooth
        • Full script
    • Design rule check(DRC)
      • What is DRC?
        • Exclusion
        • Inclusion
        • Minimum_width
      • DRC check in KLayout
        • View designs in KLayout
        • Import DRC file to KLayout
        • View design rule errors
        • Make adjustments or waive the error
      • Examples files to test your knowledge
  • Post Layout Simulation
    • Component level simulation model
      • WGModel class
      • Script description
      • Other simulation models
    • MZI post-simulation
      • Full script
      • Build simulation models for WG, DC
      • Implement simulation models to components
      • Build MZI circuit and define poet-simulation functions
      • Generate GDS file and run post-simulation
  • Useful function when scripting PhotoCAD
    • Placing PCell ports
    • Get PCell information
      • Get PCell name
      • Get PCell region
      • Get ports information
      • Get two points relative information
    • Boolean operations between elements and layers
      • Boolean with different layers
      • Boolean with elements
    • Importing/Exporting GDS/Json file
      • Import GDS file
      • Export GDS file
      • Export Json file
    • Simplify layout by fp.use_sketch_view
      • Implement fp.use_sketch_view
      • Different usage of fp.use_sketch_view
      • GDS file build-time results
      • Example Scripts
    • Manually add ports/pins on PCells
    • Get the coordinates of the cell
    • Change the cell name in GDS file
      • Cell naming rules
    • Pytest: Prevent unexpected changes to the layout
      • Accidental modification of PCell with completed design
      • Accidental modification of other shared methods
    • Max-Optics simulation interface: runner.py
      • Interface usage:
      • Interface script description:
  • Quick Start: Create a Circuit
    • Step 1: Build basic building blocks
      • Bend
      • Straight
      • Taper
    • Step 2: Build basic circuits with basic building blocks
      • DirectionalCoupler
      • MMI
    • Step 3: Build complex circuits using basic building blocks
      • target_length
      • waypoints
      • waylines
    • Step 4: Drawing of common shapes and layout design by Boolean operations
      • Commonly_used_shape
        • Rectangle
        • Circle
        • Polygon
        • Ring
        • Regular_Polygon
      • Boolean_operation
        • OR
        • AND
        • NOT
        • XOR
        • Examples
    • Step 5: Example(MMI Tree)

Examples

  • Programmable Photonic Integrated Circuit
    • Part I. Building a Rectangular Network
    • Part II. Parameter Description
    • Part III. Test Description
    • Part IV. Summary
  • Triangle MZI mesh
    • Part I. Build MZI units
    • Part II. Build programmable triangular MZI mesh
      • MZI Mesh with 8 external optical ports (MZI_triangle_mesh)
      • MZI Mesh with 8 Grating Couplers (MZI_triangle_mesh_with_GC)
      • Triangle MZI array (MZI_triangle_array)
  • Demultiplexer
    • Full script
    • View GDS layout file
    • Instantiation of components
    • Testing and Analysis
    • Get Pcells information via get
    • Summary
  • Cascaded Mach-Zehnder (CMZ) wavelength filter
    • Implement simulation models for auto-link
    • Wavelength Splitters
    • CMZ wavelength demultiplexer
  • Visualize in Jupyter Notebook
    • MZI circuit layout generation in Jupyter notebook
      • Create a Jupyter Notebook
      • Code cell & Markdown cell
      • Generate MZI layout

Support and Changelog

  • fnpcell API
    • Commonly used interface
      • Graphics
      • Routing
      • Transform
      • Information
    • PCell Parameters
      • Classes
      • AnchorParam
      • BooleanParam
      • DegreeParam
      • DeviceParam
      • FloatParam
      • IParam
      • IntParam
      • LayerParam
      • ListParam
      • MappingParam
      • MetalLineTypeParam
      • NameListParam
      • NameParam
      • NonNegFloatParam
      • NonNegIntParam
      • Param
      • PointsParam
      • PortOptionsParam
      • PositionParam
      • PositiveFloatParam
      • PositiveIntParam
      • SetParam
      • TextParam
      • TransformParam
      • WaveguideTypeParam
  • Release notes
    • PhotoCAD V1.5.0
    • PhotoCAD V1.6.0
  • Frequently Asked Questions
    • Data Compression
    • Smooth curve for routing using bend_factory
    • Differences between __post_pcell_init__ & __post_init__
  • About Us
PhotoCAD
  • gpdk (generic PDK)
  • Technology: gpdk-related process setting
  • View page source

Technology: gpdk-related process setting

Default process

The technology in gpdk holds a number of common configuration files dealing with process and layout display, such as:

  • Process layers definitions: layers.py

  • Layers display settings: display.py

  • Layout pattern accuracy setting: metrics.py

  • Waveguide type definitions: wg.py

  • Routing-related settings definition: auto_link.py

  • Automatic waveguide type transition: auto_transition.py

  • Waveguide corner customization: auto_bend.py

  • Metal wiring related settings: auto_via.py, fitting_function.py

Note: The drc subfolder of technology contains the design rule check template based on the current process generated layout, the CalibreTM DRC rule deck template script.

../_images/technology1.png

Customized process

In order to be more convenient for users to use and customize the process information, mainly for layers.py and display.py, technology provides a convenient user-defined file layers.csv file, users can open gpdk > technology > layers.csv file to customize their relevant processes.

../_images/technology2.png

First double-click on the file to open the table as shown below:

../_images/technology3.png
  • LAYER and DATATYPE together determine the number of the layer.

  • NAME is used to define the name of the layer.

  • DESCRIPTION is the description of the layer.

  • PROCESS and PROCESS_DESCRIPTION are used to define and describe the etching process, respectively.

  • PURPOSE and PURPOSE_DESCRIPTION are used to define and describe the processing process respectively.

  • FILL_COLOR is used to define the color of the filled layer.

  • FILL_PATTERN is used to define the graphics of the filled layer, mainly diagonal and back-diagonal.

  • STROKE_COLOR is used to define the color of the border of the layer.

All these information are user-defined.

Then after the user has customized the relevant process information, running gpdk > technology > generate_layers_display_from_csv.py directly will generate the generated folder in gpdk > technology, which contains the display.py, layers.csv, layers.lyp, layers.py, and wg.csv files.

../_images/technology4.png

Finally, we can use the relevant process setup files generated in the file via gpdk > technology > tech.py . Double-click to open the tech.py file to reveal the following scripts:

from .auto_link import LINKING_POLICY
from .auto_transition import AUTO_TRANSITION
from .auto_vias import AUTO_VIAS
from .bands import BAND
from .device import DEVICE
from .display import DISPLAY
from .fitting_function import FITTING_FUNCTION
from .gdsii import GDSII
from .label import LABEL
from .layers import LAYER, PROCESS, PURPOSE
from .linker import LINKER
from .metal import METAL
from .metrics import METRICS
from .terminal import PIN, PORT
from .vias import VIAS
from .wg import WG
from .resource import RESOURCE

In the module import section we replace the original:

from .display import DISPLAY
from .layers import LAYER, PROCESS, PURPOSE

to:

from .gennerated.display import DISPLAY
from .gennerated.layers import LAYER, PROCESS, PURPOSE

Save it again and then you can use the custom process information.

Waveguide information

In order to be more convenient for users to view the information of the waveguide process in use, technology provides a convenient method to reverse the python source file to generate a csv netlist file, users can open gpdk > technology > wg.py and run it, then the wg.csv file will be generated in the generate folder, you can open the file to quickly view various information related to waveguide.

../_images/technology5.png
Previous Next

© Copyright 2024, Latitudeds.com.

Built with Sphinx using a theme provided by Read the Docs.