Skip to content

Session 4: Fabrication Basics (Layout & Fabrication)

Homework

Homework

  1. Block diagram: Sketch your project’s architecture showing major modules and data flow (e.g., Pocket Synth: button inputs → tone selector → oscillator → PWM output)
  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”
  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)

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

  1. 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

draw.io

Pocket Synthesizer

  • Objective: The final goal is to complete a “music-playing chip.”
  • Design Flow (Digital Flow):
    1. 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).”
    2. Using a tool like Yosys, the code is synthesized into logic cells such as flip-flops, multiplexers (MUX), and comparators.
    3. 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
  • 目的: 最終的に「音楽を奏でるチップ」を完成させることを目指します。
  • 設計フロー(デジタル・フロー):
    1. まず「ボタンが押されたら特定の音(NOTE_Cなど)を出す」といった動作をVerilogというハードウェア記述言語で書きます。
    2. ツール(Yosys)によって、そのコードがフリップフロップ、マルチプレクサ(mux)、比較器などの論理セルに変換されます。
    3. 最終的に自動配置配線(OpenROAD)を経て、実際のシリコン上に物理的な回路として構築されます。
  • 内部の仕組み(アーキテクチャ): 宿題の例として示されているブロック図では、以下のようなモジュールで構成されることが想定されています。
    • ボタン入力(Button inputs)
    • トーン・セレクター(Tone selector)
    • オシレーター(Oscillator)
    • PWM出力(PWM output)

alt text

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
alt text alt text

alt text alt text

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でシミュレーションしてきた「論理」が、実際にはどのような「物理的な形(幾何学模様)」としてシリコン上に配置されるのかを理解するため

alt text alt text

Layers that the inv_1 calls use

All Layers alt text alt text
Used Layers(inv_1 call) alt text alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

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.
alt text
Layer68
(metal layer M1)

It is located above the polysilicon layer and is mainly used for local interconnections within a cell.
alt text
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.
alt text
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).
alt text
Top Layer94
(metal layer M2)第2金属配線層

M1(Metal 1)の上に絶縁層を挟んで配置され、広い範囲の信号ルーティングに使用される
alt text
Layer68
(metal layer M1)第1金属配線層

ポリシリコン層の上に位置し、主にセル内の局所的な接続に使われます
alt text
Layer66
(poly layer)

トランジスタのゲートを形成する層です。拡散層(Layer 64)のすぐ上に位置し、スイッチの制御を担います
alt text
Bottom Layer64
diffusion layer

最下層(シリコン基板表面)です。トランジスタそのものが形成される「拡散領域」であり、製造工程の最初期(FEOL)に作られます
alt text

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)

alt text

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.

  1. 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).

  2. 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).
  3. 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)」として実現されるかを具体的にイメージすることです。

  1. トーン・セレクターの機能を論理ゲートに置き換える
    トーン・セレクターの役割は、複数の音(ノート)の候補の中からボタン入力などに応じて一つの信号を選択して出力することで、デジタル回路においてこの「選択」という機能を担う部品はマルチプレクサ(Multiplexer / Mux)です。
  2. 具体的にどの「標準セル」が必要か特定する
    使用する標準セルの種類: マルチプレクサ(muxes)
    • 2つの入力から1つを選ぶなら 2-to-1 Mux
    • 4つの音から選ぶなら 4-to-1 Mux
      Sky130 PDKでの具体名: sky130_fd_sc_hd__mux2_1(2入力マルチプレクサ)といった名前の標準セルとしてライブラリに用意されている。
  3. 設計の流れ(ドットを繋ぐプロセス)を理解する この課題であなたが「トーン・セレクター = マルチプレクサ」と紐付けることは、以下の設計フローを理解することに繋がります。
    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)ツールで使用されます。