当前位置:首页 > 工业技术
Nios II 嵌入式软核SOPC设计原理及应用
Nios II 嵌入式软核SOPC设计原理及应用

Nios II 嵌入式软核SOPC设计原理及应用PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:李兰英等编著(哈尔滨理工计算机学院)
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2006
  • ISBN:7810779001
  • 页数:564 页
图书介绍:本书从嵌入式应用系统设计的角度,全面、系统、详细地介绍基于Altera公司的Nios II嵌入式软核处理器的SOPC软硬件设计环境、原理、方法及应用技术。章节安排围绕SOPC硬件系统设计、SOPC应用程序开发两条主线展开。硬件系统又按照Nios II软核处理器体系结构、Avalon总线和外围设备三大系统组成进行阐述,并结合一个硬件系统设计实例,详细说明应用其开发环境SOPC Builder开发SOPC硬件系统的流程和方法。
《Nios II 嵌入式软核SOPC设计原理及应用》目录

第1章 概述 1

1.1 SOPC及其技术 1

1.1.1 嵌入式系统简介 1

1.1.2 SOC系统简介 3

1.1.3 SOPC技术简介 5

1.1.4 CPLD/FPGA简介 9

1.1.5 新一代低成本FPGA——Cyclone Ⅱ简介 14

1.2 Nios Ⅱ软核SOPC系统及组件 26

1.2.1 Nios Ⅱ软核嵌入式处理器 29

1.2.2 Avalon Switch Fabric 30

1.2.3 外围设备 32

1.3 Nios Ⅱ软核SOPC系统开发环境 32

1.3.1 硬件开发环境 32

1.3.2 软件开发环境 33

第2章 Nios Ⅱ嵌入式软核处理器体系结构 35

2.1 Nios Ⅱ处理器的实现 35

2.2 Nios Ⅱ的内部寄存器 37

2.2.1 通用寄存器 37

2.2.2 控制寄存器 38

2.3 Nios Ⅱ的操作模式 39

2.3.1 管理模式 39

2.3.2 用户模式 40

2.3.3 调试模式 40

2.3.4 模式之间的切换 40

2.4 Nios Ⅱ的异常处理 41

2.4.1 硬件中断 41

2.4.2 软件陷阱 42

2.4.3 未实现指令 42

2.4.4 确定异常产生的原因 42

2.4.5 异常嵌套与返回 43

2.4.6 断点处理与返回 43

2.5 存储器与外设 44

2.5.1 指令和数据总线 45

2.5.2 高速缓存 47

2.5.3 紧耦合存储器 47

2.5.4 地址映射 48

2.5.5 存储器与外设的访问 48

2.6 处理器复位状态 49

2.7 寻址方式与指令集分类 49

2.7.1 寻址方式 49

2.7.2 数据传送指令 50

2.7.3 算术和逻辑运算指令 50

2.7.4 移位和循环移位指令 52

2.7.5 程序控制指令 52

2.7.6 定制指令 53

2.7.7 未实现指令 53

2.8 JTAG调试模块 53

第3章 Avalon总线规范 57

3.1 Avalon总线概述 57

3.1.1 功能 57

3.1.2 术语和概念 58

3.2 Avalon信号 60

3.2.1 信号的列表 61

3.2.2 信号的极性 64

3.2.3 信号的命名 64

3.2.4 信号的时序 65

3.2.5 传输特性 65

3.3 Avalon从端口传输 66

3.3.1 从端口信号详述 66

3.3.2 从端口的读传输 68

3.3.3 从端口的写传输 73

3.4 Avalon主端口传输 77

3.4.1 主端口信号详述 77

3.4.2 基本主端口的读传输 78

3.4.3 基本主端口的写传输 80

3.4.4 等待状态、建立和保持时间 81

3.5 流水传输 81

3.5.1 具有固定延迟的从端口流水读传输 82

3.5.2 具有可变延迟的从端口流水读传输 83

3.5.3 主端口流水读传输 85

