這個部落格包含我在空閒時間進行的電子、業餘無線電和嵌入式系統專案。除非另有說明,否則部落格上描述的所有文章和專案均基於我的原創設計。
TD4 是由 Kaoru Tonami 在其著作《如何打造 CPU》中介紹的一款著名的 4 位元 CPU。該書專注於完全使用基本的 74 系列 TTL 邏輯積體電路來建構一個功能性的處理器。雖然這本書很可惜只有日文版,但一位來自日本的朋友寄給我一本,並附帶了一塊 TD4 的 PCB。我相信這塊 PCB 是基於 BG5DIW 的 GitHub 儲存庫中提供的開源設計檔案。
最近,我終於有時間來組裝並實驗它。這個專案花費了幾個月的時間,因為我必須自己翻譯這本書才能掌握核心概念。整體設計簡潔優雅,提供了一組 12 條指令和一個 16 位元組的 ROM(透過 DIP 開關實現),用於程式設計。該板在 5V 電壓下運行,可透過 USB 供電。大部分元件都從當地商店採購,但我不得不線上訂購了一些 74HC 系列的積體電路。後來,我透過更換一些 74HC 元件為 74LS 系列晶片來測試電路,並且沒有出現任何問題。
PCB 的焊接非常直接。唯一的 SMD 元件是四個 LED 和一個 Micro-USB 插座。如果您以前沒有進行過 SMD 焊接,USB 插座可能會讓您感到畏懼,但您只需要焊接第 1 和第 5 腳(其餘腳在此設計中未使用)。
組裝中最耗時的部分是焊接 1N4148 二極體。書中建議使用 1S1588 或 D8-1A 二極體陣列,但這些元件在本地或線上都難以取得。因此,我選擇了單獨的 1N4148 二極體。在 TD4 架構中,這些二極體作為二極體矩陣 ROM。由於「程式」是透過實體 DIP 開關儲存的,二極體充當單向閘。當多個開關被撥動時,它們可以防止電流回饋到電路的其餘部分,有效地創建了解碼 16 位元組記憶體位址到 CPU 執行的特定 4 位元指令所需的邏輯閘。
一旦組裝完成,TD4 即可立即使用;它不需要韌體或校準。PCB 提供兩種供電選項:最簡單的是透過 Micro-USB 連接埠,第二種是 2.54mm 的針腳插座。我使用針腳插座連接我的邏輯探針的電源線,這在我與書本一起研究電路運作時至關重要。
TD4 是一款硬連線邏輯 CPU,這意味著它不使用微程式碼;每條指令都是透過邏輯閘的直接電氣路徑執行的。該晶片組通常包括:
時脈由一個簡單的 74HC14 振盪器電路產生,讓您可以手動逐步執行指令,或以非常低的頻率運行,以觀察資料在暫存器之間移動時 LED 的切換。
這個專案中最有趣的部分是程式設計。由於位址空間有限,您可以執行的任務比較有限。我實驗了各種計數器系統,所有系統都如預期般工作。我最初在紙上寫下程式碼,並根據書中的指令集手動計算 DIP 開關的位置。
為了簡化這個過程,我開發了一個使用 JavaScript 的小型網頁工具,可以直接將組合語言原始碼轉換為 DIP 開關的位置。這使我能夠快速迭代並嘗試更複雜的邏輯。您可以在這裡找到這個 TD4 Assembler 工具:github.com/dilshan/td4-assembler。
這是我在 CPU 上測試的計數器程式之一。這個特定的例程讀取 DIP 開關的輸入,並在每個時脈週期遞增值。一旦計數器達到 0xF,它就會重置回使用者指定的起始值並恢復計數。
TD4 是電腦架構的完美「Hello World」專案,因為它消除了現代處理器的複雜性。沒有隱藏的層級——沒有微碼,沒有複雜的快取,也沒有作業系統。透過建構它,您可以確切地看到位元如何從開關移動,通過多工器,然後進入暫存器。它揭開了實體硬體與軟體邏輯之間關係的神秘面紗,使其成為對嵌入式系統或電子工程感興趣的任何人的寶貴教育工具。
有關《如何打造 CPU》的詳細資訊,請參閱出版商的支援網站。同一個連結也提供了一個 TD4 模擬器(僅限 Windows)供下載。




