(1)第1版出版以來,獲得讀者的廣泛歡迎,根據(jù)讀者的寶貴意見和建議,以及他們的具體應(yīng)用的情況,進(jìn)行改版。 (2)根據(jù)用戶建議、結(jié)合相關(guān)企業(yè)應(yīng)用的需求和高校教學(xué)需求修訂了第1版內(nèi)容。相對第1版本,本書刪減了一些使用頻率較低的語法,減輕了讀者掌握語法的難度,同時(shí)增加了一些實(shí)例,使讀者有更多可以學(xué)習(xí)和揣摩的范例,能更好地理解代碼的設(shè)計(jì)。
Verilog HDL是一種使用廣泛的硬件描述語言,目前在國內(nèi)無論是集成電路還是嵌入式設(shè)計(jì)的相關(guān)專業(yè)都會使用到這種硬件描述語言。市面上介紹Verilog HDL的教材非常廣泛,各有不同的偏重。 在第1版廣泛應(yīng)用的基礎(chǔ)上,吸收了眾多讀者的寶貴建議,大幅完善了第2版內(nèi)容。本書著重從設(shè)計(jì)角度入手,每章都力求讓讀者掌握一種設(shè)計(jì)方法,能夠利用本章知識進(jìn)行完整的設(shè)計(jì),從模塊的角度逐步完成對Verilog HDL語法的學(xué)習(xí),從而在整體上掌握Verilog HDL語法。為了達(dá)到這個目的,每章中都會給出使用本章知識完成的實(shí)例,按照門級、數(shù)據(jù)流級、行為級、任務(wù)和函數(shù)、測試模塊、可綜合設(shè)計(jì)和完整實(shí)例的順序向讀者介紹Verilog HDL的語法和使用方式。書中出現(xiàn)的所有代碼均經(jīng)過仿真,力求準(zhǔn)確,另外配套有書中所有實(shí)例源文件和實(shí)例操作的視頻講解。
作者團(tuán)隊(duì)主要負(fù)責(zé)人謝龍漢,華南理工大學(xué)機(jī)械與汽車工程學(xué)院,副院長,教授。2002年畢業(yè)于浙江大學(xué)過程裝備與控制工程專業(yè)本科,在浙江大學(xué)華工過程機(jī)械研究所取得碩士學(xué)位,之后在廣州本田汽車有限公司研發(fā)中心工作過兩年,2010年獲得香港中文大學(xué)機(jī)械與自動化工程系的博士學(xué)位。國內(nèi)外學(xué)術(shù)期刊上發(fā)表30多篇學(xué)術(shù)論文,寫作經(jīng)驗(yàn)豐富,作品技術(shù)含量高,實(shí)用性強(qiáng)。
目 錄
第1章 Verilog HDL入門簡介 1
1.1 集成電路設(shè)計(jì)流程簡介 1
1.2 數(shù)字電路設(shè)計(jì)范例 3
1.3 Verilog HDL建模范例 5
1.4 兩種硬件描述語言 9
第2章 Verilog HDL門級建模 10
2.1 門級建模范例 10
2.2 門級建?;菊Z法 12
2.2.1 模塊定義 12
2.2.2 端口聲明 13
2.2.3 門級調(diào)用 14
2.2.4 模塊實(shí)例化 17
2.2.5 內(nèi)部連線聲明 20
2.3 MOS開關(guān)與UDP 21
2.4 層次化設(shè)計(jì) 22
2.5 應(yīng)用實(shí)例 22
實(shí)例2-1―4位全加器的門級建模 22
實(shí)例2-2―2-4譯碼器的門級建模 25
實(shí)例2-3―主從D觸發(fā)器的門級建模 27
實(shí)例2-4―1位比較器的門級建模 28
2.6 習(xí)題 30
第3章 Verilog HDL數(shù)據(jù)流級建模 31
3.1 數(shù)據(jù)流級建模范例 31
3.2 數(shù)據(jù)流級建模基本語法 32
3.3 操作數(shù) 33
3.3.1 數(shù)字 33
3.3.2 參數(shù) 35
3.3.3 線網(wǎng) 37
3.3.4 寄存器 38
3.4 操作符 39
3.4.1 算術(shù)操作符 39
3.4.2 按位操作符 39
3.4.3 邏輯操作符 40
3.4.4 關(guān)系操作符 41
3.4.5 等式操作符 41
3.4.6 移位操作符 42
3.4.7 拼接操作符 42
3.4.8 縮減操作符 43
3.4.9 條件操作符 43
3.4.10 操作符優(yōu)先級 44
3.5 應(yīng)用實(shí)例 45
實(shí)例3-1―4位全加器的數(shù)據(jù)流級建模 45
實(shí)例3-2―2-4譯碼器的數(shù)據(jù)流級建模 47
實(shí)例3-3―主從D觸發(fā)器的數(shù)據(jù)流級建模 49
實(shí)例3-4―4位比較器的數(shù)據(jù)流級建模 50
3.6 習(xí)題 51
第4章 Verilog HDL行為級建模 53
4.1 行為級建模范例 53
4.2 initial結(jié)構(gòu)和always結(jié)構(gòu) 56
4.2.1 initial結(jié)構(gòu) 56
4.2.2 always結(jié)構(gòu) 58
4.3 順序塊和并行塊 61
4.3.1 順序塊 61
4.3.2 并行塊 62
4.3.3 塊的嵌套 63
4.4 if語句 64
4.5 case語句 67
4.6 循環(huán)語句 69
4.6.1 while循環(huán) 69
4.6.2 for循環(huán) 70
4.6.3 repeat循環(huán) 71
4.6.4 forever循環(huán) 71
4.7 過程性賦值語句 72
4.7.1 阻塞性賦值語句 72
4.7.2 非阻塞性賦值語句 72
4.8 應(yīng)用實(shí)例 74
實(shí)例4-1―4位全加器的行為級建模 74
實(shí)例4-2―簡易ALU電路的行為級建模 75
實(shí)例4-3―下降沿觸發(fā)D觸發(fā)器的行為級建模 77
實(shí)例4-4―十進(jìn)制計(jì)數(shù)器的行為級建模 78
4.9 習(xí)題 80
第5章 任務(wù)、函數(shù)與編譯指令 81
5.1 任務(wù) 81
5.1.1 任務(wù)的聲明和調(diào)用 82
5.1.2 自動任務(wù) 84
5.2 函數(shù) 86
5.2.1 函數(shù)的聲明和調(diào)用 87
5.2.2 任務(wù)與函數(shù)的比較 89
5.3 系統(tǒng)任務(wù)和系統(tǒng)函數(shù) 89
5.3.1 顯示任務(wù) 90
5.3.2 監(jiān)視任務(wù) 93
5.3.3 仿真控制任務(wù) 94
5.3.4 隨機(jī)函數(shù) 95
5.3.5 文件控制任務(wù) 96
5.3.6 值變轉(zhuǎn)儲任務(wù) 100
5.4 編譯指令 102
5.4.1 `define 102
5.4.2 `include 104
5.4.3 `timescale 105
5.5 完整的module參考模型 108
5.6 應(yīng)用實(shí)例 109
實(shí)例5-1―信號同步任務(wù) 109
實(shí)例5-2―階乘任務(wù) 110
實(shí)例5-3―可控移位函數(shù) 111
實(shí)例5-4―偶校驗(yàn)任務(wù) 112
實(shí)例5-5―算術(shù)邏輯函數(shù) 114
5.7 習(xí)題 115
第6章 Verilog HDL測試模塊 117
6.1 測試模塊范例 117
6.2 時(shí)鐘信號 119
6.3 復(fù)位信號 120
6.4 測試向量 122
6.5 響應(yīng)監(jiān)控 123
6.6 仿真中對信號的控制 127
6.7 代碼覆蓋 129
6.8 應(yīng)用實(shí)例 130
實(shí)例6-1―組合邏輯的測試模塊 130
實(shí)例6-2―時(shí)序邏輯的測試模塊 132
實(shí)例6-3―除法器的測試模塊 135
6.9 習(xí)題 138
第7章 可綜合模型設(shè)計(jì) 139
7.1 邏輯綜合過程 139
7.2 延遲 142
7.3 再談阻塞賦值與非阻塞賦值 148
7.4 可綜合語法 155
7.5 代碼風(fēng)格 157
7.5.1 多重驅(qū)動問題 157
7.5.2 敏感列表不完整 158
7.5.3 分支情況不全 158
7.5.4 組合和時(shí)序混合設(shè)計(jì) 159
7.5.5 邏輯簡化 160
7.5.6 流水線思想 160
7.6 應(yīng)用實(shí)例 164
實(shí)例7-1―SR鎖存器延遲模型 164
實(shí)例7-2―超前進(jìn)位加法器 165
實(shí)例7-3―移位除法器模型 169
7.7 習(xí)題 174
第8章 有限狀態(tài)機(jī)設(shè)計(jì) 175
8.1 有限狀態(tài)機(jī)簡介 175
8.2 兩種紅綠燈電路的狀態(tài)機(jī)模型 176
8.2.1 moore型紅綠燈 176
8.2.2 mealy型紅綠燈 181
8.3 深入理解狀態(tài)機(jī) 183
8.3.1 一段式狀態(tài)機(jī) 184
8.3.2 兩段式狀態(tài)機(jī) 188
8.3.3 三段式狀態(tài)機(jī) 190
8.3.4 狀態(tài)編碼的選擇 198
8.4 應(yīng)用實(shí)例 199
實(shí)例8-1―獨(dú)熱碼狀態(tài)機(jī) 199
實(shí)例8-2―格雷碼狀態(tài)機(jī) 203
實(shí)例8-3―序列檢測模塊 207
8.5 習(xí)題 211
第9章 常見功能電路的HDL模型 212
9.1 鎖存器與觸發(fā)器 212
9.2 編碼器與譯碼器 220
9.3 寄存器 223
9.4 計(jì)數(shù)器 228
9.5 分頻器 232
9.6 乘法器 238
9.7 存儲單元 246
9.8 習(xí)題 250
第10章 完整的設(shè)計(jì)實(shí)例 251
10.1 異步FIFO 251
10.1.1 異步FIFO的介紹與整體結(jié)構(gòu) 251
10.1.2 亞穩(wěn)態(tài)的處理 253
10.1.3 空滿狀態(tài)的判斷 254
10.1.4 子模塊設(shè)計(jì) 257
10.1.5 整體仿真結(jié)果 265
10.2 三角函數(shù)計(jì)算器 268
10.2.1 設(shè)計(jì)要求的提出 268
10.2.2 數(shù)據(jù)格式 268
10.2.3 算法的選擇與原理結(jié)構(gòu) 269
10.2.4 確定總體模塊 272
10.2.5 內(nèi)部結(jié)構(gòu)的劃分 272
10.2.6 分頻器模塊 274
10.2.7 控制模塊 274
10.2.8 迭代設(shè)計(jì)模塊 279
10.2.9 功能仿真與時(shí)序仿真 293
10.3 簡易CPU模型 296
10.3.1 教學(xué)模型的要求 296
10.3.2 指令格式的確定 297
10.3.3 整體結(jié)構(gòu)劃分 298
10.3.4 控制模塊設(shè)計(jì) 299
10.3.5 其余子模塊設(shè)計(jì) 304
10.3.6 功能仿真與時(shí)序仿真 308
第11章 實(shí)驗(yàn) 312
實(shí)驗(yàn)一 簡單組合邏輯電路設(shè)計(jì)(學(xué)生版) 312
實(shí)驗(yàn)一 輔導(dǎo)版 314
實(shí)驗(yàn)二 行為級模型設(shè)計(jì)(學(xué)生版) 319
實(shí)驗(yàn)二 輔導(dǎo)版 321
實(shí)驗(yàn)三 利用FPGA驗(yàn)證設(shè)計(jì)功能(學(xué)生版) 326
實(shí)驗(yàn)三 輔導(dǎo)版 327
實(shí)驗(yàn)四 任務(wù)與函數(shù)的設(shè)計(jì)(學(xué)生版) 332
實(shí)驗(yàn)四 輔導(dǎo)版 334
實(shí)驗(yàn)五 流水線的使用(學(xué)生版) 337
實(shí)驗(yàn)五 輔導(dǎo)版 339
實(shí)驗(yàn)六 信號發(fā)生器設(shè)計(jì)(學(xué)生版) 342
實(shí)驗(yàn)六 輔導(dǎo)版 344
實(shí)驗(yàn)七 有限狀態(tài)機(jī)的設(shè)計(jì)(學(xué)生版) 347
實(shí)驗(yàn)七 輔導(dǎo)版 348
第12章 課程設(shè)計(jì) 356
選題一 出租車計(jì)費(fèi)器 356
選題二 智力搶答器 362
選題三 點(diǎn)陣顯示 369
選題四 自動售貨機(jī) 373
選題五 籃球24秒計(jì)時(shí) 379
選題六 乒乓球游戲電路 384
選題七 CRC檢測 398
選題八 堆棧設(shè)計(jì) 404
選題九 數(shù)字鬧鐘 410
選題十 漢明碼編譯碼器 418
附錄A 課程測試樣卷 424
附錄B 習(xí)題及樣卷答案 429