《基於FPGA的SOPC嵌入式系統設計與典型實例》

《基於FPGA的SOPC嵌入式系統設計與典型實例》

《基於FPGA的SOPC嵌入式系統設計與典型實例》將基礎知識和大量工程實例結合,實踐性強。不但詳細介紹了基於FPGA的嵌入式SOPC系統設計的構架與軟硬體編程,同時提供了套用設計思路與方案,對實例的所有程式代碼做了詳細注釋,利於讀者理解和鞏固知識點。本書配有光碟一張,包含了全書所有實例的硬體原理圖和程式原始碼,方便讀者學習和使用。本書適合計算機、自動化、電子及硬體等相關專業的大學生,以及從事FPGA開發的科研人員使用。

基本信息

圖書信息

作 者:王剛,張瀲引編著出版社:電子工業出版社
出版時間:2009-1-1
頁 數:504頁
開 本:16開

基於FPGA的SOPC嵌入式系統設計與典型實例基於FPGA的SOPC嵌入式系統設計與典型實例

ISBN9787121079184
分類:圖書>>計算機/電子設計>>FPGA
定價:¥65.00元(含光碟1張)

宣傳語

實例豐富即學即用

內容簡介

基於FPGA的SOPC設計技術是當前電子系統設計領域最前沿的技術之一。全書通過核心技術與典型實例的形式,全面系統、深入淺出地介紹了基於FPGA的嵌入式SOPC系統設計技術與套用實例。

圖書室圖書室

全書共分14章,第1~3章簡要介紹了FPGA硬體結構知識、VerilogHDL編程基礎、FPGA常用開發工具,引導讀者入門;第4~7章重點對嵌入式SOPC系統設計技術進行了細緻闡述,內容包括:SOPC硬體系統開發、SOPC軟體系統開發、Avalon匯流排規範、NiosII外圍設備及其編程;第8~14章通過7個典型實例,對基於FPGA的嵌入式SOPC系統設計過程進行實際演練,具體包括:七段數碼管時鐘顯示實例、串口通信DMA傳輸實例、LED燈控PWMIP核的設計實例、通用TFT-LCD控制器及PS2滑鼠設計實例、對對碰遊戲設計實例、GPS信息接收系統設計實例以及基於NiosII的I2C匯流排傳輸套用設計。經過這些例子的學習,讀者設計的能力將迅速提升,產生質的飛躍。

叢書說明

