《基于FPGA的SOPC嵌入式系统设计与典型实例》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:王刚译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2009
  • ISBN:9787121079184
  • 页数:490 页
图书介绍:本书通过核心技术与典型实例的形式,全面系统、深入浅出地介绍了基于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总线传输应用设计。经过这些例子的学习,读者设计的能力将迅速提升,产生质的飞跃。本书语言通俗,结构清晰,基础知识和大量工程实例结合,实践性强。不但详细介绍了基于FPGA的嵌入式SOPC系统设计的构架与软硬件编程,同时提供了应用设计思路与方案,对实例的所有程序代码做了详细注释,利于读者理解和巩固知

第一篇 FPGA基础 2

第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入门 124

第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

第三篇 应用实战 312

第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设计相关的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 II的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