《FPGA数字信号处理与工程应用实践》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:张春生,苏开友编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2013
  • ISBN:9787113161002
  • 页数:507 页
图书介绍:本书全面、系统地介绍了宽带移动通信系统中先进的信道编码技术的软硬件实现,即Turbo码和LDPC码的FPGA实现。书中首先详细介绍了FPGA设计的基础知识,然后讲解信道编码技术中的码的构造、编译码算法和信道编码技术实现相关的软硬件知识,帮助读者建立巩固大型数字系统开发之道。为了帮助读者从了解到实践,书中每章都提供了大量针对性的实例,供读者实战练习。

第一篇 FPGA设计基础篇 2

第1章 FPGA开发基础知识 2

1.1 可编程逻辑器件基础 2

1.1.1 可编程逻辑器件概述 2

1.1.2 FPGA的发展历史 4

1.1.3 FPGA器件开发工具 4

1.2 FPGA器件的基础知识 5

1.2.1 FPGA芯片的工作原理 5

1.2.2 FPGA基本架构 7

1.3 FPGA基本开发流程及其工具 12

1.3.1 功能定义和器件选型 14

1.3.2 设计输入 14

1.3.3 功能仿真 14

1.3.4 综合优化 14

1.3.5 综合后仿真 15

1.3.6 实现与布局布线 15

1.3.7 时序仿真 15

1.3.8 芯片编程与调试 15

1.4 FPGA技术的优势及发展趋势 17

1.4.1 FPGA技术的开发优势 17

1.4.2 FPGA发展趋势 18

1.5 本章总结 19

第2章 基于Verilog HDL的设计流程 20

2.1 Verilog HDL的基本知识 20

2.1.1 硬件描述语言Verilog HDL的历史 20

2.1.2 Verilog HDL与其他硬件描述语言的比较 21

2.1.3 Verilog HDL的主要功能 21

2.1.4 Verilog HDL的设计流程简介 22

2.2 Verilog的基本语法 24

2.2.1 模块结构、数据类型、变量和基本运算符号 24

2.2.2 功能描述语句 30

2.2.3 系统任务和预处理语句 33

2.3 Verilog的高阶语法 39

2.3.1 设计模型的不同抽象级别 39

2.3.2 简单组合逻辑模块 44

2.2.3 简单时序逻辑模块 47

2.3.4 状态机的原理、结构和设计 49

2.4 本章总结 51

第3章 FPGA器件选择 52

3.1 如何选择合适的器件 52

3.1.1 FPGA目标平台的选择和开发工具的支持 52

3.1.2 器件的硬件资源 53

3.1.3 电气接口标准 54

3.1.4 器件的速度等级 54

3.1.5 器件的温度等级 55

3.1.6 器件的封装 55

3.1.7 器件的价格 55

3.2 Xilinx芯片 55

3.2.1 Spartan-2系列 55

3.2.2 Spartan-2E系列 56

3.2.3 Spartan-3系列 57

3.2.4 Spartan-3E系列 58

3.2.5 Spartan-3A系列 59

3.2.6 Spartan-3A DSP系列 60

3.2.7 Spartan-3AN系列 61

3.2.8 Vitrex系列 61

3.3 Xilinx PROM芯片介绍 65

3.4 Altera芯片 66

3.4.1 Cyclone系列 66

3.4.2 Cyclone Ⅱ系列 68

3.4.3 Stratix系列 70

3.4.4 Stratix GX系列 72

3.4.5 Stratix Ⅱ系列 74

3.5 Actel芯片 76

3.5.1 ProASIC3系列 76

3.5.2 ProASIC3L系列 78

3.5.3 Fusion系列 79

3.5.4 IGLOO系列 81

3.5.5 IGLOO+系列 83

3.5.6 nano系列 84

3.6 Lattice芯片 87

3.6.1 LatticeECP4系列 87

3.6.2 LatticeECP3系列 89

3.6.3 LatticeECP2系列 90

3.6.4 LatticeSC(System Chip)系列 91

3.6.5 MachXO2系列 93

