全書從實用的角度出發,通過大量工程實例,詳細介紹了FPGA項目程序設計的方法與技巧。全書共分為4篇25章,第1篇為FPGA基礎知識篇,簡要介紹了FPGA硬件結構、 VHDL語言編程基礎,以及FPGA常用開發工具等;第2篇為FPGA 數字系統程序實例,通過矩陣鍵盤掃描接口設計、PS/2鍵盤接口設計、點陣發光管掃描接口設計、VGA彩條信號發生器、6層電梯控制器、兩種分頻器設計、波形信號發生器的設計、交通燈控制的設計、常見的兩種數字濾波器的設計、快速傅里葉變換FFT的設計、數字式頻率合成器DSS的設計、數字電壓計的設計等實例,詳細介紹了FPGA數字系統項目開發的技術和技巧;第3篇為FPGA通信系統程序實例,包括串行通信接口UART設計、ASK編碼器與譯碼器設計、FSK編碼器與譯碼器設計、CMI編碼器與譯碼器設計、曼徹斯特編碼器與譯碼器設計、HDB3編碼器與譯碼器設計等實例;第4篇為項目程序實例,通過Nios II定時中斷器的應用、基于Nios II的I2C總線傳輸應用、基于Nios II的SPI總線的應用、基于Nios II的uCOS應用等典型實例,介紹了FPGA汽車電子程序的特點和開發技術。
本書語言簡潔、結構清晰,以實際工程為背景,實例典型、豐富,全部來自于實踐并且調試通過,代表性和指導性強,利于讀者舉一反三,是作者多年開發經驗的推廣與總結。
本書配有光盤1張,包含書中實例的硬件原理圖和程序源代碼,方便讀者學習和使用。本書適合計算機、自動化、電子及硬件等相關專業的大學生,以及從事FPGA開發的科研人員使用。
作者多年開發經驗的推廣與總結,詳述FPGA數字系統程序開發的實戰技巧,闡釋FPGA通信系統程序開發的實戰技巧,剖析NiosII項目程序開發的實戰技巧。
第1篇 FPGA基礎知識篇
第1章 FPGA硬件結構知識
第2章 VHDL語言編程基礎
第3章 FPGA常用開發工具
第2篇 FPGA數字系統程序實例
第4章 矩陣鍵盤掃描接口設計
第5章 PS/2鍵盤接口設計
第6章 點陣發光管掃描接口設計
第7章 VGA彩條信號發生器
第8章 6層電梯控制器
第9章 兩種分頻器設計
第10章 波形信號發生器的設計
第11章 交通燈控制的設計
第12章 常見的兩種數字濾波器的設計
第13章 快速傅里葉變換FFT的設計
第14章 數字式頻率合成器DSS的設計
第15章 數字電壓計的設計
第3篇 FPGA通信系統程序實例
第16章 串行通信接口UART設計
第17章 ASK編碼器與譯碼器設計
第18章 FSK編碼器與譯碼器設計
第19章 CMI編碼器與譯碼器設計
第20章 曼徹斯特編碼器與譯碼器設計
第21章 HDB3編碼器與譯碼器設計
第4篇 Nios II項目程序實例
第22章 Nios II定時中斷器的應用
第23章 基于Nios II的I2C總線傳輸應用
第24章 基于Nios II的SPI總線的應用
第25章 基于Nios II的uCOS應用
第1篇 FPGA基礎知識篇
第1章 FPGA硬件結構知識
1.1 CPLD/PPGA概述
CPLD是復雜可編程邏輯器件(Complex Programable Logic Device)的簡稱,FPGA是現場可編程門陣列(Field Programable Gate Array)的簡稱,兩者的功能基本相同,只是實現原理略有所不同,所以有時可以忽略這兩者的區別,統稱為可編程邏輯器件或CPLD/FPGA。
CPLD最早由Altera公司推出即MAX系列,多為Flash、EEPROM架構或乘積項(Product Term)架構的PLD。FPGA最早由Xilinx公司推出,多為SRAM架構或查表(Look Up Table)架構,需外接配置用的EPROM下載。由于Altera的FELX/ACEX/APEX系列也是SRAM架構,所以通常把Altera的FELX/ACEX/APEX系列芯片也叫做FPGA。
1.1.1 CPLD/FPGA的特點
CPLD/FPGA可以說都是PAL(可編程陣列邏輯)/GAL(通用陣列邏輯)的延伸,CPLD與FPGA在應用時各自的特點如下。
與FPGA相比,CPLD的邏輯單元較大、容量較小、時序確定、延時可預測。
CPLD時間上安排勝于FPGA。CPLD基于一些可程序化行列邏輯PAL/PLA或乘積項。典型的FPGA則是一個以SRAM(靜態隨機存儲器)為基礎、由邏輯單元組成的裝置,它包含的寄存器為邏輯表達式提供的查找表。所以FPGA時間上取決于查找表路由,但這樣FPGA比CPLD有更多寄存器、更多邏輯,如圖1-1和圖1—2所示。
……