目录 1
第1章 绪论 1
1.1 概述 1
1.2 本书内容安排 3
1.3 设计步骤 4
1.4 支持NIOS CPU的FPGA型号 5
第2章 SOPC Builder开发环境 9
2.1 创建Quartus Ⅱ工程 9
2.2 创建NIOS系统模块 12
2.2.1 创建新的.bdf 12
2.2.2 开始使用SOPC Builder 13
2.2.3 系统主频 14
2.2.4 加入CPU和IP模块 14
2.2.5 指定基地址 25
2.2.6 配置NIOS系统 25
2.2.7 生成NIOS32并把它加入到设计中 27
2.2.8 把符号(symbol)加入到BDF文件中 28
2.2.9 加入引脚和基本单元 28
2.2.10 命名引脚 31
2.2.11 进行最后连接 31
2.3.1 创建编译器设置 32
2.3 编译(Compilation) 32
2.3.2 指定器件系列(Device Family)与型号 33
2.3.3 为器件引脚分配信号 34
2.3.4 确认引脚分配 35
2.3.5 指定设备与编程设置 35
2.3.6 指定配置文件类型 36
2.3.7 编译用户设计 36
2.4 编程(Programming) 38
2.4.1 配置FPGA 38
2.4.2 在NIOS系统上运行软件 40
3.1 NIOS处理器概述 43
第3章 NIOS CPU结构 43
3.1.1 指令总线主端口 44
3.1.2 数据总线主端口 44
3.1.3 缓存 45
3.1.4 移位单元 45
3.1.5 乘法支持 45
3.1.6 中断支持 46
3.1.7 NIOS片上调试模块 46
3.2.1 通用寄存器文件 47
3.2 内部寄存器 47
3.1.8 开发环境 47
3.2.2 K寄存器 48
3.2.3 %r0(%g0)寄存器 49
3.2.4 程序计数器 49
3.2.5 控制寄存器 49
3.3 流水线 53
3.4 存储器组织 54
3.5 寻址方式 59
3.6 程序流程控制 62
4.1 概述 64
第4章 Avalon总线规范 64
4.2 术语和概念 65
4.3 Avalon总线传输 69
4.3.1 主端口接口与从端口接口 69
4.3.2 Avalon总线时序 69
4.3.3 Avalon总线信号 70
4.3.4 并发多主端口的Avalon总线需考虑的事项 71
4.4 Avalon从端口传输 71
4.4.1 从传输的Avalon总线信号 72
4.4.2 Avalon总线上的从端口读传输 73
4.4.3 在Avalon总线上的从端口写传输 78
4.5 Avalon主端口传输 83
4.5.1 主传输的Avalon信号 84
4.5.2 Avalon总线上的基本主端口读传输 85
4.5.3 Avalon总线上的基本主端口写传输 86
4.6 高级Avalon总线传输 89
4.6.1 带延迟的Avalon读传输 89
4.6.2 流传输模式 96
4.6.3 Avalon总线控制信号 102
4.7 片外设备与Avalon总线的接口 103
4.7.1 从传输的Avalon三态信号 104
4.7.2 无延迟的Avalon三态从端口读传输 105
4.7.3 带固定延迟的Avalon三态从端口读传输 106
4.7.4 Avalon三态从端口写传输 108
4.8 Avalon总线地址对齐方式 110
4.8.1 地址对齐概述 110
4.8.2 为Avalon外设选择地址对齐参数 111
4.8.3 静态地址对齐 112
4.8.4 动态地址对齐 115
4.9 连接到外部设备 117
5.1.1 软件开发流程 119
5.1 软件开发包 119
第5章 软件设计流程和方法 119
5.1.2 SDK树目录简介 120
5.1.3 编译后代码结构 124
5.1.4 NIOS库函数 125
5.1.5 高级C语言支持 128
5.2 软件开发常用命令 128
5.2.1 hexout2flash 129
5.2.2 nios_build 130
5.2.3 nios-console 131
5.2.4 nios-convert 132
5.2.5 nios-debug 133
5.2.6 nios-run 133
5.2.7 srec2flash 134
第6章 外设的组织与使用 136
6.1 SOPC Builder与PTF文件 136
6.1.1 SOPC Builder组成 136
6.1.2 PTF文件的两种类型 137
6.1.3 SOPC Builder设计流程 141
6.2 SOPC Builder的外设 148
6.2.1 定时器 149
6.2.2 并行输入输出模块 153
6.2.3 异步收发器(UART) 156
6.2.4 DMA控制器 164
第7章 中断处理 170
7.1 中断处理过程 170
7.1.1 异常处理的基础知识 170
7.1.2 NIOS中断处理基础 171
7.1.3 NIOS异常处理步骤 174
7.2 中断处理的例子:UART收发程序 176
7.2.1 在NIOS系统中实现ISR 176
7.2.2 串口通信基础 177
7.2.3 实现NIOS UART ISR 178
7.2.4 代码示例 180
第8章 调试手段 189
8.1 GERMS监控程序 189
8.1.1 监控程序命令 189
8.1.2 GERMS引导过程 190
8.1.3 采用GERMS从闪存中引导系统 190
8.2 FS2公司的System Analyzer 194
8.2.1 简介 194
8.2.2 设置调试器 196
8.2.3 使用调试器 198
8.2.4 调试命令列表 205
8.2.5 OCI调试模块相关软件子程序 212
第9章 高级特性 214
9.1 用户自定义指令 214
9.1.1 用户自定义指令的概念 214
9.1.2 硬件接口 214
9.1.3 软件接口 219
9.1.4 加速效果 220
9.1.5 用户自定义指令实例 221
9.2.1 传统总线结构 226
9.2 并发多主设备总线结构 226
9.2.2 并发多主设备总线结构 227
9.3 NIOS嵌入式处理器设计的模拟 232
9.3.1 软件配置 232
9.3.2 模拟设置 232
9.3.3 使用ModelSim进行模拟 237
9.3.4 分析模拟结果 240
9.3.5 增加或删除波形图信号 247
9.3.6 片外存储器模拟 248
10.1 简介 251
第10章 新版NIOS Ⅱ的特点 251
10.2 处理器的实现 252
10.3 寄存器文件 252
10.4 算术逻辑单元 252
10.4.1 未实现的指令 253
10.4.2 用户自定义指令 253
10.5 异常和中断的控制 253
10.5.1 异常控制器 253
10.5.2 集成的中断控制器 253
10.6 存储器与I/O组织 254
10.6.1 指令和数据总线 255
10.6.2 缓存 256
10.6.3 地址映像 256
10.7 硬件辅助调试模块 257
附录A 汇编指令及伪指令参考 258
符号说明 258
32位指令集 259
IFS和SKPS指令的条件代码 263
汇编语言伪指令与宏 263
附录B Altera 2003年NIOS嵌入式软核心处理器设计大赛获奖单位 265
一、中国大陆部分 265
二、中国台湾地区 299