第一篇 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章 VerilogHDL语言编程基础
2.1 VerilogHDL语言特点
2.2 VerilogHDL程序的基本结构
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Ⅱ
3.1.1 QuartusⅡ简介
3.1.2 QuartusⅡ设计流程
3.1.3 QuartusⅡ设计方法
3.1.4 QuartusⅡ功能详解
3.1.5 时序约束与分析
3.1.6 设计优化
3.1.7 SignalTapⅡ
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 SOPCBuilder硬件开发环境介绍
4.2.1 SOPCBuilder功能
4.2.2 SOPCBuilder组成
4.2.3 SOPCBuilder中包含的组件
4.3 使用SOPCBuilder创建NiosⅡ系统模块
4.3.1 创建QuartusⅡ 工程
4.3.2 启动并配置SOPCBuilder
4.3.3 添加CPU及外设IP模块
4.3.4 生成NiosⅡ 系统
4.4 集成NiosⅡ 系统到QuartusⅡ工程
4.4.1 创建包含NiosⅡ 系统的QuartusⅡ顶层模块
4.4.2 FPGA引脚分配及其他设置
4.4.3 QuartusⅡ 工程的编译并下载
4.5 本章小结
第5章 SOPC软件系统开发
5.1 NiosⅡ 处理器结构
5.1.1 NiosⅡ 处理器概述
5.1.2 编程模型
5.1.3 JTAG调试模块
5.2 NiosⅡ 指令系统介绍
5.2.1 NiosⅡ 处理器的指令集
5.2.2 NiosⅡ 定制指令介绍
5.2.3 定制指令实现方式
5.2.4 定制指令设计实例——前导0检测器
5.3 NiosⅡ IDE集成开发环境
5.3.1 NiosⅡ IDE简介
5.3.2 HAL系统库
5.3.3 RTOS和TCP/IP协议栈
5.4 使用NiosⅡ IDE建立应用程序
5.4.1 创建C/C++工程
5.4.2 配置工程的系统属性
5.4.3 编译及运行工程
5.4.4 调试模式
5.5 使用FlashProgrammer下载
5.5.1 定制目标板
5.5.2 FlashProgrammer配置及下载
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Ⅱ 外围设备及其编程
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 JTAGUART
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Ⅱ HAL中与DMA设计相关的API函数
9.4.2 软件部分的设计
9.5 实例小结
第10章 基于FPGA的SOPC系统开发实例3——LED灯控PWMIP核设计
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Ⅱ HAL中与PIO设计相关的API函数