第1章 初識Verilog HDL 1
1.1 什么是Verilog HDL 1
1.2 發(fā)展歷史 1
1.3 主要功能 2
1.4 設計流程 3
1.5 基本結構 3
1.5.1 模塊的概念 3
1.5.2 模塊調用 5
1.5.3 測試模塊 6
1.6 程序設計基礎 7
1.6.1 程序格式 8
1.6.2 注釋語句 8
1.6.3 標識符和關鍵詞 9
1.6.4 參數(shù)聲明 9
1.6.5 預處理指令 9
第2章 數(shù)據類型與表達式 13
2.1 數(shù)據類型 13
2.1.1 常量 13
2.1.2 變量 15
2.2 表達式 22
2.2.1 操作數(shù) 22
2.2.2 操作符 25
第3章 行為建模方法 33
3.1 數(shù)據流行為建模 33
3.1.1 連續(xù)賦值語句 33
3.1.2 線網聲明賦值 34
3.1.3 時延的概念 35
3.1.4 線網時延 36
3.1.5 用數(shù)據流建模方式實現(xiàn)1位全加器 37
3.2 順序行為建模 37
3.2.1 過程結構語句 37
3.2.2 時序控制 43
3.2.3 語句塊 46
3.2.4 過程性賦值 49
3.2.5 if語句 56
3.2.6 case語句 59
3.2.7 循環(huán)語句 61
3.2.8 握手協(xié)議實例 64
第4章 結構建模方法 66
4.1 Verilog HDL內置基元 67
4.1.1 內置基本門 67
4.1.2 上拉、下拉電阻 71
4.1.3 MOS開關 72
4.1.4 雙向開關 74
4.1.5 給基元定義時延 75
4.1.6 描述實例數(shù)組 75
4.1.7 內置基元建模實例 75
4.2 用戶定義基元 77
4.2.1 UDP的定義 77
4.2.2 組合電路UDP 78
4.2.3 時序電路UDP 79
4.2.4 Verilog HDL速記符號 81
4.2.5 電平觸發(fā)和邊沿觸發(fā)混合的UDP 82
4.3 模塊實例化 84
4.3.1 端口關聯(lián)方式 84
4.3.2 懸空端口 86
4.3.3 端口匹配 86
4.3.4 模塊參數(shù)值 87
4.3.5 建模實例 89
4.4 行為描述和結構描述的混合使用 91
第5章 任務、函數(shù)及其他 92
5.1 任務 92
5.1.1 任務定義 92
5.1.2 任務調用 93
5.2 函數(shù) 95
5.2.1 函數(shù)定義 95
5.2.2 函數(shù)調用 96
5.3 系統(tǒng)任務和函數(shù) 97
5.3.1 顯示任務 97
5.3.2 文件輸入/輸出任務 100
5.3.3 時間標度任務 102
5.3.4 仿真控制任務 103
5.3.5 時序驗證任務 103
5.3.6 仿真時間函數(shù) 103
5.3.7 實數(shù)變換函數(shù) 104
5.3.8 隨機函數(shù) 104
5.4 其他重要概念 105
5.4.1 禁止語句 105
5.4.2 命名事件 106
5.4.3 層次路徑名 108
5.4.4 共享任務和函數(shù) 110
5.4.5 VCD文件 112
5.4.6 指定塊 118
5.4.7 強度 118
第6章 編寫測試程序 121
6.1 測試模塊 121
6.2 產生輸入信號 122
6.2.1 特定值序列 122
6.2.2 重復模式 124
6.3 從文本文件中讀取向量 128
6.4 向文本文件中寫入向量 130
6.5 測試程序實例 131
6.5.1 半加器 131
6.5.2 5位計數(shù)器 132
6.5.3 2選1選擇器 134
6.5.4 24解碼器 135
6.5.5 D觸發(fā)器 136
第7章 初級建模實例 139
7.1 觸發(fā)器 139
7.1.1 上升沿觸發(fā)器 139
7.1.2 帶異步復位端的上升沿觸發(fā)器 140
7.1.3 帶異步置位端的上升沿觸發(fā)器 141
7.1.4 帶異步復位端和異步置位端的上升沿觸發(fā)器 141
7.1.5 帶同步復位端的上升沿觸發(fā)器 142
7.1.6 帶同步置位端的上升沿觸發(fā)器 143
7.1.7 帶異步復位端和輸出使能端的上升沿觸發(fā)器 143
7.2 鎖存器 144
7.2.1 帶使能端的鎖存器 144
7.2.2 可異步選通數(shù)據的鎖存器 144
7.2.3 可選通使能端的鎖存器 145
7.2.4 帶異步復位端的鎖存器 146
7.3 編碼器 146
7.4 解碼器 147
7.5 多路數(shù)據選擇器 148
7.5.1 用ifelse構造的4選1選擇器 148
7.5.2 用case構造的4選1選擇器 149
7.5.3 用case構造的12選1選擇器 150
7.5.4 帶忽略位的多路選擇器 151
7.6 計數(shù)器 152
7.6.1 帶計數(shù)使能端和異步復位端的8位計數(shù)器 152
7.6.2 可設定計數(shù)輸出并帶異步復位端的8位計數(shù)器 153
7.6.3 可設定計數(shù)輸出并帶使能端、進位端和復位端的8位計數(shù)器 154
7.7 輸入輸出緩沖器 155
7.7.1 三態(tài)緩沖器 155
7.7.2 雙向緩沖器 156
7.8 加法器 157
7.8.1 半加器 157
7.8.2 全加器 158
7.8.3 串行進位加法器 160
7.8.4 超前進位加法器 161
7.9 移位寄存器 166
7.10 頻率轉換器 167
7.11 模數(shù)轉換器 170
第8章 高級建模實例 173
8.1 狀態(tài)機建模 173
8.1.1 乘法器狀態(tài)機 173
8.1.2 交互狀態(tài)機 175
8.1.3 Moore型有限狀態(tài)機 179
8.1.4 Mealy型有限狀態(tài)機 181
8.2 序列檢測器 183
8.3 FIFO(先入先出電路) 186
8.3.1 16×16FIFO 186
8.3.2 4×16FIFO 188
8.4 UART(通用異步收發(fā)器) 197
第9章 程序綜合實例 209
9.1 可綜合設計 209
9.1.1 綜合的概念 209
9.1.2 可綜合 210
9.1.3 可綜合及不可綜合的結構 210
9.2 綜合實例 211
9.2.1 組合邏輯電路 211
9.2.2 時序邏輯電路 212
9.2.3 存儲器 225
9.2.4 布爾方程 226
9.2.5 有限狀態(tài)機 227
9.2.6 通用移位寄存器 233
9.2.7 算術邏輯單元(ALU) 234
9.2.8 二進制計數(shù)器 237
9.2.9 加法器 238
9.2.10 數(shù)值比較器 238
9.2.11 解碼器 239
9.2.12 三態(tài)門 241
9.2.13 序列檢測器 242
第10章 系統(tǒng)設計實戰(zhàn) 245
10.1 系統(tǒng)功能分析 245
10.1.1 計算機的基本結構 246
10.1.2 典型微處理器系統(tǒng)結構及工作原理 246
10.1.3 普通計算器的基本結構 248
10.2 系統(tǒng)設計規(guī)劃 248
10.2.1 系統(tǒng)功能模塊劃分 248
10.2.2 鍵盤輸入模塊 250
10.2.3 寄存器組 252
10.2.4 算術邏輯單元 253
10.2.5 顯示部分 256
10.2.6 系統(tǒng)結構 258
10.3 程序設計與仿真 259
10.3.1 鍵盤輸入模塊程序與仿真 259
10.3.2 ALU模塊程序與仿真 264
10.3.3 顯示部分程序與仿真 284
10.3.4 頂層模塊程序設計 293
10.4 邏輯綜合 293
附錄 Verilog HDL關鍵詞詳解 294
參考文獻 350