3.6 流传输模式 87

3.6.1 流模式从端口传输 87

3.6.2 流模式主端口传输 91

3.7 三态传输 92

3.7.1 三态从端口传输 92

3.7.2 三态主端口传输 99

3.8 突发传输 100

3.8.1 限制 100

3.8.2 主端口突发传输 101

3.8.3 从端口突发传输 104

3.9 与传输无关的信号 107

3.9.1 中断请求信号 107

3.9.2 复位控制信号 108

3.10 地址对齐 109

3.10.1 静态地址对齐 109

3.10.2 动态地址对齐 110

第4章 Nios Ⅱ外围设备 111

4.1 SDRAM控制器 111

4.1.1 SDRAM控制器核概述 111

4.1.2 SOPC Builder中的SDRAM控制器核配置选项 114

4.1.3 配置实例 117

4.1.4 SDRAM软件编程模型 118

4.1.5 时钟、PLL和时序 118

4.2 CFI控制器 122

4.2.1 CFI Flash控制器核概述 122

4.2.2 SOPC Builder中CFI控制器核配置选项 123

4.2.3 CFI软件编程模型 124

4.3 EPCS设备控制器 125

4.3.1 EPCS控制器核综述 125

4.3.2 SOPC Builder中EPCS控制器核配置选项 127

4.3.3 EPCS软件编程模型 127

4.4 PIO控制器 128

4.4.1 PIO控制器核综述 128

4.4.2 SOPC Builder中PIO核配置选项 130

4.4.3 PIO软件编程模型 131

4.4.4 PIO寄存器描述与中断 131

4.5 定时器控制器 133

4.5.1 定时器控制器核综述 133

4.5.2 SOPC Builder中定时器核配置选项 135

4.5.3 定时器软件编程模型 136

4.5.4 定时器寄存器描述与中断 137

4.6 UART核 139

4.6.1 UART核综述 139

4.6.2 SOPC Builder中UART核配置选项 142

4.6.3 UART软件编程模型 145

4.6.4 UART寄存器描述与中断 147

4.7 JTAG UART核 152

4.7.1 JTAG UART核综述 152

4.7.2 SOPC Builder中JTAG UART核配置选项 154

4.7.3 JTAG UART的软件编程模型 156

4.7.4 JTAG UART寄存器描述与中断 159

4.8 SPI核 161

4.8.1 SPI核综述 161

4.8.2 SPI配置实例 162

4.8.3 SOPC Builder中SPI核配置选项 164

4.8.4 SPI软件编程模型 166

4.8.5 SPI寄存器描述 167

4.9 DMA控制器 169

4.9.1 DMA控制器核综述 169

4.9.2 SOPC Builder中DMA控制器核配置选项 171

4.9.3 DMA软件编程模型 172

4.9.4 DMA寄存器描述与中断 173

4.10 系统ID核 176

4.10.1 系统ID核综述 176

4.10.2 SOPC中系统ID核配置选项 177

4.10.3 系统ID软件编程模型 177

4.11 PLL核 177

4.11.1 PLL核综述 177

4.11.2 SOPC Builder中PLL控制器核配置选项 179

4.11.3 PLL寄存器描述 180

4.12 mutex核 182

4.12.1 概述 182

4.12.2 功能描述 182

4.12.3 在SOPC Builder中使用mutex核 183

4.12.4 mutex软件编程模型 183

4.12.5 mutex核的API 184

第5章 简单SOPC硬件系统开发 187

5.1 基于Nios Ⅱ的SOPC硬件系统开发流程 187

5.2 SOPC Builder硬件开发环境介绍 189

5.2.1 建立系统 189

5.2.2 生成系统 190

5.3 简单SOPC实例开发系统需求及任务 190

5.4 创建Quartus Ⅱ工程 191

5.5 使用SOPC Builder创建Nios Ⅱ系统模块 194

5.5.1 启动SOPC Builder进行Nios Ⅱ系统硬件设计 195

