请输入您要查询的百科知识:

 

词条 基于FPGA的SOPC嵌入式系统设计与典型实例
释义

《基于FPGA的SOPC嵌入式系统设计与典型实例》将基础知识和大量工程实例结合,实践性强。不但详细介绍了基于FPGA的嵌入式SOPC系统设计的构架与软硬件编程,同时提供了应用设计思路与方案,对实例的所有程序代码做了详细注释,利于读者理解和巩固知识点。本书配有光盘一张,包含了全书所有实例的硬件原理图和程序源代码,方便读者学习和使用。本书适合计算机、自动化、电子及硬件等相关专业的大学生,以及从事FPGA开发的科研人员使用。

图书信息

作 者:王刚,张潋 编著出 版 社: 电子工业出版社

出版时间: 2009-1-1

页 数:504页

开 本: 16开

ISBN 9787121079184

分类: 图书 >> 计算机/电子设计>>FPGA

定价:¥65.00元(含光盘1张)

宣传语

实例丰富 即学即用

内容简介

基于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总线传输应用设计。经过这些例子的学习,读者设计的能力将迅速提升,产生质的飞跃。

丛书说明

工程技术的电子化、集成化和系统化促进了电子工程技术的发展,同时也促进了电子工程技术在社会各行业中的广泛应用,从近年的人才招聘市场来看,电子工程师的人才需求更是一路走高。

电子工程师如此紧俏,除需求不断走高,人才供不应求外,另一重要原因则是电子工程师的门槛相对而言比较高,这个高门槛则来自于工程师的“经验”和“实践”!

因此,为了满足读者学习和工作需要,解决各种工作中的专业问题,我们紧紧围绕“经验”和“实践”,精心策划组织了此套丛书。

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模块等)。否则,只能对工程代码进行参考。

前言

基于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开发的工程师和科研人员使用。

本书主要由王刚、张潋编写。另外参加编写的人还有:唐清善、邱宝良、周克足、刘斌、李亚捷、李永怀、李宁宇、刘伟捷、黄小欢、严剑忠、黄小宽、李彦超、付军鹏、张广安、贾素龙、王艳波、金平、徐春林、谢正义、郑贞平、张小红等。他们在资料收集、整理和技术支持方面做了大量的工作,在此一并向他们表示感谢!

由于时间仓促,再加之作者的水平有限,书中难免存在一些不足之处,欢迎广大读者批评和指正。

书摘

第一篇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。

目录

第一篇 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

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/11 3:35:27