本書(shū)全面系統(tǒng)地介紹了電子設(shè)計(jì)自動(dòng)化(EDA)的相關(guān)技術(shù)理論、HDL語(yǔ)言及語(yǔ)法、開(kāi)發(fā)環(huán)境操作流程、電子設(shè)計(jì)與優(yōu)化方法等。全書(shū)共分10章,內(nèi)容包括:EDA技術(shù)概述、可編程邏輯器件基礎(chǔ)、QuartusPrime開(kāi)發(fā)軟件應(yīng)用、VerilogHDL的基本語(yǔ)法、VerilogHDL設(shè)計(jì)的層次與常用模塊設(shè)計(jì)、宏功能模塊設(shè)計(jì)、可綜合設(shè)計(jì)與優(yōu)化、ModelSim軟件的使用、數(shù)字設(shè)計(jì)實(shí)例、C/C++語(yǔ)言開(kāi)發(fā)可編程邏輯器件。
目 錄
前言
第1 章 EDA 技術(shù)概述 1
1.1 EDA 技術(shù)簡(jiǎn)介 1
1.2 EDA 技術(shù)的發(fā)展和優(yōu)勢(shì) 2
1.2.1 EDA 技術(shù)的發(fā)展 2
1.2.2 EDA 技術(shù)的優(yōu)勢(shì) 3
1.3 硬件描述語(yǔ)言(HDL) 4
1.3.1 原理圖設(shè)計(jì)方法 4
1.3.2 HDL 的設(shè)計(jì)方法 4
1.3.3 HDL 設(shè)計(jì)方法與傳統(tǒng)原理圖設(shè)計(jì)方法的比較 5
1.4 綜合 6
1.5 基于HDL 的設(shè)計(jì)方法 7
1.6 EDA 工程的設(shè)計(jì)流程 8
1.7 EDA 集成開(kāi)發(fā)工具簡(jiǎn)介 10
1.8 IP 核 12
1.9 小結(jié) 13
1.10 習(xí)題 13
第2 章 可編程邏輯器件基礎(chǔ) 14
2.1 可編程邏輯器件概述 14
2.1.1 可編程邏輯器件的發(fā)展過(guò)程 14
2.1.2 可編程邏輯器件的分類 15
2.2 PROM?PLA?PAL 和GAL 的基本結(jié)構(gòu) 16
2.2.1 邏輯電路符號(hào)的表示方法 16
2.2.2 PLD 器件的基本結(jié)構(gòu) 17
2.2.3 PROM 的基本結(jié)構(gòu) 17
2.2.4 PLA 的基本結(jié)構(gòu) 18
2.2.5 PAL 和GAL 的基本結(jié)構(gòu) 18
2.2.6 PROM?PLA?PAL 和GAL 電路的結(jié)構(gòu)特點(diǎn) 21
2.3 CPLD 的基本結(jié)構(gòu)和工作原理 21
2.3.1 CPLD 的基本結(jié)構(gòu) 21
2.3.2 Intel 公司的CPLD 23
2.4 FPGA 的結(jié)構(gòu)和工作原理 26
2.4.1 FPGA 的基本結(jié)構(gòu) 27
2.4.2 Intel 公司的FPGA 30
2.5 CPLD/FPGA 的應(yīng)用選型 33
2.6 Intel 器件的識(shí)讀與選型指南 34 2.7 小結(jié) 37
2.8 習(xí)題 38
第3 章 Quartus Prime 開(kāi)發(fā)軟件應(yīng)用 39
3.1 Quartus Prime 軟件設(shè)計(jì)流程 39
3.2 Quartus Prime 軟件安裝 39
3.3 創(chuàng)建工程文件 45
3.3.1 建立工程 45
3.3.2 建立設(shè)計(jì)文件 50
3.3.3 原理圖輸入方法 52
3.3.4 文本輸入設(shè)計(jì)方法 53
3.3.5 編譯 55
3.4 約束輸入 55
3.4.1 器件選擇 55
3.4.2 引腳分配及驗(yàn)證 57
3.4.3 使用“Assignment Editor”和“Settings”對(duì)話框 58
3.5 綜合和仿真 59
3.5.1 使用Quartus Prime 的集成綜合 59
3.5.2 使用ModelSim 仿真器進(jìn)行仿真設(shè)計(jì) 60
3.6 下載配置 63
3.6.1 JTAG 模式 63
3.6.2 AS 模式 63
3.7 實(shí)例:3 線-8 線譯碼器設(shè)計(jì)與仿真 64
3.7.1 實(shí)例簡(jiǎn)介 64
3.7.2 實(shí)例目的 64
3.7.3 實(shí)例內(nèi)容 64
3.8 小結(jié) 68
3.9 習(xí)題 69
第4 章 Verilog HDL 的基本語(yǔ)法 70
4.1 Verilog HDL 簡(jiǎn)介 70
4.1.1 Verilog HDL 的發(fā)展過(guò)程 70
4.1.2 Verilog HDL 與C 語(yǔ)言的比較 71
4.2 Verilog HDL 設(shè)計(jì)舉例 73
4.3 Verilog HDL 模塊的結(jié)構(gòu) 75
4.4 Verilog HDL 的要素與表達(dá)式 79
4.4.1 注釋 80
4.4.2 常量 80
4.4.3 變量 81
4.4.4 操作符 83
4.4.5 字符串?關(guān)鍵字?標(biāo)識(shí)符 90
4.5 賦值語(yǔ)句 90
4.5.1 連續(xù)賦值 91
4.5.2 過(guò)程賦值 92
4.5.3 連續(xù)賦值和過(guò)程賦值的不同 95
4.6 塊語(yǔ)句 96
4.6.1 順序語(yǔ)句塊(begin-end) 96
4.6.2 并行語(yǔ)句塊(fork-join) 97
4.6.3 起始時(shí)間和結(jié)束時(shí)間 98
4.7 條件語(yǔ)句 99
4.7.1 if-else 語(yǔ)句 99
4.7.2 case 語(yǔ)句 101
4.7.3 比較if-else 嵌套與case 語(yǔ)句 104
4.8 循環(huán)語(yǔ)句 104
4.8.1 for 語(yǔ)句 104
4.8.2 forever 語(yǔ)句 105
4.8.3 repeat 語(yǔ)句 105
4.8.4 while 語(yǔ)句 105
4.9 過(guò)程語(yǔ)句 106
4.9.1 initial 語(yǔ)句 106
4.9.2 always 語(yǔ)句 108
4.10 任務(wù)與函數(shù) 109
4.10.1 任務(wù) 110
4.10.2 函數(shù) 113
4.11 預(yù)編譯指令 114
4.11.1 宏定義語(yǔ)句('define?'undef) 114
4.11.2 文件包含語(yǔ)句('include) 115
4.11.3 時(shí)間尺度('timescale) 117
4.11.4 條件編譯指令('ifdef?'else?'endif) 117
4.12 小結(jié) 118
4.13 習(xí)題 118
第5 章 Verilog HDL 設(shè)計(jì)的層次與常用模塊設(shè)計(jì) 120
5.1 Verilog HDL 設(shè)計(jì)的層次 120
5.2 行為描述 120
5.3 數(shù)據(jù)流描述 121
5.4 結(jié)構(gòu)描述 121
5.4.1 Verilog HDL 內(nèi)置門(mén)元件 121
5.4.2 門(mén)元件的調(diào)用 122
5.5 基本組合邏輯電路設(shè)計(jì) 123
5.5.1 與非門(mén)電路 124
5.5.2 或非門(mén)電路 125
5.5.3 異或門(mén)電路 126
5.5.4 三態(tài)門(mén)電路 127
5.5.5 編碼器 127
5.5.6 譯碼器 129
5.5.7 BCD-七段顯示譯碼器 130
5.5.8 2 選1 數(shù)據(jù)選擇器 132
5.5.9 4 選1 數(shù)據(jù)選擇器 133
5.5.10 數(shù)值比較器 134
5.5.11 總線緩沖器 135
5.6 基本時(shí)序電路設(shè)計(jì) 136
5.6.1 觸發(fā)器 136
5.6.2 寄存器 137
5.6.3 計(jì)數(shù)器 138
5.6.4 串-并轉(zhuǎn)換器 139
5.7 加法器設(shè)計(jì) 140
5.7.1 并行加法器 141
5.7.2 流水線加法器 141
5.8 乘法器設(shè)計(jì) 143
5.8.1 并行乘法器 143
5.8.2 查找表乘法器 144
5.9 乘累加器設(shè)計(jì) 145
5.10 小結(jié) 147
5.11 習(xí)題 147
第6 章 宏功能模塊設(shè)計(jì) 148
6.1 算術(shù)運(yùn)算模塊庫(kù) 148
6.1.1 算術(shù)運(yùn)算模塊庫(kù)模塊列表 148
6.1.2 乘法器模塊設(shè)計(jì)舉例 149
6.1.3 計(jì)數(shù)器模塊設(shè)計(jì)舉例 153
6.2 邏輯門(mén)庫(kù) 156
6.2.1 邏輯門(mén)庫(kù)宏模塊列表 156
6.2.2 3 線-8 線譯碼器模塊設(shè)計(jì)舉例 156
6.3 I/O 模塊庫(kù) 158
6.4 存儲(chǔ)器模塊庫(kù) 159
6.5 小結(jié) 160
6.6 習(xí)題 160
第7 章 可綜合設(shè)計(jì)與優(yōu)化 161
7.1 可綜合設(shè)計(jì) 161
7.1.1 綜合的概念及其過(guò)程 161
7.1.2 可綜合模型的設(shè)計(jì) 162
7.1.3 綜合結(jié)果的驗(yàn)證 163
7.2 Verilog HDL 設(shè)計(jì)優(yōu)化 165
7.2.1 公因子和公因子表達(dá)式 165
7.2.2 算術(shù)表達(dá)式優(yōu)化 165
7.2.3 運(yùn)算符優(yōu)化 166
7.2.4 循環(huán)語(yǔ)句的優(yōu)化 166
7.3 面積與速度的折中 167
7.3.1 速度換面積 167
7.3.2 面積換速度 168
7.4 有限狀態(tài)機(jī)設(shè)計(jì) 168
7.4.1 有限狀態(tài)機(jī)的設(shè)計(jì)步驟 169
7.4.2 有限狀態(tài)機(jī)編碼方式 170
7.4.3 用Verilog HDL 設(shè)計(jì)可綜合的狀態(tài)機(jī)的指導(dǎo)原則 170
7.4.4 狀態(tài)機(jī)的三種設(shè)計(jì)風(fēng)格 170
7.5 小結(jié) 178
7.6 習(xí)題 178
第8 章 ModelSim 軟件的使用 179
8.1 系統(tǒng)任務(wù)與函數(shù) 179
8.2 用戶自定義原語(yǔ) 183
8.3 應(yīng)用Testbench 仿真驗(yàn)證 184
8.3.1 基本結(jié)構(gòu) 184
8.3.2 驗(yàn)證過(guò)程 185
8.3.3 驗(yàn)證的全面性與代碼覆蓋率分析 188
8.4 應(yīng)用ModelSim 軟件仿真 194
8.4.1 軟件簡(jiǎn)介 194
8.4.2 使用ModelSim 進(jìn)行設(shè)計(jì)仿真 194
8.4.3 在Quartus Prime 中直接調(diào)用ModelSim 198
8.5 實(shí)例:4 位全加器設(shè)計(jì)及ModelSim 仿真 200
8.5.1 實(shí)例簡(jiǎn)介 200
8.5.2 實(shí)例目的 201
8.5.3 實(shí)例內(nèi)容 201
8.6 小結(jié) 207
8.7 習(xí)題 207
第9 章 數(shù)字設(shè)計(jì)實(shí)例 208
9.1 卷積編碼Verilog HDL 設(shè)計(jì) 208
9.1.1 卷積碼的編碼工作原理 208
9.1.2 卷積碼的Verilog HDL 實(shí)現(xiàn) 209
9.1.3 卷積碼的ModelSim 仿真 210
9.2 通用異步收發(fā)器的Verilog HDL 設(shè)計(jì)與驗(yàn)證 211
9.2.1 通用異步收發(fā)器的規(guī)范 211
9.2.2 電路結(jié)構(gòu)設(shè)計(jì) 212
9.2.3 UART 控制電路模塊的代碼設(shè)計(jì)與分析 214
9.2.4 發(fā)送電路的代碼設(shè)計(jì)與仿真分析 218
9.2.5 接收電路的代碼設(shè)計(jì)與仿真 222
9.2.6 UART 系統(tǒng)仿真 227
9.2.7 UART 自動(dòng)測(cè)試Testbench 230
9.3 小結(jié) 233
9.4 習(xí)題 234
第10 章 C/C 語(yǔ)言開(kāi)發(fā)可編程邏輯器件 235
10.1 基于C/C 的硬件設(shè)計(jì)方法 235
10.2 硬件設(shè)計(jì)的C 數(shù)據(jù)類型 235
10.2.1 ac_int 型 236
10.2.2 ac_fixed 型 236
10.3 C/C FIR 濾波器設(shè)計(jì) 237
10.3.1 直接型FIR 濾波器 237
10.3.2 奇對(duì)稱FIR 濾波器 238
10.3.3 轉(zhuǎn)置型FIR 濾波器 239
10.4 C 濾波器的可編程邏輯實(shí)現(xiàn)及驗(yàn)證 239
10.4.1 C FIR 濾波器的實(shí)現(xiàn) 239
10.4.2 FIR 濾波器的驗(yàn)證 247
10.5 小結(jié) 249
10.6 習(xí)題 250
附錄 Quartus Ⅱ支持的Verilog 結(jié)構(gòu) 251
參考文獻(xiàn) 254
顯示部分信息