VHDL與FPGA設計 內容簡介
定位在學習VHDL和FPGA設計的初學者 即深入淺出地講述了VHDL程式設計方法,又結合Modelsim、FPGA Express和Xilinx Foundation軟體詳細講述了FPGA設計的功能仿真,綜合,布局布線和時序仿真等 結合EDA設計的特點,剖析了VHDL語言在FPGA設計中的重點難點,並將這些設計思想貫穿全書始終 本書讀者對象為大中專院校相關專業的高年級本科生和研究生,以及從事EDA設計的研發工程師 本書涉及到的範例程式檔案在http://www.tqbooks.net/download.asp網頁上可免費下載。VHDL與FPGA設計 本書目錄
第0章 前 言 10-1 VHDL的發展 2
0-2 VHDL的優點 3
0-3 所須具備的概念 3
0-4 'SRAM Base'vs.'Anti-Fuse' 4
0-5 本書的內容 5
0-6 使用工具 7
第1章 設計的基本概念 9
1-1 設計階段的劃分 10
1-2 VHDL設計的流程 10
1-3 Design Entry-Schematics vs. VHDL 12
1-4 Function Simulation VHDL 12
1-5 Synthesis 13
1-6 Place & Route 14
1-7 Timing Simulation 14
1-8 小結 14
第2章 架構(Architecture) 17
2-1 Simulator的使用 18
2-2 基本架構 24
2-2-1 Library 26
2-2-2 Use 28
2-2-3 Entity 29
2-2-4 Port 30
2-3 Architecture 32
2-4 命名法則與注釋 33
2-5 擴展的聲明 33
2-5-1 Package 34
2-5-2 Package Body 36
2-6 小結 38
問題 38
第3章 數據類型(Type) 41
3-1 Standard Package定義的數據類型 42
3-1-1 標量型數據類型 42
3-1-2 枚舉型數據類型 43
3-1-3 複合型的數據類型 44
3-2 IEEE Package定義的數據類型 44
3-3 複合型數據類型 48
3-3-1 Array 48
3-3-2 Record 48
3-4 檔案型數據類型 49
3-5 小結 51
問題 52
第4章 運算符(Operator) 53
4-1 1076-1987與1076-1993 Operator的差異 54
4-2 Logical Operator 54
4-3 Relational Operator 56
4-4 Shift Operator 58
4-4-1 IEEE 1076-1993中的Shift Operator 59
4-4-2 衍生的移位處理 61
4-5 Adding Operator 64
4-5-1 加減法運算處理 64
4-5-2 連線(concatenation)處理 67
4-6 Sign Operator 68
4-7 Multiplying Operator 68
4-8 Miscellaneous Operator 69
4-9 Operator的優先權 70
4-10 小結 72
問題 72
第5章 組合邏輯電路(Combinational Logic) 73
5-1 基本的Combinational Logic 74
5-1-1 And 74
5-1-2 Or 76
5-1-3 Not及其他 77
5-2 較複雜的Combinational Logic 77
5-2-1 When-Else 77
5-2-2 With-Select-When 78
5-3 Process中的Combinational Logic 79
5-4 Delay對Combinational Logic的影響 84
5-5 小結 85
問題 86
第6章 時序邏輯電路(Sequential Logic) 87
6-1 Process的語法結構 88
6-2 If語句 92
6-3 Wait語句 96
6-3-1 Wait Until語句 96
6-3-2 Wait For語句 98
6-3-3 Wait On語句 100
6-4 Case語句 102
6-5 Sync與Async Reset 103
6-6 Loop 105
6-6-1 與While及For合用 105
6-6-2 Loop的嵌套 107
6-6-3 Next語句 109
6-6-4 Exit語句 111
6-7 Assert語句 113
6-8 小結 116
問題 117
第7章 函式(Function)與過程(Procedure) 119
7-1 Function的聲明及使用 120
7-2 類型轉換的Function 122
7-3 重載函式(Overload Function) 126
7-4 Procedure 129
7-5 小結 132
問題 133
第8章 屬性(Attribute)與配置(Configuration) 135
8-1 返回信號狀態的屬性 136
8-1-1 Event屬性 136
8-1-2 Active屬性 137
8-1-3 Last_event屬性 137
8-1-4 Last_value及Last_active屬性 139
8-2 返回單一數值的屬性 140
8-3 返回數值範圍的屬性 142
8-4 Configuration 144
8-4-1 Architecture Configuration 144
8-4-2 Component Configuration 147
8-4-3 Generic Configuration 151
8-5 小結 154
問題 155
第9章 層次式設計(Hierarchy Design) 157
9-1 Component Instantiation 158
9-2 Design Partition 163
9-3 設計方法的講述 164
9-3-1 Input Latch & Float->Fix 164
9-3-2 adder 166
9-3-3 Fix->Float & Output Latch 168
9-4 頂層設計及仿真 170
9-4-1 頂層設計的連線 170
9-4-2 設計仿真 172
9-5 小結 174
問題 174
第10章 功能仿真(Function Simulation) 177
10-1 Dependency 178
10-2 ModelSim中的Options 179
10-3 建立Simulation Macro 184
10-3-1 建立基本的Marco 184
10-3-2 雙向Bus的仿真Macro 187
10-4 testbench Simulation 189
10-5 Textio仿真 192
10-6 Simulation Library的建立 198
10-6-1 Core Generator的使用 199
10-6-2 Simulation Library的建立 202
10-6-3 Design的處理 205
10-6-4 進行Simulation 208
10-7 層次式的仿真及調試 208
10-8 小結 210
問題 211
第11章 合成(Synthesis) 213
11-1 Synthesizer的使用 214
11-2 預布局仿真(Pre-Layout Simulation) 218
11-3 一些不能合成的例子 219
11-3-1 時間延遲的要求 219
11-3-2 不合乎硬體設計 222
11-3-3 起始值的設定 223
11-4 Constraint的設定方法 227
11-5 Block Box的Synthesis 233
11-6 層次式設計的Synthesis 234
11-7 小結 235
問題 236
第12章 布局布線(Place & Route) 237
12-1 Place & Route工具的使用 238
12-2 Constraint的設定 241
12-2-1 Timing Constraint 241
12-2-2 非Timing Constraint 246
12-3 Report Analyze 247
12-4 層次式設計的Place & Route 249
12-5 小結 250
問題 251
第13章 時序仿真(Timing Simulation) 253
13-1 編譯VHDL Netlist File 254
13-2 Timing Simulation 255
13-2-1 信號GSR所造成的問題 256
13-2-2 Setup Time Check造成的錯誤 259
13-3 SDF File 261
13-3-1 SDF的內容 261
13-3-2 表頭部分 261
13-3-3 基本單元 263
13-3-4 時序檢查 264
13-4 仿真分析 266
13-5 規格的設定 273
13-6 運用Textio做數據對比的Timing Simulation 274
13-7 Timing Simulation的好處 278
13-8 小結 278
問題 279
第14章 狀態機設計(State Machine Design) 281
14-1 State Machine的建立 282
14-1-1 程式代碼的撰寫 283
14-1-2 設計的Function Simulation 287
14-1-3 設計的Synthesis及Place& Route 289
14-1-4 時序仿真(Timing Simulation) 290
14-2 狀態機的修改 291
14-2-1 程式代碼的修改 292
14-2-2 修改設計的功能仿真(Function Simulation) 294
14-2-3 設計的合成(Synthesis)與布局布線(Place & Rute) 295
14-2-4 時序仿真(Timing Simulation) 297
14-3 One-hot與Binary decode 298
14-4 小結 299
問題 299
第15章 並行處理(Pipelined Processing) 301
15-1 未使用並行處理的乘法器 302
15-2 增加Input Latch的乘法器 308
15-3 將乘法器一分為二的設計 310
15-4 改善已有的設計 314
15-5 並行處理的缺點 315
15-6 小結 316
附 錄 317