工程技術的電子化、集成化和系統化促進了電子工程技術的發展,同時也促進了電子工程技術在社會各行業中的廣泛套用,從近年的人才招聘市場來看,電子工程師的人才需求更是一路走高。
電子工程師如此緊俏,除需求不斷走高,人才供不應求外,另一重要原因則是電子工程師的門檻相對而言比較高,這個高門檻則來自於工程師的“經驗”和“實踐”!
因此,為了滿足讀者學習和工作需要,解決各種工作中的專業問題,我們緊緊圍繞“經驗”和“實踐”,精心策劃組織了此套叢書。
1.叢書範圍
現代電子科學技術的一個特點是多學科交叉,因此,工程師應當了解、掌握2門以上的相關學科,知識既精深又廣博是優秀的工程師成長為某領域專家的重要標誌。本叢書內容涉及軟體開發、研發電子以及嵌入式項目開發等,包括單片機、USB接口、ARM、CPLD/FPGA、DSP、移動通信系統等。
2.讀者對象
本套書面向各領域的初、中級用戶。具體為高校計算機、電子信息、通信工程、自動化控制專業在校大學生,以及從事電子開發和套用行業的科研人員。
3.內容組織形式
本套書緊緊圍繞“經驗”和“實踐”,首先介紹一些相關的基礎知識,然後根據不同的模組或套用領域,分篇安排應用程式實例的精講。基礎知識用來為一些初級讀者打下一定的知識功底;基礎好一點的讀者則可以跳過這一部分,直接進入實例的學習。
4.實例特色
在套用實例的安排上,著重突出“套用”和“實用”兩個基本原則,安排具有代表性、技術領先性,以及套用廣泛的典型實例,讓讀者學習借鑑。這些實例是從作者多年程式開發項目中挑選出的,也是經驗的歸納與總結。
在套用實例的講解上,既介紹了設計原理、基本步驟和流程,也穿插了一些經驗、技巧與注意事項。特別在程式設計思路上,在決定項目開發的質量和成功與否的細節上,儘可能地用簡潔的語言來清晰闡述大眾易於理解的概念和思想;同時,程式代碼部分做了很詳細的中文注釋,有利於讀者舉一反三,快速套用和提高。
5.光碟內容
本套書的光碟中包含了豐富的實例原圖檔案和程式原始碼,讀者稍加修改便可套用於自己的工作中或者完成自己的課題(畢業設計),物超所值。讀者使用之前,最好先將光碟內容全部複製到電腦硬碟中,以便於以後可以直接調用,而不需要反覆使用光碟,提高操作速度和學習效率。
6.學習指南
對於有一定基礎的讀者,建議直接從實例部分入手,邊看邊上機練習,這樣印象會比較深,效果更好。基礎差一點的讀者請先詳細學習書中基礎部分的理論知識,然後再進行套用實例的學習。在學習中,儘量做到反覆理解和演練,以達到融會貫通、舉一反三的功效;特別希望儘量和自己的工作設計聯繫起來,以達到“即學即會,學以致用”的最大化境界。
本套書主要偏重於實用性,具有很強的工程實踐指導性。期望讀者在學習中順利、如意!
光碟說明
1.光碟的內容說明
該光碟包括7個實例資料夾,內容是實例的硬體原理圖和程式原始碼(如下圖所示)。
2.光碟的使用說明
在用戶已安裝好軟體並有開發板作為支持的前提下,使用實例工程的具體方法為:
(1)拷貝某一實例工程到磁碟目錄下,由於所有實例均在D糟根目錄下進行設計,所以建議用戶將其也放置到D:\目錄下進行使用,避免不必要的問題,解壓縮工程資料夾。
(2)點擊資料夾中的.qpf檔案,打開工程,在QuartusII中即可以看到整個工程中包含的檔案。
(3)建議用戶首先對工程進行編譯,特別是當用戶的軟體版本與工程創建使用的版本(7.0版本)不相符合時,首先需要對工程重新編譯才可使用。
(4)編譯過程中,如果用戶使用的開發板不是DE1,請對照相應的開發板手冊配置好引腳約束,避免適配的問題。並確定其開發板支持實例工程欲達到的接口(比如如果用戶使用的開發板本身不支持PS2接口,那么在對實例4進行滑鼠使用的時候就自然得不到成功的結果了)。
(5)編譯過程如果報錯,請用戶嘗試刪除工程目錄下的db資料夾,該資料夾的內容是在筆者機器上編譯時所保存的臨時數據檔案,可能會導致不兼容的問題,刪除後重新編譯即可解決問題。
(6)編譯結束後,打開NiosIIIDE(建議7.0版本),打開實例工程中的NiosII程式代碼。
(7)編譯並運行,即可看到最終的結果。在此過程中如果軟體報錯,請在NiosIIIDE中重新建立工程,並導入所有的軟體檔案(注意創建工程時需要指定正確的硬體描述檔案.ptf),重新編譯運行。
3.軟硬體要求
本書實例工程均在QuartusII7.0和NiosIIIDE7.0版本軟體環境下進行設計,並使用AlteraDE1開發板通過測試驗證。用戶使用實例之前應安裝相應的軟體(建議7.0版本以上),而且應該有相應的硬體開發板(建議使用DE1)作為支持,特別地對於某些實例,還需要配備其他的硬體資源作為支持(比如LCD液晶屏、PS2滑鼠、GPS模組等)。否則,只能對工程代碼進行參考。

前言