3.6.6 MachXO系列 94

3.6.7 LatticeXP2系列 95

3.7 Atmel芯片 96

3.8 本章总结 97

第4章 ISE设计指南 98

4.1 ISE套件概述 98

4.2 ISE菜单操作 99

4.2.1 ISE用户界面 99

4.2.2 File菜单 100

4.2.3 Edit菜单 100

4.2.4 View菜单 101

4.2.5 Project菜单 101

4.2.6 Source菜单 102

4.2.7 Process菜单 102

4.2.8 Windows菜单 103

4.3 ISE工程建立与设计输入 103

4.3.1 新建工程 103

4.3.2 HDL输入 105

4.3.3 原理图输入 107

4.3.4 状态机输入 109

4.4 ISE的IP核设计 117

4.4.1 IP核简介 118

4.4.2 IP核的应用 118

4.5 ISE用户约束文件 122

4.5.1 约束文件的简述 122

4.5.2 UCF文件的语法 123

4.5.3 引脚和区域约束语法 123

4.5.4 时序约束语法 124

4.6 ISE设计综合和行为仿真 126

4.6.1 ISE综合 126

4.6.2 ISE行为仿真 130

4.7 ISE设计实现和时序仿真 134

4.7.1 引脚约束 134

4.7.2 ISE设计实现 136

4.8 ISE设计下载 140

4.9 ISE与第三方软件 142

4.9.1 ModelSim软件 142

4.9.2 Synplify Pro软件 143

4.10 ISE高级组件 144

4.10.1 在线逻辑分析仪Chipscope 144

4.10.2 平面布局规划器PlanAhead 145

4.10.3 时序分析器Timing Analyzer 146

4.10.4 底层编辑器FPGA Editor 147

4.10.5 布局规划器Floorplanner 148

4.11本章总结 148

第5章 FPGA开发实例 149

5.1 直接数字式频率合成器 149

5.1.1 DDS基本原理 149

5.1.2 DDS算法的FPGA实现 151

5.2 FIR滤波器 154

5.2.1 数字滤波器的分类 155

5.2.2 设计指标及描述 155

5.2.3 FIR滤波器的FPGA实现 156

5.3 QPSK调制器 160

5.3.1 QPSK基本原理 161

5.3.2 QPSK调制系统 162

5.3.3 QPSK调制解调器的FPGA实现 163

5.4 序列检测器 168

5.5 简化的RISC_CPU设计 173

5.6 简单卷积器的设计 189

5.7 利用SRAM设计一个FIFO 201

5.8 本章总结 207

第二篇 数字系统的建模与仿真 211

第6章 MATLAB概论 211

6.1 MATLAB R2012a简介 211

6.1.1 MATLAB R2012a的新特点 211

6.1.2 MATLAB主要组成部分 212

6.1.3 MATLAB对硬件和软件的要求 213

6.1.4 安装步骤 213

6.1.5 MATLAB R2012a的其他操作 220

6.2 MATLAB的开发环境 221

6.2.1 主菜单和工具栏 221

6.2.2 作界面的各个窗口 222

6.2.3 MATLAB R2012a通用命令 224

6.2.4 MATLAB 7.0帮助系统 225

6.3 M文件编辑器 228

6.3.1 M文件的创建及界面 228

6.3.2 M文件的运行和调试 228

6.3.3 M文件的参数设置 229

6.4 本章总结 231

第7章 信道编译码仿真中MATLAB的相关基础知识 232

7.1 矩阵运算基础 232

7.1.1 矩阵的创建 232

7.1.2 矩阵信息的查询与获取 235

7.1.3 矩阵变换 238

7.1.4 矩阵和数组的数学运算 246

7.1.5 矩阵函数和矩阵元素的数学函数 252

7.2 MATLAB的程序设计基础 257

7.2.1 变量 257

7.2.2 程序流程控制 258

7.2.3 程序的调试 262

7.2.4 程序的优化 263

7.3 MATLAB的数据可视化 264

7.3.1 二维绘图 265