5.5.2 设置目标FPGA及时钟 196

5.5.3 添加CPU和IP模块 198

5.5.4 指定基地址和中断 213

5.5.5 配置Nios Ⅱ系统 214

5.5.6 生成Nios Ⅱ系统 216

5.6 集成Nios Ⅱ系统到Quartus Ⅱ工程 217

5.6.1 创建顶层模块 218

5.6.2 添加Nios Ⅱ系统模块到Quartus Ⅱ顶层模块 218

5.6.3 添加引脚和其他基本单元 218

5.6.4 命名引脚及引脚连接 220

5.6.5 选择器件及分配FPGA引脚 221

5.6.6 器件和引脚的其他设置 224

5.7 Quartus Ⅱ工程编译 227

5.7.1 创建编译器设置 227

5.7.2 编译硬件系统 228

5.8 编程下载 229

第6章 SOPC软件开发 233

6.1 SOPC软件开发环境综述 233

6.1.1 SOPC软件开发流程 234

6.1.2 Nios Ⅱ IDE集成开发环境 235

6.1.3 GNU工具链 239

6.1.4 HAL系统库 240

6.1.5 RTOS和TCP/IP协议栈 240

6.2 HAL系统库 240

6.2.1 HAL系统库结构 240

6.2.2 使用HAL开发应用程序 241

6.2.3 使用HAL开发设备驱动程序 247

6.3 使用Nios Ⅱ IDE建立用户应用程序 251

6.3.1 创建一个新的C/C++应用工程 252

6.3.2 设置C/C++应用工程系统属性 256

6.3.3 编译链接工程 258

6.3.4 调试程序 260

6.3.5 运行程序 261

6.3.6 使用ModelSim进行RTL级系统仿真 263

第7章 FPGA配置和Flash编程 272

7.1 FPGA配置概述 272

7.2 Cyclone Ⅱ系列FPGA配置 276

7.2.1 Cyclone Ⅱ系列FPGA配置概述 277

7.2.2 配置文件 277

7.2.3 配置数据的压缩 278

7.2.4 AS配置模式 279

7.2.5 PS配置模式 287

7.2.6 JTAG配置模式 298

7.2.7 Cyclone Ⅱ系列FPGA的配置引脚定义 304

7.3 FPGA的配置器件 308

7.3.1 串行配置器件功能描述 309

7.3.2 AS模式下的FPGA配置 312

7.3.3 AS模式下串行配置器件的存储器访问 313

7.3.4 电源与操作 320

7.3.5 串行配置器件的时序 321

7.3.6 编程与配置文件 323

7.3.7 串行配置器件的引脚描述 323

7.4 Quartus Ⅱ中FPGA配置的选项 325

7.4.1 配置选项 325

7.4.2 配置文件的格式 329

7.5 FPGA配置调试技术 335

7.5.1 板子布局 335

7.5.2 调试技术 335

7.6 IDE Flash Programmer介绍 337

7.6.1 Nios Ⅱ IDE Flash Programmer的编程过程 338

7.6.2 Flash编程模式 338

7.6.3 Flash Programmer目标设计 338

7.6.4 Flash中的编程内容 340

7.6.5 Flash文件 340

7.7 用户程序引导 341

7.7.1 从CFI Flash中引导用户程序 341

7.7.2 从EPCS串行配置器件中引导用户程序 341

7.7.3 引导复制程序 341

7.8 在IDE模式下使用Nios Ⅱ Flash Programmer 342

7.9 板子描述编辑器 343

7.9.1 简介 343

7.9.2 板子描述的创建 344

7.9.3 Flash Memory标签 346

7.9.4 Files标签 347

第8章 Nios Ⅱ系统深入设计 349

8.1 异常处理程序的开发 349

8.1.1 Nios Ⅱ异常分类 349

8.1.2 硬件抽象层的实现 349

8.1.3 中断服务程序 352

8.2 缓存和紧耦合存储器的编程 357

8.2.1 复位后缓存的初始化 358