基於FPGA的電子系統設計技術是21世紀電子套用工程師必備的基本技能之一,而基於FPGA的SOPC設計技術是當前電子系統設計領域最前沿的技術之一。Altera公司、Xilinx公司、Lattis公司、QuickLogic公司等全球最重要的FPGA及EDA公司都分別推出SOPC系統解決方案。SOC設計技術將是21世紀的技術發展趨勢,是現在高校和社會嵌入式培訓班必需的內容和亮點。
SOPC設計具體包括以32位NiosII為核心的嵌入式系統的硬體配置、硬體設計、硬體仿真、軟體設計以及軟體調試等。SOPC系統設計的基本軟體工具包括:
QuartusII:用於完成NiosII系統的綜合、硬體最佳化、適配、編程下載以及硬體系統調試等;
SOPCBuilder:是AlteraNiosII嵌入式處理器開發軟體包,用於實現NiosII系統的配置、生成;
ModelSim:用於對SOPC生成的NiosII系統的HDL描述進行系統功能仿真;
NiosIIIDE:用於進行軟體開發、調試以及向目標開發板進行Flash下載。
目前市場上同類的SOPC書比較少,而且清一色地介紹程式語言和基礎原理,對設計技術細節和實際工程案例涉及甚微,與SOPC設計技術現在的蓬勃發展與大量套用遠遠不符。本書的出版正可以填補這種空白。本書將以實用和套用為基本原則,根據作者多年積累的開發經驗,通過講練結合、循序漸進的形式來講解,便於讀者牢固深入學習,快速入門與提高。
本書內容
章內容簡介頁碼
第1~3章簡要介紹了FPGA硬體結構知識、VerilogHDL編程基礎、FPGA常用開發工具,引導讀者入門;已經具備了FPGA基礎的讀者,可以跳過這幾章,直接進入後面章節的學習2~122
第4~7章重點對嵌入式SOPC系統設計技術進行了細緻闡述,內容包括:SOPC硬體系統開發、SOPC軟體系統開發、Avalon匯流排規範、NiosII外圍設備及其編程。為了便於讀者理解,將結合一定的基礎示例來闡述124~310
續表
章內容簡介頁碼
第8~14章安排了7個典型實例,對基於FPGA的嵌入式SOPC系統設計過程進行實際演練。具體包括:七段數碼管時鐘顯示實例、串口通信DMA傳輸實例、LED燈控PWMIP核的設計實例、通用TFT-LCD控制器及PS2滑鼠設計實例、對對碰遊戲設計實例、GPS信息接收系統設計實例以及基於NiosⅡ的I2C匯流排傳輸的套用設計。經過這些例子的學習,讀者設計的能力將迅速提升,產生質的飛躍312~489
本書特點
(1)本書語言通俗,結構清晰,內容系統全面,從零開始,循序漸進,方便讀者快速上手,快學易懂;FPGA基礎知識、SOPC專業技術和大量工程實例緊密結合,實踐性強。
(2)本書7個實例典型實用,類型豐富,代表性強,有利於讀者學習後舉一反三,實現從入門到精通。
(3)詳細介紹了基於FPGA的嵌入式SOPC系統設計的構架與軟硬體編程,同時提供了深入的套用設計思路與方案,對實例的所有程式代碼都做了詳細注釋,利於讀者理解和鞏固知識點。
本書配有一張光碟,包含了全書所有實例的硬體原理圖和程式原始碼,方便讀者學習和使用。本書適合計算機、自動化、電子及硬體等相關專業的大學生,以及從事FPGA開發的工程師和科研人員使用。
本書主要由王剛、張瀲編寫。另外參加編寫的人還有:唐清善、邱寶良、周克足、劉斌、李亞捷、李永懷、李寧宇、劉偉捷、黃小歡、嚴劍忠、黃小寬、李彥超、付軍鵬、張廣安、賈素龍、王艷波、金平、徐春林謝正義鄭貞平、張小紅等。他們在資料收集、整理和技術支持方面做了大量的工作,在此一併向他們表示感謝!
由於時間倉促,再加之作者的水平有限,書中難免存在一些不足之處,歡迎廣大讀者批評和指正。

書摘

第一篇FPGA基礎
第1章FPGA硬體結構知識
隨著信息技術革命和計算機技術的飛速發展,可程式邏輯技術已發展成一門關鍵的科學技術,而FPGA在工業界也已被廣泛的套用。本書第1章,將首先介紹FPGA硬體結構知識。
1.1CPLD/FPGA概述
CPLD是複雜可程式邏輯器件(ComplexProgramableLogicDevice)的簡稱,FPGA是現場可程式門陣列(FieldProgramableGageArray)的簡稱,兩者的功能基本相同,只是實現原理略有不同,所以有時可以忽略這兩者的區別,統稱為可程式邏輯器件或CPLD/FPGA。
CPLD最早由Altera公司推出即MAX系列,多為Flash、EEPROM架構或乘積項(ProductTerm)架構,需外接配置用的EPROM下載。由於Altera的FLEX/ACEX/APEX系列也是ARAM架構,所以通常把Altera的FELX/ACEX/APEX系列晶片也叫做FPGA。

目錄