7.3.2 图形处理 268

7.4 Simulink基础 272

7.4.1 Simulink初识 272

7.4.2 Simulink建模 275

7.4.3 Simulink仿真实例——典型的数字通信系统 284

7.5 本章总结 286

第8章 通信信道建模与仿真 288

8.1 有线信道建模与仿真 288

8.1.1 光纤通信 288

8.1.2 光放大器噪声模型 289

8.2 无线信道建模与仿真 290

8.2.1 莱斯和瑞利衰落信道模型 291

8.2.2 莱斯和瑞利衰落信道模型的MATLAB实现 293

8.2.3 Jakes衰落信道模型 296

8.2.4 多径非相关瑞利衰落信道仿真模型 298

8.2.5 COST207信道模型 301

8.2.6 MATLAB中的无线信道仿真函数 308

8.3 本章总结 310

第9章 LDPC码 311

9.1 线性分组码 311

9.1.1 校验矩阵 312

9.1.2 生成矩阵 312

9.1.3 系统编码 313

9.2 LDPC码的表示 313

9.2.1 LDPC码的矩阵表示 313

9.2.2 LDPC码的Tanner图表示 314

9.2.3 度数分布 315

9.3 LDPC码的构造 315

9.3.1 校验矩阵的随机构造 315

9.3.2 校验矩阵的结构化构造 316

9.3.3 实用型的构造方法 318

9.3.4 IEEE 802.1 6e标准LDPC码的构造 319

9.4 二进制LDPC码的编码方法 321

9.4.1 基于高斯消去的编码 321

9.4.2 基于近似下三角矩阵的编码 322

9.4.3 IEEE 802.1 6e标准LDPC码的快速编码 322

9.5 二进制LDPC码的译码方法 324

9.5.1 概率BP算法 324

9.5.2 LLR BP算法 326

9.5.3 UMP BP_Based算法 328

9.5.4 其他改进算法 328

9.6 本章总结 329

第10章 LDPC码的MATLAB仿真实现 330

10.1 Gallager构造的LDPC码的MATLAB仿真实现 330

10.2 Block-LDPC码的构造和编码算法仿真实现 331

10.2.1 Block-LDPC码的构造 331

10.2.2 Block-LDPC码基于近似下三角矩阵的编码算法 338

10.3 IEEE 802.1 6e标准的LDPC码的MATLAB仿真实现 339

10.3.1 IEEE 802.1 6e标准的LDPC码的构造 339

10.3.2 IEEE 802.1 6e标准LDPC码的编码算法 341

10.4 LDPC码译码算法仿真实现 343

10.4.1 LLR BP算法仿真实现 343

10.4.2 UMP BP-Based算法仿真 346

10.5 本章总结 347

第11章 LDPC码在无线通信信道下的仿真实例 348

11.1 AWGN信道中的LDPC码的性能分析 348

11.1.1 Block-LDPC码的仿真 349

11.1.2 IEEE 802.1 6e标准LDPC码的仿真 355

11.2 LDPC码在瑞利和莱斯衰落信道中的性能分析 359

11.2.1 Block-LDPC码在莱斯信道中的性能分析 359

11.2.2 Block-LDPC码在瑞利信道中的性能分析 360

11.2.3 莱斯和瑞利信道的比较 361

11.3 IEEE 802.1 6e标准LDPC码在瑞利信道和赖斯信道中的性能分析 362

11.3.1 IEEE 802.1 6e标准LDPC码在莱斯信道中的性能分析 362

11.3.2 IEEE 802.1 6e标准LDPC码在瑞利信道中的性能分析 363

11.4 两种LDPC码在Jakes衰落信道模型下的性能分析 363

11.5 多径非相关瑞利衰落信道下的性能分析 367

11.6 本章总结 368

第三篇 通信系统中的FPGA实现 372

第12章 简单信道编译码的FPGA实现 372

12.1 信道编码的作用 372

12.2 线性分组码 373

12.3 线性分组码的FPGA实现 375

12.4 RS码 378

12.4.1 RS码的原理 378

