基于FPGA的SOPC嵌入式系统设计与典型实例(含光盘1张)
分類: 图书,计算机/网络,程序设计,其他,
作者: 王刚,张潋编著
出 版 社: 电子工业出版社
出版时间: 2009-1-1字数: 800000版次: 1页数: 489印刷时间: 2009/01/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121079184包装: 平装编辑推荐
围绕实战与经验,注重应用和实用。
内容系统全面,循序渐进;核心技术与工程实例紧密结合,方便读者快速上手。
7个实例典型实用,类型丰富,代表性强,有利于读者学习后举一反三,实现从入门到精通。
不但详细介绍了基于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总线传输应用设计。经过这些例子的学习,读者设计的能力将迅速提升,产生质的飞跃。
本书语言通俗,结构清晰,基础知识和大量工程实例结合,实践性强。不但详细介绍了基于FPGA的嵌入式SOPC系统设计的构架与软硬件编程,同时提供了应用设计思路与方案,对实例的所有程序代码做了详细注释,利于读者理解和巩固知识点。
本书配有光盘一张,包含了全书所有实例的硬件原理图和程序源代码,方便读者学习和使用。本书适合计算机、自动化、电子及硬件等相关专业的大学生,以及从事FPGA开发的科研人员使用。
目录
第一篇 FPGA基础
第1章 FPGA硬件结构知识
1.1 CPLD/FPGA概述
1.1.1 CPLD/FPGA的特点
1.1.2 CPLD/FPGA的发展方向
1.1.3 CPLD/FPGA的应用领域
1.2 FPGA体系结构
1.2.1 FPGA基本结构
1.2.2 FPGA的结构特点
1.2.3 FPGA的编程工艺
1.3 FPGA常用芯片与选用
1.3.1 FPGA常用芯片
1.3.2 FPGA器件的选用
1.4 本章小结
第2章 Verilog HDL语言编程基础
2.1 Verilog HDL语言特点
2.2 Verilog HDL程序的基本结构
2.2.1 模块
2.2.2 模块调用
2.3 程序格式
2.4 注释与间隔符
2.5 数值
2.6 字符串
2.7 标识符
2.8 系统任务和函数
2.9 编译指令
2.10 数据类型
2.10.1 线网(Net)和变量(Variable)
2.10.2 标量(Scalar)与矢量(Vector)
2.10.3 线网(Net)数据类型
2.10.4 变量(Variable)数据类型
2.10.5 数组(Array)类型
2.10.6 参数
2.10.7 名字空间
2.11 表达式
2.11.1 操作符
2.11.2 操作数
2.11.3 延迟表达式
2.11.4 表达式的位宽
2.11.5 有符号表达式
2.12 本章小结
第3章 FPGA常用开发工具
3.1 硬件开发工具Quartus II
3.1.1 Quartus II简介
3.1.2 Quartus II设计流程
3.1.3 Quartus II设计方法
3.1.4 Quartus II功能详解
3.1.5 时序约束与分析
3.1.6 设计优化
3.1.7 SignalTap II
3.2 ModelSim开发工具
3.2.1 ModelSim简介
3.2.2 基本仿真步骤
3.2.3 ModelSim各界面介绍
3.2.4 ModelSim调试功能
3.3 本章小结
第二篇 SOPC入门
第4章 SOPC硬件系统开发
4.1 SOPC系统特点与开发流程
4.2 SOPC Builder硬件开发环境介绍
4.2.1 SOPC Builder功能
4.2.2 SOPC Builder组成
4.2.3 SOPC Builder中包含的组件
4.3 使用SOPC Builder创建Nios II系统模块
4.3.1 创建Quartus II工程
4.3.2 启动并配置SOPC Builder
4.3.3 添加CPU及外设IP模块
4.3.4 生成Nios II系统
4.4 集成Nios II系统到Quartus II工程
4.4.1 创建包含Nios II系统的Quartus II顶层模块
4.4.2 FPGA引脚分配及其他设置
4.4.3 Quartus II工程的编译并下载
4.5 本章小结
第5章 SOPC软件系统开发
5.1 Nios II处理器结构
5.1.1 Nios II处理器概述
5.1.2 编程模型
5.1.3 JTAG调试模块
5.2 Nios II指令系统介绍
5.2.1 Nios II处理器的指令集
5.2.2 Nios II定制指令介绍
5.2.3 定制指令实现方式
5.2.4 定制指令设计实例——前导0检测器
5.3 Nios II IDE集成开发环境
5.3.1 Nios II IDE简介
5.3.2 HAL系统库
5.3.3 RTOS和TCP/IP协议栈
5.4 使用Nios II IDE建立应用程序
5.4.1 创建C/C++工程
5.4.2 配置工程的系统属性
5.4.3 编译及运行工程
5.4.4 调试模式
5.5 使用Flash Programmer下载
5.5.1 定制目标板
5.5.2 Flash Programmer配置及下载
5.6 本章小结
第6章 Avalon总线规范
6.1 Avalon总线概述
6.1.1 Avalon总线的特点
6.1.2 术语和概念
6.2 Avalon总线信号
6.2.1 Avalon信号类型列表
6.2.2 Avalon信号时序
6.2.3 Avalon总线传输特性
6.3 Avalon从端口传输
6.3.1 Avalon从端口信号介绍
6.3.2 Avalon从端口读传输
6.3.3 Avalon从端口写传输
6.4 Avalon主端口传输
6.4.1 Avalon主端口模块介绍
6.4.2 Avalon主端口读传输
6.4.3 Avalon主端口写传输
6.5 Avalon流水线传输模式
6.5.1 具有固定延迟的从端口流水线读传输
6.5.2 具有可变延迟的从端口流水线读传输
6.5.3 主端口流水线读传输
6.6 Avalon流传输模式
6.6.1 流模式从端口传输
6.6.2 流模式主端口传输
6.7 Avalon三态传输
6.7.1 三态从端口传输
6.7.2 三态主端口传输
6.8 Avalon突发传输
6.8.1 主端口突发传输
6.8.2 从端口突发传输
6.9 与传输无关的信号
6.9.1 中断请求信号
6.9.2 复位控制信号
6.10 Avalon总线地址对齐方式
6.10.1 本地地址对齐
6.10.2 动态地址对齐
6.11 本章小结
第7章 Nios II外围设备及其编程
7.1 并行输入/输出(PIO)
7.1.1 功能描述
7.1.2 配置选项
7.1.3 寄存器描述与中断
7.1.4 软件编程模型
7.2 通用异步收发器(UART)
7.2.1 功能描述
7.2.2 配置选项
7.2.3 寄存器描述与中断
7.2.4 软件编程模型
7.3 定时器(Timer)
7.3.1 功能描述
7.3.2 配置选项
7.3.3 寄存器描述与中断
7.3.4 软件编程模型
7.4 JTAG UART
7.4.1 功能描述
7.4.2 配置选项
7.4.3 寄存器描述与中断
7.4.4 软件编程模型
7.5 SDRAM控制器
7.5.1 功能描述
7.5.2 配置选项
7.5.3 SDRAM控制器配置实例
7.5.4 软件编程模型
7.6 CFI控制器
7.6.1 功能描述
7.6.2 配置选项
7.6.3 软件编程模型
7.7 EPCS设备控制器
7.7.1 功能描述
7.7.2 配置选项
7.7.3 软件编程模型
7.8 DMA控制器
7.8.1 功能描述
7.8.2 配置选项
7.8.3 寄存器描述与中断
7.8.4 软件编程模型
7.9 系统ID
7.9.1 功能描述
7.9.2 配置选项
7.9.3 软件编程模型
7.10 SPI
7.10.1 功能描述
7.10.2 配置选项
7.10.3 寄存器描述
7.10.4 软件编程模型
7.11 本章小结
第三篇 应用实战
第8章 基于FPGA的SOPC系统开发实例1——七段数码管时钟显示实例
8.1 实例内容说明
8.2 设计思路分析
8.3 硬件设计
8.4 软件设计与程序代码
8.5 实例小结
第9章 基于FPGA的 SOPC系统开发实例2——串口通信DMA传输实例
9.1 实例内容说明
9.2 设计思路分析
9.3 硬件设计
9.4 软件设计与程序代码
9.4.1 Nios II HAL中与DMA设计相关的API函数
9.4.2 软件部分的设计
9.5 实例小结
第10章 基于FPGA的SOPC系统开发实例3——LED灯控PWM IP核设计
10.1 实例内容说明
10.2 设计思路分析
10.3 硬件设计
10.4 软件设计与程序代码
10.5 实例小结
第11章 基于FPGA的SOPC系统开发实例4——通用TFT-LCD控制器及PS2鼠标设计实例
11.1 实例内容说明
11.2 设计思路分析
11.3 硬件设计
11.4 软件设计与程序代码
11.5 实例小结
第12章 基于FPGA的SOPC系统开发实例5——对对碰游戏
12.1 实例内容说明
12.2 设计思路分析
12.3 硬件设计
12.4 软件设计与程序代码
12.5 实例小结
第13章 基于FPGA的SOPC系统开发实例6——GPS信息接收系统的设计
13.1 实例内容说明
13.2 设计思路分析
13.3 硬件设计
13.4 软件设计与程序代码
13.5 实例小结
第14章 基于FPGA的SOPC系统开发实例7——基于NiosⅡ的I2C总线传输应用设计
14.1 实例内容说明
14.2 设计思路分析
14.3 I2C总线介绍
14.3.1 I2C总线特点
14.3.2 I2C总线工作原理
14.4 AT24C02芯片介绍
14.4.1 AT24C02概述
14.4.2 AT24C02读写时序
14.5 SOPC系统的创建
14.6 软件设计与程序代码
14.7 实例小结
附录A Nios II HAL中与PIO设计相关的API函数
书摘插图
第一篇 FPGA基础
第1章 FPGA硬件结构知识
随着信息技术革命和计算机技术的飞速发展,可编程逻辑技术已发展成一门关键的科学技术,而FPGA在工业界也已被广泛的应用。本书第1章,将首先介绍FPGA硬件结构知识。
1.1 CPLD/FPGA概述
CPLD是复杂可编程逻辑器件(Complex Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gage Array)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/FPGA。
CPLD最早由Altera公司推出即MAX系列,多为Flash、EEPROM架构或乘积项(Product Term)架构,需外接配置用的EPROM下载。由于Altera的FLEX/ACEX/APEX系列也是ARAM架构,所以通常把Altera的FELX/ACEX/APEX系列芯片也叫做FPGA。
……