Programs for PIC (photonic Integrated Circuit) Design

For building PICs or Photonic Integrated Circuits, there are a number of platforms that are used in industry today. Lumerical Suite is a major player for instance with built in simulators. Cadence has a platform that can simulate both photonic and electronic circuits together, which for certain applications provides a major advantage. There are two platforms that I’ve become familiar with, which are the Synopsys PIC Design Suite (available for students with an agreement, underwritten by a professor at your university to ensure it’s use is for only educational purposes) and Klayout using Nazca Design packages.

Synopsys is another great company with advanced programs for photonic simulation and PIC design. Synopsys Photonic Design Suite can include components that are designed using Rsoft. OptoDesigner is the program in the PIC design suite where PICs are designed, yet the learning curve may not be what you were hoping. The 3,000+ page manual let’s the user dive into the scripting language PheoniX, which is necessary to learn for PIC design using Synopsys. Using a scripting language means that designing your PIC can be automated, thereby eliminating repetitive designing. There also comes other advantages to this such as being able to fine tune one’s design without needing to click and drag components. Coding for PIC design might sound tedious, but if you start to use it, I think you’ll realize that it’s really not and that it’s a very powerful way of designing PICs. If you’d like to use PheoniX scripting language using the Synopsys PIC design suite, note that the scripting language is similar to C.

Synopsys PIC Design Suite, Tutorial Program for Ring Resonator

One of the greatest aspects of OptoDesigner and the PIC Design Suite is the simulation capabilities. Much like the simulations that can be run in Rsoft, these are available in OptoDesigner.

Running FDTD in OptoDesigner

The downside of Synopsys PIC Design Suite is in the difficulty of obtaining a legal copy that can be used for any and all purposes, even commercial. I mentioned that I obtained a student version. This is great for learning the software, to a certain extent. The learning stops when I would like to build something that could be sent out to a foundry for manufacture. Let’s be honest though, there is a lot to learn before getting to that point. Still, if we would even like to use a Process Design Kit (PDK) which contains the real component models for a real foundry so that you can submit your design to be built on a wafer, you will need to convince Synopsys that the PDK is only used for educational purposes and not only for learning, but as part of an education curriculum. If your university let’s you get your hands on a PDK with Synopsys Student version, you will essentially have free range to design PICs to your hearts content. If you have a student version, you’ll still have to buy a professional version if you want to design a PIC using a foundy PDK, submit it for a wafer run and sell it. I’ll let you look up the cost for that. The best way to use Synopsys is to work for a company that has already paid for the profession version, in conclusion.

Now, if you find yourself in the situation where all the simulation benefits of using OptoDesigner are outweighed by the issue of needing to perform a wafer run, you might just want to use Klayout with Nazca Design photonic integrated circuit design packages. These are both open source. Game changer? Possibly. Suddenly, you picture yourself working as an independent contractor for PIC design someday and you’ll have Klayout to thank.

Klayout and the Nazca Design packages are based on the very popular Python programming language. Coding can be done in Spyder, Notepad or even Command Prompt (lol?). If you aren’t familiar with how Python works, PIC design might move you to learn. Python takes the place of PheoniX scripting language as is used in OptoDesigner, so you still have the automation and big brain possibilities that a scripting language gives you for designing PICs. As for simulations, you’ll have to go with your gut, but you could use discrete components to design your circuit and evaluate that.

Klayout doesn’t come with a 3,000+ page manual, but you’ll likely find that it is a simpler to use than OptoDesigner. Below is a Python script, which generates a .gds file and then the file opened in Klayout.

Python Script for PIC Design in Klayout using Nazca Design packages
.gds file opened in Klayout