第一篇FPGA基礎
第1章FPGA硬體結構知識2
1.1CPLD/FPGA概述2
1.1.1CPLD/FPGA的特點2
1.1.2CPLD/FPGA的發展方向4
1.1.3CPLD/FPGA的套用領域4
1.2FPGA體系結構5
1.2.1FPGA基本結構5
1.2.2FPGA的結構特點8
1.2.3FPGA的編程工藝9
1.3FPGA常用晶片與選用9
1.3.1FPGA常用晶片10
1.3.2FPGA器件的選用12
1.4本章小結14
第2章VerilogHDL語言編程基礎15
2.1VerilogHDL語言特點15
2.2VerilogHDL程式的基本結構20
2.2.1模組20
2.2.2模組調用28
2.3程式格式29
2.4注釋與間隔符30
2.5數值30
2.6字元串32
2.7標識符33
2.8系統任務和函式34
2.9編譯指令39
2.10數據類型47
2.10.1線網(Net)和變數(Variable)47
2.10.2標量(scalar)與矢量(Vector)49
2.10.3線網(Net)數據類型50
2.10.4變數(Variable)數據類型55
2.10.5數組(Array)類型56
2.10.6參數58
2.10.7名字空間61
2.11表達式61
2.11.1操作符62
2.11.2運算元72
2.11.3延遲表達式75
2.11.4表達式的位寬76
2.11.5有符號表達式78
2.12本章小結79
第3章FPGA常用開發工具80
3.1硬體開發工具QuartusII80
3.1.1QuartusII簡介80
3.1.2QuartusII設計流程81
3.1.3QuartusII設計方法84
3.1.4QuartusII功能詳解85
3.1.5時序約束與分析93
3.1.6設計最佳化99
3.1.7SignalTapII107
3.2ModelSim開發工具111
3.2.1ModelSim簡介111
3.2.2基本仿真步驟111
3.2.3ModelSim各界面介紹114
3.2.4ModelSim調試功能118
3.3本章小結122
第二篇SOPC入門
第4章SOPC硬體系統開發124
4.1SOPC系統特點與開發流程124
4.2SOPCBuilder硬體開發環境介紹125
4.2.1SOPCBuilder功能125
4.2.2SOPCBuilder組成126
4.2.3SOPCBuilder中包含的組件131
4.3使用SOPCBuilder創建NiosII系統模組132
4.3.1創建QuartusII工程132
4.3.2啟動並配置SOPCBuilder135
4.3.3添加CPU及外設IP模組136
4.3.4生成NiosII系統142
4.4集成NiosII系統到QuartusII工程144
4.4.1創建包含NiosII系統的QuartusII頂層模組144
4.4.2FPGA引腳分配及其他設定149
4.4.3QuartusII工程的編譯並下載152
4.5本章小結155
第5章SOPC軟體系統開發156
5.1NiosII處理器結構156
5.1.1NiosII處理器概述157
5.1.2編程模型160
5.1.3JTAG調試模組166
5.2NiosII指令系統介紹168
5.2.1NiosII處理器的指令集168
5.2.2NiosII定製指令介紹171
5.2.3定製指令實現方式177
5.2.4定製指令設計實例——前導0檢測器179
5.3NiosIIIDE集成開發環境182
5.3.1NiosIIIDE簡介182
5.3.2HAL系統庫185
5.3.3RTOS和TCP/IP協定棧190
5.4使用NiosIIIDE建立應用程式190
5.4.1創建C/C++工程190
5.4.2配置工程的系統屬性194
5.4.3編譯及運行工程196
5.4.4調試模式198
5.5使用FlashProgrammer下載199
5.5.1定製目標板200
5.5.2FlashProgrammer配置及下載203
5.6本章小結205
第6章Avalon匯流排規範206
6.1Avalon匯流排概述206
6.1.1Avalon匯流排的特點206
6.1.2術語和概念207
6.2Avalon匯流排信號208
6.2.1Avalon信號類型列表208
6.2.2Avalon信號時序211
6.2.3Avalon匯流排傳輸特性212
6.3Avalon從連線埠傳輸212
6.3.1Avalon從連線埠信號介紹212
6.3.2Avalon從連線埠讀傳輸214
6.3.3Avalon從連線埠寫傳輸218
6.4Avalon主連線埠傳輸222
6.4.1Avalon主連線埠模組介紹222
6.4.2Avalon主連線埠讀傳輸222
6.4.3Avalon主連線埠寫傳輸224
6.5Avalon流水線傳輸模式225
6.5.1具有固定延遲的從連線埠流水線讀傳輸226
6.5.2具有可變延遲的從連線埠流水線讀傳輸227
6.5.3主連線埠流水線讀傳輸228
6.6Avalon流傳輸模式230
6.6.1流模式從連線埠傳輸230
6.6.2流模式主連線埠傳輸233
6.7Avalon三態傳輸234
6.7.1三態從連線埠傳輸235
6.7.2三態主連線埠傳輸239
6.8Avalon突發傳輸240
6.8.1主連線埠突發傳輸241
6.8.2從連線埠突發傳輸243
6.9與傳輸無關的信號246
6.9.1中斷請求信號246
6.9.2復位控制信號247
6.10Avalon匯流排地址對齊方式247
6.10.1本地地址對齊248
6.10.2動態地址對齊248
6.11本章小結249
第7章NiosII外圍設備及其編程250
7.1並行輸入/輸出(PIO)250
7.1.1功能描述250
7.1.2配置選項251
7.1.3暫存器描述與中斷253
7.1.4軟體編程模型254
7.2通用異步收發器(UART)255
7.2.1功能描述255
7.2.2配置選項256
7.2.3暫存器描述與中斷260
7.2.4軟體編程模型264
7.3定時器(Timer)267
7.3.1功能描述267
7.3.2配置選項268
7.3.3暫存器描述與中斷270
7.3.4軟體編程模型271
7.4JTAGUART273
7.4.1功能描述274
7.4.2配置選項275
7.4.3暫存器描述與中斷277
7.4.4軟體編程模型279
7.5SDRAM控制器282
7.5.1功能描述282
7.5.2配置選項284
7.5.3SDRAM控制器配置實例287
7.5.4軟體編程模型288
7.6CFI控制器289
7.6.1功能描述289
7.6.2配置選項290
7.6.3軟體編程模型291
7.7EPCS設備控制器292
7.7.1功能描述292
7.7.2配置選項294
7.7.3軟體編程模型294
7.8DMA控制器295
7.8.1功能描述295
7.8.2配置選項296
7.8.3暫存器描述與中斷298
7.8.4軟體編程模型300
7.9系統ID301
7.9.1功能描述301
7.9.2配置選項301
7.9.3軟體編程模型302
7.10SPI302
7.10.1功能描述302
7.10.2配置選項306
7.10.3暫存器描述308
7.10.4軟體編程模型310
7.11本章小結310
第三篇套用實戰
第8章基於FPGA的SOPC系統開發實例1——七段數碼管時鐘顯示實例312
8.1實例內容說明312
8.2設計思路分析313
8.3硬體設計314
8.4軟體設計與程式代碼321
8.5實例小結325
第9章基於FPGA的SOPC系統開發實例2——串口通信DMA傳輸實例327
9.1實例內容說明327
9.2設計思路分析327
9.3硬體設計328
9.4軟體設計與程式代碼338
9.4.1NiosIIHAL中與DMA
9.4.1設計相關的API函式338
9.4.2軟體部分的設計339
9.5實例小結343
第10章基於FPGA的SOPC系統開發實例3——LED燈控PWMIP核設計344
10.1實例內容說明344
10.2設計思路分析344
10.3硬體設計345
10.4軟體設計與程式代碼359
10.5實例小結363
第11章基於FPGA的SOPC系統開發實例4——通用TFT-LCD控制器及PS2滑鼠設計實例364
11.1實例內容說明364
11.2設計思路分析365
11.3硬體設計369
11.4軟體設計與程式代碼393
11.5實例小結402
第12章基於FPGA的SOPC系統開發實例5——對對碰遊戲403
12.1實例內容說明403
12.2設計思路分析404
12.3硬體設計406
12.4軟體設計與程式代碼413
12.5實例小結433
第13章基於FPGA的SOPC系統開發實例6——GPS信息接收系統的設計434
13.1實例內容說明434
13.2設計思路分析434
13.3硬體設計442
13.4軟體設計與程式代碼451
13.5實例小結468
第14章基於FPGA的SOPC系統開發實例7——基於NiosⅡ的I2C匯流排傳輸套用設計469
14.1實例內容說明469
14.2設計思路分析469
14.3I2C匯流排介紹470
14.3.1I2C匯流排特點470
14.3.2I2C匯流排工作原理470
14.4AT24C02晶片介紹471
14.4.1AT24C02概述471
14.4.2AT24C02讀寫時序472
14.5SOPC系統的創建473
14.6軟體設計與程式代碼484
14.7實例小結489
附錄ANiosIIHAL中與PIO設計相關的API函式490

相關詞條

相關搜尋

熱門詞條

聯絡我們