If you only plan to use the cloud workspaces, you can skip this part.
๐ฆ Steps to install the extension:
Open Visual Studio Code.
Navigate to the Extensions tab (icon with four squares) and install the GDSFactory+ extension
โ Verifying the installation:
Check for new menu items PDK and DRC on the left menu bar after restarting.
If these appear, the extension has been installed successfully.
๐ Setting up the API key:
Go to the GDSFactory+ website and navigate to the API Keys section.
Create a new API key by clicking "Create New API Key" and naming it (e.g., my api key).
View and copy the generated API key using the eye icon.
In VS Code, click the PDK icon on the left menu bar.
Open Settings, select "Edit Global Settings," and paste the API key in the key field.
Reload window.
Make sure you open a GDSFactory+ project for the extension to work properly.
๐ป Install Linux via Windows Subsystem for Linux (WSL) Optional¶
If you're using Windows, you can also install a Linux distribution through the Windows Subsystem for Linux (WSL). This allows you to run GDSFactory+ in a native Linux environment directly on your Windows machine, offering faster performance and better compatibility with photonic design tools. For that you can open a PowerShell and type wsl --install and restart your computer.
Once WSL is installed and set up, you can open your Linux environment directly in Visual Studio Code using the Remote - WSL extension. This provides a seamless development experience, as if you were working on a native Linux machine. For that you can open WSL terminal and type code .
๐ฆ Upload Private Python Packages to Your Organization's Package Index¶
This video shows you how to upload private PDKs from foundries or other private packages to your organization's private package index such as internal PDKs.
๐ Demonstration of uploading private Python packages to an organization's private package index.
Example used: a PDK (Process Design Kit) package for demopdk.
Purpose: Streamline workflows and maintain security across projects.
โฌ๏ธ Uploading the Package
Navigate to the private package index.
Upload the wheel (.whl) file for the package, e.g., DemoPDK.
Once uploaded, the package becomes immediately available for other projects.
๐ก Tips for Compatibility
Some packages require different wheel files based on:
Operating system (Windows, macOS, Linux).
Python version.
Upload multiple wheel files to ensure compatibility across operating systems.
๐ฏ Using the Uploaded Package
Open a demo project that depends on DemoPDK.
Check pyproject.toml to verify DemoPDK version (e.g., 0.12.4) is correctly specified.
Open the GDSFactory+ app:
It detects project dependencies.
Prompts to configure the environment.
Downloads and installs the necessary packages from the private index.
โจ Conclusion
Successfully uploaded and utilized a private package.
Maintains package security and simplifies management across the organization.
๐ Introduction to Browsing Components: Learn to browse both Project Components and Foundry Components using the PDK Explorer. The PDK tab organizes components, with Project Components at the top and Foundry Components at the bottom.
๐ Exploring Project Components Click on any Project Component to view its details. Access various options depending on the component, such as:
๐ GDS File: View the design layout.
๐ Schematic: Open the schematic editor to define or modify circuits.
โ๏ธ Edit: Update component details or source code.
๐ Logs: Review design logs.
๐ง Working with Schematics
Open the schematic editor to define or refine circuits.
Ensure that your layout implementation matches the intended design.
Modify source code, update schematics, or view the GDS layout as needed.
Learn how to quickly create a new photonic chip design project using a PDK template in GDSFactory+. In this tutorial, we walk through how to use the GDSFactory+ VSCode extension to generate a new project from a pre-defined template. Whether you're working with an open-access PDK like Cornerstone or a private PDK under NDA, this video shows you how to set up your environment and get started with sample components and Jupyter notebooks.
In this advanced GDSFactory tutorial, we walk through how to modify a Process Design Kit (PDK) by customizing layer views using the Cornerstone CSPDK. Youโll learn how to edit layer properties in KLayout (e.g., changing layer colors), save your custom layer.lyp file, and integrate it into your PDK setup using Python. The video covers editing the init.py file, applying changes, and verifying the results in GDSFactory. Perfect for designers looking to tailor their layout visualizations for better clarity and control.
๐ฏ Introduction to Schematic-Driven Layout Learn to create a schematic-driven layout using the PDK tab and schematic editor.
โ Creating a New Project Component: Click the PDK tab and then the + button to create a new Project Component. Choose Schematic for circuits and name it, e.g., rings_filter.
๐ฒ Adding Instances Press I to add instances of components. For example:
Add ring_single_sc and name it R1.
Add another ring_single_sc and name it R2.
Save the schematic and open the layout side by side for better visibility.
Initially, components will overlap as no placements or connections are defined.
๐ Defining Connections
Open the schematic view and press L to create links between components.
Save the schematic and use Zoom Fit to view the connected components.
๐จ Refining the Design
Modify the size or placement of components like R2 and save the changes.
๐ช Adding Ports
Press P to create ports, naming them, e.g., O1 (input) and O2 (output).
Use L to link the ports, establishing input and output connections.
Enable Show Ports to visualize the ports and verify the setup.
โก Running Circuit Simulations
Run circuit simulations with options such as:
Exporting to a Cadence Spectre netlist.
Running simulations in a Jupyter Notebook.
Performing simulations locally or remotely.
For this demonstration, run the simulation locally and view the results.
๐ค๏ธ Defining Routed Connections
To use routed connections:
Break the existing link by pressing L and disconnecting it.
Define the placement of R2, e.g., move it 100 microns to the right.
Edit the link to create a route, customize it, and name it, e.g., route_1.
Save the schematic.
Routed connections adjust automatically if component placements change, keeping the design functional.
In this video, youโll learn how to define and apply custom cross-sections in GDSFactory+. Cross-sections allow you to group multiple layers with different widths into a single, reusable configuration. We walk through the process of creating a new cross-section (strip_900), restarting the server to apply the changes, and using the cross-section in a new schematic. By the end, youโll understand how to integrate your custom cross-sections into components within your custom PDK.
DRC (Design Rule Check) ensures your design meets foundry rules.
๐ Step 1: Prepare Your GDS File Create a GDS file directly in the app or upload one from your system.
Open the GDS file within the platform. Multiple GDS files can be opened by clicking on each, appearing on the right side.
โถ๏ธ Step 2: Run DRC With the GDS file selected, click the "Check DRC" button.
๐ Step 3: Review DRC Results After DRC completes, review errors in the DRC tab. The left DRC tab allows you to hover over each error type, showing the number of violations for each.
๐ Step 4: Inspect Specific Violations. For a minimum width violation, clicking on it displays the affected component. Clicking through each error shows you the detailed information.
In this tutorial, youโll learn how to create your own custom components and attach simulation models using GDSFactory. Weโll walk through building a custom Grating Coupler, wrapping an existing SAX model, modifying its properties (e.g., to simulate 3 dB insertion loss), and running a simple circuit simulation using a schematic with input and output ports. Perfect for anyone looking to extend their PDK with custom functionality.
GDSFactory+ features an integrated AI assistant that streamlines photonic chip design by generating hierarchical YAML netlists. After activating a PDK, users can prompt the assistant (e.g., "two rings with a route") to create schematics using both custom and foundry components. Once reviewed and applied, the design can be visualized in GDS format, with auto-updating routes based on schematic-level changes.
GDSFactory supports seamless integration with Git, a powerful version control system that helps you track changes, collaborate with teammates, and manage your design projects efficiently.
๐ In this tutorial, you'll learn how to:
๐ฑ Create a new Git branch in VS Code by clicking the branch icon in the bottom left corner.
๐ Make and view code changes, and stage them using the Git menu.
๐พ Commit your changes with descriptive messagesโlike taking snapshots of your code over time (think of Git as a "time machine" for your project).
๐ง Handle pre-commit hooks, which may format your code automatically before the commit is finalized.
๐ Push your branch to a remote repository and create a pull request so your team can review and merge it into the main branch.
๐ Sync your local main branch after the merge to stay up to date.
This process allows you to collaborate on parametric component designsโlike a spiral P-Cellโwithout stepping on each other's work, making version control in hardware design as robust as it is in software.