12.4.2 编码器分类 380

12.4.3 码型的选择 382

12.5 RS码的FPGA实现 382

12.5.1 加法器 382

12.5.2 乘法器 383

12.5.3 编码电路的实现 385

12.5.4 顶层文件 386

12.5.5 编码控制模块 387

12.5.6 系数乘法模块 388

12.5.7 编码结果 391

12.6 CRC校验码 392

12.7 CRC码的FPGA实现 394

12.7.1 顶层模块 395

12.7.2 编码控制模块 395

12.7.3 并行计算等式模块 397

12.7.4 ModelSim仿真结果 398

12.8 卷积码 400

12.9 卷积码的FPGA实现 403

12.10 Viterbi译码 405

12.10.1 Viterbi译码原理 406

12.10.2 Viterbi算法的基本原理 407

12.11 Viterbi译码的FPGA实现 408

12.11.1 顶层模块 409

12.11.2 控制模块 410

12.11.3 计算幸存路径模块 412

12.12本章总结 420

第13章 Turbo码编译码的FPGA实现 421

13.1 Turbo码中的交织器 421

13.2 规则交织器 422

13.2.1 分组交织器 422

13.2.2 分组螺旋交织器 422

13.3 伪随机交织器 422

13.3.1 S随机交织器 422

13.3.2 模k交织器 423

13.4 交织器的FPGA实现 423

13.4.1 交织器程序源码 424

13.4.2 双口RAM的IP核模块 426

13.4.3 ModelSim仿真结果 427

13.5 Turbo码编码器的算法 428

13.5.1 Turbo码编码器结构 428

13.5.2 分量编码器 430

13.5.3 删余矩阵 431

13.6 Turbo码编码的FPGA设计 432

13.6.1 顶层模块 432

13.6.2 交织器实现 434

13.6.3 ModelSim仿真结果 436

13.7 分量编码器的FPGA实现 437

13.7.1 分量编码器顶层模块 437

13.7.2 并串转换实现 438

13.7.3 卷积码编码器实现 440

13.7.4 串并转换模块实现 443

13.7.5 删余器实现 445

13.7.6 控制模块 446

13.8 Turbo码译码器的结构 450

13.8.1 软判决译码和硬判决译码 450

13.8.2 Turbo码译码器结构 451

13.8.3 Turbo码译码算法 452

13.9 Turbo码译码器的FPGA实现 455

13.9.1 欧氏距离的计算 455

13.9.2 路径度量的计算 457

13.9.3 幸存路径的计算 458

13.9.4 软输出信息的计算 459

13.9.5 外信息的计算 462

13.9.6 迭代译码以及欧氏距离的更新 462

13.9.7 顶层程序 463

13.9.8 最后硬判决的解交织器 468

13.10本章总结 475

第14章 LDPC编译码的FPGA实现 476

14.1 IEEE 802.1 6e标准LDPC码的构造 476

14.1.1 QC-LDPC码的概念 476

14.1.2 校验矩阵的构造 477

14.2 LDPC编码器的设计 479

14.2.1 传统的编码算法 479

14.2.2 基于RU算法的编码器结构 479

14.2.3 矩阵乘法器模块 481

14.2.4 前向置换模块 485

14.2.5 模块的端口定义和ip核调用 486

14.2.6 单位循环矩阵的存储 488

14.3 LDPC译码器的设计 488

14.3.1 软判决译码算法LLR BP 489

14.3.2 最小和算法(MS) 490

14.4 LDPC码译码器的FPGA实现 492

14.4.1 LDPC码基于最小和(MS)算法的译码器结构 492

14.4.2 MS_LDPC顶层模块 493

14.4.3 Control控制单元模块 495

14.4.4 VNP变量节点处理单元 497

14.4.5 CNP校验节点处理单元 499

14.4.6 Mess_mem中间信息存储器 505

14.4.7 Src_mem初始数据寄存器 505

14.4.8 inter_rom交织存储器 506

14.4.9 modelsim结果图 507

14.5 本章总结 507