电子与嵌入式系统设计丛书 通信IC设计 上
出版时间:2016年版
内容简介
本书是一本难得的通信IC前端设计著作,准确给出了Verilog的各种学习方法和思路,能够为初学者带来很多实际的工程经验和学习理论。通过手把手剖析多个通信IC设计例子,以渐进明晰、层次递进的方法,引导读者完成从抽象原理、基本实现、工程原理样机到产品化与商业化的思维转变。此外,为拓宽读者的视角,本书还引入系统工程和项目管理的概念,帮助读者走上从学习者、研究者转换为IC设计专家之路。
目录
序言一
序言二
前 言
第1章 集成电路设计与HDL / 1
1.1 集成电路设计基础 / 1
1.1.1 集成电路的概念 / 1
1.1.2 IC设计的本质 / 5
1.1.3 IC设计流程 / 9
1.2 Verilog HDL快速入门 / 16
1.2.1 Verilog HDL简介 / 16
1.2.2 Verilog的表达能力 / 17
1.2.3 第一个Verilog程序:通用加法器 / 18
1.2.4 第二个Verilog程序:多路选择器与运算操作 / 20
1.2.5 第三个Verilog程序:D触发器和多路延迟 / 27
1.2.6 第四个Verilog程序:function与时序电路组合 / 34
1.2.7 第五个Verilog程序:有限状态机 / 47
1.2.8 第六个Verilog程序:写testbench / 64
1.2.9 第七个Verilog程序:SPI总线 / 85
1.2.10 第八个Verilog程序:异步UART / 92
1.2.11 一些有用的Verilog程序 / 99
1.2.12 Verilog不同版本的差异 / 108
1.2.13 Verilog语法小结 / 108
1.3 复杂逻辑模块的设计 / 110
1.3.1 结构化的设计 / 110
1.3.2 数据流的设计 / 114
1.3.3 控制流的设计 / 132
1.3.4 重要接口部件的设计 / 135
1.4 数的表示与基本运算 / 144
1.4.1 数的表示方法 / 145
1.4.2 定点数的计算规则 / 149
1.4.3 定点计算举例 / 149
1.4.4 定点数的移位规则 / 152
1.5 Verilog HDL编程规范 / 155
1.5.1 文档规范 / 156
1.5.2 编程规范 / 156
1.5.3 文件头定义格式 / 156
1.5.4 格式规则 / 157
1.5.5 命名规则 / 157
1.5.6 整体编码规则 / 158
1.5.7 全局信号编码规则 / 166
1.5.8 模块编码规则 / 166
1.5.9 可综合性设计 / 167
1.5.10 可重用设计 / 168
1.5.11 编程规范小结 / 168
1.6 HDL电路设计技巧 / 168
1.6.1 芯片设计的核心目标 / 168
1.6.2 如何提高电路运行速度 / 170
1.6.3 如何降低电路规模(使用面积) / 173
1.6.4 如何优化时序 / 187
总结 / 194
第2章 FPGA设计与进阶 / 195
2.1 FPGA简介 / 196
2.1.1 FPGA功能强大的秘密 / 200
2.1.2 FPGA具备可编程能力的原因 / 201
2.1.3 其他的FPGA内部单元 / 205
2.1.4 FPGA的应用方向 / 205
2.1.5 FPGA的设计流程 / 207
2.1.6 FPGA的层次提升 / 217
2.2 FPGA与ASIC的差异 / 220
2.3 FPGA的基本构成 / 221
2.3.1 FPGA的RAM资源 / 222
2.3.2 DSP资源 / 232
2.3.3 PLL资源 / 239
2.3.4 I/O引脚资源 / 244
2.4 FPGA的调试 / 251
2.4.1 在线存储器内容编辑工具 / 251
2.4.2 内嵌逻辑分析仪 / 253
2.4.3 虚拟JTAG / 260
2.4.4 LogicLock / 267
2.4.5 调试设计的指导原则 / 268
2.5 FPGA的设计方法 / 269
2.5.1 FPGA的设计规范 / 270
2.5.2 FPGA的整体结构设计 / 270
2.6 FPGA电路的优化 / 285
2.6.1 整体优化原则 / 287
2.6.2 FPGA优化举例 / 288
2.7 FPGA可综合的概念 / 290
2.7.1 可综合与不可综合的归纳 / 291
2.7.2 always可综合的概念 / 292
2.7.3 有限状态机可综合的概念 / 293
2.7.4 可综合模块举例 / 294
2.8 FPGA设计的注意事项 / 301
2.8.1 外部接口 / 302
2.8.2 时钟电路 / 302
2.8.3 复位电路 / 305
2.8.4 FPGA的设计规则 / 307
附录 开发流程与应用环境快速搭建 / 310
总结 / 338
第3章 通信系统基础部件设计 / 339
3.1 通信模型的构架 / 340
3.1.1 通信电路的组成结构 / 340
3.1.2 常见的算法单元模块 / 341
3.2 通信系统的基本算法 / 342
3.3 通信系统芯片设计的基本套路 / 344
3.3.1 芯片设计的整体流程 / 345
3.3.2 需求类别分析 / 345
3.3.3 高速通信芯片的实现方案 / 346
3.3.4 中速通信芯片的实现方案 / 347
3.3.5 低速通信芯片的实现方案 / 349
3.3.6 传统终端基带芯片的实现方案 / 350
3.4 数字滤波器设计 / 352
3.4.1 FIR滤波器的基本概念 / 352
3.4.2 FIR滤波器的基本硬件实现 / 354
3.4.3 FIR滤波器硬件实现结构概述 / 357
3.4.4 基于分布式算法的FIR滤波器 / 366
3.4.5 IIR滤波器设计 / 373
3.4.6 滤波器设计中的量化问题 / 376
3.4.7 数字滤波器的扩展应用——相关 / 385
3.5 FFT原理与硬件设计 / 389
3.5.1 概述 / 389
3.5.2 FFT算法概述 / 392
3.5.3 FFT实现面临的问题 / 396
3.5.4 FFT硬件实现方案 / 398
3.5.5 适用于WLAN发射机的64点FFT设计 / 404
3.5.6 适用于WLAN接收机的64点FFT设计 / 411
3.5.7 FFT与FIR的关系 / 414
3.5.8 离散余弦变换 / 415
3.6 CORDIC算法 / 418
3.6.1 CORDIC简介 / 418
3.6.2 一个求角度反正切的例子 / 419
3.6.3 CORDIC算法原理 / 422
3.6.4 CORDIC通用算法原理 / 424
3.6.5 CORDIC算法的硬件实现结构 / 426
3.7 NCO与DDS / 432
3.7.1 NCO与DDS简介 / 432
3.7.2 NCO设计原理 / 432
3.7.3 NCO硬件设计 / 434
3.7.4 DDS硬件设计 / 435
3.7.5 DDS实现通信调制 / 437
3.8 数字信号处理的集成案例1:数字中频 / 439
3.8.1 概述 / 439
3.8.2 数字下变频 / 440
3.8.3 数字上变频 / 457
3.8.4 数字上下变频的系统级设计 / 461
3.8.5 数字中频的各种设计案例 / 468
3.9 数字信号处理的集成案例2:FM收音机 / 482
3.9.1 FM收音机原理 / 483
3.9.2 FM收音机的解调思路 / 485
3.9.3 FM的中频处理 / 486
3.9.4 FM单声道收音机的ESL设计 / 491
3.9.5 FM立体声收音机的硬件实现 / 493
3.9.6 FM收音机相关的一些话题 / 499
附录 数字信号处理算法实现的部分技巧 / 505
总结 / 519
第4章 通信系统的信道编解码 / 520
4.1 通信编解码的基本框架 / 521
4.1.1 编码的基础知识 / 521
4.1.2 编码的几个基本概念 / 522
4.1.3 信道编码间的关系 / 523
4.1.4 级联码 / 523
4.1.5 逼近容量极限的编码 / 524
4.1.6 信道编解码芯片实现的基本套路 / 525
4.2 8B/10B编码与译码 / 525
4.2.1 8B/10B编码过程 / 526
4.2.2 8B/10B解码过程 / 530
4.2.3 8B/10B编码与解码的Verilog实现 / 531
4.3 有限域的运算基础 / 534
4.3.1 有限域的基本概念 / 535
4.3.2 有限域多项式的运算规则 / 536
4.3.3 GF(2)域的多项式运算 / 538
4.3.4 适合硬件实现的有限域运算方法 / 539
4.4 CRC冗余校验码简介 / 547
4.4.1 CRC算法的基本原理 / 548
4.4.2 几个基本概念 / 549
4.4.3 CRC算法实现 / 550
4.5 RS码 / 555
4.5.1 RS的编码算法 / 556
4.5.2 RS的译码算法 / 560
4.6 BCH码 / 579
4.6.1 BCH编码 / 580
4.6.2 BCH译码方法简介 / 582
4.7 卷积码简介 / 585
4.7.1 卷积码的相关概念 / 585
4.7.2 卷积码编码通用表述 / 585
4.7.3 卷积码的变形以及特殊处理 / 589
4.7.4 卷积码的译码原理 / 590
4.7.5 Viterbi译码的硬件实现 / 604
4.7.6 Viterbi的引申话题 / 606
4.8 信道编解码集成案例 / 609
4.8.1 编码方案 / 609
4.8.2 整体编码流程 / 610
4.8.3 硬件方案的整体概述 / 612
4.8.4 信道编码 / 618
4.8.5 信道解码 / 626
4.8.6 芯片实现中的几个关键问题 / 634
总结 / 644
第5章 通信原理与单载波芯片设计 / 645
5.1 通信原理与设计基础 / 646
5.1.1 通信系统模型 / 646
5.1.2 常见的各种调制方式 / 647
5.1.3 通信链路的关键要素 / 656
5.1.4 射频模型 / 662
5.1.5 调整射频的3个重要手段 / 674
5.2 常见的通信解调套路 / 684
5.2.1 解调套路概述 / 684
5.2.2 解调实现方法 / 685
5.2.3 完整通信链路解调实例:数据直播星系统设计 / 695
5.3 DVB-S系统概述 / 708
5.3.1 DVB-S整体流程介绍 / 709
5.3.2 DVB-S系统的数据扰码 / 709
5.3.3 DVB-S系统的外编码模块 / 709
5.3.4 DVB-S系统的卷积交织 / 710
5.3.5 DVB-S系统的卷积编码 / 712
5.3.6 DVB-S系统的QPSK调制 / 712
5.4 DVB-S信道接收算法原理 / 713
5.4.1 QPSK信号数学表示 / 713
5.4.2 接收算法的特性需求 / 714
5.4.3 QPSK解调总体设计 / 715
5.4.4 QPSK解调载波恢复电路 / 715
5.4.5 QPSK符号时钟同步电路 / 723
5.4.6 QPSK解调辅助电路 / 728
5.5 DVB-S信道接收机设计实例 / 729
5.5.1 信号命名规范与约定 / 729
5.5.2 QPSK数字解调器的整体结构 / 730
5.5.3 QPSK内部共用模块的电路设计 / 731
5.5.4 载波恢复模块的电路设计 / 739
5.5.5 符号同步电路 / 745
5.6 DVB-S信道编解码设计实例 / 750
5.6.1 信道编解码的整体流程 / 751
5.6.2 Viterbi译码 / 752
5.6.3 帧同步 / 760
5.6.4 解交织 / 764
5.6.5 RS译码 / 765
5.6.6 解扰及同步 / 772
附录A DVB-S系统解调的算法推导 / 773
附录B GF(28)RS运算表 / 782
附录C 通信解调芯片的简化设计实例 / 786
总结 / 788第6章 多载波通信芯片设计 / 789
6.1 OFDM设计思想与通用解调过程 / 790
6.1.1 OFDM的技术特点 / 790
6.1.2 OFDM的基本原理 / 793
6.1.3 OFDM的解调套路 / 793
6.2 MIMO技术 / 796
6.2.1 MIMO系统原理 / 797
6.2.2 MIMO中的空时编码 / 798
6.2.3 MIMO与OFDM的结合 / 799
6.2.4 LTE中的MIMO / 800
6.2.5 LTE中MIMO的简单解调套路 / 801
6.2.6 超越MIMO:非正交多址 / 802
6.3 WiFi的基础知识 / 804
6.3.1 802.11系列标准 / 806
6.3.2 802.11的几个关键概念 / 808
6.3.3 802.11的通信模型 / 812
6.4 802.11a发射机设计 / 814
6.4.1 802.11a的技术参数概述 / 814
6.4.2 802.11a的帧结构 / 817
6.4.3 802.11a的发送流程 / 819
6.4.4 802.11a发射机的实现原理 / 820
6.4.5 802.11a发射机的Matlab实现 / 832
6.4.6 802.11a发射机的Verilog实现 / 836
6.5 802.11a接收机设计 / 837
6.5.1 802.11a接收机的适用范围 / 837
6.5.2 802.11a接收机的整体概述 / 838
6.5.3 802.11a接收机的算法原理概述 / 843
6.5.4 802.11a接收机的模块设计 / 851
6.5.5 802.11a接收机中用到的一些查表模块 / 873
6.6 802.11b发射机设计 / 877
6.6.1 802.11b的帧结构 / 878
6.6.2 802.11b发射内容归纳 / 879
6.6.3 802.11b的标准发射过程 / 879
6.6.4 802.11b发射数据产生 / 881
6.6.5 802.11b发射机的硬件详细设计 / 889
6.7 802.11b接收机设计 / 891
6.7.1 802.11b接收机概述 / 891
6.7.2 802.11b接收机的算法原理 / 891
6.7.3 802.11b接收机的接收流程 / 892
6.7.4 802.11b接收机的信号处理小结 / 901
6.7.5 802.11b接收机的实际硬件实现 / 901
6.7.6 802.11b接收机的部分通用模块设计 / 924
6.8 完整的802.11a/b/g芯片设计案例 / 927
6.8.1 802.11a/b/g系统设计 / 927
6.8.2 802.11g接收机前端的信号处理模块 / 931
6.8.3 802.11g接收机前端的控制处理模块 / 953
6.8.4 802.11g发射机前端的信号处理模块 / 959
6.8.5 802.11g芯片的一些附加模块 / 972
6.9 802.11技术新的发展 / 973
6.9.1 802.11系列的发展脉络 / 973
6.9.2 802.11n关键技术概述 / 978
6.9.3 802.11n的帧格式 / 981
6.9.4 802.11ac的物理层 / 988
6.9.5 802.11ac的发射机 / 990
6.9.6 802.11ac新特性 / 997
6.9.7 802.11ah:802.11的物联网标准 / 1001
6.9.8 802.11的全双工传输技术 / 1007
6.9.9 802.11n商业芯片示例 / 1011
附录A 802.11b接收机的理论基础 / 1012
附录B 802.11a/g接收机算法的Matlab代码概述 / 1021
总结 / 1031第7章 复杂通信系统设计 / 1032
7.1 大型通信系统简介 / 1033
7.1.1 概述 / 1033
7.1.2 公网系统的演进 / 1033
7.1.3 大型通信系统的特点 / 1034
7.2 LTE系统简介 / 1043
7.2.1 LTE系统构架 / 1044
7.2.2 LTE物理层 / 1046
7.2.3 LTE的关键技术 / 1066
7.2.4 LTE的一些浅显描述 / 1071
7.3 LTE的物理层过程及关键算法 / 1073
7.3.1 上行共享信道(PUSCH) / 1073
7.3.2 上行控制信道(PUCCH) / 1076
7.3.3 随机接入信道(PRACH) / 1080
7.3.4 下行共享信道(PDSCH) / 1085
7.3.5 下行控制信道(PDCCH) / 1087
7.3.6 下行PBCH / 1094
7.3.7 PHICH / 1095
7.3.8 PCFICH / 1096
7.3.9 SRS过程 / 1097
7.3.10 上行信道的功率控制 / 1098
7.3.11 HARQ重传 / 1101
7.3.12 终端对物理层的处理 / 1105
7.3.13 基站对物理层的处理 / 1106
7.3.14 其他算法 / 1109
7.4 LTE系统开发的简要说明 / 1116
7.4.1 复杂通信系统的几个基本概念 / 1116
7.4.2 LTE的软件框架 / 1118
7.4.3 LTE高层算法 / 1119
7.4.4 LTE芯片概述 / 1122
7.5 LTE基站芯片设计 / 1124
7.5.1 LTE基站基带芯片的需求分析 / 1124
7.5.2 LTE基站芯片的参考构架 / 1130
7.5.3 LTE基带芯片的设计参考 / 1136
7.5.4 基于ESL的LTE基站芯片开发案例 / 1142
7.6 基于FPGA的LTE基带方案 / 1152
7.6.1 基站基带模块在LTE系统中的位置 / 1152
7.6.2 基站基带模块的硬件架构 / 1153
7.6.3 基带软件到硬件的映射 / 1153
7.6.4 FPGA功能设计 / 1155
7.7 LTE典型基站产品的内部结构解析 / 1161
7.7.1 研究LTE基站产品的目的 / 1161
7.7.2 基站的内部结构 / 1162
7.7.3 主板主要器件分析 / 1162
7.7.4 对基站芯片/FPGA开发的启示 / 1164
7.8 5G系统展望 / 1165
7.8.1 5G的愿景 / 1165
7.8.2 5G整体开发思路 / 1166
7.8.3 5G网络架构 / 1166
7.8.4 5G的核心技术 / 1168
总结 / 1175
缩略语 / 1176
参考文献 / 1178