Session 4: Fabrication Basics (Layout & Fabrication)¶
Homework¶
Homework
- Block diagram: Sketch your project’s architecture showing major modules and data flow (e.g., Pocket Synth: button inputs → tone selector → oscillator → PWM output)
- Explore a standard cell: Open the sky130 standard cell library in KLayout and find an inverter (sky130_fd_sc_hd__inv_1). Identify metal, poly, and diffusion layers.
In the container:
klayout /foss/pdks/sky130A/libs.ref/sky130_fd_sc_hd/gds/sky130_fd_sc_hd.gds
Tip: Use Edit → Find (Ctrl+F) to search for “inv_1” - Connect the dots: Pick one block from your diagram — what standard cells might implement it? (e.g., “counter” needs flip-flops, “tone selector” needs muxes)
Words¶
AI-generated summary
This section includes to be summarized using NotebookLM (Source: lecture page)
KLayout is an open-source GUI-based viewer and editor for chip design (layout).
It is used to visually inspect and directly edit the physical layout of a chip.
KLayoutは、チップ設計(レイアウト)におけるオープンソースのGUIベースのビューアおよびエディタです。
物理レイアウトの編集・閲覧: チップの物理的な形状(レイアウト)を視覚的に確認したり、直接編集したりするために使用されます。
A PDK (Process Development Kit) provides everything you need to design for a specific fab process:
| Component | Purpose |
|---|---|
| Layer Maps | Defines which GDS layers correspond to which physical layers |
| Feature Sizes | Minimum/maximum dimensions for each layer |
| Design Rules | DRC rule deck for the process |
| Device Models | SPICE models for transistors, resistors, capacitors |
| Standard Cells | Pre-designed logic gates (for digital flows) |
PDK(プロセス開発キット)は、特定のファブ(半導体製造プロセス)向けに設計を行うために必要なすべてのものを提供します。
| コンポーネント | 目的 |
|---|---|
| レイヤーマップ | GDSレイヤーがどの物理レイヤーに対応するかを定義する |
| フィーチャーサイズ | 各レイヤーにおける最小/最大寸法を規定する |
| 設計ルール | プロセス用のDRC(設計ルールチェック)ルールデッキ |
| デバイスモデル | トランジスタ、抵抗、コンデンサのSPICEモデル |
| 標準セル | あらかじめ設計された論理ゲート(デジタル設計フロー用) |
Homework 1¶
Homework
- Block diagram: Sketch your project’s architecture showing major modules and data flow
(e.g., Pocket Synth: button inputs → tone selector → oscillator → PWM output)
Diagram¶
Pocket Synthesizer¶
- Objective: The final goal is to complete a “music-playing chip.”
- Design Flow (Digital Flow):
- we describe the behavior in a hardware description language called Verilog, such as: “When a button is pressed, output a specific note (e.g., NOTE_C).”
- Using a tool like Yosys, the code is synthesized into logic cells such as flip-flops, multiplexers (MUX), and comparators.
- through automatic place-and-route using OpenROAD, the design is physically implemented as an actual circuit on silicon.
- Internal Mechanism (Architecture): In the example block diagram shown in the assignment, the system is expected to consist of the following modules:
- Button inputs
- Tone selector
- Oscillator
- PWM output
- 目的: 最終的に「音楽を奏でるチップ」を完成させることを目指します。
- 設計フロー(デジタル・フロー):
- まず「ボタンが押されたら特定の音(NOTE_Cなど)を出す」といった動作をVerilogというハードウェア記述言語で書きます。
- ツール(Yosys)によって、そのコードがフリップフロップ、マルチプレクサ(mux)、比較器などの論理セルに変換されます。
- 最終的に自動配置配線(OpenROAD)を経て、実際のシリコン上に物理的な回路として構築されます。
- 内部の仕組み(アーキテクチャ): 宿題の例として示されているブロック図では、以下のようなモジュールで構成されることが想定されています。
- ボタン入力(Button inputs)
- トーン・セレクター(Tone selector)
- オシレーター(Oscillator)
- PWM出力(PWM output)

Homework 2¶
Homework
2. Explore a standard cell: Open the sky130 standard cell library in KLayout and find an inverter (sky130_fd_sc_hd__inv_1). Identify metal, poly, and diffusion layers.
In the container:
klayout /foss/pdks/sky130A/libs.ref/sky130_fd_sc_hd/gds/sky130_fd_sc_hd.gds
Tip: Use Edit → Find (Ctrl+F) to search for “inv_1”
File structure
.
├── foss
│ ├── designs
│ ├── examples
│ └── pdks
│ └── sky130A
│ ├── labs.ref
│ │ └── sky130_fd_sc_hd
│ │ └── gds
│ │ └── sky130_fd_sc_hd.gds
│ └── libs.tech
On Terminal in Docker container
/foss/designs > which klayout
/foss/tools/klayout/klayout
/foss/designs > klayout /foss/pdks/sky130A/libs.ref/sky130_fd_sc_hd/gds/sky130_fd_sc_hd.gds

