Verilog-HDL實用設計與工程制作
本書從實踐的角度出發(fā),全面介紹硬件描述語言Verilog-HDL,通過與具體電路實驗的結合,使讀者能夠輕松地掌握Verilog-HDL的語法、結構、功能及簡單應用。
全書共分8章,第1~5章,通過應用Verilog-HDL描述的各種邏輯電路實例,詳細講解該語言的語法結構和FPGA的開發(fā)流程;第6章,介紹硬件開發(fā)應具備的條件;第7章,講解數(shù)字電路系統(tǒng)的設計思路;第8章,通過列舉12個簡單的應用實例,詳細介紹工程應用系統(tǒng)的設計與實現(xiàn)的全過程。書中給出的全部仿真結果和硬件實現(xiàn)均經(jīng)過驗證。全書的所有Verilog-HDL實例文件可在北京航空航天大學出版社網(wǎng)站www.buaapress.com.cn的“下載專區(qū)”進行下載。
本書可作為學習數(shù)字設計的初學者和工程技術人員的入門書、工具書和參考資料。
第1章 硬件描述語言………………………………………………………………… 1
1.1 什么是硬件描述語言HDL ………………………………………………… 1
1.2 基本邏輯電路的Verilog-HDL描述………………………………………… 1
1.2.1 與門邏輯電路的描述…………………………………………………… 1
1.2.2 與非門邏輯電路的描述………………………………………………… 5
1.2.3 非門邏輯電路的描述…………………………………………………… 6
1.2.4 或門邏輯電路的描述…………………………………………………… 6
1.2.5 或非門邏輯電路的描述………………………………………………… 7
1.2.6 緩沖器邏輯電路的描述………………………………………………… 8
1.3 邏輯仿真……………………………………………………………………… 8
1.3.1 頂層模塊的編寫………………………………………………………… 9
1.3.2 寄存器類型定義………………………………………………………… 10
1.3.3 線網(wǎng)類型定義…………………………………………………………… 10
1.3.4 底層模塊的調用………………………………………………………… 10
1.3.5 輸入端口波形的描述…………………………………………………… 10
1.3.6 二與門邏輯電路的邏輯仿真結果……………………………………… 11
第2章 AlteraFPGA開發(fā)板及開發(fā)流程簡介……………………………………… 12
2.1 FPGA 開發(fā)板及開發(fā)環(huán)境…………………………………………………… 12
2.1.1 FPGA 開發(fā)板簡介……………………………………………………… 12
2.1.2 FPGA 開發(fā)環(huán)境………………………………………………………… 17
2.2 二與門邏輯電路的開發(fā)實例………………………………………………… 20
2.2.1 工程文件的建立………………………………………………………… 20
2.2.2 源文件的建立…………………………………………………………… 23
2.2.3 綜合分析………………………………………………………………… 27
2.2.4 ModelSim 仿真………………………………………………………… 27
2.2.5 引腳配置………………………………………………………………… 32
2.2.6 編譯與下載……………………………………………………………… 32
2.2.7 硬件測試………………………………………………………………… 34
第3章 組合邏輯電路……………………………………………………………… 35
3.1 數(shù)據(jù)選擇器…………………………………………………………………… 35
3.1.1 2 1數(shù)據(jù)選擇器……………………………………………………… 35
3.1.2 2 1數(shù)據(jù)選擇器的Verilog-HDL描述……………………………… 36
3.1.3 4 1數(shù)據(jù)選擇器……………………………………………………… 37
3.1.4 4 1數(shù)據(jù)選擇器的Verilog-HDL描述……………………………… 37
3.1.5 條件操作符的使用方法………………………………………………… 38
3.1.6 數(shù)據(jù)選擇器的行為描述方式…………………………………………… 39
3.1.7 case語句的使用方法…………………………………………………… 40
3.1.8 if else語句的使用方法……………………………………………… 41
3.1.9 function函數(shù)的使用方法……………………………………………… 42
3.1.10 用于仿真的頂層模塊………………………………………………… 42
3.1.11 數(shù)據(jù)選擇器的邏輯仿真結果………………………………………… 43
3.2 數(shù)據(jù)比較器…………………………………………………………………… 44
3.2.1 最簡單的數(shù)據(jù)判斷方法………………………………………………… 45
3.2.2 2位數(shù)據(jù)比較器………………………………………………………… 45
3.2.3 2位數(shù)據(jù)比較器的Verilog-HDL描述……………………………… 48
3.2.4 2位數(shù)據(jù)比較器的邏輯仿真結果……………………………………… 49
3.2.5 數(shù)據(jù)比較器的數(shù)據(jù)寬度擴展…………………………………………… 50
3.2.6 4位數(shù)據(jù)比較器的Verilog-HDL描述……………………………… 52
3.2.7 4位數(shù)據(jù)比較器的邏輯仿真結果……………………………………… 54
3.3 編碼器………………………………………………………………………… 55
3.3.1 2位二進制編碼器……………………………………………………… 55
3.3.2 2位二進制編碼器的Verilog-HDL描述…………………………… 56
3.3.3 2位二進制編碼器的邏輯仿真結果…………………………………… 57
3.4 譯碼器………………………………………………………………………… 58
3.4.1 BCD碼譯碼器………………………………………………………… 58
3.4.2 非完全描述的邏輯函數(shù)和邏輯表達式的簡化………………………… 60
3.4.3 BCD碼譯碼器的Verilog-HDL描述………………………………… 61
3.4.4 BCD碼譯碼器的邏輯仿真結果……………………………………… 63
第4章 觸發(fā)器……………………………………………………………………… 64
4.1 異步RS觸發(fā)器……………………………………………………………… 64
4.1.1 異步RS觸發(fā)器的邏輯符號…………………………………………… 64
4.1.2 異步RS觸發(fā)器的Verilog-HDL描述……………………………… 65
4.1.3 異步RS觸發(fā)器的邏輯仿真結果……………………………………… 66
4.1.4 always塊語句的使用方法…………………………………………… 67
4.2 同步RS觸發(fā)器……………………………………………………………… 67
4.2.1 同步RS觸發(fā)器的邏輯符號…………………………………………… 67
4.2.2 同步RS觸發(fā)器的Verilog-HDL描述……………………………… 68
4.2.3 同步RS觸發(fā)器的邏輯仿真結果……………………………………… 69
4.3 異步T觸發(fā)器……………………………………………………………… 69
4.3.1 異步T觸發(fā)器的邏輯符號…………………………………………… 69
4.3.2 異步T觸發(fā)器的Verilog-HDL描述………………………………… 70
4.3.3 異步T觸發(fā)器的邏輯仿真結果……………………………………… 71
4.4 同步T觸發(fā)器……………………………………………………………… 72
4.4.1 同步T觸發(fā)器的邏輯符號…………………………………………… 72
4.4.2 同步T觸發(fā)器的Verilog-HDL描述………………………………… 72
4.4.3 同步T觸發(fā)器的邏輯仿真結果……………………………………… 73
4.5 同步D觸發(fā)器……………………………………………………………… 74
4.5.1 同步D觸發(fā)器的邏輯符號…………………………………………… 74
4.5.2 同步D觸發(fā)器的Verilog-HDL描述………………………………… 75
4.5.3 同步D觸發(fā)器的邏輯仿真結果……………………………………… 76
4.6 帶有復位端的同步D觸發(fā)器……………………………………………… 76
4.6.1 帶有復位端的同步D觸發(fā)器的邏輯符號…………………………… 76
4.6.2 帶有復位端的同步D觸發(fā)器的Verilog-HDL描述………………… 77
4.6.3 帶有復位端的同步D觸發(fā)器的邏輯仿真結果……………………… 78
4.7 同步JK觸發(fā)器……………………………………………………………… 79
4.7.1 同步JK觸發(fā)器的邏輯符號…………………………………………… 79
4.7.2 同步JK觸發(fā)器的Verilog-HDL描述……………………………… 80
4.7.3 同步JK觸發(fā)器的邏輯仿真結果……………………………………… 82
第5章 時序邏輯電路……………………………………………………………… 83
5.1 寄存器………………………………………………………………………… 83
5.1.1 寄存器的組成原理……………………………………………………… 83
5.1.2 寄存器的Verilog-HDL描述………………………………………… 85
5.1.3 寄存器的邏輯仿真結果………………………………………………… 86
5.2 移位寄存器…………………………………………………………………… 86
5.2.1 串行輸入/并行輸出移位寄存器的組成原理………………………… 86
5.2.2 并行輸入/串行輸出移位寄存器的組成原理………………………… 87
5.2.3 移位寄存器的Verilog-HDL描述…………………………………… 89
5.2.4 移位寄存器的邏輯仿真結果…………………………………………… 91
5.3 計數(shù)器………………………………………………………………………… 92
5.3.1 二進制非同步計數(shù)器…………………………………………………… 92
5.3.2 四進制非同步計數(shù)器…………………………………………………… 93
5.3.3 下降沿觸發(fā)型計數(shù)器及2N 進制非同步計數(shù)器的組成原理………… 94
5.3.4 非同步計數(shù)器的Verilog-HDL描述………………………………… 96
5.3.5 多層次結構的Verilog-HDL設計…………………………………… 98
5.3.6 非同步計數(shù)器的邏輯仿真結果………………………………………… 99
5.3.7 四進制同步計數(shù)器…………………………………………………… 100
5.3.8 四進制同步計數(shù)器的Verilog-HDL描述…………………………… 100
5.3.9 任意進制同步計數(shù)器的Verilog-HDL描述………………………… 101
5.3.10 同步計數(shù)器的邏輯仿真結果………………………………………… 103
第6章 硬件開發(fā)應具備的條件…………………………………………………… 105
6.1 貼片元件的手工焊接……………………………………………………… 105
6.1.1 什么是貼片元件? …………………………………………………… 105
6.1.2 為什么要采用貼片元件? …………………………………………… 108
6.1.3 如何進行貼片元件的手工焊接? …………………………………… 108
6.2 一些常用貼片元件的封裝………………………………………………… 112
6.2.1 貼片電阻……………………………………………………………… 112
6.2.2 貼片電容……………………………………………………………… 113
6.2.3 貼片三極管…………………………………………………………… 115
6.2.4 貼片集成電阻………………………………………………………… 118
6.2.5 貼片集成電路………………………………………………………… 118
6.3 硬件開發(fā)應具備的工具和材料…………………………………………… 122
6.3.1 必備的工具和材料…………………………………………………… 122
6.3.2 更方便工作的工具和材料…………………………………………… 126
6.4 硬件開發(fā)應具備的儀器儀表……………………………………………… 131
6.4.1 必備的儀器儀表……………………………………………………… 131
6.4.2 更方便工作的儀器儀表……………………………………………… 132
6.5 硬件開發(fā)應具備的基本常識……………………………………………… 134
6.5.1 常用電路符號的表示方法…………………………………………… 134
6.5.2 電子電路的基本單位………………………………………………… 135
6.5.3 邏輯門的正確描述法………………………………………………… 136
6.5.4 其他知識……………………………………………………………… 137
第7章 數(shù)字電路系統(tǒng)的實用設計………………………………………………… 139
7.1 簡單的可編程單脈沖發(fā)生器……………………………………………… 139
7.1.1 由系統(tǒng)功能描述時序關系…………………………………………… 139
7.1.2 流程圖的設計………………………………………………………… 140
7.1.3 系統(tǒng)功能描述………………………………………………………… 140
7.1.4 邏輯框圖……………………………………………………………… 141
7.1.5 延時模塊的詳細描述及仿真………………………………………… 142
7.1.6 功能模塊Verilog-HDL描述的模塊化方法………………………… 146
7.1.7 輸入檢測模塊的詳細描述及仿真…………………………………… 147
7.1.8 計數(shù)模塊的詳細描述………………………………………………… 151
7.1.9 可編程單脈沖發(fā)生器的系統(tǒng)仿真…………………………………… 151
7.1.10 電路設計中常用的幾個有關名詞…………………………………… 156
7.2 脈沖計數(shù)…………………………………………………………………… 162
7.2.1 脈沖計數(shù)器的設計…………………………………………………… 162
7.2.2 parameter的使用方法……………………………………………… 165
7.2.3 repeat循環(huán)語句的使用方法………………………………………… 165
7.2.4 系統(tǒng)函數(shù)$random 的使用方法……………………………………… 165
7.2.5 特定脈沖序列的發(fā)生………………………………………………… 166
7.3 脈沖頻率的測量…………………………………………………………… 171
7.3.1 脈沖頻率測量的原理………………………………………………… 172
7.3.2 頻率測量模塊的設計………………………………………………… 172
7.3.3 while循環(huán)語句的使用方法………………………………………… 178
7.4 脈沖周期的測量…………………………………………………………… 178
7.4.1 脈沖周期測量的原理………………………………………………… 179
7.4.2 周期測量模塊的設計(一)…………………………………………… 179
7.4.3 forever循環(huán)語句的使用方法………………………………………… 185
7.4.4 disable禁止語句的使用方法………………………………………… 185
7.4.5 周期測量模塊的設計(二)…………………………………………… 186
7.4.6 兩種周期測量模塊設計的對比……………………………………… 191
7.5 脈沖高電平和低電平持續(xù)時間的測量…………………………………… 192
7.5.1 脈沖高電平和低電平持續(xù)時間測量的工作原理…………………… 192
7.5.2 高低電平持續(xù)時間測量模塊的設計………………………………… 192
7.5.3 改進型高低電平持續(xù)時間測量模塊的設計………………………… 201
7.5.4 begin聲明語句的使用方法………………………………………… 208
7.5.5 initial語句和always語句的使用方法……………………………… 209
第8章 實用設計與工程制作……………………………………………………… 211