第1章 总体概述 1
1.1学习平台概述 1
1.1.1软件平台 1
1.1.2硬件平台 2
1.2 Nios概述 2
1.2.1第一代Nios嵌入式处理器 2
1.2.2第二代Nios嵌入式处理器 3
1.2.3 Nios II处理器的特性 3
第2章 Avalon总线规范 5
2.1概述 5
2.1.1术语 5
2.1.2功能 7
2.2 Avalon总线信号 8
2.2.1完整的信号类型列表 9
2.2.2信号极性 12
2.2.3信号命名 12
2.2.4信号时序 13
2.2.5传输特性 13
2.3从端口传输 14
2.3.1从设备信号 14
2.3.2基本的从端口读传输 16
2.3.3基本的从端口写传输 20
2.4主端口传输 23
2.4.1主信号 24
2.4.2基本的主端口读传输 25
2.4.3基本的主端口写传输 26
2.4.4等待状态、建立时间与保持时间 27
2.5流水线读传输 27
2.5.1具有固定延时的从端口流水线读传输 28
2.5.2具有可变延时的从端口流水线读传输 29
2.5.3主端口的流水线读传输 30
2.6流传输控制 31
2.6.1从端口传输的流控制 31
2.6.2具有流控制的主端口传输 34
2.7三态传输 34
2.7.1三态从端口的传输 35
2.7.2三态主端口的传输 38
第3章 SOPC Builder 40
3.1 SOPC Builder简介 40
3.1.1概述 40
3.1.2 SOPC Builder系统结构 41
3.1.3 SOPC Builder功能介绍 43
3.2 SOPC Builder用户接口概述 44
3.2.1 SOPC Builder的使用 44
3.2.2 System Contents选项卡 45
3.2.3 Nios II More“CPU”Settings选项卡 49
3.2.4 Board Settings选项卡 50
3.2.5 System Generation选项卡 50
3.2.6首选项 53
3.3存储器映射接口的系统互联结构 54
3.3.1概述 54
3.3.2地址译码 57
3.3.3数据的多路复用 58
3.3.4等待状态嵌入 58
3.3.5高性能的流水线 59
3.3.6流水线的管理 60
3.3.7 endian转换 60
3.3.8本地地址定位及动态总线大小 60
3.4 SOPC Builder组件 61
3.4.1概述 61
3.4.2组件目录的结构与内容 63
3.4.3组件目录位置 64
3.5组件编辑器 65
3.5.1 HDL Files选项卡 66
3.5.2 Signals选项卡 67
3.5.3 Interfaces选项卡 69
3.5.4 SW Files选项卡 71
3.5.5 Component Wizard选项卡 71
3.6目标板描述 73
3.6.1概述 73
3.6.2创建目标板描述 74
3.6.3目标板描述编辑器的使用 78
3.7引脚映射 84
3.7.1概述 84
3.7.2设计流程 85
3.7.3引脚映射GUI 86
第4章 嵌入式外围设备 88
4.1 SDRAM控制器内核 88
4.1.1概述 88
4.1.2在SOPC Builder中示例内核 91
4.1.3硬件仿真 93
4.1.4时钟、PLL和时序 95
4.2 CFI Flash控制器 99
4.2.1概述 99
4.2.2在SOPC Builder中综合内核 100
4.2.3软件设计模型 101
4.3 EPCS器件控制器内核 102
4.4 DMA控制器内核 104
4.4.1概述 104
4.4.2基本功能描述 104
4.4.3在SOPC Builder中示例内核 106
4.4.4软件设计模型 107
第5章 Nios II软件设计 108
5.1 Nios II概述 108
5.1.1概述 108
5.1.2开发环境 108
5.1.3第三方支持 110
5.2 Nios II IDE 110
5.2.1概述 110
5.2.2 Nios II IDE工作台 110
5.2.3建立新的工程 110
5.2.4组建并编辑工程 112
5.2.5运行和调试程序 114
5.2.6编辑Flash 117
5.2.7帮助系统 118
5.3 HAL系统库简介 119
5.3.1概述 119
5.3.2开始设计 119
5.3.3 HAL的结构 119
5.4使用HAL进行程序开发 122
5.4.1概述 122
5.4.2 Nios II IDE工程结构 122
5.4.3 system.h系统说明文件 123
5.4.4数据宽度和HAL类型的定义 124
5.4.5 UNIX风格的接口 124
5.4.6文件系统 125
5.4.7使用字符模式器件 126
5.4.8使用定时器 127
5.4.9使用Flash器件 129
5.4.10使用DMA器件 134
5.4.11缩减代码 138
5.4.12引导程序序列和入口 140
5.4.13存储器的使用 142
5.4.14 HAL系统库文件路径 145
5.5为HAL开发硬件驱动 145
5.5.1概述 145
5.5.2创建硬件驱动的开发流程 146
5.5.3 SOPC编辑器 146
5.5.4硬件访问 147
5.5.5为HAL器件创建驱动程序 148
5.5.6将器件驱动集成到HAL 155
5.5.7缩减代码量 158
5.5.8命名空间的分配 159
5.5.9越过默认器件驱动 160
5.6异常处理 160
5.6.1概述 160
5.6.2 Nios II异常概述 160
5.6.3中断服务程序 162
5.6.4中断服务程序性能 165
5.6.5提升中断服务程序的性能 165
5.6.6调试中断 168
5.6.7中断编写的指导总结 168
5.6.8 HAL异常控制器 169
5.7高速缓存与紧耦合存储器 172
5.7.1概述 172
5.7.2高速缓存初始化 173
5.7.3写器件驱动程序 174
5.7.4编写装载程序或者自修改代码 175
5.7.5多CPU系统的高速缓存管理 176
5.7.6紧耦合存储器 177
第6章 实验板电路 178
6.1实验板特点 178
6.2存储电路 179
6.3配置电路 181
6.4按键及LED电路 182
6.5 LCD Module接口电路 185
6.6 E2 PROM及Buzzer电路 186
6.7 PS/2及VGA接口电路 187
6.8红外发射及接收电路 188
6.9 RS232接口电路 188
6.10时钟及锁相环电路 190
6.11 I/O分配 190
6.12电源电路 191
第7章 Nios基础实验 193
7.1流水灯实验 1
7.2 JTAG UART通信实验 207
7.3 LCM显示实验 216
7.4按键中断实验 219
7.5计数显示实验 223
7.6建立带Flash的Nios II系统及配置方法 225
7.7定时器编程 229
7.8 I2C Controller IP Core的使用 233
第8章 基于Nios控制的DDS信号发生器 236
8.1设计简介 236
8.1.1设计需求 236
8.1.2 DDS原理简介 236
8.2设计方案论证 238
8.2.1使用MCU+FPGA+DAC的方案 238
8.2.2 FPGA+ DAC的方案 239
8.2.3方案论证与选择 240
8.3系统框图及实现原理 240
8.3.1系统框图 240
8.3.2实现原理 241
8.4软硬件设计 241
8.4.1 DAC模块电路设计 241
8.4.2 Nios II硬件部分设计 242
8.4.3 DDS硬件部分设计 243
8.4.4 C语言部分设计 244
8.5小结 245
第9章 Nios II Flash编程器 246
9.1在SOPC Builder下定制目标板 246
9.2 Nios II Flash编程器的使用 248
9.2.1 Nios II Flash编程器概述 249
9.2.2烧写内容到Flash 252
9.2.3在SOPC Builder系统中例化Flash 255
9.3协控制器EPM240的工作原理 258
第10章 通过实例讲解IP Core的设计过程 260
10.1概述 260
10.2 SOPC设备设计流程 261
10.3设计实例一 263
10.4设计实例二 270
第11章 基于Nios II控制的TFT液晶显示 276
11.1概述 276
11.2硬件部分设计 277
11.2.1硬件电路接口 277
11.2.2建立系统 277
11.3软件控制部分设计 279
11.3.1驱动设计 279
11.3.2汉字库及其显示 283
11.4小结 286
参考文献 287