開放電腦計畫 -- 處理器

CPU0 處理器

基礎知識

Verilog

程式計數模組

記憶體

指令提取單元

跳躍指令

控制單元

CPU0-Mini

CPU0

DE2-70 板實作

LED 與開關

七段顯示器

Clock 時脈

程式計數器

跳躍指令

CPU0-Mini

CPU0

Icarus 實作

CPU0-Mini

訊息

相關網站

參考文獻

最新修改

簡體版

English

為了用最簡單的方式,呈現複雜的電腦設計原理,我們設計了一個處理器架構,稱為 CPU0 ,這個處理器的完全是為了容易理解而設計的,沒有任何的商業性考量,不考慮效率與成本,完全只是為了容易理解,而且實作起來最簡單而設計的。

如果您想進一步瞭解處理器 CPU0 的設計原理,請參考下列文章。

我們打算用先用 VHDL , Verilog 或 Handel-C 這樣的語言設計出 CPU0 的軟核心版本,然後採用 FPGA 的方式燒錄到可程式晶片當中。為了達到這樣的目的,我們打算採用下列步驟。

  1. CPU0-Mini : 先使用 VHDL 設計出 CPU0 中的 LD, ST, ADD, JMP 等四個指令,以便設計出一個小型的 CPU,我們稱為 CPU0-Mini。設計好之後先在 Altera Quartus II 上模擬執行,成功後在 Altera 的 FPGA 板子上進行實體測試,最後用 FPGA 掛到 Arduino 上執行。
  1. CPU0 : 有了上述的經驗之後,就可以完整的設計出 CPU0 的所有指令 (36 個),然後同樣先在 Altera Quartus II 上模擬執行,成功後在 Altera 的 FPGA 板子上進行實體測試,最後用 FPGA 掛到 Arduino 上執行。

然而,設計一顆 CPU 畢竟是一件困難的工作,以我們的能力而言可能有一些瓶頸,還好開放原始碼與網路上的資源可以助我們一臂之力,目前我們已經知道有下列資源可以使用。

VHDL

  1. 華盛頓大學的 Richard 老師所設計的 CPU — (VHDL — 300 行)。

透過研究上述資源,我們認為要設計出 CPU0-Mini 已經不是那麼困難了,一但設計出 CPU0-Mini 之後就可以快速擴充,以便設計出完整的 CPU0 軟核心了。

  1. 另一顆小 CPUhttp://stackoverflow.com/questions/148229/best-way-to-learn-how-to-use-fpgas

Verilog

  1. Open Cores 這個社群中已經有一大堆 Verilog 的開放原始碼的 CPU — http://opencores.org/
  2. http://www.cnblogs.com/oomusou/

Handel-C

  1. Handel-C 硬體描述語言簡介
  2. 一個以 Handel-C 設計的 CPU
  3. Handel-C 硬體設計範例程式集
  4. Handel-C 編譯器

參考文獻

  1. [PDF] Design of a RISC Microcontroller Core in 48 Hours
  2. An overview of FPGAs and FPGA programming; Initial experiences at Daresbury
  3. 基于Handel-C语言的FPGA设计The FPGA Design Based on Handel-C Language
  4. 計算機硬體結構,作者為謝金石編著,由全華出版社出版

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License