8.2.2 设备驱动程序中缓存的编程 359

8.2.3 装载程序或自更新程序的编写 360

8.2.4 多主/多CPU系统中缓存的管理 361

8.2.5 紧耦合存储器概述 362

8.2.6 紧耦合存储器接口 364

8.2.7 使用紧耦合存储器创建Nios Ⅱ系统 364

8.3 μC/OS-Ⅱ实时操作系统 371

8.3.1 μC/OS-Ⅱ实时操作系统简介 371

8.3.2 μC/OS-Ⅱ在Nios Ⅱ上的移植 372

8.3.3 Nios Ⅱ IDE中μC/OS-Ⅱ工程的实现 375

8.3.4 设计实例的软硬件要求 380

8.3.5 在Nios Ⅱ中建立μC/OS-Ⅱ工程 380

8.4 以太网与轻量IP 385

8.4.1 轻量IP概述 385

8.4.2 轻量IP协议栈的使用 386

8.4.3 Nios Ⅱ IDE中轻量IP的配置 391

8.4.4 设计实例的软硬件环境 394

8.4.5 实例的设计文件 394

8.4.6 软件开发流程 395

8.4.7 Simple Socket Server设计概述 400

8.5 Nios Ⅱ多处理器系统 408

8.5.1 多处理器系统设计概述 408

8.5.2 多处理器系统的优势 408

8.5.3 Nios Ⅱ多处理器系统硬件设计 408

8.5.4 Nios Ⅱ多处理器系统的资源共享 409

8.5.5 Nios Ⅱ多处理器系统软件设计 413

8.5.6 Nios Ⅱ多处理器系统设计实例 415

8.6 定制Nios Ⅱ用户指令 427

8.6.1 Nios Ⅱ定制指令综述 427

8.6.2 定制指令实现方式 433

8.6.3 定制指令设计实例 436

8.7 定制基于Avalon的用户外设 445

8.7.1 设计概述 445

8.7.2 组件开发流程 446

8.7.3 设计实例——PWM从接口 449

第9章 基于Cyclone Ⅱ开发板的SOPC系统开发实例 460

9.1 全彩LED音乐景观灯控制系统总体设计方案 460

9.1.1 系统需求分析 460

9.1.2 硬件总体设计方案 461

9.1.3 软件总体设计方案 463

9.2 控制系统硬件设计与实现 463

9.2.1 全彩LED灯控PWM IP核的设计与实现 463

9.2.2 CF卡设计与实现 470

9.2.3 MP3解码硬件电路设计与实现 481

9.2.4 LED发光二极管控制与驱动电路设计 483

9.3 控制系统软件设计 485

9.3.1 读取CF卡软件设计 485

9.3.2 全彩LED灯控制程序设计 488

9.3.3 播放MP3音乐软件设计 491

第10章 仿真与调试 496

10.1 使用Quartus Ⅱ Simulator进行仿真设计 496

10.1.1 Quartus Ⅱ Simulator仿真 496

10.1.2 Quartus Ⅱ支持的EDA仿真 506

10.1.3 Quartus Ⅱ的延时分析 509

10.2 使用ModelSim进行仿真 512

10.2.1 ModelSim仿真软件简介 512

10.2.2 ModelSim软件的结构 514

10.2.3 ModelSim运行方式 514

10.2.4 ModelSim的功能仿真 515

10.2.5 门级仿真与时序仿真 522

10.2.6 初始化存储器 529

10.2.7 测试平台 535

10.3 SignalTap Ⅱ实时测试 542

10.3.1 SignalTap Ⅱ逻辑分析仪用户界面 543

10.3.2 应用SignalTap Ⅱ逻辑分析仪测试信号 544

附录A Altera Cyclone Ⅱ Nios Ⅱ实验开发套件 548

附录B Cyclone Ⅱ EP2C35实验开发板 550

附录C Cyclone Ⅱ EP2C35引脚表 560

参考文献 564

相关图书
作者其它书籍
返回顶部