20250412_秋月EFINIX FPGAでTD4

1.8K Views

April 13, 25

スライド概要

2025/04/12 第5回 自作CPUを語る会

profile-image

東京都下町エリア在住。今はエレクトロニクス系商社の組み込み向けUIツール部門。ラズパイやFPGA辺りをごそごそしてます。

Docswellを使いましょう

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

秋月EFINIX FPGAでTD4 @noborutkhs 2025/04/12 第5回自作CPUを語る会

2.

自己紹介 • 高橋昇 @noborutkhs • エレクトロニクス商社 組み込み向けHMIツール部門勤務 • 展示会デモを主に作っている Page 2

3.

はじめてのマイコン • 198x年頃 (昭和5x年頃) Page 3

4.

ある日壊れる • CPUとROMが壊れた る? CPUは交換。ROMは中身どうす Page 4

5.

ROMライターを自作 • 2進数でひたすら書き込む アドレス 本体が壊れているので使えない。。 書き込み データ Page 5

6.

モニタプログラムのリスト 1バイトでも間違えたら、紫外線 で全体を消去して最初から。。

7.

2進数がすんなり読めるようになった 0000 0100 1000 1100 0001 0101 1001 1101 0010 0110 1010 1110 0011 0111 1011 1111 7

8.

参考文献: 2003年の刊行から16年で30刷突破のロングセラー。 4-bit CPU TD4 8

9.

Efinix T8F81 https://akizukidenshi.com/catalog/g/g129595/ 9

10.

まずは、Lチカ 「AE-T8F81-DIP40チュートリアル_1.2.4.pdf」より 1,680円 10

11.

開発環境 参考: Interface 2022/12 別冊付録 ● MacBook Air 13-inch Early 2015 ● Virtual Box + Ubuntu Server 20.04 LTS ● XQuartz ● Efinity ○ 記事はGoWin EDAなので、記事を 参考に Linux版をインストール ● openFPGALoader openFPGALoaderは Macのターミナルで実行。 自動認識は動作しないので、オプション指定が必要。 % openFPGALoader -c ft232 count16sec.hex Page 4 基礎編 第2章 統合開発環境GoWin EDAのインストール この付録は秋月で Tang Nano 9Kを買った時 にもらいました。 11

12.

TD4の進め方 1. I/OをTD4用に拡張する MUST - 物理入力 4-bit - 物理出力 4-bit 参考: Interface 2021/12 別冊付録 OPTION - PC 4-bit - ROM 4-bit - SW ROM表示の4-bit切替 1. 主要部はInterface 2021/12付録のコードを 流用し、つなぎ合わせる • leg4_rom.v • pc.v • alu.v ROM Program Counter Decoder Page 37 7. 4ビットCPU https://www.cqpub.co.jp/interface/download/contents2021.htm 12月号 別冊付録 5000円ボードで始めるFPGA開発

13.

I/Oを拡張する タクトSW: ONでROMの上位4-bit、OFFで下位4-bit 物理出力 物理入力 PC ROM 4-bit

14.

Efinix Interface Designer ピン配置 Interface Package Pin Resource I/O Bank Interface Package Pin Resource I/O Bank clk C2 GPIOL_16 1B led_data[0] A6 GPIOR_03 2A dipsw[0] E7 GPIOR_21 2B led_data[1] B5 GPIOR_01 2A dipsw[1] F7 GPIOR_22 2B led_data[2] A5 GPIOR_00 2A dipsw[2] F6 GPIOR_24 2B led_data[3] B3 GPIOL_21 1B dipsw[3] F5 GPIOR_25 2B led_pc[0] D3 GPIOL_19 1B led[0] C7 GPIOR_07 2A led_pc[1] E3 GPIOL_18 1B led[1] A8 GPIOR_08 2A led_pc[2] D2 GPIOL_17 1B led[2] A5 GPIOR_10 2A led_pc[3] E1 GPIOL_15 1A led[3] B8 GPIOR_11 2A reverse_n J3 GPIOL_05 1A rst_n H2 GPIOL_10 1A

15.

ROMを動かす 単体デバッグ: ● 内容が正しく読み出されるか? 0 IN B 1 OUT B 2 OUT 00 3 ADD A,04 4 JNC 01 dipswの内容を出力 LED消灯 4ずつ加算 キャリーでなければジャン プ 5 OUT 0F 6 JMP 00 LED全点灯 先頭に戻る 15

16.

PCを動かす 単体デバッグ: ● PCが1ずつインクリメントされるか? ● ジャンプ命令で正しくジャンプするか? 16

17.

ALUを動かす (Decoder) 17

18.

全体をつなぐ 18

19.

全体をつないでデバッグ Img 4832.mp4 19

20.

TangPrimer 25K(GoWin)でもTD4にトライ ● 本体は、FPGAマガジン オフ会の じゃんけんでゲット!(2024/03/20) ● PMODは、AliExpressから購入 20

21.

開発環境 参考: Interface 2022/12 別冊付録 ● MacBook Air 13-inch Early 2015 ● Virtual Box + Ubuntu Server 20.04 LTS ● XQuartz ● GoWin EDA ● openFPGALoader openFPGALoaderは Macのターミナルで実行。 自動認識があるのでオプション指定は不要。 % openFPGALoader tptd4.fs Page 4 基礎編 第2章 統合開発環境GoWin EDAのインストール この付録は秋月で Tang Nano 9Kを買った時 にもらいました。 21

22.

Sipeedのサンプルを動かす pmod_digitalTube-2bit https://github.com/sipeed/TangPrimer-25K-example/tree/main/pmod_digitalTube-2bit Dip SWでモード切替 プッシュSWを押すと7-segの数値が増える カウントで点滅 7-seg 2桁のダイナミック表示 22

23.

TD4向けのI/Oの割り当てを考える 物理入力 物理出力 carry PC ROM クロック(点滅) ONでROMの上位4-bit、OFFで下位4-bit 23

24.

Efinixと同様に進めてサンプルを動かす Img 4992.mp4 24

25.

EfinixとTangPrimerの比較 • どちらもUSBからの電源供給でPCさえあれば、図書館などでも自作CPUを試せるのは便利 予算も数千円程度 • 開発環境は、この使い方の範囲では同等な感じ • ボードは GoWin(Sipeed)の方が扱いやすい • EfinixのUSBシリアル変換外付けは面倒くさいし邪魔。 25

26.

Thank you! 26