第1章 基于Nios Ⅱ处理器的嵌入式系统 1
1.1 片上系统概述 1
1.2 Nios Ⅱ的优势在哪里 4
1.3 基于Nios Ⅱ处理器的FPGA开发流程 5
第2章 实验平台“勇敢的芯”板级电路详解 7
2.1 板级电路整体架构 7
2.2 电源电路 8
2.3 复位与时钟电路 11
2.3.1 关于FPGA器件的时钟 11
2.3.2 关于FPGA器件的复位 13
2.3.3 实验平台电路解析 13
2.4 FPGA下载配置电路 15
2.5 SRAM接口电路 16
2.6 ADC/DAC芯片电路 17
2.7 UART接口电路 18
2.8 RTC接口电路 19
2.9 4×4矩阵按键电路 20
2.10 VGA显示接口电路 20
2.11 蜂鸣器、数码管、流水灯、拨码开关电路 21
2.12 超声波接口、外扩LCD接口电路 22
第3章 Qsys系统创建 23
3.1 Qsys系统概述 23
3.2 Qsys总线互连 24
3.3 Quartus Ⅱ工程创建 26
3.4 进入Qsys系统 29
3.5 Qsys界面简介 30
3.6 新建Qsys系统 31
3.7 保存Qsys系统 31
3.8 加载Qsys系统 32
第4章 Qsys通用组件添加与互连 34
4.1 时钟组件添加与设置 34
4.2 Nios Ⅱ处理器添加与设置 35
4.3 RAM组件添加与配置 37
4.4 Nios Ⅱ处理器复位向量与异常向量地址设置 38
4.5 System ID组件添加与配置 39
4.6 JTAG UART组件添加与配置 40
4.7 Timer组件添加与配置 42
4.8 UART组件添加与配置 44
4.9 蜂鸣器PIO组件添加与配置 46
4.10 拨码开关PIO组件添加与配置 48
第5章 Qsys互连总线概述 50
5.1 嵌入式系统的总线 50
5.2 Avalon-MM总线 54
5.2.1 Avalon-MM总线写数据操作实例解析 56
5.2.2 Avalon-MM总线读数据操作实例解析 58
5.3 Avalon-ST总线 65
第6章 Qsys自定义组件设计 67
6.1 数码管组件 67
6.1.1 功能概述 67
6.1.2 配置寄存器说明 69
6.1.3 组件创建与配置 70
6.1.4 组件添加与配置 75
6.1.5 组件互连与引出 76
6.2 ADC组件 77
6.2.1 功能概述 77
6.2.2 配置寄存器说明 78
6.2.3 组件创建与配置 79
6.2.4 组件添加与配置 84
6.2.5 组件互连与引出 85
6.3 DAC组件 85
6.3.1 功能概述 85
6.3.2 配置寄存器说明 87
6.3.3 组件创建与配置 87
6.3.4 组件添加与配置 92
6.3.5 组件互连与引出 93
6.4 超声波测距组件 93
6.4.1 功能概述 93
6.4.2 配置寄存器说明 95
6.4.3 组件创建与配置 96
6.4.4 组件添加与配置 100
6.4.5 组件互连与引出 101
6.5 RTC组件 101
6.5.1 功能概述 101
6.5.2 配置寄存器说明 103
6.5.3 组件创建与配置 104
6.5.4 组件添加与配置 106
6.5.5 组件互连与引出 109
6.6 矩阵按键组件 110
6.6.1 功能概述 110
6.6.2 配置寄存器说明 111
6.6.3 组件创建与配置 112
6.6.4 组件添加与配置 116
6.6.5 组件互连与引出 117
第7章 Qsys系统生成 118
7.1 中断连接 118
7.2 地址分配 119
7.3 系统生成 121
7.4 Qsys系统例化模板 122
第8章 Quartus Ⅱ工程设计实现 123
8.1 Verilog顶层文件设计 123
8.2 语法检查 125
8.3 引脚分配 125
8.4 系统编译 126
第9章 软件开发工具EDS 128
9.1 EDS软件开启 128
9.2 BSP工程创建 129
9.3 开启BSP Editor 131
9.4 BSP Editor设置 132
9.5 BSP工程编译 133
9.6 工程创建 135
9.7 C代码源文件创建 136
9.8 软件应用工程编译 137
9.9 移除当前工程 138
9.10 加载工程 139
9.11 移植工程 140
第10章 软件实验例程 142
10.1 Nios Ⅱ实例之Hello NIOS Ⅱ 142
10.1.1 软件功能概述 142
10.1.2 软件代码解析 143
10.1.3 板级调试 144
10.2 Nios Ⅱ实例之System ID与Timestamp 146
10.2.1 软件功能概述 146
10.2.2 软件代码解析 147
10.2.3 板级调试 148
10.3 Nios Ⅱ实例之蜂鸣器定时鸣叫 148
10.3.1 软件功能概述 148
10.3.2 软件代码解析 149
10.3.3 板级调试 151
10.4 Nios Ⅱ实例之拨码开关输入GIO控制 152
10.4.1 软件功能概述 152
10.4.2 软件代码解析 153
10.4.3 板级调试 155
10.5 Nios Ⅱ实例之秒定时数码管显示 155
10.5.1 软件功能概述 155
10.5.2 软件代码解析 156
10.5.3 板级调试 157
10.6 Nios Ⅱ实例之DAC递增输出 157
10.6.1 软件功能概述 157
10.6.2 软件代码解析 157
10.6.3 板级调试 158
10.7 Nios Ⅱ实例之ADC采集打印 158
10.7.1 软件功能概述 158
10.7.2 软件代码解析 159
10.7.3 板级调试 160
10.8 Nios Ⅱ实例之UART收发 160
10.8.1 软件功能概述 160
10.8.2 软件代码解析 161
10.8.3 板级调试 165
10.9 Nios Ⅱ实例之RTC-UART时间打印 166
10.9.1 软件功能概述 166
10.9.2 软件代码解析 167
10.9.3 板级调试 168
10.10 Nios Ⅱ实例之RTC-UART时间重置 168
10.10.1 软件功能概述 168
10.10.2 软件代码解析 169
10.10.3 板级调试 171
10.11 Nios Ⅱ实例之超声波测距 171
10.11.1 软件功能概述 171
10.11.2 软件代码解析 172
10.11.3 板级调试 173
10.12 Nios Ⅱ实例之倒车雷达 173
10.12.1 软件功能概述 173
10.12.2 软件代码解析 174
10.12.3 板级调试 175
10.13 Nios Ⅱ实例之矩阵按键值采集 176
10.13.1 软件功能概述 176
10.13.2 软件代码解析 177
10.13.3 板级调试 178
10.14 Nios Ⅱ实例之矩阵按键可调的ADC/DAC实例 178
10.14.1 软件功能概述 178
10.14.2 软件代码解析 179
10.14.3 板级调试 180
10.15 Nios Ⅱ实例之计算器 180
10.15.1 软件功能概述 180
10.15.2 软件代码解析 182
10.15.3 板级调试 184
第11章 FPGA器件的代码固化 185
11.1 嵌入式软件HEX文件生成 185
11.2 程序存储器初始化文件加载 187
11.3 JIC烧录文件生成 188
11.4 JTAG烧录配置 191