AI-generated summary
This section includes to be summarized using NotebookLM (Source: lecture page)
The purpose of this assignment is to open a cell and visually identify where the following three main layers are located in the layout.
- Metal: The wiring layer used to carry electrical signals.
- Poly (Polysilicon): The layer that forms the gate of a transistor.
- Diffusion: The region where the transistor itself is formed.
To understand how the “logic” we have simulated in SPICE so far is actually implemented as a physical form (geometrical patterns) on silicon.
セルを開いたら、その図面の中で以下の3つの主要な層がどこにあるかを目で見て確認することが宿題の目的
- メタル(Metal): 信号を伝えるための配線層
- ポリ(Poly): トランジスタの「ゲート」を形成する層
- 拡散層(Diffusion): トランジスタそのものが形成される領域
これまでSPICEでシミュレーションしてきた「論理」が、実際にはどのような「物理的な形(幾何学模様)」としてシリコン上に配置されるのかを理解するため

Layers that the inv_1 calls use
| All Layers | ![]() |
![]() |
| Used Layers(inv_1 call) | ![]() |
![]() |
















Note
64/5
64 = Layer number
5 = Data type number
AI-generated summary
This section includes to be summarized using NotebookLM (Source: lecture page)
Layer 64 (Diffusion / Active)
├── Datatype 0 → Active diffusion geometry (actual silicon area)
├── Datatype 5 → Diffusion text label
├── Datatype 16 → Diffusion pin definition
├── Datatype 20 → Diffusion net marker (for extraction)
└── Datatype 59 → Diffusion blockage / special marker
Layer 65 (Tap / Substrate)
└── Datatype 20 → Substrate / well tap connection marker
Layer 66 (Polysilicon)
├── Datatype 20 → Poly net marker
└── Datatype 44 → Poly routing blockage
Layer 67 (Polysilicon Label/Pin)
├── Datatype 5 → Poly text label
├── Datatype 16 → Poly pin definition
└── Datatype 44 → Poly special marker / blockage
Layer 68 (Metal1)
├── Datatype 5 → Metal1 text label
├── Datatype 16 → Metal1 pin definition
└── Datatype 20 → Metal1 net marker
Layer 78 (Via / Interconnect Marker)
└── Datatype 44 → Via blockage
Layer 81 (Well)
└── Datatype 4 → N-well / P-well region
Layer 83 (Implant)
└── Datatype 44 → Implant restriction marker
Layer 93 (Higher Metal Blockage)
└── Datatype 44 → Metal routing blockage
Layer 94 (Metal2)
└── Datatype 20 → Metal2 net marker
Layer 95 (Metal3)
└── Datatype 20 → Metal3 net marker
Layer 122 (Metal4)
└── Datatype 16 → Metal4 pin definition
Layer 236 (Annotation)
└── Datatype 0 → General drawing / annotation layer
Layer 64 (Diffusion / Active 拡散層)
├── Datatype 0 → 拡散層の実際のシリコン形状
├── Datatype 5 → 拡散層のテキストラベル
├── Datatype 16 → 拡散層のピン定義
├── Datatype 20 → 拡散層のネット抽出マーカー
└── Datatype 59 → 拡散層のブロッケージ/特別指定
Layer 65 (タップ/基板接続)
└── Datatype 20 → ウェル/基板タップ接続マーカー
Layer 66 (ポリシリコン)
├── Datatype 20 → ポリのネット抽出マーカー
└── Datatype 44 → ポリ配線禁止領域
Layer 67 (ポリ ラベル/ピン)
├── Datatype 5 → ポリ上のテキスト
├── Datatype 16 → ポリ上のピン定義
└── Datatype 44 → ポリの特別指定/ブロック
Layer 68 (Metal1)
├── Datatype 5 → Metal1のテキストラベル
├── Datatype 16 → Metal1のピン定義
└── Datatype 20 → Metal1のネット抽出マーカー
Layer 78 (ビア関連)
└── Datatype 44 → ビア配置禁止領域
Layer 81 (ウェル層)
└── Datatype 4 → N-well / P-well 領域
Layer 83 (インプラント層)
└── Datatype 44 → ドーピング制限マーカー
Layer 93 (上位メタル禁止)
└── Datatype 44 → メタル配線禁止領域
Layer 94 (Metal2)
└── Datatype 20 → Metal2ネット抽出マーカー
Layer 95 (Metal3)
└── Datatype 20 → Metal3ネット抽出マーカー
Layer 122 (Metal4)
└── Datatype 16 → Metal4ピン定義
Layer 236 (注釈層)
└── Datatype 0 → 一般描画/注釈レイヤー
SkyWater SKY130 PDKSkyWater SKY130 Process Design Rules
Sky130 Main Layers Overview
- Layer 64: difftap (Active / Diffusion)
The region where transistors are physically formed. This is one of the primary layers to focus on when observing an inverter cell (e.g., inv_1) in KLayout. - Layer 66: poly (Polysilicon)
The layer that forms the transistor gate. When it overlaps with the diffusion layer (Layer 64), a functioning transistor is created. - Layer 68: met1 (Metal 1)
The lowest metal interconnect layer, typically used for local routing, such as wiring within a standard cell. - Layer 94: met2 (Metal 2)
The metal layer above met1, used for wider-area signal routing and higher-level interconnections.
Sky130 主要レイヤーの確認
- Layer 64: difftap (Active / Diffusion / 拡散層)
トランジスタが形成される領域。KLayoutでインバータ(inv_1)を観察する際の主要なターゲットの一つ。 - Layer 66: poly (Polysilicon / ポリシリコン)
トランジスタの「ゲート」を形成する層。拡散層(Layer 64)の上に重なることでトランジスタとして機能。 - Layer 68: met1 (Metal 1 / 第1金属配線層)
最も低い位置にある金属配線層で、局所的な接続(セル内の配線など)に使用される。 - Layer 94: met2 (Metal 2 / 第2金属配線層)
met1の上にある配線層で、より広い範囲の信号ルーティングに使用される。
inv_1 cell
| Top | Layer94 (metal layer M2) It is placed above M1(Metal 1) with an insulating layer in between and is used for wide-area signal routing. |
![]() |
| Layer68 (metal layer M1) It is located above the polysilicon layer and is mainly used for local interconnections within a cell. |
![]() |
|
| Layer66 (poly layer) It is the layer that forms the transistor gate. It is located directly above the diffusion layer (Layer 64) and is responsible for controlling the switching operation. |
![]() |
|
| Bottom | Layer64 diffusion layer It is the bottom layer (the surface of the silicon substrate). It is the “diffusion region” where the transistors themselves are formed, and it is created in the early stage of the manufacturing process (FEOL). |
![]() |
| Top | Layer94 (metal layer M2)第2金属配線層 M1(Metal 1)の上に絶縁層を挟んで配置され、広い範囲の信号ルーティングに使用される |
![]() |
| Layer68 (metal layer M1)第1金属配線層 ポリシリコン層の上に位置し、主にセル内の局所的な接続に使われます |
![]() |
|
| Layer66 (poly layer) トランジスタのゲートを形成する層です。拡散層(Layer 64)のすぐ上に位置し、スイッチの制御を担います |
![]() |
|
| Bottom | Layer64 diffusion layer 最下層(シリコン基板表面)です。トランジスタそのものが形成される「拡散領域」であり、製造工程の最初期(FEOL)に作られます |
![]() |
Homework 3¶
Homework
3. Connect the dots: Pick one block from your diagram — what standard cells might implement it? (e.g., “counter” needs flip-flops, “tone selector” needs muxes)

