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