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

標籤:   圖書     計算機     FPGA     電子設計  

66

更新時間: 2016-04-15

廣告

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

廣告

1 基於FPGA的SOPC嵌入式系統設計與典型實例 - 圖書信息

  作 者:王剛,張瀲 編著

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

出 版 社: 電子工業出版社

  出版時間: 2009-1-1

  頁 數:504頁

  開 本: 16開

  ISBN 9787121079184

  分類: 圖書 >> 計算機/電子設計>>FPGA

  定價:¥65.00元(含光碟1張)

2 基於FPGA的SOPC嵌入式系統設計與典型實例 - 宣傳語

  實例豐富 即學即用

廣告

3 基於FPGA的SOPC嵌入式系統設計與典型實例 - 內容簡介

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

4 基於FPGA的SOPC嵌入式系統設計與典型實例 - 叢書說明

  工程技術的電子化、集成化和系統化促進了電子工程技術的發展,同時也促進了電子工程技術在社會各行業中的廣泛應用,從近年的人才招聘市場來看,電子工程師的人才需求更是一路走高。

  電子工程師如此緊俏,除需求不斷走高,人才供不應求外,另一重要原因則是電子工程師的門檻相對而言比較高,這個高門檻則來自於工程師的「經驗」和「實踐」!

  因此,為了滿足讀者學習和工作需要,解決各種工作中的專業問題,我們緊緊圍繞「經驗」和「實踐」,精心策劃組織了此套叢書。

  1.叢書範圍

  現代電子科學技術的一個特點是多學科交叉,因此,工程師應當了解、掌握2門以上的相關學科,知識既精深又廣博是優秀的工程師成長為某領域專家的重要標誌。本叢書內容涉及軟體開發、研發電子以及嵌入式項目開發等,包括單片機、USB介面、ARM、CPLD/FPGA、DSP、移動通信系統等。

  2.讀者對象

  本套書面向各領域的初、中級用戶。具體為高校計算機、電子信息、通信工程、自動化控制專業在校大學生,以及從事電子開發和應用行業的科研人員。

  3.內容組織形式

  本套書緊緊圍繞「經驗」和「實踐」,首先介紹一些相關的基礎知識,然後根據不同的模塊或應用領域,分篇安排應用程序實例的精講。基礎知識用來為一些初級讀者打下一定的知識功底;基礎好一點的讀者則可以跳過這一部分,直接進入實例的學習。

  4.實例特色

  在應用實例的安排上,著重突出「應用」和「實用」兩個基本原則,安排具有代表性、技術領先性,以及應用廣泛的典型實例,讓讀者學習借鑒。這些實例是從作者多年程序開發項目中挑選出的,也是經驗的歸納與總結。

  在應用實例的講解上,既介紹了設計原理、基本步驟和流程,也穿插了一些經驗、技巧與注意事項。特別在程序設計思路上,在決定項目開發的質量和成功與否的細節上,儘可能地用簡潔的語言來清晰闡述大眾易於理解的概念和思想;同時,程序代碼部分做了很詳細的中文註釋,有利於讀者舉一反三,快速應用和提高。

  5.光碟內容

  本套書的光碟中包含了豐富的實例原圖文件和程序源代碼,讀者稍加修改便可應用於自己的工作中或者完成自己的課題(畢業設計),物超所值。讀者使用之前,最好先將光碟內容全部複製到電腦硬碟中,以便於以後可以直接調用,而不需要反覆使用光碟,提高操作速度和學習效率。

  6.學習指南

  對於有一定基礎的讀者,建議直接從實例部分入手,邊看邊上機練習,這樣印象會比較深,效果更好。基礎差一點的讀者請先詳細學習書中基礎部分的理論知識,然後再進行應用實例的學習。在學習中,盡量做到反覆理解和演練,以達到融會貫通、舉一反三的功效;特別希望盡量和自己的工作設計聯繫起來,以達到「即學即會,學以致用」的最大化境界。

  本套書主要偏重於實用性,具有很強的工程實踐指導性。期望讀者在學習中順利、如意!

  光碟說明

  1.光碟的內容說明

  該光碟包括7個實例文件夾,內容是實例的硬體原理圖和程序源代碼(如下圖所示)。

  2.光碟的使用說明

  在用戶已安裝好軟體並有開發板作為支持的前提下,使用實例工程的具體方法為:

  (1)拷貝某一實例工程到磁碟目錄下,由於所有實例均在D盤根目錄下進行設計,所以建議用戶將其也放置到D:\目錄下進行使用,避免不必要的問題,解壓縮工程文件夾。

  (2)點擊文件夾中的.qpf文件,打開工程,在Quartus II中即可以看到整個工程中包含的文件。

  (3)建議用戶首先對工程進行編譯,特別是當用戶的軟體版本與工程創建使用的版本(7.0版本)不相符合時,首先需要對工程重新編譯才可使用。

  (4)編譯過程中,如果用戶使用的開發板不是DE1,請對照相應的開發板手冊配置好引腳約束,避免適配的問題。並確定其開發板支持實例工程欲達到的介面(比如如果用戶使用的開發板本身不支持PS2介面,那麼在對實例4進行滑鼠使用的時候就自然得不到成功的結果了)。

  (5)編譯過程如果報錯,請用戶嘗試刪除工程目錄下的db文件夾,該文件夾的內容是在筆者機器上編譯時所保存的臨時數據文件,可能會導致不兼容的問題,刪除后重新編譯即可解決問題。

  (6)編譯結束后,打開Nios II IDE(建議7.0版本),打開實例工程中的NiosII程序代碼。

  (7)編譯並運行,即可看到最終的結果。 在此過程中如果軟體報錯,請在Nios II IDE中重新建立工程,並導入所有的軟體文件(注意創建工程時需要指定正確的硬體描述文件.ptf),重新編譯運行。

  3.軟硬體要求

  本書實例工程均在Quartus II 7.0和Nios II IDE 7.0版本軟體環境下進行設計,並使用Altera DE1開發板通過測試驗證。用戶使用實例之前應安裝相應的軟體(建議7.0版本以上),而且應該有相應的硬體開發板(建議使用DE1)作為支持,特別地對於某些實例,還需要配備其他的硬體資源作為支持(比如LCD液晶屏、PS2滑鼠、GPS模塊等)。否則,只能對工程代碼進行參考。

