在仔細閱讀這本書之前,請讀者務必先看這本書的目錄??吹剿呐c眾不同了嗎?
《四則運算小計算器設計過程實錄——Verilog FPGA數(shù)字系統(tǒng)設計入門學習日記》一書*神奇的地方就在于它記錄的完全是作者趙然的學習體會,書中沒有華麗的辭藻,沒有過多的修飾,有的是完全的、毫無保留的探索過程中的經驗分享。四則運算小計算器的設計不是什么大型設計,但讀者們透過這個設計,可以掌握FPGA系統(tǒng)設計的精髓,它雖然只是“一塊磚”,但哪座大廈不是由一塊塊平淡無奇的“磚”蓋起來的呢?
如果您想10天就跨入FPGA系統(tǒng)設計的大門,這本書可以帶您實現(xiàn)理想。準備好您的板子,跟著趙然和夏宇聞教授的講解,動手吧!
四則運算小計算器設計過程實錄-Verilog FPGA數(shù)字系統(tǒng)設計入門學習日記
本書以日記的形式記錄了一個可實現(xiàn)四則運算計算器的設計過程,從而達到學習FPGA 設計的目的.全書共10章,講述了從設計開始到完成的全過程,其中包括數(shù)碼管顯示、鍵盤掃描、狀態(tài)
機等基礎模塊的設計,以及設計中需要注意的問題等,每一章的最后還有夏宇聞老師對本章內容的點評及給讀者的學習建議.希望讀者按順序閱讀本書,同時進行實踐操作,并與書中的進度保持一致,最終完成整個設計.讀者也可以根據(jù)自己的想法來實現(xiàn)想要的功能,做到舉一反三,以達到好的學習效果.書中使用的硬件為至芯科技的四代開發(fā)板、AlteraCycloneIV的芯片,軟件為uartusII13.0sp1.
本書可作為電子工程類、自動控制類、計算機類的大學本科高年級學生及研究生設計實驗參考用書,亦可供其他工程人員自學與參考.
趙然,首都師范大學光學工程碩士,曾在夏宇聞老師指導下學習Verilog數(shù)字系統(tǒng)設計三個月,美國國家儀器(NI)認證CLAD工程師。擅長數(shù)字邏輯設計,現(xiàn)任中國科學院計算技術研究所(ICT)工程師,從事FPGA開發(fā)工作。
第1章 第一天———數(shù)碼管顯示模塊的設計………………………………………… 1
1.1 設計需求講解………………………………………………………………… 1
1.2 七段式數(shù)碼管顯示原理講解………………………………………………… 2
1.3 設計工具使用講解…………………………………………………………… 4
1.3.1 QuartusII工具的配置………………………………………………… 4
1.3.2 數(shù)碼管顯示模塊的可綜合代碼………………………………………… 6
1.3.3 顯示模塊的測試………………………………………………………… 8
1.3.4 轉到ModelSim 仿真工具進行測試…………………………………… 11
1.3.5 下載程序到開發(fā)板進行調試…………………………………………… 13
1.4 今天工作總結………………………………………………………………… 19
1.5 夏老師評述…………………………………………………………………… 19
第2章 第二天———鍵盤掃描模塊的設計………………………………………… 21
2.1 設計需求講解………………………………………………………………… 21
2.2 七段式數(shù)碼管顯示原理講解………………………………………………… 22
2.3 設計工具使用講解…………………………………………………………… 23
2.3.1 矩陣鍵盤碼掃描分析模塊的可綜合代碼……………………………… 24
2.3.2 矩陣鍵盤碼掃描分析模塊代碼解析…………………………………… 29
2.3.3 矩陣鍵盤掃描分析模塊的測試………………………………………… 35
2.3.4 轉到ModelSim 仿真工具進行測試…………………………………… 42
2.3.5 下載程序到開發(fā)板進行調試…………………………………………… 42
2.4 今天工作總結………………………………………………………………… 46
2.5 夏老師評述…………………………………………………………………… 47
第3章 第三天———輸入狀態(tài)機模塊的設計……………………………………… 48
3.1 設計需求講解………………………………………………………………… 48
3.2 我對狀態(tài)機概念的理解……………………………………………………… 48
3.3 設計工具使用講解…………………………………………………………… 49
3.3.1 范例代碼解析…………………………………………………………… 49
3.3.2 重寫狀態(tài)機代碼………………………………………………………… 61
3.3.3 轉到ModelSim 仿真工具進行測試…………………………………… 67
3.3.4 下載程序到開發(fā)板進行調試…………………………………………… 67
3.4 今天工作總結………………………………………………………………… 71
3.5 夏老師評述…………………………………………………………………… 72
第4章 第四天———BCD 碼與二進制碼轉換模塊的設計………………………… 73
4.1 設計需求講解………………………………………………………………… 73
4.2 BCD碼轉二進制碼………………………………………………………… 74
4.2.1 BCD碼轉二進制碼的可綜合代碼…………………………………… 74
4.2.2 BCD碼轉二進制碼模塊的測試代碼………………………………… 75
4.2.3 轉到ModelSim 仿真工具進行測試…………………………………… 76
4.2.4 二進制碼轉BCD碼的可綜合代碼…………………………………… 76
4.2.5 二進制碼轉BCD碼模塊的測試……………………………………… 80
4.2.6 轉到ModelSim 仿真工具進行測試…………………………………… 82
4.3 今天工作總結………………………………………………………………… 83
4.4 夏老師評述…………………………………………………………………… 83
第5章 第五天———計算模塊的設計……………………………………………… 84
5.1 設計需求講解………………………………………………………………… 84
5.2 設計工具使用講解…………………………………………………………… 84
5.2.1 計算模塊的可綜合代碼………………………………………………… 85
5.2.2 計算模塊的測試………………………………………………………… 85
5.2.3 轉到ModelSim 仿真工具進行仿真…………………………………… 87
5.2.4 模塊連接關系…………………………………………………………… 88
5.2.5 下載程序到開發(fā)板進行調試…………………………………………… 95
5.3 今天工作總結………………………………………………………………… 95
5.4 夏老師評述…………………………………………………………………… 95
第6章 第六天———可進行連續(xù)運算的狀態(tài)機改進……………………………… 97
6.1 設計需求講解………………………………………………………………… 97
6.2 狀態(tài)機設計講解……………………………………………………………… 97
6.2.1 狀態(tài)機的編碼形式……………………………………………………… 97
6.2.2 狀態(tài)機的分類…………………………………………………………… 98
6.2.3 狀態(tài)轉移圖(STD) …………………………………………………… 102
6.3 設計工具使用講解………………………………………………………… 103
6.3.1 狀態(tài)機模塊的可綜合代碼…………………………………………… 103
6.3.2 狀態(tài)機模塊的測試…………………………………………………… 107
6.3.3 轉到ModelSim 仿真工具進行仿真………………………………… 111
6.3.4 下載程序到開發(fā)板進行調試………………………………………… 111
6.4 今天工作總結……………………………………………………………… 113
6.5 夏老師評述………………………………………………………………… 114
第7章 第七天———面積優(yōu)化……………………………………………………… 115
7.1 設計需求講解……………………………………………………………… 115
7.2 面積與速度………………………………………………………………… 116
7.3 模塊改進…………………………………………………………………… 118
7.3.1 計算模塊的可綜合代碼……………………………………………… 118
7.3.2 轉到ModelSim 仿真工具進行測試………………………………… 121
7.3.3 下載程序到開發(fā)板進行調試………………………………………… 123
7.4 今天工作總結……………………………………………………………… 125
7.5 夏老師評述………………………………………………………………… 126
第8章 第八天———二進制碼轉BCD 碼模塊的優(yōu)化…………………………… 127
8.1 設計需求講解……………………………………………………………… 127
8.2 算法實現(xiàn)…………………………………………………………………… 128
8.3 模塊改進…………………………………………………………………… 129
8.3.1 二進制碼轉BCD碼模塊的可綜合代碼……………………………… 129
8.3.2 轉到ModelSim 仿真工具進行測試………………………………… 132
8.3.3 下載程序到開發(fā)板進行調試………………………………………… 134
8.4 今天工作總結……………………………………………………………… 138
8.5 夏老師評述………………………………………………………………… 140
第9章 第九天———去“0”模塊的設計…………………………………………… 141
9.1 設計需求講解……………………………………………………………… 141
9.2 算法實現(xiàn)…………………………………………………………………… 141
9.3 模塊改進…………………………………………………………………… 142
9.3.1 去“0”模塊的可綜合代碼……………………………………………… 142
9.3.2 轉到ModelSim 仿真工具進行測試………………………………… 144
9.3.3 下載程序到開發(fā)板進行調試………………………………………… 146
9.4 今天工作總結……………………………………………………………… 150
9.5 夏老師評述………………………………………………………………… 151
第10章 第十天———負數(shù)計算…………………………………………………… 152
10.1 設計需求講解……………………………………………………………… 152
10.2 二進制數(shù)表示法…………………………………………………………… 152
10.3 補碼原碼轉換模塊………………………………………………………… 153
10.3.1 補碼轉原碼模塊的可綜合代碼……………………………………… 154
10.3.2 轉到ModelSim 仿真工具進行測試………………………………… 154
10.3.3 原碼轉補碼模塊的可綜合代碼……………………………………… 155
10.3.4 轉到ModelSim 仿真工具進行測試………………………………… 155
10.4 其他模塊的修改…………………………………………………………… 156
10.4.1 顯示模塊的修改……………………………………………………… 156
10.4.2 消“0”模塊的修改…………………………………………………… 159
10.4.3 BCD碼和二進制碼轉換模塊的修改……………………………… 160
10.4.4 計算模塊的修改……………………………………………………… 163
10.4.5 按鍵狀態(tài)機模塊的修改……………………………………………… 165
10.4.6 頂層模塊的修改……………………………………………………… 169
10.5 下載程序到開發(fā)板進行調試……………………………………………… 171
10.6 今天工作總結……………………………………………………………… 171
10.7 夏老師評述………………………………………………………………… 172
參考文獻……………………………………………………………………………… 174