《SOPC技术基础教程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:侯建军,郭勇编著
  • 出 版 社:清华大学出版社;北京交通大学出版社
  • 出版年份:2008
  • ISBN:9787811230277
  • 页数:382 页
图书介绍:本书系统地介绍了基于FPGA的SOPC的软硬件开发技术,以一个简单的设计实例为主线来讲解软硬件的开发流程、开发工具的使用以及开发的思想。使读者对SOPC技术有一个基本的了解。Nios II体系结构、Avalon总线规范、Nios II处理器的常用外设的部分的内容提供给读者更多底层的细节,使读者获得进行高级开发的能力,如第八章介绍的定制指令、定制外设开发和C2H编译器的使用。另外还介绍了使用Matlab和DSP Builder进行基于FPGA的DSP 开发技术,并提供了一些典型的实验。

第1章 绪论 1

1.1 基本概念 1

1.1.1 SOC系统 1

1.1.2 SOPC 2

1.1.3 IP核 2

1.2 NiosⅡ软核处理器简介 4

1.2.1 可定制特性 4

1.2.2 系统性能可配置性 5

1.2.3 延长产品生存周期 8

1.3 SOPC设计流程 8

1.4 支持Nios Ⅱ CPU的FPGA型号 9

1.4.1 Cyclone和Cyclone Ⅱ系列 9

1.4.2 Stratix和Stratix Ⅱ系列 11

1.4.3 HardCopy器件 13

第2章 SOPC的硬件开发环境及硬件开发流程 14

2.1 创建Quartus Ⅱ工程 14

2.2 创建Nios Ⅱ系统模块 18

2.2.1 创建顶层实体 18

2.2.2 创建Nios Ⅱ系统模块 20

2.2.3 分配IP模块的地址和中断号 29

2.2.4 配置Nios Ⅱ系统 30

2.2.5 生成Nios Ⅱ并加入到工程中 31

2.2.6 加入引脚和嵌入式锁相环 32

2.3 设计优化 39

2.3.1 面积与速度的优化 39

2.3.2 时序约束与设置 40

2.3.3 Fitter设置 42

2.4 编译 42

2.4.1 编译设置 43

2.4.2 引脚分配 45

2.4.3 编译用户设计 47

2.5 编程下载 48

2.5.1 下载 48

2.5.2 验证 49

第3章 Nios Ⅱ体系结构 51

3.1 Nios Ⅱ处理器结构 51

3.2 Nios Ⅱ寄存器文件 54

3.2.1 通用寄存器 54

3.2.2 控制寄存器 55

3.3 存储器和I/O组织 55

3.3.1 指令和数据总线 56

3.3.2 高速缓存 58

3.3.3 紧耦合存储器 59

3.3.4 地址映射 59

3.4 寻址方式 60

第4章 Avalon总线规范 61

4.1 Avalon总线简介 61

4.2 Avalon总线基本概念 62

4.2.1 Avalon外设和交换架构 63

4.2.2 Avalon信号 64

4.2.3 主端口和从端口 64

4.2.4 传输 65

4.2.5 主从端口对 65

4.2.6 周期 65

4.3 Avalon信号 65

4.3.1 信号类型的完整列表 66

4.3.2 信号极性 69

4.3.3 信号命名规则 69

4.3.4 Avalon信号时序说明 69

4.3.5 传输属性 70

4.4 从端口传输 70

4.4.1 从端口信号详述 71

4.4.2 从端口读传输 73

4.4.3 从端口写传输 77

4.5 主端口传输 80

4.5.1 主端口信号 81

4.5.2 主端口基本读传输 82

4.5.3 主端口基本写传输 83

4.5.4 等待周期、建立时间和保持时间属性 84

4.5.5 流水线、突发和三态属性 85

4.6 流水线传输属性 85

4.6.1 具有固定延迟的从端口流水线读传输 85

4.6.2 具有可变延迟的从端口流水线读传输 87

4.6.3 主端口流水线传输 89

4.7 流控制 90

4.7.1 具有流控制的从端口传输 91

4.7.2 具有流控制的主端口传输 94

4.8 三态传输 95

4.8.1 三态从端口传输 96

4.8.2 三态主端口传输 102

4.9 突发传输 103

4.9.1 限制 103

4.9.2 主端口突发传输 104

4.9.3 从端口突发传输 106

4.10 和传输无关的信号 109

4.10.1 中断请求信号 110

4.10.2 复位控制信号 110

4.11 地址对齐 111

4.11.1 本地地址对齐 111

