本書從FPGA開發入門與芯片實際開發應用角度出發,全面介紹了FPGA設計所需的理論基礎和工具應用。書中針對Verilog HDL設計的基礎語法進行了系統的介紹,對Verilog HDL中一些常接觸並容易出錯的概念進行了詳細說明。同時,書中還介紹了在數字電路設計中常用的EDA工具、狀態機、仿真與測試方法。全書內容介紹深入淺出,結合作者多年來使用Verilog HDL的心得體會和積累,列舉了豐富的設計實例,展現了許多仿真設計流程,全面總結和深入闡述了在Verilog HDL中一些設計技巧、設計理念,適合廣大電路設計開發人員、電子愛好者和初學者全面學習。
本書適合廣大電路設計開發人員閱讀,也可以作為高等院校電子信息、電氣自動化等相關專業的教學用書。
謝永昌,固安信通鐵路信號器材有限責任公司,工程師,長期從事電子器材設計與製作,兼任電工電子領域成人培訓,工作期間多次被公司評為先進工作者和好教師,參與撰寫了《從零開始學電子電路設計》等電子技術類圖書,深受讀者歡迎。
第一篇 基礎知識
第1章 FPGA應用概述 002
1.1 EDA概述 002
1.1.1 FPGA與CPLD 002
1.1.2 Verilog HDL和VHDL 003
1.2 FPGA的基本結構 004
1.3 FPGA的常用開發工具 006
1.3.1 常用工具匯總一覽表 006
1.3.2 HDL前端輸入與系統管理軟體 008
1.3.3 HDL邏輯綜合軟體 008
1.3.4 模擬軟體 009
第2章 FPGA設計流程 010
2.1 需求分析 011
2.2 電路設計與輸入 011
2.3 功能實現與模擬 011
2.4 綜合優化 012
2.5 時序模擬與驗證 012
2.6 板級調試 013
第二篇 設計方法
第3章 Verilog HDL語言要素 016
3.1 注釋與格式 016
3.1.1 注釋 016
3.1.2 格式 018
3.2 識別字 019
3.3 資料物件 020
3.3.1 常量 020
3.3.2 關鍵字 022
3.4 資料類型 023
3.4.1 變數 024
3.4.2 線網類型 025
3.5 運算式 027
3.5.1 運算元 027
3.5.2 操作符 030
3.5.3 運算式種類 038
第4章 Verilog HDL基本語句 039
4.1 設定陳述式 039
4.1.1 連續設定陳述式 039
4.1.2 過程設定陳述式 041
4.2 單元塊語句 045
4.2.1 順序塊begin-end 046
4.2.2 fork-join語句 047
4.3 流程控制語句 049
4.3.1 條件陳述式 049
4.3.2 迴圈語句 058
第5章 Verilog HDL的描述方式 063
5.1 門級結構描述 063
5.1.1 門級結構的組成 064
5.1.2 門級結構的邏輯真值表 065
5.1.3 門級結構描述實例 067
5.2 資料流程描述 069
5.2.1 資料流程描述特點 069
5.2.2 資料流程描述實例 069
5.3 行為級描述 071
5.3.1 行為級描述特點 071
5.3.2 行為級描述實例 071
第6章 Verilog HDL的函數和任務 073
6.1 函數 073
6.1.1 函式定義 073
6.1.2 函式呼叫 074
6.2 任務 075
6.2.1 任務定義 075
6.2.2 任務調用 076
6.3 函數和任務的差異 078
第7章 狀態機 079
7.1 狀態機的分類與特點 079
7.1.1 狀態機的分類 079
7.1.2 狀態機的特點 084
7.2 狀態機的設計方法 084
7.2.1 狀態機的設計流程 084
7.2.2 狀態機設計要點 085
7.2.3 狀態機的描述方法 087
第三篇 模擬與測試
第8章 模擬 098
8.1 模擬概述 098
8.2 模擬中的延時描述 099
8.2.1 延時的表示方法 099
8.2.2 路徑延遲聲明specify 099
8.3 Testbench設計與使用要點 100
8.3.1 Testbench書寫方法 101
8.3.2 時鐘、重定的寫法 103
第9章 測試用例設計 108
9.1 組合邏輯電路模擬設計 108
9.1.1 8-3線編碼器示例 108
9.1.2 4位加法器示例 109
9.2 時序電路模擬設計 112
9.2.1 D觸發器示例 112
9.2.2 4位元數目器示例 114
第四篇 設計實例
第10章 Verilog設計實例 120
10.1 Verilog基礎設計實例 120
10.1.1 簡單組合邏輯電路設計 120
10.1.2 簡易有限狀態機設計 126
10.1.3 跑馬燈設計 129
10.1.4 數碼管顯示設計 135
10.2 Verilog進階設計實例 139
10.2.1 IIC通信 139
10.2.2 SPI通信 162
10.2.3 串口通信設計 173
10.2.4 紅外遙控設計 192