基于Nios II内核的FPGA电路系统设计
出版时间:2010年版
丛编项: EDA应用技术
内容简介
本书介绍了一种能够在FPGA芯片中同时获得数据传送速度快和数据处理能力强两个优点的设计方案——在片可编程系统(System On Programmable Chip,SOPC)解决方案。该方案通过在FPGA芯片中置人一个软核处理器系统(NiosⅡ软核处理器系统)来增强对信号的处理能力。本书系统地描述了NiosⅡ软核处理器系统的开发知识。内容包括Altera公司FPGA芯片的介绍、可编程逻辑器件开发软件QuartusⅡ的使用、硬件描述语言VHDL的简介、NiosⅡ软核处理器系统创建工具SOPCBuilder和NiosⅡ集成开发环境(NiosⅡIDE)的使用。书中还包括了大量的基础实验和应用系统的设计实例,能够帮助读者更快、更容易地掌握及应用这门技术。本书适合从事Altera公司FPGA芯片开发设计的研究生和本科高年级学生使用,也适合从事该方面工作的工程师使用。
目录
第1章 引言
1.1 数字集成电路的分类
1.1.1 标准逻辑器件
1.1.2 微处理器
1.1.3 可编程逻辑器件
1.2 NiosⅡ软核处理器
1.2.1 NiosⅡ软核处理器系统简介
1.2.2 可配置软核处理器的优点
第2章 现场可编程门阵列器件
2.1 可编程逻辑器件概述
2.2 可编程逻辑器件的发展历程
2.2.1 简单PLD的基本结构
2.2.2 FPGA的基本结构
2.3 Altera公司CycloneⅡ器件的工作原理
2.4 CycloneⅡ系列器件的主要技术指标
2.5 小结
第3章 QuartusⅡ开发软件的使用
3.1 简介
3.2 创建工程
3.3 设计输入
3.3.1 建立文本设计文件
3.3.2 建立图形设计文件
3.3.3 层次化设计
3.4 设计的编译
3.5 设计的仿真验证
3.5.1 创建仿真波形文件
3.5.2 设计仿真
3.6 引脚分配
3.7 器件配置
3.8 小结
第4章 VHDL语言基础
4.1 VHDL的历史
4.2 VHDL的程序结构
4.2.1 VHDL程序的基本结构
4.2.2 实体
4.2.3 结构体
4.2.4 包集
4.2.5 库
4.3 VHDL的语言元素
4.3.1 标识符
4.3.2 对象类别与定义
4.3.3 数据类型
4.3.4 运算符
4.4 并行语句
4.4.1 并行信号赋值语句
4.4.2 进程语句
4.5 顺序语句
4.5.1 顺序信号赋值语句
4.5.2 条件(IF)语句
4.5.3 选择(CASE)语句
4.5.4 循环(LOOP)语句
4.5.5 空操作(NULL)语句
4.6 小结
第5章 NiosⅡ软核处理器系统的开发过程
5.1 概述
5.2 配置NiosⅡ软核处理器系统
5.2.1 创建NiosⅡ软核处理器系统
5.2.2 配置NiosⅡ软核处理器系统
5.3 产生NiosⅡ软核处理器系统
5.3.1 产生NiosⅡ软核处理器系统模块
5.3.2 NiosⅡ软核处理器系统的产生
5.4 创建NiosⅡIDE环境下的应用工程
5.4.1 NiosⅡIDE工程创建
5.4.2 C语言源文件的编辑
5.4.3 C语言源文件的编译
5.5 C语言源程序的调试
5.5.1 在目标电路板上运行程序
5.5.2 在目标电路板上调试程序
5.5.3 配置目标FPGA器件
5.6 小结
第6章 NiosⅡ软核处理器——程序运行时间的测量
6.1 NiosⅡ软核处理器的结构
6.2 NiosⅡ软核处理器
6.2.1 “Core NiosⅡ”选项卡
6.2.2 “Caches and Memory Interfaces”选项卡
6.2.3 “Advanced Features”选项卡
6.2.4 “JTAG Debug Module”选项卡
6.2.5 “Custom Instructions”选项卡
6.3 程序运行时间的测量
6.3.1 程序运行时间的测量方法
6.3.2 Nios Ⅱ软核处理器对程序运行时间的影响
6.4 浮点专用指令的使用
6.4.1 浮点专用指令的添加
6.4.2 浮点专用指令测试程序
6.4.3 浮点专用指令测试结果
6.5 小结
第7章 8段数码管显示电路——并行输入/输出(PIO)内核的使用
7.1 8段数码管
7.2 并行输入/输出(PIO)内核
7.2.1 并行输入/输出(PIO)内核的寄存器
7.2.2 并行输入/输出(PIO)内核的配置
7.2.3 C语言编程
7.3 1位数码管的显示实验
7.3.1 产生数码管的显示控制电路
7.3.2 数码管显示控制程序
7.3.3 目标芯片的配置
7.4 多位数码管显示实验
7.4.1 多位数码管显示控制电路
7.4.2 4位数码管显示驱动函数
7.4.3 4位数据的分离
7.5 小结
第8章 按键电路——中断的应用
8.1 按键电路
8.2 并行输入/输出(PIO)内核的中断
8.2.1 并行输入/输出(PIO)内核涉及中断的相关寄存器
8.2.2 并行输入/输出(PIO)内核中断的配置
8.2.3 C语言编程
8.3 NiosⅡ处理器的中断
8.3.1 异常
8.3.2 C语言编程
8.4 1位按键电路的实验
8.4.1 产生按键的控制电路
8.4.2 1位按键控制程序
8.4.3 数据类型
8.4.4 alt_main()和main()的区别
8.5 4位按键电路的实验
8.5.1 4位按键控制电路
8.5.2 4位按键控制程序
8.6 小结
第9章 Flash的编程——EPCS控制器、CFI 控制器的使用
9.1 EPCS控制器
9.1.1 EPCS控制器概述
9.1.2 EPCS控制器配置
9.2 CFI控制器
9.2.1 CFI控制器概述
9.2.2 CFI控制器配置选项
9.2.3 CFI控制器C语言编程
9.3 Flash的编程实例
9.3.1 硬件系统的SOPC设计——从EPCS引导程序方式
9.3.2 系统软件设计——从EPCS引导程序方式
9.3.3 从CFI_FLASH引导程序方式
9.4 小结
第10章 时钟信号的产生与测量——定时器(Interval Timer)内核的使用
10.1 定时器内核
10.1.1 定时器内核的组成
10.1.2 定时器内核的寄存器
10.1.3 定时器(Interval Timer)内核的配置
10.1.4 C语言编程
10.2 时钟信号产生实验
10.2.1 时钟信号产生电路
10.2.2 时钟信号产生电路控制程序
10.3 定时器(Interval Timer)内核的中断实验
10.4 信号的周期测量
10.4.1 信号周期测量电路
10.4.2 周期测量控制程序
10.5 “看门狗”电路实验
10.5.1 “看门狗”电路
10.5.2 “看门狗”电路控制程序
10.6 小结
第11章 LCD12864液晶模块的驱动设计——SDRAM控制器内核的使用
11.1 LCD12864液晶模块简介
11.2 SDRAM控制器内核
11.2.1 概述
11.2.2 SDRAM控制器内核的配置选项
11.2.3 时钟、PLL和时序
11.2.4 SDRAM内核的C语言编程
11.3 LCD12864模块的驱动实例
11.3.1 LCD12864模块接口电路
11.3.2 硬件系统的SOPC设计
11.3.3 系统软件设计
11.4 小结
第12章 JTAG UART通信——JTAG UART内核的使用
12.1 JTAG UART内核
12.1.1 JTAG UART内核概述
12.1.2 JTAG UART内核配置选项
12.1.3 JTAG UART内核的C语言编程
12.2 JTAG UART通信实例
12.2.1 硬件系统的SOPC设计
12.2.2 系统软件设计
12.3 小结
第13章 SD卡读写控制设计——SPI内核的使用
13.1 SD卡简介
13.2 SPI内核
13.2.1 SPI内核综述
13.2.2 SPI内核配置选项
13.2.3 SPI的C语言编程
13.3 SD卡读写实例
13.3.1 SD卡与FPGA接口电路
13.3.2 硬件系统的SOPC设计
13.3.3 系统软件设计
13.4 小结
第14章 数字信号频率测量电路的设计
14.1 频率测量原理和电路设计要求
14.2 频率测量电路的系统设计
14.3 频率测量电路的单元电路设计
14.3.1 计数器电路
14.3.2 计数器控制电路
14.3.3 NiosⅡ软核处理器系统
14.4 频率测量电路的系统调试
14.4.1 系统集成
14.4.2 测试方案和使用仪器
14.4.3 测量数据及数据分析
14.5 设计总结
第15章 信号频谱分析电路的设计
15.1 频谱的概念
15.2 离散傅里叶变换
15.3 信号频谱分析电路的系统设计
15.4 信号频谱分析电路的单元电路设计
15.4.1 频谱分析模块
15.4.2 采样速率控制电路
15.5 信号频谱分析电路的系统调试
15.5.1 系统集成
15.5.2 信号频谱分析程序框图
15.5.3 系统测量和数据分析
15.6 设计总结
参考文献