4.11.2 动态地址对齐 112

第5章 基于FPGA的DSP开发技术 114

5.1 基于MATLAB/DSP Builder的DSP模块设计流程 114

5.2 正弦发生器模块的设计 116

5.2.1 建立模型 117

5.2.2 模型仿真 123

5.2.3 使用SignalCompiler从算法到硬件的实现 128

5.2.4 使用ModelSim进行RTL级仿真 132

5.2.5 使用QuartusⅡ进行时序仿真 134

5.2.6 硬件实现与测试 135

5.2.7 使用嵌入式逻辑分析仪SignalTap Ⅱ进行测试 137

5.3 DSP Builder的层次设计 143

5.4 FIR数字滤波器设计 147

5.4.1 FIR滤波器原理 147

5.4.2 16阶FIR滤波器的设计 147

5.4.3 使用MATLAB的FDATool进行滤波器系数的计算 152

5.4.4 使用MegaCore实现FIR滤波器的设计 159

5.5 IIR数字滤波器的设计 164

5.6 快速傅立叶变换 167

5.7 MegaCore的使用 170

5.7.1 伪随机序列的原理 171

5.7.2 伪随机序列发生器的设计 171

5.7.3 其他常用的MegaCore 173

第6章 软件设计流程和方法 175

6.1 Nios Ⅱ IDE简介 175

6.1.1 工程管理器 176

6.1.2 编辑器和编译器 178

6.1.3 调试器 179

6.1.4 闪存编程器 180

6.2 软件开发流程 180

6.2.1 Nios Ⅱ程序的构成 180

6.2.2 Nios Ⅱ IDE软件开发步骤 182

6.3 运行和调试程序 191

6.3.1 调试/运行环境设置 192

6.3.2 调试/运行程序 195

6.3.3 下载程序到Flash 195

6.4 硬件抽象层库 198

6.4.1 HAL简介 198

6.4.2 HAL体系结构 198

6.5 使用HAL开发应用程序 201

6.5.1 Nios Ⅱ IDE工程结构 202

6.5.2 系统描述文件——system.h 202

6.5.3 数据宽度和HAL类型定义 203

6.5.4 UNIX风格的接口 204

6.5.5 文件系统 204

6.5.6 使用字符型设备 206

6.5.7 使用文件子系统 207

6.5.8 使用定时器设备 207

6.5.9 使用flash设备 210

6.5.10 使用DMA设备 215

6.5.11 启动顺序和入口点 220

6.6 异常处理 222

6.6.1 异常处理概念 222

6.6.2 硬件如何工作 223

6.6.3 ISR性能数据 227

6.6.4 调试ISR 230

第7章 NiosⅡ常用外设编程 231

7.1 并行输入/输出内核 231

7.1.1 PIO寄存器描述 231

7.1.2 软件编程 233

7.2 定时器 235

7.2.1 定时器寄存器描述 236

7.2.2 软件编程 237

7.3 异步串口UART 239

7.3.1 UART内核功能描述 239

7.3.2 在SOPC Builder中实例化UART 241

7.3.3 UART寄存器描述 243

7.3.4 中断行为 247

7.3.5 软件编程 247

7.4 Optrex 16207 LCD控制器内核 250

7.4.1 功能描述 250

7.4.2 软件编程 251

7.5 通用Flash接口控制器内核 251

7.5.1 功能描述 251

7.5.2 在SOPC Builder中实例化CFI控制器内核 252

7.5.3 软件编程 253

7.6 DMA内核 254

7.6.1 功能描述 254

7.6.2 在SOPC Builder中实例化DMA内核 256

7.6.3 软件编程 257

第8章 Nios Ⅱ系统高级开发技术 259

8.1 用户定制指令 259

8.1.1 定制指令综述 260

8.1.2 定制指令体系结构的类型 261

8.1.3 软件接口 266

8.1.4 实现NiosⅡ定制指令 269

8.2 用户定制外设 273

8.2.1 元件开发流程 273

8.2.2 硬件设计 274

8.2.3 软件设计 275

8.2.4 验证元件 276

8.2.5 设计实例:脉宽调制器从外设 277

8.2.6 共享元件 289

8.3 C2H编译器的使用 290

8.3.1 C2H概念 291

8.3.2 适合硬件加速的C代码 294

8.3.3 C2H编译器设计流程 296

附录A 电子钟C语言的源程序和头文件 306

附录B GX-SOC/SOPC专业级创新开发实验平台硬件介绍 323

附录C SOPC实验 333

参考文献 383