廣告

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

  基於FPGA的電子系統設計技術是21世紀電子應用工程師必備的基本技能之一,而基於FPGA 的SOPC設計技術是當前電子系統設計領域最前沿的技術之一。Altera公司、Xilinx公司、Lattis公司、QuickLogic公司等全球最重要的FPGA及EDA公司都分別推出SOPC系統解決方案。SOC設計技術將是21世紀的技術發展趨勢,是現在高校和社會嵌入式培訓班必需的內容和亮點。

  SOPC設計具體包括以32位Nios II為核心的嵌入式系統的硬體配置、硬體設計、硬體模擬、軟體設計以及軟體調試等。SOPC系統設計的基本軟體工具包括:

   Quartus II:用於完成Nios II系統的綜合、硬體優化、適配、編程下載以及硬體系統調試等;

   SOPC Builder:是Altera Nios II嵌入式處理器開發軟體包,用於實現Nios II系統的配置、生成;

   modelsim:用於對SOPC生成的Nios II系統的HDL描述進行系統功能模擬;

   Nios II IDE:用於進行軟體開發、調試以及向目標開發板進行Flash下載。

  目前市場上同類的SOPC書比較少,而且清一色地介紹編程語言和基礎原理,對設計技術細節和實際工程案例涉及甚微,與SOPC設計技術現在的蓬勃發展與大量應用遠遠不符。本書的出版正可以填補這種空白。本書將以實用和應用為基本原則,根據作者多年積累的開發經驗,通過講練結合、循序漸進的形式來講解,便於讀者牢固深入學習,快速入門與提高。

  本書內容

  章 內容簡介 頁 碼

  第1~3章 簡要介紹了FPGA硬體結構知識、Verilog HDL編程基礎、FPGA常用開發工具,引導讀者入門;已經具備了FPGA基礎的讀者,可以跳過這幾章,直接進入後面章節的學習 2~122

  第4~7章 重點對嵌入式SOPC系統設計技術進行了細緻闡述,內容包括:SOPC硬體系統開發、SOPC軟體系統開發、Avalon匯流排規範、 Nios II外圍設備及其編程。為了便於讀者理解,將結合一定的基礎示例來闡述 124~310

  續表

  章 內容簡介 頁 碼

  第8~14章 安排了7個典型實例,對基於FPGA的嵌入式SOPC系統設計過程進行實際演練。具體包括:七段數碼管時鐘顯示實例、串口通信DMA傳輸實例、LED燈控PWM IP核的設計實例、通用TFT-LCD控制器及PS2滑鼠設計實例、對對碰遊戲設計實例、GPS信息接收系統設計實例以及基於NiosⅡ的I2C匯流排傳輸的應用設計。經過這些例子的學習,讀者設計的能力將迅速提升,產生質的飛躍 312~489

  本書特點

  (1)本書語言通俗,結構清晰,內容系統全面,從零開始,循序漸進,方便讀者快速上手,快學易懂;FPGA基礎知識、SOPC專業技術和大量工程實例緊密結合,實踐性強。

  (2)本書7個實例典型實用,類型豐富,代表性強,有利於讀者學習后舉一反三,實現從入門到精通。

  (3)詳細介紹了基於FPGA的嵌入式SOPC系統設計的構架與軟硬體編程,同時提供了深入的應用設計思路與方案,對實例的所有程序代碼都做了詳細註釋,利於讀者理解和鞏固知識點。

  本書配有一張光碟,包含了全書所有實例的硬體原理圖和程序源代碼,方便讀者學習和使用。本書適合計算機、自動化、電子及硬體等相關專業的大學生,以及從事FPGA開發的工程師和科研人員使用。

  本書主要由王剛、張瀲編寫。另外參加編寫的人還有:唐清善、邱寶良、周克足、劉斌、李亞捷、李永懷、李寧宇、劉偉捷、黃小歡、嚴劍忠、黃小寬、李彥超、付軍鵬、張廣安、賈素龍、王艷波、金平、徐春林、謝正義、鄭貞平、張小紅等。他們在資料收集、整理和技術支持方面做了大量的工作,在此一併向他們表示感謝!

  由於時間倉促,再加之作者的水平有限,書中難免存在一些不足之處,歡迎廣大讀者批評和指正。

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

  第一篇FPGA基礎

  第1章FPGA硬體結構知識

  隨著信息技術革命和計算機技術的飛速發展,可編程邏輯技術已發展成一門關鍵的科學技術,而FPGA在工業界也已被廣泛的應用。本書第1章,將首先介紹FPGA硬體結構知識。

  1.1 CPLD/FPGA概述

  CPLD是複雜可編程邏輯器件(ComplexProgramableLogicDevice)的簡稱,FPGA是現場可編程門陣列(FieldProgramableGageArray)的簡稱,兩者的功能基本相同,只是實現原理略有不同,所以有時可以忽略這兩者的區別,統稱為可編程邏輯器件或CPLD/FPGA。

  CPLD最早由Altera公司推出即MAX系列,多為Flash、EEPROM架構或乘積項(ProductTerm)架構,需外接配置用的EPROM下載。由於Altera的FLEX/ACEX/APEX系列也是ARAM架構,所以通常把Altera的FELX/ACEX/APEX系列晶元也叫做FPGA。