Tone selector¶
I have picked up Tone selector block from the diagram. Then “what standard cells might implement it?”
AI-generated summary
This section includes to be summarized using NotebookLM (Source: lecture page)
The purpose of this assignment is to help you concretely imagine how the abstract functional blocks you designed are actually implemented on a real chip as standard cells.
-
Replacing the Tone Selector Function with Logic Gates
The role of the tone selector is to choose one signal from multiple tone (note) candidates based on button inputs or other control signals and output it. In digital circuits, the component responsible for this type of “selection” function is a multiplexer (Mux). -
Identifying the Required Standard Cells Type of standard cell to use: Multiplexers (muxes)
- If selecting one output from two inputs → 2-to-1 Mux
- If selecting from four tones → 4-to-1 Mux
Specific example in the Sky130 PDK:
The library includes standard cells such as sky130_fd_sc_hd__mux2_1 (a 2-input multiplexer).
-
Understanding the Design Flow (Connecting the Dots) By associating “Tone Selector = Multiplexer”, you are understanding the following design flow: 1. Verilog Code: You write code such as: “If button A is pressed, output tone A.”
2. Logic Synthesis: A tool like Yosys analyzes your Verilog code and converts it into an appropriate number of standard cells, such as multiplexers.
3. Physical Placement: A tool like OpenROAD automatically places the layout of those multiplexers (the geometric shapes you viewed in KLayout) onto the chip.
この課題の目的は、あなたが描いた抽象的な機能ブロックが、実際のチップ上でどのような「標準セル(Standard Cells)」として実現されるかを具体的にイメージすることです。
- トーン・セレクターの機能を論理ゲートに置き換える
トーン・セレクターの役割は、複数の音(ノート)の候補の中からボタン入力などに応じて一つの信号を選択して出力することで、デジタル回路においてこの「選択」という機能を担う部品はマルチプレクサ(Multiplexer / Mux)です。 - 具体的にどの「標準セル」が必要か特定する
使用する標準セルの種類: マルチプレクサ(muxes)- 2つの入力から1つを選ぶなら 2-to-1 Mux
- 4つの音から選ぶなら 4-to-1 Mux
Sky130 PDKでの具体名: sky130_fd_sc_hd__mux2_1(2入力マルチプレクサ)といった名前の標準セルとしてライブラリに用意されている。
- 設計の流れ(ドットを繋ぐプロセス)を理解する
この課題であなたが「トーン・セレクター = マルチプレクサ」と紐付けることは、以下の設計フローを理解することに繋がります。
1. Verilogコード: あなたが「もしボタンAが押されたら音Aを出す」というコードを書きます。
2. 論理合成 (Synthesis): Yosys というツールが、そのコードを解析し、適切な数のマルチプレクサなどの標準セルに変換します。
3. 物理配置: OpenROAD というツールが、そのマルチプレクサのレイアウト(あなたがKLayoutで見たような図形)をチップ上に自動で配置します
.
├── foss
│ ├── designs
│ ├── examples
│ └── pdks
│ └── sky130A
│ ├── labs.ref
│ │ └── sky130_fd_sc_hd
│ │ ├── gds
│ │ │ └── sky130_fd_sc_hd.gds
│ │ ├── mag
│ │ │ ├── sky130_fd_sc_hd__mux2_1.mag
│ │ │ ├── sky130_fd_sc_hd__mux2_2.mag
│ │ │ ├── sky130_fd_sc_hd__mux2_4.mag
│ │ │ ├── sky130_fd_sc_hd__mux2_8.mag
│ │ │ ├── sky130_fd_sc_hd__mux2i_1.mag
│ │ │ ├── sky130_fd_sc_hd__mux2i_2.mag
│ │ │ ├── sky130_fd_sc_hd__mux2i_4.mag
│ │ │ ├── sky130_fd_sc_hd__mux4_1.mag
│ │ │ ├── sky130_fd_sc_hd__mux4_2.mag
│ │ │ └── sky130_fd_sc_hd__mux4_4.mag
│ │ └── maglef
│ │ ├── sky130_fd_sc_hd__mux2_1.mag
│ │ ├── sky130_fd_sc_hd__mux2_2.mag
│ │ ├── sky130_fd_sc_hd__mux2_4.mag
│ │ ├── sky130_fd_sc_hd__mux2_8.mag
│ │ ├── sky130_fd_sc_hd__mux2i_1.mag
│ │ ├── sky130_fd_sc_hd__mux2i_2.mag
│ │ ├── sky130_fd_sc_hd__mux2i_4.mag
│ │ ├── sky130_fd_sc_hd__mux4_1.mag
│ │ ├── sky130_fd_sc_hd__mux4_2.mag
│ │ └── sky130_fd_sc_hd__mux4_4.mag
│ └── libs.tech
Note
Diffference of mag folder and magelf folder
mag (full layout)
It contains the complete physical layout data in Magic editor format.
It is used for LVS (Layout vs. Schematic) verification, detailed analog analysis, or when modifying the cell design itself.
maglef (Abstract / LEF Equivalent)
It contains an abstract (summary) view that can be loaded in the Magic editor.
The internal details of the cell are omitted, and it is used by automated place-and-route (P&R) tools such as OpenROAD.
magフォルダとmaglefフォルダの違い
mag フォルダ(フルレイアウト)
Magicエディタ形式の完全な物理レイアウトデータが含まれています。
LVS(Layout vs. Schematic)検証、アナログ的な詳細解析、あるいはセル設計そのものを修正する場合に使用されます。
maglef フォルダ(アブストラクト / LEF 相当)
Magicエディタで読み込めるアブストラクト(要約)ビューが含まれています。
セル内部の詳細構造は省略されており、OpenROAD などの自動配置配線(P&R)ツールで使用されます。






