關(guān)于我們
書單推薦
新書推薦
|
Verilog HDL入門(第3版) 本書簡要介紹了Verilog硬件描述語言的基礎(chǔ)知識,包括語言的基本內(nèi)容和基本結(jié)構(gòu),以及利用該語言在各種層次上對數(shù)字系統(tǒng)的建模方法。書中列舉了大量實例,幫助讀者掌握語言本身和建模方法,對實際數(shù)字系統(tǒng)設(shè)計也很有幫助。第3版中添加了與Verilog2001有關(guān)的新內(nèi)容。 本書是VerilogHDL的初級讀本,可作為計算機、電子、電氣及自控等專業(yè)相關(guān)課程的教材,也可用作相關(guān)科研人員的參考書。 本書簡明扼要地闡述了Verilog 硬件描述語言的基礎(chǔ)知識。Verilog硬件描述語言通常簡稱為Verilog HDL,可以用于在多個層次上(從開關(guān)級到算法級)為數(shù)字設(shè)計建模。該語言提供了一套功能強大的原語(primitive),其中包括邏輯門和用戶定義的原語(即基元),還提供了范圍寬廣的語言結(jié)構(gòu),不但可以為硬件的并發(fā)行為建模,也可以為硬件的時序特性和電路構(gòu)造建模。通過編程語言接口(PLI)還可以擴展該語言的功能。Verilog HDL語言使用簡便,但功能強大,可以在多個抽象層次上為數(shù)字設(shè)計建模。Verilog HDL語言于1995年經(jīng)由IEEE批準(zhǔn)成為一種標(biāo)準(zhǔn)語言,稱為IEEE Std 13641995。2001年IEEE又對Verilog語言進行了更新,批準(zhǔn)了IEEE Std 13642001新標(biāo)準(zhǔn)。該新標(biāo)準(zhǔn)包括了許多新的特性,例如多維數(shù)組、生成語句、配置以及一些其他特性。本書(第3版)是根據(jù)最新版Verilog HDL標(biāo)準(zhǔn)編寫的。 本書的宗旨是想通過具體例子的講解,闡明Verilog HDL語言的重要基本概念,從而向讀者介紹這種硬件描述語言。本書是Verilog語言入門的初級課本。作者用清晰、簡明的語言對Verilog語言的每一個方面進行了闡述,使初學(xué)者很容易理解,不至于產(chǎn)生畏難情緒。作者希望本書能為讀者的Verilog HDL語言入門提供幫助。 本書從語言特點和建模應(yīng)用兩個方面出發(fā),對Verilog語言的基本概念進行了全面深入的講解,為每一種語言結(jié)構(gòu)提供了大量的例子,并且舉例說明了如何使用多種語言結(jié)構(gòu)來構(gòu)造硬件模型。本書對Verilog HDL語言支持的多種建模風(fēng)格進行了詳細(xì)的描述。本書還講解了如何用同一種Verilog語言描述激勵和控制,包括響應(yīng)的監(jiān)視和驗證。許多語法結(jié)構(gòu)都采用便于閱讀的形式呈現(xiàn)給讀者,盡管有時候程序代碼并不完整。這樣做的目的是便于理解語言結(jié)構(gòu)。Verilog語言的完整語法結(jié)構(gòu)放在附錄中供讀者參考。 本書從本質(zhì)上講并不是理論性的。書中用普通的術(shù)語介紹Verilog語言的語法和語義,避免使用形式化定義的技術(shù)術(shù)語。本書未曾試圖對Verilog語言進行完整的闡述,例如編程語言接口、開關(guān)級別的建模和隨機模型語法特色,本書就沒有涉及。本書只局限于講解Verilog語言中那些最基本和最有用的語法,有了這些知識就足以編寫簡單或者復(fù)雜的設(shè)計代碼。 本書針對的讀者包括硬件設(shè)計師、電路和系統(tǒng)設(shè)計師、軟件工具開發(fā)者,以及那些對學(xué)習(xí)使用Verilog HDL語言進行硬件建模感興趣的人士。本書也可以作為計算機輔助設(shè)計、硬件建模和綜合等大學(xué)課程的入門教材。本書也適合專業(yè)人士、大學(xué)本科和研究生學(xué)習(xí)。設(shè)計人員可以把本書作為了解Verilog語言的途徑,也可以把它用作Verilog HDL語言的參考書。學(xué)生和教授們將會發(fā)現(xiàn)本書作為硬件設(shè)計和硬件描述語言的教學(xué)工具將是很有用的。 本書假定讀者具有數(shù)字硬件設(shè)計的基本知識,并熟悉某種高級編程語言(例如 C語言)。 本書是一本有關(guān)語言的書,因此并不強調(diào)某一領(lǐng)域特定的建模風(fēng)格(例如 RTL(Register Transfer Lerel)建模風(fēng)格)。為了學(xué)習(xí)RTL綜合建模,請參考本書的姐妹篇Verilog HDL Synthesis, A Practical Primer。 最后,我還要告訴讀者,僅僅通過閱讀來學(xué)習(xí)一種語言是不切合實際的。最佳的學(xué)習(xí)途徑是把書上例子中的代碼打印出來,在Verilog仿真器上編譯這些代碼,進行仿真,通過實際操作來學(xué)習(xí),只有這樣才能完整、全面地理解這種語言。一旦掌握了本書上的知識,就可以參閱IEEE標(biāo)準(zhǔn)語言參考手冊(LRM),進一步學(xué)習(xí)有關(guān)Verilog HDL標(biāo)準(zhǔn)的更完整的資料。
第1章 簡介
1.1 什么是Verilog HDL?1
1.2 歷史2
1.3 主要能力2
1.4 練習(xí)題4
第2 章 入門指南
2.1 模塊5
2.2 延遲7
2.3 數(shù)據(jù)流風(fēng)格的描述7
2.4 行為風(fēng)格的描述9
2.5 結(jié)構(gòu)風(fēng)格的描述12
2.6 混合設(shè)計風(fēng)格的描述14
2.7 設(shè)計的仿真15
2.8 練習(xí)題19
第3章 Verilog語言要素
3.1 標(biāo)識符20
3.2 注釋21
3.3 格式21
3.4 系統(tǒng)任務(wù)和系統(tǒng)函數(shù)22
3.5 編譯器指令22
3.5.1 `define和`undef22
3.5.2` ifdef、`ifndef、`else、elseif和 `endif23
3.5.3` default_nettype24
3.5.4` include24
3.5.5` resetall24
3.5.6` timescale25
3.5.7` unconnected_drive 和`nounconnected_drive26
3.5.8` celldefine和`endcelldefine27
3.5.9 line27
3.6 值集合27
3.6.1 整型數(shù)28
3.6.2 實數(shù)30
3.6.3 字符串30
3.7 數(shù)據(jù)類型31
3.7.1 線網(wǎng)類型31
3.7.2 未聲明的線網(wǎng)35
3.7.3 向量線網(wǎng)和標(biāo)量線網(wǎng)35
3.7.4 變量類型36
3.7.5 數(shù)組41
3.7.6 reg與wire的不同點42
3.8 參數(shù)(parameter)42
局部參數(shù)43
3.9 練習(xí)題44
第4 章 表達(dá)式
4.1 操作數(shù)45
4.1.1 常數(shù)45
4.1.2 參數(shù)46
4.1.3 線網(wǎng)46
4.1.4 變量47
4.1.5 位選47
4.1.6 部分位選48
4.1.7 存儲器和數(shù)組元素49
4.1.8 函數(shù)調(diào)用50
4.1.9 符號50
4.2 操作符50
4.2.1 算術(shù)操作符52
4.2.2 關(guān)系操作符55
4.2.3 相等操作符56
4.2.4 邏輯操作符57
4.2.5 按位操作符58
4.2.6 縮減操作符59
4.2.7 移位操作符60
4.2.8 條件操作符62
4.2.9 拼接和復(fù)制操作符62
4.3 表達(dá)式的類型63
4.4 練習(xí)題64
第5章 門級建模
5.1 內(nèi)建基元(原語)門65
5.2 多輸入門66
5.3 多輸出門68
5.4 三態(tài)門69
5.5 上拉門和下拉門(電阻)70
5.6 MOS開關(guān)71
5.7 雙向開關(guān)72
5.8 門延遲73
5.9 實例數(shù)組75
5.10 隱含的線網(wǎng)76
5.11 一個簡單的示例76
5.12 24 編碼器舉例78
5.13 主/從觸發(fā)器舉例78
5.14 奇偶校驗電路79
5.15 練習(xí)題80
第6章 用戶定義的原語(基元UDP)
6.1 UDP的定義82
6.2 組合邏輯的UDP83
6.3 時序邏輯的UDP84
6.3.1 狀態(tài)變量的初始化85
6.3.2 電平觸發(fā)的時序邏輯UDP85
6.3.3 沿觸發(fā)的時序邏輯UDP85
6.3.4 沿觸發(fā)的和電平敏感的混合行為86
6.4 另一個示例87
6.5 表項的總結(jié)88
6.6 練習(xí)題88
第7章 數(shù)據(jù)流建模
7.1 連續(xù)賦值語句89
7.2 示例91
7.3 線網(wǎng)聲明賦值91
7.4 賦值延遲92
7.5 線網(wǎng)延遲94
7.6 示例95
7.6.1 主/從觸發(fā)器95
7.6.2 幅值比較器96
7.7 練習(xí)題96
第8章 行為級建模
8.1 過程性結(jié)構(gòu)97
8.1.1 initial語句97
8.1.2 always語句100
8.1.3 兩類語句在模塊中的使用102
8.2 時序控制104
8.2.1 延遲控制104
8.2.2 事件控制105
8.3 語句塊109
8.3.1 順序語句塊109
8.3.2 并行語句塊111
8.4 過程性賦值113
8.4.1 語句內(nèi)部延遲114
8.4.2 阻塞性過程賦值115
8.4.3 非阻塞性過程賦值116
8.4.4 連續(xù)賦值與過程賦值的比較119
8.5 條件語句121
8.6 case語句122
8.7 循環(huán)語句125
8.7.1 forever循環(huán)語句125
8.7.2 repeat循環(huán)語句126
8.7.3 while循環(huán)語句127
8.7.4 for循環(huán)語句127
8.8 過程性連續(xù)賦值128
8.8.1 assign與deassign語句128
8.8.2 force與 release語句129
8.9 握手協(xié)議示例130
8.10 練習(xí)題132
第9章 結(jié)構(gòu)建模
9.1 模塊134
9.2 端口134
9.3 模塊實例引用語句137
9.3.1 未連接的端口139
9.3.2 不同的端口位寬139
9.3.3 模塊參數(shù)值140
9.4 外部端口144
9.5 舉例148
9.6 generate語句151
9.6.1 generate循環(huán)語句151
9.6.2 generateconditional條件語句153
9.6.3 generatecase分支語句156
9.7 配置157
9.8 練習(xí)題161
第10章 其他論題
10.1 任務(wù)162
10.1.1 任務(wù)的定義162
10.1.2 任務(wù)的調(diào)用164
10.2 函數(shù)167
10.2.1 函數(shù)的定義168
10.2.2 函數(shù)的調(diào)用171
10.2.3 常數(shù)函數(shù)172
10.3 系統(tǒng)任務(wù)和系統(tǒng)函數(shù)172
10.3.1 顯示任務(wù)173
10.3.2 文件輸入/輸出任務(wù)177
10.3.3 時間標(biāo)度任務(wù)180
10.3.4 仿真控制任務(wù)181
10.3.5 仿真時間函數(shù)182
10.3.6 轉(zhuǎn)換函數(shù)182
10.3.7 概率分布函數(shù)183
10.3.8 字符串格式化184
10.4 禁止語句185
10.5 命名事件187
10.6 結(jié)構(gòu)描述方式和行為描述方式的混合使用189
10.7 層次路徑名191
10.8 共享任務(wù)和函數(shù)193
10.9 屬性195
10.10 值變轉(zhuǎn)儲文件196
10.10.1 四狀態(tài)型VCD文件196
10.10.2 拓展的VCD文件197
10.10.3 示例198
10.10.4 VCD文件格式200
10.11 指定塊 201
10.12 強度207
10.12.1 驅(qū)動強度207
10.12.2 電荷強度208
10.13 競爭的狀況208
10.14 命令行參變量210
10.15 練習(xí)題211
第11章 驗證
11.1 編寫測試平臺213
11.2 波形的生成214
11.2.1 值序列214
11.2.2 重復(fù)模式216
11.3 測試平臺舉例221
11.3.1 解碼器221
11.3.2 觸發(fā)器223
11.4 從文本文件中讀取向量225
11.5 向文本文件中寫入向量228
11.6 其他示例229
11.6.1 時鐘分頻器229
11.6.2 階乘設(shè)計231
11.6.3 序列檢測器235
11.6.4 LED序列237
11.7 實用程序239
11.7.1 檢測x239
11.7.2 將文件傳遞到任務(wù)中240
11.7.3 操作碼的調(diào)試241
11.7.4 檢測時鐘脈沖是否出現(xiàn)丟失的情況242
11.7.5 突發(fā)時鐘發(fā)生器242
11.8 練習(xí)題243
第12章 建模示例
12.1 簡單元素的建模245
12.2 不同風(fēng)格的建模方式249
12.3 延遲的建模251
12.4 真值表的建模254
12.5 條件操作的建模256
12.6 同步邏輯建模258
12.7 通用移位寄存器262
12.8 格雷碼計數(shù)器 263
12.9 十進制數(shù)計數(shù)器264
12.10 并行到串行轉(zhuǎn)換器265
12.11 狀態(tài)機建模265
12.12 狀態(tài)機的交互268
12.13 Moore有限狀態(tài)機的建模272
12.14 Mealy有限狀態(tài)機的建模273
12.15 簡化的黑杰克程序275
12.16 掃描單元278
12.17 7段BCD碼譯碼器279
12.18 實用程序280
12.19 練習(xí)題281
附錄A 語法參考資料
A.1 關(guān)鍵字282
A.2 語法規(guī)則284
A.3 語法284
參考文獻315
索引316
你還可能感興趣
我要評論
|