半導体製造
(TinyTapeout) に
挑戦しよう!
iHP130 版
Noritsuna Imamura
noritsuna@ishi-kai.org
本日のメニュー
• 半導体製造≒ TinyTapeout とは?
• TinyTapeout の過去の作品例紹介
• TinyTapeout でテープアウト(半導体製造)までの工程を体験
してみる
TinyTapeout とは?
デジタル・デザインを実際のチップ上で製造することを、
これまで以上に簡単かつ安価に実現する教育プロジェクトです!
https://tinytapeout.com/
デジタル・デザインとは? Verilog で書くことも可能
プロジェクト(サービス)内容
設計ツール( EDA
ツール)
• デジタル
• Web ベース設
計ツール
• OpenLANE2
• アナログ
• なし
仕様 (Pin)
• I/O
• Input 8pins
• Output 8pins
• In/Out 8pins
• Reset
• Clock 10MHz
お値段
• 半導体 + 基板
= €150 + 送料
• 1Tile( 区画 )
= €50 each
• MAX:8x2Tiles
回数
• リードタイム
• 約半年
• 4 月と 9 月
• iHP シャトル
のペース
1 区画(ユーザエリア)は?
• 1 区画: 200um x 150um
• iHP130nm プロセス
で?どのくらいってこと???
• i4004 の利用セル(ゲート)数 :1071
• 空間的には半分しか使っていない
2000 セルくらいが限界か?
• ピンが上部にしかない(次のページ参照)
• AutoRouter があまり頭良くない
i4004 使用率: 50%
PCB とは?
• プリント基板:これは初期モデル
• U1 にところに作られた ASIC が載る
• ユーザ用
• 8 DIP switch inputs x 1
• 6x2 Header Pins x 2(PMOD)
• 7seg LED
• システム用
• 9 DIP switch x 1
• ID セレクト用
• 3x2 Header Pins x 1
• Debug?
• Type-C port
• Power Supply
Web 設計ツールは?
https://wokwi.com/
projects/
354858054593504257
Verilog で書くことも可能
過去の
作品例
• こちらにリンクがあります
• https://tinytapeout.com/digital_de
sign/
• https://tinytapeout.com/runs/
テープアウト
(半導体製造)
まで体験
使ってみた感想
• 作業日数
• 4 日間:土日を 2 回
• 何を作るのか?
• ポイント:カッコいいことは
考えない!
• PCB 無しもあるので、それを
ダイソーのアクセサリー作成
キットでキーホルダーにす
るってのもあり!
• 製造することを楽しもう!
1 , GitHub テンプレートを fork する
• Github のテンプレート
• Wokwi 用
• https://github.com/TinyTapeout/ttihp-wokwi-template
• HDL(Verilog) 用
• https://github.com/TinyTapeout/ttihp-verilog-template
※ このテンプレートは、 TinyTapeout の iHP の 2025 年 9 月のシャトル
(製造)用です。
投稿するシャトル(製造)用のをお使いください。
今回は Verilog プロジェクトとします
プロジェクト名をつける
ttihp25b-
tt_um_[username]_[projectname]
2 , GitHub を local に clone する
• コミット可能な形で clone してください
3-1 , info.yaml を書き換える
• Title
• プロジェクトの名前
• Author
• 自分の名前
• Discord
• Discord ID (運営からの連絡
用)
• Description
• プロジェクトの説明
• Language
• “Verilog” のままで
• Clock_hz
• 利用したいクロック数を指定
• tiles
• 必要なサイズを選択
• Top_module
• ttihp25b-tt_um_[username]_[projectname] の tt_ 以降
• Source_files
• 使用する Verilog ファイルをすべて列挙する( 1 行 1 ファイル)
3-2 , info.yaml を書き換える
3 -3 , info.yaml を書き換える
• 入力する場合はそれぞれのピン名
を入力します。
• 空欄だとエラーとなります
4-1 , GitHub Actions を有効にする
4-2 , GitHub Actions を有効にする
5 , GitHub Actions で GDS を実行する
• gds を選択します
• GDS が半導体製造のためのファイルとなります
ターゲットとなる
Branch 名を選択する
生成中はクルクル
回転する
6 , GitHub Actions で test を実行する
• GDS の実行ができていれば、エラーは出ません。
7 , TinyTapeout に提出 (submit) する
• TinyTapeout の HP から提出 (submit) を行う
• https://app.tinytapeout.com/projects/create
• GitHub と TinyTapeout のアカウントを紐づけられる
• ここで、支払いも行われます
8 , TinyTapaout に登録される
ローカル環境
構築手順
1, Local 環境で GDS を作成する
• 毎回 github にアップロードして、ビルドを試すのでは開発効
率が非常に悪いです。
• そこで、ローカルでビルド( GDS 生成)をする方法を解説します。
• 環境
• WSL 上の Ubuntu24.04
• Docker Desktop for Windows
2, Local 環境で GDS を作成する
• 必要なソフトウェアをセットアップする
> sudo apt install python3.12-venv python3-tk librsvg2-bin pngquant
3, Local 環境で GDS を作成する
• 環境変数を設定する
export PDK_ROOT=~/ttsetup/pdk
export PDK=ihp-sg13g2
export OPENLANE_IMAGE_OVERRIDE=ghcr.io/tinytapeout/openlane2:ihp-v3.0.0.dev23
4, Local 環境で GDS を作成する
• 必要なプロジェクトを clone する
> git clone https://github.com/[username]/ttihp25b-tt_um_[username]_[projectname]
~/ttihp25b-tt_um_[username]_[projectname]
> cd ~/ttihp25b-tt_um_[username]_[projectname]
> git clone -b ttihp25b https://github.com/TinyTapeout/tt-support-tools tt
5, Local 環境で GDS を作成する
• Python 環境を整備する
> mkdir ~/ttsetup
> python3 -m venv ~/ttsetup/venv
> source ~/ttsetup/venv/bin/activate
> pip install –r ~/ttihp25b-tt_um_[username]_[projectname]/tt/requirements.txt
> pip install https://github.com/TinyTapeout/libparse-python/releases/download/0.3.1-dev1/
libparse-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
> pip install https://github.com/TinyTapeout/openlane2/releases/download/ihp-v3.0.0.dev23/
openlane-3.0.0.dev23-py3-none-any.whl
6, Local 環境で GDS を作成する
• PDK をセットアップする
> git clone -b tt2025 https://github.com/TinyTapeout/IHP-Open-PDK $PDK_ROOT
7, Local 環境で GDS を生成する
• GDS を生成する
• 二度目以降は環境変数の設定と下記のコマンドをすれば生成可能
• source ~/ttsetup/venv/bin/activate
• verilog ファイルなどを追加した場合は create-user-config から実行すること
> cd ~/ttihp25b-tt_um_[username]_[projectname]
> ./tt/tt_tool.py --create-user-config --ihp
※Docker が動いている必要がある
️
⭕️
GDS の生成
> ./tt/tt_tool.py --harden --ihp
️
⭕️ワーニングを出力
> ./tt/tt_tool.py --print-warnings
️
⭕️
GDS を PNG で出力
> ./tt/tt_tool.py --create-png
8, Local 環境で Test を実行する
• テスト環境の構築と実行
> cd ~/ttihp25b-tt_um_[username]_[projectname]
> cd test
> pip install -r requirements.txt
⭕️テストの実行
> make -B

Try! Make Your Chip by TinyTapeout for iHP