· 多年嵌入式人才培養及項目研發經驗總結
· 數百家企業嵌入式研發崗位人才需求匯總
· 數十所嵌入式專業大學院校教學現狀調研
· 側重實踐及案例分析并輔以代碼加以講解
fpga(現場可編程邏輯器件)以其體積小、功耗低、穩定性高等優點被廣泛應用于各類電子產品的設計中。本書全面講解了fpga系統設計的背景知識、硬件電路設計,硬件描述語言verilog hdl的基本語法和常用語句,fpga的開發工具軟件的使用,基于fpga的軟核嵌入式系統,fpga設計的基本原則、技巧、ip核, fpga在接口設計領域的典型應用,fpga+dsp的系統設計與調試,以及數字變焦系統和pci數據采集系統這兩個完整的系統設計案例。
本書內容全面、實例豐富,適合fpga系統設計初學者,大專院校通信工程、電子工程、計算機、微電子和半導體相關專業師生,硬件系統工程師和ic設計工程師學習使用。
《FPGA應用開發入門與典型實例》(修訂版)章節:
第1章 fpga系統設計基礎
1.1 fpga技術的發展歷史和動向
1.1.1 fpga技術的發展歷史
1.1.2 fpga技術的發展動向
1.2 fpga的典型應用領域
1.2.1 數據采集和接口邏輯領域
1.2.2 高性能數字信號處理領域
1.2.3 其他應用領域
1.3 fpga的工藝結構
1.3.1 基于sram結構的fpga
1.3.2 基于反融絲結構的fpga
1.3.3 基于flash結構的fpga
1.4 主流的fpga芯片廠家及其代表產品
1.4.1 xilinx公司的代表產品
1.4.2 altera公司的代表產品
1.5 工程項目中fpga芯片選擇策略和原則
1.5.1 盡量選擇成熟的產品系列
1.5.2 盡量選擇兼容性好的封裝
1.5.3 盡量選擇一個公司的產品
第2章 從零開始設計fpga最小系統
2.1 fpga最小系統的概念
2.2 fpga最小系統電路分析
2.2.1 fpga管腳設計
2.2.2 下載配置與調試接口電路設計
2.2.3 高速sdram存儲器接口電路設計
2.2.4 異步sram(asram)存儲器接口電路設計
2.2.5 flash存儲器接口電路設計
2.2.6 開關、按鍵與發光led電路設計
2.2.7 vga接口電路設計
2.2.8 ps/2鼠標及鍵盤接口電路設計
2.2.9 rs-232串口
2.2.10 字符型液晶顯示器接口電路設計
2.2.11 usb 2.0接口芯片cy7c68013電路設計
2.2.12 電源電路設計
2.2.13 復位電路設計
2.2.14 時鐘電路設計
2.3 fpga硬件系統的設計技巧
2.3.1 管腳兼容性設計
2.3.2 根據電路布局來分配管腳功能
2.3.3 預留測試點
2.4 fpga硬件系統的調試方法
2.5 典型實例1:在altera的fpga開發板上運行第一個fpga程序
2.5.1 實例的內容及目標
2.5.2 平臺簡介
2.5.3 實例詳解
2.5.4 小結
2.6 典型實例2:在xilinx的fpga開發板上運行第一個fpga程序
2.6.1 實例的內容及目標
2.6.2 平臺簡介
2.6.3 實例詳解
2.6.4 小結
第3章 硬件描述語言verilog hdl基礎
3.1 verilog hdl語言簡介
3.1.1 verilog hdl的歷史和進展
3.1.2 vhdl和verilog hdl語言對比
3.2 verilog hdl程序基本結構
3.2.1 verilog hdl程序入門
3.2.2 模塊的框架
3.3 verilog hdl語言的數據類型和運算符
3.3.1 常用數據類型
3.3.2 常用運算符
3.4 verilog hdl語言的賦值語句和塊語句
3.4.1 非阻塞賦值和阻塞賦值
3.4.2 塊語句
3.4.3 關鍵詞
3.5 verilog hdl語言的條件語句
3.5.1 if語句
3.5.2 case語句
3.5.3 其他條件語句
3.6 verilog hdl語言的其他常用語句
3.6.1 循環語句
3.6.2 結構說明語句
3.7 verilog hdl語言實現組合邏輯電路
3.7.1 assign語句實現組合邏輯
3.7.2 always塊實現組合邏輯
3.8 verilog hdl語言實現時序邏輯電路
3.9 verilog hdl語言與c語言的區別與聯系
3.10 verilog hdl程序設計經驗
3.11 典型實例3:數字跑表
3.11.1 實例的內容及目標
3.11.2 原理簡介
3.11.3 代碼分析
3.11.4 參考設計
3.12 典型實例4:ps/2接口控制
3.12.1 實例的內容及目標
3.12.2 原理簡介
3.12.3 實例詳解
3.12.4 參考設計
3.13 典型實例5:交通燈控制器
3.13.1 實例的內容及目標
3.13.2 原理簡介
3.13.3 代碼分析
3.13.4 參考設計
第4章 硬件描述語言verilog hdl設計進階
4.1 task和function說明語句的區別
4.2 verilog hdl高級語法結構——任務(task)
4.3 verilog hdl高級語法結構——任務(function)
4.4 有限狀態機的設計原理及其代碼風格
4.4.1 有限狀態機(fsm)設計原理
4.4.2 fsm設計實例
4.4.3 設計可綜合狀態機的指導原則
4.5 邏輯綜合的原則以及可綜合的代碼設計風格
4.5.1 always塊語言指導原則
4.5.2 可綜合風格的verilog hdl模塊實例
4.6 典型實例6:狀態機應用
4.6.1 實例的內容及目標
4.6.2 實例詳解
4.6.3 參考設計
4.7 典型實例7:自動轉換量程頻率計控制器
4.7.1 實例內容及目標
4.7.2 原理簡介
4.7.3 代碼分析
4.7.4 參考設計
4.8 典型實例8:使用函數實現簡單的處理器
4.8.1 實例的內容及目標
4.8.2 原理簡介
4.8.3 代碼分析
第5章 fpga設計開發軟件quartus ii的使用技巧
5.1 quartus ii軟件簡介
5.2 quartus ii軟件新特性
5.3 quartus ii軟件的安裝與啟動
5.4 quartus ii軟件設計流程
5.5 創建工程設計文件
5.5.1 創建工程
5.5.2 添加設計文件
5.6 編譯及仿真工程
5.6.1 編譯
5.6.2 仿真
5.7 約束及配置工程
5.7.1 器件選擇
5.7.2 管腳分配
5.7.3 時序約束
5.7.4 配置工程
5.8 logiclock邏輯鎖定工具使用技巧
5.8.1 邏輯鎖定方法學
5.8.2 邏輯鎖定優勢
5.8.3 邏輯鎖定參數設置
5.8.4 邏輯鎖定流程
5.9 signaltap ii在線邏輯分析儀的使用方法
5.9.1 signaltap ii介紹
5.9.2 使用signaltap ii操作流程
5.9.3 設置觸發器
5.10 典型實例9:signaltap ii功能演示
5.10.1 實例的內容及目標
5.10.2 實例詳解
5.10.3 小結
5.11 典型實例10:logiclock功能演示
5.11.1 實例的內容及目標
5.11.2 實例詳解
第6章 fpga設計開發軟件ise使用技巧
6.1 ise軟件簡介
6.1.1 ise軟件簡介
6.1.2 ise 7.1i特點
6.2 ise軟件的安裝與啟動
6.2.1 ise軟件的安裝
6.2.2 ise軟件的啟動
6.3 ise軟件的設計流程
6.4 創建設計工程
6.5 編譯與仿真設計工程
6.6 增量式設計(incremental design)技巧
6.6.1 增量式設計的必要性
6.6.2 增量設計流程
6.6.3 小結
6.7 片上邏輯分析儀(chipscope pro)使用技巧
6.7.1 chipscope pro概述
6.7.2 chipscope pro設計流程
6.7.3 chipscope pro core inserter簡介
6.7.4 chipscope pro analyzer簡介
6.7.5 小結
6.8 典型實例11:chipscope功能演示
6.8.1 實例的內容及目標
6.8.2 基于chipscope pro core generator的實現流程
6.8.3 基于chipscope pro core inserter的實現流程
6.8.4 小結
6.9 典型實例12:增量式設計(incremental design)演示
6.9.1 實例的內容及目標
6.9.2 實例詳解
6.9.3 小結
第7章 fpga系統設計的仿真驗證
7.1 fpga設計仿真驗證的原理和方法
7.1.1 fpga設計仿真驗證
7.1.2 fpga設計仿真的切入點
7.2 modelsim仿真工具簡介
7.2.1 標題欄
7.2.2 菜單欄
7.2.3 工具欄
7.2.4 工作區
7.2.5 狀態欄
7.3 modelsim的仿真流程
7.3.1 modelsim的安裝
7.3.2 使用modelsim進行功能仿真
7.4 功能仿真和時序仿真的區別和實現方法
7.4.1 功能仿真
7.4.2 時序仿真
7.5 仿真測試文件(testbench)的設計方法
7.5.1 測試文件的用途
7.5.2 測試文件設計方法
7.5.3 測試常用語句
7.6 典型實例13:sdram讀寫控制的實現與modelsim仿真
7.6.1 實例的內容及目標
7.6.2 sdram簡介
7.6.3 sdram控制器的modelsim仿真
7.6.4 小結
第8章 基于fpga的片上可編程系統(sopc)設計
8.1 基于fpga的sopc系統組成原理和典型方案
8.1.1 soc及sopc簡介
8.1.2 xilinx的sopc解決方案
8.2 altera公司的nios ii解決方案
8.2.1 nios的主要特點
8.2.2 nios技術實現方式
8.3 基于nios ii的開發設計流程
8.3.1 硬件開發流程
8.3.2 軟件開發流程
8.4 典型實例14:基于niosii處理器的“hello led”程序設計
8.4.1 實例的內容及目標
8.4.2 實例詳解
8.4.3 小結
8.5 典型實例15:基于niosii處理器的數字鐘設計
8.5.1 實例的內容及目標
8.5.2 軟件規劃
8.5.3 實例步驟
8.5.4 小結
第9章 fpga系統設計原則和技巧
9.1 fpga系統設計的3個基本原則
9.1.1 面積與速度的平衡互換原則
9.1.2 硬件可實現原則
9.1.3 同步設計原則
9.2 fpga系統設計的3種常用技巧
9.2.1 乒乓操作技巧
9.2.2 串并/并串轉換技巧
9.2.3 硬件流水線操作技巧
9.3 fpga系統設計的3種常用ip模塊
9.3.1 片上存儲器的使用方法
9.3.2 鎖相環的使用方法
9.3.3 高速串行收發器的使用方法
第10章 利用fpga實現外設通信接口
10.1 fpga在外設接口實現方面的優勢
10.1.1 充足的用戶i/o資源
10.1.2 靈活的可編程邏輯
10.1.3 支持多種電平接口標準
10.2 利用fpga實現rs-232c串行接口
10.2.1 rs-232c接口概述
10.2.2 rs-232c接口的電氣標準
10.2.3 rs-232c的通信協議
10.2.4 rs-232c接口的典型應用
10.3 利用fpga實現usb 2.0通信接口
10.3.1 usb 2.0接口的實現方式
10.3.2 fx2接口芯片的slave fifo傳輸模式
10.3.3 slave fifo模式的典型操作時序
10.3.4 fx2的固件程序設計
10.3.5 usb 2.0接口的典型應用
10.4 利用fpga實現常用顯示接口(display interface)
10.4.1 七段數碼顯示接口的設計與實現
10.4.2 字符型lcd顯示接口的設計與實現
10.4.3 vga顯示接口的設計與實現
10.5 利用fpga實現a/d、d/a轉換器接口
10.5.1 a/d、d/a轉換器接口的特點
10.5.2 a/d、d/a轉換器接口的實現方法
10.5.3 ad/da轉換器接口的注意事項
10.6 典型實例16:rs-232c(uart)接口的設計與實現
10.6.1 實例內容及目標
10.6.2 實例詳解
10.6.3 blockram的實現方法
10.6.4 fpga代碼的設計實現
10.6.5 波特率的設定
10.6.6 modelsim仿真驗證
10.6.7 小結
10.7 典型實例17:usb 2.0接口的設計與實現
10.7.1 實例的內容及目標
10.7.2 usb接口通信實戰步驟
10.7.3 usb接口通信實例結果
10.7.4 fpga代碼的設計實現
10.7.5 小結
10.8 典型實例18:字符lcd接口的設計與實現
10.8.1 實例的內容及目標
10.8.2 字符lcd接口實例內容
10.8.3 fpga代碼設計實現
10.8.4 modelsim仿真驗證
10.8.5 小結
10.9 典型實例19:vga接口的設計與實現
10.9.1 實例內容及目標
10.9.2 vga接口實例內容
10.9.3 fpga代碼設計實現
10.9.4 modelsim仿真驗證
10.9.5 小結
第10章 fpga與dsp協同處理系統設計
11.1 基于fpga+dsp協同處理平臺的優勢和適用領域
11.1.1 基于fpga的信號處理系統的特點
11.1.2 基于dsp的信號處理系統的特點
11.1.3 基于fpga+dsp的信號處理系統優勢和應用領域
11.2 基于fpga+dsp的協同處理平臺的設計流程
11.2.1 fpga與dsp的功能劃分
11.2.2 fpga+dsp的系統設計流程
11.3 fpga與dsp的通信接口設計
11.3.1 基于tms320c64x系列的emif接口設計
11.3.2 基于tms320系列dsp的主機接口(hpi)設計
11.4 fpga+dsp協同平臺的調試技巧和注意事項
11.4.1 fpga和dsp的隔離調試技術
11.4.2 fpga測試點的設計
11.4.3 借助fpga的內部邏輯分析儀來輔助調試
11.5 典型實例20:fpga片上硬件乘法器的使用
11.5.1 實例的內容及目標
11.5.2 硬件乘法ip的使用方法
11.5.3 小結
11.6 典型實例21:整數dct變換的設計與實現
11.6.1 實例的內容及目標
11.6.2 整數dct變換的原理
11.6.3 實例步驟
11.6.4 小結
第12章 數字圖像倍焦系統設計與實現綜合實例
12.1 設計需求分析與芯片選型
12.1.1 需求分析
12.1.2 芯片選型
12.2 系統工作原理分析
12.3 系統原理框圖
12.4 fpga內部結構設計
12.4.1 fpga內部結構框圖
12.4.2 各個模塊功能描述
12.5 系統硬件配置方案
12.5.1 fpga的配置
12.5.2 video decoder(saa7113h)的配置
12.5.3 video encoder(saa7128)的配置
12.5.4 印刷電路板(pcb)設計
12.6 fpga在其他視頻和圖像處理系統中的應用
第13章 高速pci信號采集卡設計與實現綜合實例
13.1 設計需求分析與功能定義
13.1.1 信號與信號采集系統
13.1.2 設計需求分析
13.1.3 選型及功能定義
13.2 系統工作原理分析
13.2.1 數據總線
13.2.2 控制總線
13.2.3 地址總線
13.2.4 信號采集系統控制機制
13.3 pci接口芯片pci9054與fpga的接口設計
13.3.1 pci9054的特性
13.3.2 pci9054工作模式
13.3.3 pci設備空間配置
13.3.4 pci9054與fpga接口設計
13.4 pci卡的驅動程序設計
13.4.1 wdm驅動程序模型
13.4.2 設備和驅動程序的層次結構
13.4.3 pci設備驅動程序例程
13.5 主機應用程序和驅動程序的接口設計
13.5.1 驅動程序例程的封裝
13.5.2 plx api函數
13.5.3 api函數調用
13.5.4 pci9054驅動程序安裝
13.6 fpga內部結構設計
13.6.1 構框圖
13.6.2 設計方法
13.7 硬件系統實現
13.7.1 fpga配置
13.7.2 pci9054配置
13.7.3 pci9054 pci總線連接規范
13.7.4 電源系統
13.8 樣機的調試方法和技巧
13.8.1 沒有pci控制的跑馬燈
13.8.2 基于pci控制的跑馬燈
13.9 產品穩定性和可靠性測試
13.10 產品定型和設計文檔備案