Published: May 23, 2024 by Kwantae Kim
Top
Open Source Chip Design
Getting Started
- Introducing Open-Source Circuit Design
-
Copy, Paste, and Run with Google Colab
Install Open Source Tools
- Integrating Jupyter Notebook in VS Code
- Setting Up Open Source Tools with Docker
- Seamless Host-Side Control of Docker
Try It Out
Initial version: May 1, 2023
Verified with Windows
Verified with MacOS
Letβs just do whatever available in the open-source circuit design world. Very luckily, some clever people
(credit to Mehdi Saligane from University of Michigan )
made all-in-one example script that we can run.
After setting up the Google Colab, you can just copy & paste the code and run it on your Google Colab environment.
Setup Google Colab
- Search
Google Colabin Google - Open Google Colab webpage
- Login with your Google account
I suggest opening a separate working account if you prefer not using the private account - Open a new notebook

- Run any code

For running the cell, useCtrl + Enter - Save the code
Useβ + Sfor MacOS orCtrl + Sfor Windows - Navigate to Google Drive β Colab Notebooks, then you can find your code file, which is
.ipynbformat
(The words were broken in the below screenshots .. due to incorrect language setting on my side π )
Copy and Paste an Example Code
- Move to OpenFASoC Github, move down, find temperature sensor, and open
Open in Colablink
- Copy and paste this example code in a cell-by-cell way into your new notebook

In the very first cell, you may figure out that it is meant to be for the tool installation.
As shown in the above video, you have to edit one line to make sure it works.
!python -m pip install pyyaml click
!python -m pip install gdstk
- If you do not make this change, it shows the following error ..

It seems to be something related to installinggdstkusing Python pip command, but I have no idea why it is not working on my side (it will be appreciated if any of you let me know the reason for this ) - Anyway, if you fix the first cell, any other cells are working all fine even with blindly copying and pasting
Generate Temperature Sensor
Floorplan

Placement

Clock-Tree Synthesis (CTS)

Routing


Yes, it looks like something is happening! Of course, you can also run the DRC & LVS of this circuit!
Generate LDO Regulator
Similarly, you can also generate Low-Dropout (LDO) Regulator by using link in the same OpenFASoC Github page.


As above, the layout is generated and you can also get the .gds file!
So What is Next?
Yeah, those things are really cool. We are managing the circuit by using Python scripts!
But it is not easy figure out what are these codes exactly meaning for. As an Analog Circuit Designer, we are mostly more familiar with Cadence Virtuoso environment, we cannot catch the flow easily by just blindly running the code, of course.
What I am mostly interested in is, how to easily deal with these open-source tools with an Analog Circuit Designerβs point of view, and write a tutorial for it.
Acknowledgments
Thanks to Sheng Zhou for helping me to verify the tutorial flow!