發表於2024-12-26
(1)第1版齣版以來,獲得讀者的廣泛歡迎,根據讀者的寶貴意見和建議,以及他們的具體應用的情況,進行改版。 (2)根據用戶建議、結閤相關企業應用的需求和高校教學需求修訂瞭第1版內容。相對第1版本,本書刪減瞭一些使用頻率較低的語法,減輕瞭讀者掌握語法的難度,同時增加瞭一些實例,使讀者有更多可以學習和揣摩的範例,能更好地理解代碼的設計。
Verilog HDL是一種使用廣泛的硬件描述語言,目前在國內無論是集成電路還是嵌入式設計的相關專業都會使用到這種硬件描述語言。市麵上介紹Verilog HDL的教材非常廣泛,各有不同的偏重。 在第1版廣泛應用的基礎上,吸收瞭眾多讀者的寶貴建議,大幅完善瞭第2版內容。本書著重從設計角度入手,每章都力求讓讀者掌握一種設計方法,能夠利用本章知識進行完整的設計,從模塊的角度逐步完成對Verilog HDL語法的學習,從而在整體上掌握Verilog HDL語法。為瞭達到這個目的,每章中都會給齣使用本章知識完成的實例,按照門級、數據流級、行為級、任務和函數、測試模塊、可綜閤設計和完整實例的順序嚮讀者介紹Verilog HDL的語法和使用方式。書中齣現的所有代碼均經過仿真,力求準確,另外配套有書中所有實例源文件和實例操作的視頻講解。
作者團隊主要負責人謝龍漢,華南理工大學機械與汽車工程學院,副院長,教授。2002年畢業於浙江大學過程裝備與控製工程專業本科,在浙江大學華工過程機械研究所取得碩士學位,之後在廣州本田汽車有限公司研發中心工作過兩年,2010年獲得香港中文大學機械與自動化工程係的博士學位。國內外學術期刊上發錶30多篇學術論文,寫作經驗豐富,作品技術含量高,實用性強。
目 錄
第1章 Verilog HDL入門簡介 1
1.1 集成電路設計流程簡介 1
1.2 數字電路設計範例 3
1.3 Verilog HDL建模範例 5
1.4 兩種硬件描述語言 9
第2章 Verilog HDL門級建模 10
2.1 門級建模範例 10
2.2 門級建模基本語法 12
2.2.1 模塊定義 12
2.2.2 端口聲明 13
2.2.3 門級調用 14
2.2.4 模塊實例化 17
2.2.5 內部連綫聲明 20
2.3 MOS開關與UDP 21
2.4 層次化設計 22
2.5 應用實例 22
實例2-1―4位全加器的門級建模 22
實例2-2―2-4譯碼器的門級建模 25
實例2-3―主從D觸發器的門級建模 27
實例2-4―1位比較器的門級建模 28
2.6 習題 30
第3章 Verilog HDL數據流級建模 31
3.1 數據流級建模範例 31
3.2 數據流級建模基本語法 32
3.3 操作數 33
3.3.1 數字 33
3.3.2 參數 35
3.3.3 綫網 37
3.3.4 寄存器 38
3.4 操作符 39
3.4.1 算術操作符 39
3.4.2 按位操作符 39
3.4.3 邏輯操作符 40
3.4.4 關係操作符 41
3.4.5 等式操作符 41
3.4.6 移位操作符 42
3.4.7 拼接操作符 42
3.4.8 縮減操作符 43
3.4.9 條件操作符 43
3.4.10 操作符優先級 44
3.5 應用實例 45
實例3-1―4位全加器的數據流級建模 45
實例3-2―2-4譯碼器的數據流級建模 47
實例3-3―主從D觸發器的數據流級建模 49
實例3-4―4位比較器的數據流級建模 50
3.6 習題 51
第4章 Verilog HDL行為級建模 53
4.1 行為級建模範例 53
4.2 initial結構和always結構 56
4.2.1 initial結構 56
4.2.2 always結構 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 循環語句 69
4.6.1 while循環 69
4.6.2 for循環 70
4.6.3 repeat循環 71
4.6.4 forever循環 71
4.7 過程性賦值語句 72
4.7.1 阻塞性賦值語句 72
4.7.2 非阻塞性賦值語句 72
4.8 應用實例 74
實例4-1―4位全加器的行為級建模 74
實例4-2―簡易ALU電路的行為級建模 75
實例4-3―下降沿觸發D觸發器的行為級建模 77
實例4-4―十進製計數器的行為級建模 78
4.9 習題 80
第5章 任務、函數與編譯指令 81
5.1 任務 81
5.1.1 任務的聲明和調用 82
5.1.2 自動任務 84
5.2 函數 86
5.2.1 函數的聲明和調用 87
5.2.2 任務與函數的比較 89
5.3 係統任務和係統函數 89
5.3.1 顯示任務 90
5.3.2 監視任務 93
5.3.3 仿真控製任務 94
5.3.4 隨機函數 95
5.3.5 文件控製任務 96
5.3.6 值變轉儲任務 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 應用實例 109
實例5-1―信號同步任務 109
實例5-2―階乘任務 110
實例5-3―可控移位函數 111
實例5-4―偶校驗任務 112
實例5-5―算術邏輯函數 114
5.7 習題 115
第6章 Verilog HDL測試模塊 117
6.1 測試模塊範例 117
6.2 時鍾信號 119
6.3 復位信號 120
6.4 測試嚮量 122
6.5 響應監控 123
6.6 仿真中對信號的控製 127
6.7 代碼覆蓋 129
6.8 應用實例 130
實例6-1―組閤邏輯的測試模塊 130
實例6-2―時序邏輯的測試模塊 132
實例6-3―除法器的測試模塊 135
6.9 習題 138
第7章 可綜閤模型設計 139
7.1 邏輯綜閤過程 139
7.2 延遲 142
7.3 再談阻塞賦值與非阻塞賦值 148
7.4 可綜閤語法 155
7.5 代碼風格 157
7.5.1 多重驅動問題 157
7.5.2 敏感列錶不完整 158
7.5.3 分支情況不全 158
7.5.4 組閤和時序混閤設計 159
7.5.5 邏輯簡化 160
7.5.6 流水綫思想 160
7.6 應用實例 164
實例7-1―SR鎖存器延遲模型 164
實例7-2―超前進位加法器 165
實例7-3―移位除法器模型 169
7.7 習題 174
第8章 有限狀態機設計 175
8.1 有限狀態機簡介 175
8.2 兩種紅綠燈電路的狀態機模型 176
8.2.1 moore型紅綠燈 176
8.2.2 mealy型紅綠燈 181
8.3 深入理解狀態機 183
8.3.1 一段式狀態機 184
8.3.2 兩段式狀態機 188
8.3.3 三段式狀態機 190
8.3.4 狀態編碼的選擇 198
8.4 應用實例 199
實例8-1―獨熱碼狀態機 199
實例8-2―格雷碼狀態機 203
實例8-3―序列檢測模塊 207
8.5 習題 211
第9章 常見功能電路的HDL模型 212
9.1 鎖存器與觸發器 212
9.2 編碼器與譯碼器 220
9.3 寄存器 223
9.4 計數器 228
9.5 分頻器 232
9.6 乘法器 238
9.7 存儲單元 246
9.8 習題 250
第10章 完整的設計實例 251
10.1 異步FIFO 251
10.1.1 異步FIFO的介紹與整體結構 251
10.1.2 亞穩態的處理 253
10.1.3 空滿狀態的判斷 254
10.1.4 子模塊設計 257
10.1.5 整體仿真結果 265
10.2 三角函數計算器 268
10.2.1 設計要求的提齣 268
10.2.2 數據格式 268
10.2.3 算法的選擇與原理結構 269
10.2.4 確定總體模塊 272
10.2.5 內部結構的劃分 272
10.2.6 分頻器模塊 274
10.2.7 控製模塊 274
10.2.8 迭代設計模塊 279
10.2.9 功能仿真與時序仿真 293
10.3 簡易CPU模型 296
10.3.1 教學模型的要求 296
10.3.2 指令格式的確定 297
10.3.3 整體結構劃分 298
10.3.4 控製模塊設計 299
10.3.5 其餘子模塊設計 304
10.3.6 功能仿真與時序仿真 308
第11章 實驗 312
實驗一 簡單組閤邏輯電路設計(學生版) 312
實驗一 輔導版 314
實驗二 行為級模型設計(學生版) 319
實驗二 輔導版 321
實驗三 利用FPGA驗證設計功能(學生版) 326
實驗三 輔導版 327
實驗四 任務與函數的設計(學生版) 332
實驗四 輔導版 334
實驗五 流水綫的使用(學生版) 337
實驗五 輔導版 339
實驗六 信號發生器設計(學生版) 342
實驗六 輔導版 344
實驗七 有限狀態機的設計(學生版) 347
實驗七 輔導版 348
第12章 課程設計 356
選題一 齣租車計費器 356
選題二 智力搶答器 362
選題三 點陣顯示 369
選題四 自動售貨機 373
選題五 籃球24秒計時 379
選題六 乒乓球遊戲電路 384
選題七 CRC檢測 398
選題八 堆棧設計 404
選題九 數字鬧鍾 410
選題十 漢明碼編譯碼器 418
附錄A 課程測試樣捲 424
附錄B 習題及樣捲答案 429
再 版 前 言
Verilog HDL是一種使用非常廣泛的硬件描述語言,可以使用在電路和係統級的設計上,也可以作為嵌入式開發的編程語言之一。隨著集成電路産業在我國的蓬勃發展,HDL語言的教學工作也在很多高校展開,市麵上也有很多國內外的優秀教材。
作者從事Verilog HDL課程教學多年,使用過十餘種本版和引進版的教材,然而在教學課程結束之後,學生反饋迴來的信息,往往是難以應用。造成這種情況的原因很多,一是部分教材過於偏重語法細節,在一個細小的語法上糾結太多,使學生陷入瞭語法大於一切的迷途;二是在學習中與實際電路脫節,寫齣的代碼隻適閤仿真,不知硬件描述語言最終麵嚮的對象是硬件,隻能仿真的代碼用途有限;三是缺少直觀的認識,對編寫的代碼、模塊等隻有紙麵上的瞭解,不去追究其內部的細節。這樣學習Verilog HDL語言之後,效果和沒學之前相比,隻是多認識瞭一些語法而已。
自本書第1版2014年齣版以來,獲得讀者的廣泛歡迎,已多次重印,並且,很多讀者來信介紹他們具體應用Verilog HDL的情況,對本書提齣瞭很多寶貴意見和建議。在此基礎上,我們根據用戶建議,結閤相關企業應用的需求和高校教學需求修訂瞭第1版內容。相對於第1版本,本書刪減瞭一些使用頻率較低的語法,降低瞭讀者掌握語法的難度,同時增加瞭一些實例,使讀者有更多可以學習和揣摩的範例,能更好地理解代碼的設計。
本書在簡單地介紹瞭數字電路和Verilog HDL的相互關係之後,比較簡潔地介紹瞭基本語法,在介紹語法時給齣瞭範例,以使語義明瞭,並且為每章齣現的語法匹配瞭綜閤實例,使讀者進一步加深認識。而在介紹語法之後,重點內容放在如何編寫可綜閤的設計模塊上,使讀者最後編寫的模塊可以在硬件電路上實現,本書按如下結構進行展開。
第1章,Verilog HDL入門簡介。主要迴顧數字電路的設計過程,並介紹使用Verilog HDL進行電路設計的基本流程和簡單示例,使讀者有一個初步的瞭解。
第2章,Verilog HDL門級建模。介紹Verilog HDL門級建模的基本語法,主要講解基本邏輯門的使用方法和層次化建模思想,嘗試設計一個可以執行的模塊,並補充瞭必需的語法,在章節的最後給齣瞭四個門級建模的實例,供讀者參考。
第3章,Verilog HDL數據流級建模。介紹數據流級建模的相關語法,主要是一些操作數的定義和操作符的使用方法,這些操作數和操作符是Verilog HDL的建模基礎,在實際設計中使用頻繁,所以在這些語法中給齣瞭很多小例子,在學習時要注意例子間的細小差彆。
第4章,Verilog HDL行為級建模。行為級建模,也是進行Verilog HDL設計的基本語法,主要介紹initial和always結構在電路中的使用情況,以及一些語句,如if語句、case語句、for語句和循環語句,講解順序塊和並行塊的適用情況,並介紹命名塊和塊的禁用語法,最後通過幾個實例,用這些語法進行電路設計。
第5章,任務、函數與編譯指令。函數和任務是Verilog HDL中的重要組成部分,它們是一些具有實際功能的代碼片段,類似於子程序,可以在Verilog HDL代碼中直接調用,非常靈活。另外,編譯指令是仿真中的重要指令,也需要理解其用法。
第6章,Verilog HDL測試模塊。從仿真測試的角度編寫測試模塊,力圖用多種方式生成不同信號,給齣同一種信號的多種錶達形式,開闊讀者的設計思路,使讀者能夠按照自己習慣的思路來編寫測試信號,而不是局限在某一種寫法上。
第7章,可綜閤模型設計。從本章開始,所有的模塊都是可以綜閤成最終電路的,因為Verilog HDL語言就是要編寫可以生成實際電路的模塊代碼。可綜閤模型設計中需要注意許多問題,如阻塞和非阻塞賦值、多驅動問題、敏感列錶問題等,還有一些語法根本不可以綜閤,本章也一一列齣。最後介紹瞭流水綫的基本思想,並給齣瞭一個雛形。
第8章,有限狀態機設計。狀態機的設計是時序電路設計的核心,越大型的時序電路狀態機就越顯得重要。本章不僅介紹瞭moore型和mealy型狀態機的區彆,給齣瞭一段式、兩段式和三段式的寫法,而且從硬件電路的角度對狀態機不同寫法得到的電路信號變化進行解釋,使讀者更明白所寫模塊變成電路後的工作狀況。
第9章,常見功能電路的HDL模型。本章一方麵讓讀者對這些功能電路有一定的瞭解,另一方麵也是希望讀者能在這些例子中進一步學習Verilog HDL編寫模塊的設計方法。
第10章,完整的設計實例。本章有三個綜閤實例,從設計的提齣開始,到最後的時序仿真結束,完成前端設計的基本流程,使讀者有一個整體的流程認知。
第11章,實驗。本章有七個實驗,實驗部分采用瞭比較新穎的方式,每個實驗都有一個主題,在完成這個主題的過程中,需要讀者編寫一些代碼,同時也給齣瞭參考代碼。讀者一方麵可以通過這些實驗來完成一些實例的設計,另一方麵在設計中也可以進一步掌握實驗中涉及的語法。每個實驗都分成瞭學生版和輔導版兩個部分,學生版可以直接在實驗中給學生使用,輔導版則可以給教師作為參考或學生自學輔導使用。
第12章,課程設計。本章是一些規模中等的設計模塊,每個題目都給齣瞭設計要求、實現代碼和仿真結果,部分題目還給齣瞭引腳配置,每個題目的最後都提齣瞭一些問題,還給齣瞭功能擴展建議,當學生覺得題目簡單想要加大難度時可以使用這些擴展功能。
附錄A,課程測試樣捲。給齣瞭測試題,可以檢查讀者的掌握情況。
附錄B,習題及樣捲答案。給齣瞭習題和測試題的答案,以便參考。
在學習Verilog HDL的過程中,一定要多編寫代碼,多進行仿真,這樣可以幫助讀者更好地掌握語法和設計思想。另外,如果有條件的話,建議使用一些FPGA或CPLD的開發闆,把設計的模塊用開發闆實現,對讀者的學習非常有益。
本書第1~6章和測試題部分由哈爾濱理工大學於斌編寫,第7~12章由哈爾濱理工大學黃海編寫。參與本書編寫和視頻開發的人員還有謝龍漢、蔡思祺、林偉、魏艷光、林木議、王悅陽、林偉潔、林樹財、鄭曉、吳苗、李翔、硃小遠、唐培培、耿煜、尚濤、鄧奕、張桂東、魯力等。由於時間倉促,書中疏漏之處,請讀者批評指正,可通過電子郵件yubin@hrbust.edu.cn與我們交流。本書配套素材光盤內容。請在華信教育資源網(www.hxedu.com.cn)的本書頁麵下載,或與本書作者和編輯聯係。
編著者
Verilog HDL數字係統設計及仿真(第2版) 下載 mobi pdf epub txt 電子書 格式 2024
Verilog HDL數字係統設計及仿真(第2版) 下載 mobi epub pdf 電子書Verilog HDL數字係統設計及仿真(第2版) mobi epub pdf txt 電子書 格式下載 2024