Java VM 和 .NET CLR 都是使用堆疊的虛擬機(Stack-Based VM),而 eForth 則是堆疊虛擬機中的翹楚。Java 和 C# 語言的移植性來自中間碼(bytecode 和 IL),其效能來自 JIT。 eForth 本身就是中間碼,而它的許多基本的中間碼,可以設計成 CPU 的機器碼。eForth 這種既是虛擬機又是程式語言的無所不包之特性,讓本書得以完整地論述基於 eForth 的 32 位元微電腦之全程實作,包括 CPU 和周邊設備的 VHDL 碼,以及建造 eForth 系統的全套工具。
本書內容涵蓋:
* 電腦的原理
* 32位元CPU的VHDL設計
* 重要週邊裝置的VHDL設計
* FPGA實驗板實作驗證
* FORTH作業系統實作
* 組合器、直譯器、編譯器實作
* CPU模擬器實作
* 嵌入式系統的開發工具
市面上不乏論述微處理器及嵌入式系統方面的書籍,但都只能包含片段的知識,唯有本書一應俱全,包含了嵌入式系統必須的 CPU,操作系統和硬體軟體的開發工具。本書無保留地公佈 eForth 嵌入系統單晶片及中文字形系統的設計資料,目標就是要向年輕的工程師傳遞一個願景,我們每一個人都可以全盤掌握一個 32 位元電腦所有的硬體、軟體和系統的技術,並且可以在一個 FPGA 的實驗板上來驗證和開發嵌入系統單晶片。這樣的工程師才能夠帶領我們步入廿一世紀的數位工業。
本書的學習平台是一套 eSOCFM-1 實驗板。eSOCFM-1 實驗板是易符智慧科技公司為內部發展產品所設計的 FPGA 產品開發系統,這也是學習 FPGA 最理想的實驗環境。它的核心是一顆 Actel ProAsic Plus FPGA 晶片。配上不同型式的記憶體晶片,和一些 IO 的周邊晶片,就可以很靈活地建造不同的系統,適合各種不同的工業和商業應用。未購買 eSOCFM-1 實驗板的讀者,也可以利用本書所提供的 CPU 模擬器來學習本書所述的 32 位元電腦與 eForth 操作系統。
目錄
序
第一部分 電腦的原理和 F# 系統簡介
第一章 電腦四大定律
1.1 電腦不科學
1.2 電腦第一定律:分解定律
1.3 電腦第二定律:多樣定律
1.4 電腦第三定律:結構定律
1.5 電腦第四定律:正確定律
1.6 電腦科學了,又怎麼樣?
1.7 習題
第二章 F# 系統
2.1 Forth 精義
2.2 Forth 是最優越的電腦語言
2.3 F# 系統簡介
2.4 Forth 程式練習
2.5 算術計算
2.6 比較複雜的應用
2.7 道和名
2.8 習題
第二部分 eP32 系統的設計和實證
第三章 CPU 的設計
3.1 邏輯原理
3.2 數位邏輯
3.3 杜林機
3.4 eP32 的架構
3.5 eP32 的資料處理部份
3.6 eP32 的地址儲存部份
3.7 eP32 的地址產生部份
3.8 eP32 的有限狀態控制機
3.9 eP32 架構的優點
3.10 習題
第四章 eP32 中央處理器的設計
4.1 eP32 的輸出輸入訊號
4.2 STACK 模組
4.3 eP32 的暫存器
4.4 eP32 的內部訊號
4.5 畫線引擎中的暫存器和訊號
4.6 eP32 的指令常數設定
4.7 參數堆疊和返回堆疊的實現
4.8 畫線引擎的同步訊號設定
4.9 畫線引擎字組進位的控制訊號
4.10 X 軸上單點和橫線的初值
4.11 讀取畫線引擎的暫存器及訊號
4.12 eP32 的解碼器
4.13 eP32 指令的解碼工作
4.14 eP32 有限狀態控制機
4.15 VHDL,FPGA 與 FORTH
4.16 習題
第五章 eP32 的周邊裝置
5.1 eP32 晶片設計
5.2 UART 模組
5.3 SPI 模組
5.4 GPIO 模組
5.5 BOOT 模組
5.6 其他周邊裝置
5.7 習題
第六章 eSOCFM-1 實驗板
6.1 eSOCFM-1 實驗板的線路圖
6.2 eSOCFM-1 實驗板上的裝置
6.3 在 APA300 上建造 eP32 晶片
6.4 在 AT25128 上建造 eP32 操作系統
6.5 在 eSOCFM-1 實驗板上發展應用程式
6.6 習題
第三部份 系統的開發工具
第七章 F# 的視窗介面
7.1 中文發展系統的載入檔(FG.FEX)
7.2 視窗系統下符式的啟動程式(INIT.F)
7.3 視窗系統下支援符式的 win32 介面
7.4 視窗系統的控制台介面(CONSOLEI.F)
7.5 視窗系統下支援符式的控制台指令(CONSOLE.F)
7.6 視窗系統的選單介面(CONMENU.F)
7.7 視窗系統的輸出輸入界面(BUFFERIO.F)
7.8 視窗系統的使用者界面(UI.F)
7.9 ANSI FORTH 標準指令集(ANSI.F)
7.10 視窗系統的檔案界面(FILEINC.F)
7.11 習題
第八章 eP32 易符系統的交叉編譯
8.1 易符系統的交叉編譯器(META32U.F)
8.2 易符系統的組合器(ASM32U.F)
8.3 易符系統的符式低階指令核心(KERN32U.F)
8.4 易符系統的符式高階指令程式
8.5 易符系統的周邊裝置控制程式(FGASIC.F)
8.6 易符系統的偵錯分析程式(DIAG.F)
8.7 易符系統的模擬器(SIM32U.F)
8.8 習題
第九章 eP32 的中文發展系統
9.1 易符系統串列埠界面(COM14.F)
9.2 資料檔案上傳指令(TXFGROM.F)
9.3 視窗系統的串列埠程式(TERM4.F)
9.4 eP32 系統的擴展指令(FUP)
9.5 中文字形產生器指令集(SUP)
9.6 習題
結語 庖丁解牛
索引
序
第一部分 電腦的原理和 F# 系統簡介
第一章 電腦四大定律
1.1 電腦不科學
1.2 電腦第一定律:分解定律
1.3 電腦第二定律:多樣定律
1.4 電腦第三定律:結構定律
1.5 電腦第四定律:正確定律
1.6 電腦科學了,又怎麼樣?
1.7 習題
第二章 F# 系統
2.1 Forth 精義
2.2 Forth 是最優越的電腦語言
2.3 F# 系統簡介
2.4 Forth 程式練習
2.5 算術計算
2.6 比較複雜的應用
2.7 道和名
2.8 習題
第二部分 eP32 系統的設計和實證
第三章 CPU 的設計
3.1 邏輯原理
...