Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
簡単な4bitCPUの作成
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
mikiken
December 12, 2023
Programming
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
簡単な4bitCPUの作成
mikiken
December 12, 2023
More Decks by mikiken
See All by mikiken
ライフゲームの製作
mikiken
0
280
Webブラウザでページが表示されるまで
mikiken
0
97
Cコンパイラ自作はじめてみた
mikiken
0
280
seccamp2022 成果発表
mikiken
0
60
Other Decks in Programming
See All in Programming
[2026-10-09]一枚の布で作らなくてもいい。 信頼性は「パッチワーク」で紡がれる~既存の運用と新しい可能性をつなぎ合わせてきたCREの話~
tosite
0
110
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
220
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
120
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
160
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
1.6k
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
150
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
1.5k
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
1.2k
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
1.9k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
380
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
220
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
150
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
41k
The browser strikes back
jonoalderson
0
1.9k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
470
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
580
Building Adaptive Systems
keathley
44
3.3k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
720
Leo the Paperboy
mayatellez
10
2.4k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Accessibility Awareness
sabderemane
1
260
Transcript
簡単な4bit CPUの作成 電気電子工学実験 テーマS(a) 自由設計 mikiken (@mikikeen) 1
何を作ったか • 書籍「CPUの創りかた」で解説されている4bit CPUを FPGAで実装 • 予めROMに書き込んだプログラムを実行できる • LEDチカチカ •
タイマー (参考: GitHubリポジトリ) https://github.com/mikiken/TD4 2
「CPUの創りかた」―マイナビ出版 (2003) • 汎用ロジックICを用い、簡単な4bit CPU「TD4」†1を作る • アナログ回路の基礎から、丁寧に解説されている • 30刷以上重版 (技術書としては異例)
†1 “とりあえず動作するだけの 4bitCPU” の略 3 https://www.google.co.jp/books/edition/CPU%E3%81%AE% E5%89%B5%E3%82%8A%E3%81%8B%E3%81%9F/2UbaDwA AQBAJ?hl=ja&gbpv=1&printsec=frontcover
動機 • FPGAで何か作るといえばCPU • 自作CPUに関する書籍はいくつかあるが… • 「CPUの創りかた」なら授業時間内で作れそう 4
TD4の仕様 • • • • • • • • •
• • • 5 • 命令長8bit • オペコード4bit, オペランド4bit • 表現できるアドレスの大きさも4bit = プログラムは16 Stepまで • 演算用レジスタは2つ
どのような手順で作ったか • 基本的には本の記述に従って実装 • 具体的には • レジスタ → ALU†2 →
プログラムカウンタ → 命令デコーダ → ROM の順 • ROMは実装方針に迷ったので後回しに †2 Arithmetic Logic Unit (算術論理演算装置). 大層な名前がついているが、今回のCPUの場合、ただの4bitの全加算器 6
7 回路の全体像
8
ROM (メモリ) クロック生成 ← プログラムカウンタ ALU (4bit FA) 命令デコーダ レジスタ
データセレクタ 9 Aレジスタ → Bレジスタ → キャリーフラグ
• リセットがかかると、ROMの0000番地の命令から実行開始 • ROMに入っている機械語命令 • 上位4bit(オペコード)を命令デコーダが読み込む • 下位4bitを(オペランド)をレジスタに読み込む • ALUはレジスタから値を読み込み、演算を行う
• 演算結果をレジスタに書き込む • プログラムカウンタを+1する • このような動作をクロックに合わせて、繰り返し行う 10 回路の全体像
ROMの実現方法 • 書籍では、8bit DIP SW✕16個 でROMを表現 • 評価ボードのDIPスイッチが 足りない •
Verilogで、各アドレスに対し 機械語命令を返す論理素子を 記述することでROMを表現 11
サンプルプログラム1 : LEDチカチカ 12
サンプルプログラム1 : LEDチカチカ 13
サンプルプログラム2 : タイマー • 実演します 14
感想 • ブラックボックスだと思っていたCPUの仕組みを ある程度知ることができ、勉強になった • もう少し大規模なCPUをHDLを用いて実装してみたい 15