廣告

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

  第一篇 FPGA基礎

  第1章 FPGA硬體結構知識 2

  1.1 CPLD/FPGA概述 2

  1.1.1 CPLD/FPGA的特點 2

  1.1.2 CPLD/FPGA的發展方向 4

  1.1.3 CPLD/FPGA的應用領域 4

  1.2 FPGA體系結構 5

  1.2.1 FPGA基本結構 5

  1.2.2 FPGA的結構特點 8

  1.2.3 FPGA的編程工藝 9

  1.3 FPGA常用晶元與選用 9

  1.3.1 FPGA常用晶元 10

  1.3.2 FPGA器件的選用 12

  1.4 本章小結 14

  第2章 Verilog HDL語言編程基礎 15

  2.1 Verilog HDL語言特點 15

  2.2 Verilog HDL程序的基本結構 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 硬體開發工具Quartus II 80

  3.1.1 Quartus II簡介 80

  3.1.2 Quartus II設計流程 81

  3.1.3 Quartus II設計方法 84

  3.1.4 Quartus II功能詳解 85

  3.1.5 時序約束與分析 93

  3.1.6 設計優化 99

  3.1.7 SignalTap II 107

  3.2 ModelSim開發工具 111

  3.2.1 ModelSim簡介 111

  3.2.2 基本模擬步驟 111

  3.2.3 ModelSim各界面介紹 114

  3.2.4 ModelSim調試功能 118

  3.3 本章小結 122

  第二篇 SOPC入門

  第4章 SOPC硬體系統開發 124

  4.1 SOPC系統特點與開發流程 124

  4.2 SOPC Builder硬體開發環境介紹 125

  4.2.1 SOPC Builder功能 125

  4.2.2 SOPC Builder組成 126

  4.2.3 SOPC Builder中包含的組件 131

  4.3 使用SOPC Builder創建Nios II系統模塊 132

  4.3.1 創建Quartus II工程 132

  4.3.2 啟動並配置SOPC Builder 135

  4.3.3 添加CPU及外設IP模塊 136

  4.3.4 生成Nios II系統 142

  4.4 集成Nios II系統到Quartus II工程 144

  4.4.1 創建包含Nios II系統的Quartus II頂層模塊 144

  4.4.2 FPGA引腳分配及其他設置 149

  4.4.3 Quartus II工程的編譯並下載 152

  4.5 本章小結 155

  第5章 SOPC軟體系統開發 156

  5.1 Nios II處理器結構 156

  5.1.1 Nios II處理器概述 157

  5.1.2 編程模型 160

  5.1.3 JTAG調試模塊 166

  5.2 Nios II指令系統介紹 168

  5.2.1 Nios II處理器的指令集 168

  5.2.2 Nios II定製指令介紹 171

  5.2.3 定製指令實現方式 177

  5.2.4 定製指令設計實例——前導0檢測器 179

  5.3 Nios II IDE集成開發環境 182

  5.3.1 Nios II IDE簡介 182

  5.3.2 HAL系統庫 185

  5.3.3 RTOS和TCP/IP協議棧 190

  5.4 使用Nios II IDE建立應用程序 190

  5.4.1 創建C/C++工程 190

  5.4.2 配置工程的系統屬性 194

  5.4.3 編譯及運行工程 196

  5.4.4 調試模式 198

  5.5 使用Flash programmer下載 199

  5.5.1 定製目標板 200

  5.5.2 Flash Programmer配置及下載 203

  5.6 本章小結 205

  第6章 Avalon匯流排規範 206

  6.1 Avalon匯流排概述 206

  6.1.1 Avalon匯流排的特點 206

  6.1.2 術語和概念 207

  6.2 Avalon匯流排信號 208

  6.2.1 Avalon信號類型列表 208

  6.2.2 Avalon信號時序 211

  6.2.3 Avalon匯流排傳輸特性 212

  6.3 Avalon從埠傳輸 212

  6.3.1 Avalon從埠信號介紹 212

  6.3.2 Avalon從埠讀傳輸 214

  6.3.3 Avalon從埠寫傳輸 218

  6.4 Avalon主埠傳輸 222

  6.4.1 Avalon主埠模塊介紹 222

  6.4.2 Avalon主埠讀傳輸 222

  6.4.3 Avalon主埠寫傳輸 224

  6.5 Avalon流水線傳輸模式 225

  6.5.1 具有固定延遲的從埠流水線讀傳輸 226

  6.5.2 具有可變延遲的從埠流水線讀傳輸 227

  6.5.3 主埠流水線讀傳輸 228

  6.6 Avalon流傳輸模式 230

  6.6.1 流模式從埠傳輸 230

  6.6.2 流模式主埠傳輸 233

  6.7 Avalon三態傳輸 234

  6.7.1 三態從埠傳輸 235

  6.7.2 三態主埠傳輸 239

  6.8 Avalon突發傳輸 240

  6.8.1 主埠突發傳輸 241

  6.8.2 從埠突發傳輸 243

  6.9 與傳輸無關的信號 246

  6.9.1 中斷請求信號 246

  6.9.2 複位控制信號 247

  6.10 Avalon匯流排地址對齊方式 247

  6.10.1 本地地址對齊 248

  6.10.2 動態地址對齊 248

  6.11 本章小結 249

  第7章 Nios II外圍設備及其編程 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.4 JTAG UART 273

  7.4.1 功能描述 274

  7.4.2 配置選項 275

  7.4.3 寄存器描述與中斷 277

  7.4.4 軟體編程模型 279

  7.5 SDRAM控制器 282

  7.5.1 功能描述 282

  7.5.2 配置選項 284

  7.5.3 SDRAM控制器配置實例 287

  7.5.4 軟體編程模型 288

  7.6 CFI控制器 289

  7.6.1 功能描述 289

  7.6.2 配置選項 290

  7.6.3 軟體編程模型 291

  7.7 EPCS設備控制器 292

  7.7.1 功能描述 292

  7.7.2 配置選項 294

  7.7.3 軟體編程模型 294

  7.8 DMA控制器 295

  7.8.1 功能描述 295

  7.8.2 配置選項 296

  7.8.3 寄存器描述與中斷 298

  7.8.4 軟體編程模型 300

  7.9 系統ID 301

  7.9.1 功能描述 301

  7.9.2 配置選項 301

  7.9.3 軟體編程模型 302

  7.10 SPI 302

  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.1 Nios II HAL中與DMA

  9.4.1 設計相關的API函數 338

  9.4.2 軟體部分的設計 339

  9.5 實例小結 343

  第10章 基於FPGA的SOPC系統開發實例3——LED燈控PWM IP核設計 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.3 I2C匯流排介紹 470

  14.3.1 I2C匯流排特點 470

  14.3.2 I2C匯流排工作原理 470

  14.4 AT24C02晶元介紹 471

  14.4.1 AT24C02概述 471

  14.4.2 AT24C02讀寫時序 472

  14.5 SOPC系統的創建 473

  14.6 軟體設計與程序代碼 484

  14.7 實例小結 489

  附錄A Nios II HAL中與PIO設計相關的API函數 490

廣告