书籍详情
从算法到电路:数字芯片算法的电路实现

作者:白栎旸
出版社:机械工业出版社
出版时间:2024-08-01
ISBN:9787111760788
定价:¥119.00
购买这本书可以去
内容简介
这是一本深入解读基础算法及其电路设计,以打通算法研发到数字IC设计的实现屏障,以及指导芯片设计工程师从底层掌握复杂电路设计与优化方法为目标的专业技术书。任何芯片(如WiFi芯片、5G芯片、AI芯片、多媒体处理芯片等)都是由四则运算器、滤波器、特殊信号发生器等基本算法电路构成的,熟练掌握这些基本算法电路是实现复杂算法电路的基础。忽视基本算法及其电路设计而谈论复杂算法电路,无异于痴人说梦。本书力求从算法、芯片设计、软件开发等多个角度解读基础算法电路的设计,涵盖了溢出保护、有符号运算、浮点运算、位宽确定等运算电路基础知识,以及除法器、信号发生器、滤波器、小数分频器等常用基本算法电路的Matlab建模和RTL设计,可帮助数字IC设计者掌握常用算法设计思路、工具和流程,从根本上提高设计基本算法电路和复杂算法电路的能力。本书共分为12章。第1 ~ 2章介绍算法和芯片设计的基础知识,包括算法与芯片设计的关系,芯片设计人员掌握算法知识的必要性,以及位宽确定、有符号数处理、浮点数运算、溢出保护和四舍五入等算法的实现。第3 ~ 11章 重点介绍各种典型基本算法的电路设计,其中包括任何数字内容简介这是一本深入解读基础算法及其电路设计,以打通算法研发到数字IC设计的实现屏障,以及指导芯片设计工程师从底层掌握复杂电路设计与优化方法为目标的专业技术书。任何芯片(如WiFi芯片、5G芯片、AI芯片、多媒体处理芯片等)都是由四则运算器、滤波器、特殊信号发生器等基本算法电路构成的,熟练掌握这些基本算法电路是实现复杂算法电路的基础。忽视基本算法及其电路设计而谈论复杂算法电路,无异于痴人说梦。本书力求从算法、芯片设计、软件开发等多个角度解读基础算法电路的设计,涵盖了溢出保护、有符号运算、浮点运算、位宽确定等运算电路基础知识,以及除法器、信号发生器、滤波器、小数分频器等常用基本算法电路的Matlab建模和RTL设计,可帮助数字IC设计者掌握常用算法设计思路、工具和流程,从根本上提高设计基本算法电路和复杂算法电路的能力。本书共分为12章。第1 ~ 2章介绍算法和芯片设计的基础知识,包括算法与芯片设计的关系,芯片设计人员掌握算法知识的必要性,以及位宽确定、有符号数处理、浮点数运算、溢出保护和四舍五入等算法的实现。第3 ~ 11章重点介绍各种典型基本算法的电路设计,其中包括任何数字芯片都必不可少的乘法器和除法器设计,在不同专业芯片领域有着广泛应用的数字信号发生器、复数求模求角度运算器、普通滤波器、ΣΔADC中使用的抽取滤波器、基于ΣΔ结构实现的小数倍分频器、CRC校验器等。每个电路均给出了算法的浮点建模、定点建模、RTL以及TestBench仿真文件,并在理论上对ADC、频率、滤波器以及电路结构拓扑进行深入解读。部分电路给出了多种可选设计,并在面积和时序等方面进行了优缺点分析。第12章介绍IEEE754浮点运算单元的设计,专为满足具备标准协议格式的浮点运算核开发需求。其中涉及算法的内容较少,重点介绍协议实现、集成和应用。基于这一章设计得到的电路既可作为SoC芯片中的可编程浮点运算加速器,也可作为专用芯片的浮点运算硬核。
作者简介
白栎旸厦大通信系硕士,芯片设计与算法工程师,某知名企业WiFi芯片算法负责人。先后供职于多家知名芯片公司和创业团队,从事数字电路架构和算法设计工作。具有丰富的数字IC设计经验和算法研发经验,长期与模拟设计团队联合设计数模混合电路,擅长射频电路相关数字校准算法设计以及SoC芯片的架构设计。主持研发的芯片累积产量已达上亿颗。作为第一发明人获授国家发明专利4项。著有《数字IC设计入门》等专业技术图书。
目录
目 录
序
前言
第1章 芯片算法与数字电路设计 1
1.1 芯片研发的流程 1
1.1.1 芯片公司的分类 1
1.1.2 芯片设计流程 2
1.2 芯片数字电路设计与算法的关系 4
1.2.1 预研阶段 4
1.2.2 系统架构确定阶段 5
1.2.3 实际电路设计阶段 5
1.3 芯片验证与算法的关系 6
1.3.1 普通验证 6
1.3.2 算法验证 6
1.4 算法工具和数字开发工具 7
1.5 数字开发工程师掌握算法知识的必要性 8
1.5.1 算法的具象化 8
1.5.2 算法的定点化 8
第2章 数字电路设计的算法基础 10
2.1 电路中有符号数的表示 10
2.1.1 无符号的信号对应的实体电路 10
2.1.2 有符号的信号对应的实体电路 11
2.1.3 补码罗盘 12
2.1.4 补码的优势 12
2.2 信号位宽 13
2.2.1 无符号整数信号的位宽 13
2.2.2 无符号浮点信号的位宽 13
2.2.3 有符号信号的位宽 14
2.2.4 特殊取值范围的位宽处理 14
2.2.5 MSB和LSB 14
2.2.6 信号的范围和精度 15
2.2.7 信号变化范围的确定 15
2.2.8 运算结果的位宽 16
2.3 溢出保护 19
2.3.1 什么是溢出 19
2.3.2 是否需要溢出保护 19
2.3.3 无符号信号的溢出保护 20
2.3.4 有符号信号的溢出保护 22
2.4 截位与四舍五入 24
2.4.1 截位的数学本质 24
2.4.2 四舍五入的设计方法 25
2.5 浮点数在电路中的定点化 27
2.6 signed声明和注意事项 28
2.7 从算法到RTL实现的转化流程 32
第3章 加法电路设计 33
3.1 实现加法器的方法 33
3.2 全加器的实现 34
3.3 超前进位加法器的实现 37
3.4 逻辑优化和面积对比 39
3.5 浮点数加法的电路实现 40
3.6 有符号数加法的电路实现 45
第4章 乘法电路设计 48
4.1 用综合器实现乘法电路 48
4.2 基于加法迭代的乘法电路 53
4.3 基于CORDIC的乘法电路 63
4.3.1 CORDIC原理 64
4.3.2 线性坐标系对CORDIC通式的简化 72
4.3.3 线性坐标系旋转模式下的CORDIC运算 73
4.3.4 算法建模 74
4.3.5 电路实现 80
4.4 不同实现方式的面积与性能比较 85
4.5 浮点乘法的电路实现 85
4.6 有符号数乘法的电路实现 88
第5章 除法电路设计 91
5.1 用综合器实现除法电路 92
5.2 线性迭代除法电路 97
5.2.1 算法建模 97
5.2.2 电路实现 105
5.3 基于CORDIC的除法电路 112
5.3.1 线性坐标系向量模式下的CORDIC运算 112
5.3.2 算法建模 113
5.3.3 电路实现 120
5.4 不同实现方式的面积与性能比较 123
5.5 复数除法电路 125
5.5.1 复数的原理和应用 125
5.5.2 复数除法方案 126
5.5.3 电路实现 127
第6章 常用数字信号处理电路设计 131
6.1 基于CORDIC的正余弦波发生器 131
6.1.1 圆坐标系对CORDIC通式的简化 131
6.1.2 圆坐标系旋转模式下的CORDIC运算 132
6.1.3 算法建模 133
6.1.4 电路实现 142
6.2 基于查表法的正余弦波发生器 147
6.2.1 查表法的优缺点 147
6.2.2 查表数据的构造以及用脚本生成Verilog格式的方法 148
6.2.3 查表法结构设计 151
6.2.4 查表法与CORDIC法的面积对比 153
6.2.5 查表法对算法电路设计的启示 154
6.3 反正切运算电路 155
6.3.1 圆坐标系向量模式下的CORDIC运算 155
6.3.2 算法建模 156
6.3.3 电路实现 161
6.4 复数求模电路 162
6.4.1 算法原理 162
6.4.2 算法建模 163
6.4.3 电路实现 170
第7章 滤波器基础概念 174
7.1 频率和相位 174
7.2 信息的传递方式 178
7.3 带宽 183
7.4 滤波器的作用 185
7.5 滤波器的功能类型 186
7.6 滤波器关注的指标 186
7.7 滤波器的响应特性 188
7.8 滤波器的结构类型 190
7.9 FIR滤波器的结构 191
7.10 系统函数 193
7.11 一拍延迟对应的Z变换 194
7.12 在已知频域响应的前提下求FIR的抽头系数 195
7.13 相移滤波和频谱奇对称 196
7.14 频谱复制情况下的抽头 201
7.15 使用频域扫描方式获取滤波器抽头的应用场景 202
第8章 滤波器电路设计 203
8.1 低通滤波器 203
8.1.1 滤波器设计工具 203
8.1.2 设计命题说明 209
8.1.3 抽头个数和数值的确定 210
8.1.4 自动生成滤波器电路 213
8.1.5 手工编写滤波器电路 215
8.1.6 低通滤波器的验证 219
8.2 高通滤波器 223
8.2.1 抽头个数和数值的确定 223
8.2.2 电路实现与验证 224
第9章 ΣΔADC电路设计 226
9.1 ADC概述 226
9.1.1 ADC的本质 226
9.1.2 ADC的性能指标 227
9.1.3 ADC的参考电压 230
9.1.4 ADC的符号 232
9.2 ΣΔADC的组成 232
9.3 简单ΣΔ结构及其特征 233
9.4 复杂ΣΔ结构 239
9.4.1 高阶噪声滤波与一阶噪声滤波的性能比较 239
9.4.2 Mash1-1-1结构 240
9.4.3 Mash2-1-1结构 241
9.4.4 ΣΔ结构的算法建模 243
9.5 抽取滤波器概述 249
9.6 题设 253
9.7 滤波器的性能指标 254
9.8 CIC滤波器 255
9.8.1 滤波器结构 255
9.8.2 算法建模 256
9.8.3 电路实现 259
9.9 CIC补偿滤波器 263
9.9.1 算法建模 263
9.9.2 电路实现 265
9.10 半带滤波器 268
9.10.1 算法建模 268
9.10.2 电路实现 272
9.11 用CSD方法进行抽头乘法运算 279
9.12 抽取滤波的整体效果 279
第10章 锁相环小数倍分频器的电路设计 286
10.1 锁相环的基本结构 286
10.2 对ΣΔ结构的改进 287
10.3 电路实现与验证 289
第11章 CRC校验电路设计 298
11.1 校验技术概述 298
11.2 CRC校验原理 300
11.3 常用的生成多项式 302
11.4 用MATLAB计算CRC校验 信息 303
11.5 CRC的电路实现 304
11.6 CRC电路实现与CRC原理 310
11.7 校准结果的验收 311
11.8 CRC的应用 313
第12章 IEEE754浮点运算单元的设计 314
12.1 用数字硬件实现IEEE754浮点运算的意义 314
12.2 IEEE754的协议格式 315
12.3 IEEE754表示法中的特例 316
12.3.1 表示0的方法 316
12.3.2 表示无穷大的方法 317
12.4 IEEE754浮点运算单元的结构 317
12.5 IEEE754解析器的设计 319
12.6 加减法处理单元的设计 320
12.7 乘法处理单元的设计 327
12.8 除法处理单元的设计 330
12.9 乘除法结构的改进措施 333
12.10 APB接口设计 334
12.11 模块顶层设计 337
12.12 浮点运算单元的软件验证和性能对比 338
序
前言
第1章 芯片算法与数字电路设计 1
1.1 芯片研发的流程 1
1.1.1 芯片公司的分类 1
1.1.2 芯片设计流程 2
1.2 芯片数字电路设计与算法的关系 4
1.2.1 预研阶段 4
1.2.2 系统架构确定阶段 5
1.2.3 实际电路设计阶段 5
1.3 芯片验证与算法的关系 6
1.3.1 普通验证 6
1.3.2 算法验证 6
1.4 算法工具和数字开发工具 7
1.5 数字开发工程师掌握算法知识的必要性 8
1.5.1 算法的具象化 8
1.5.2 算法的定点化 8
第2章 数字电路设计的算法基础 10
2.1 电路中有符号数的表示 10
2.1.1 无符号的信号对应的实体电路 10
2.1.2 有符号的信号对应的实体电路 11
2.1.3 补码罗盘 12
2.1.4 补码的优势 12
2.2 信号位宽 13
2.2.1 无符号整数信号的位宽 13
2.2.2 无符号浮点信号的位宽 13
2.2.3 有符号信号的位宽 14
2.2.4 特殊取值范围的位宽处理 14
2.2.5 MSB和LSB 14
2.2.6 信号的范围和精度 15
2.2.7 信号变化范围的确定 15
2.2.8 运算结果的位宽 16
2.3 溢出保护 19
2.3.1 什么是溢出 19
2.3.2 是否需要溢出保护 19
2.3.3 无符号信号的溢出保护 20
2.3.4 有符号信号的溢出保护 22
2.4 截位与四舍五入 24
2.4.1 截位的数学本质 24
2.4.2 四舍五入的设计方法 25
2.5 浮点数在电路中的定点化 27
2.6 signed声明和注意事项 28
2.7 从算法到RTL实现的转化流程 32
第3章 加法电路设计 33
3.1 实现加法器的方法 33
3.2 全加器的实现 34
3.3 超前进位加法器的实现 37
3.4 逻辑优化和面积对比 39
3.5 浮点数加法的电路实现 40
3.6 有符号数加法的电路实现 45
第4章 乘法电路设计 48
4.1 用综合器实现乘法电路 48
4.2 基于加法迭代的乘法电路 53
4.3 基于CORDIC的乘法电路 63
4.3.1 CORDIC原理 64
4.3.2 线性坐标系对CORDIC通式的简化 72
4.3.3 线性坐标系旋转模式下的CORDIC运算 73
4.3.4 算法建模 74
4.3.5 电路实现 80
4.4 不同实现方式的面积与性能比较 85
4.5 浮点乘法的电路实现 85
4.6 有符号数乘法的电路实现 88
第5章 除法电路设计 91
5.1 用综合器实现除法电路 92
5.2 线性迭代除法电路 97
5.2.1 算法建模 97
5.2.2 电路实现 105
5.3 基于CORDIC的除法电路 112
5.3.1 线性坐标系向量模式下的CORDIC运算 112
5.3.2 算法建模 113
5.3.3 电路实现 120
5.4 不同实现方式的面积与性能比较 123
5.5 复数除法电路 125
5.5.1 复数的原理和应用 125
5.5.2 复数除法方案 126
5.5.3 电路实现 127
第6章 常用数字信号处理电路设计 131
6.1 基于CORDIC的正余弦波发生器 131
6.1.1 圆坐标系对CORDIC通式的简化 131
6.1.2 圆坐标系旋转模式下的CORDIC运算 132
6.1.3 算法建模 133
6.1.4 电路实现 142
6.2 基于查表法的正余弦波发生器 147
6.2.1 查表法的优缺点 147
6.2.2 查表数据的构造以及用脚本生成Verilog格式的方法 148
6.2.3 查表法结构设计 151
6.2.4 查表法与CORDIC法的面积对比 153
6.2.5 查表法对算法电路设计的启示 154
6.3 反正切运算电路 155
6.3.1 圆坐标系向量模式下的CORDIC运算 155
6.3.2 算法建模 156
6.3.3 电路实现 161
6.4 复数求模电路 162
6.4.1 算法原理 162
6.4.2 算法建模 163
6.4.3 电路实现 170
第7章 滤波器基础概念 174
7.1 频率和相位 174
7.2 信息的传递方式 178
7.3 带宽 183
7.4 滤波器的作用 185
7.5 滤波器的功能类型 186
7.6 滤波器关注的指标 186
7.7 滤波器的响应特性 188
7.8 滤波器的结构类型 190
7.9 FIR滤波器的结构 191
7.10 系统函数 193
7.11 一拍延迟对应的Z变换 194
7.12 在已知频域响应的前提下求FIR的抽头系数 195
7.13 相移滤波和频谱奇对称 196
7.14 频谱复制情况下的抽头 201
7.15 使用频域扫描方式获取滤波器抽头的应用场景 202
第8章 滤波器电路设计 203
8.1 低通滤波器 203
8.1.1 滤波器设计工具 203
8.1.2 设计命题说明 209
8.1.3 抽头个数和数值的确定 210
8.1.4 自动生成滤波器电路 213
8.1.5 手工编写滤波器电路 215
8.1.6 低通滤波器的验证 219
8.2 高通滤波器 223
8.2.1 抽头个数和数值的确定 223
8.2.2 电路实现与验证 224
第9章 ΣΔADC电路设计 226
9.1 ADC概述 226
9.1.1 ADC的本质 226
9.1.2 ADC的性能指标 227
9.1.3 ADC的参考电压 230
9.1.4 ADC的符号 232
9.2 ΣΔADC的组成 232
9.3 简单ΣΔ结构及其特征 233
9.4 复杂ΣΔ结构 239
9.4.1 高阶噪声滤波与一阶噪声滤波的性能比较 239
9.4.2 Mash1-1-1结构 240
9.4.3 Mash2-1-1结构 241
9.4.4 ΣΔ结构的算法建模 243
9.5 抽取滤波器概述 249
9.6 题设 253
9.7 滤波器的性能指标 254
9.8 CIC滤波器 255
9.8.1 滤波器结构 255
9.8.2 算法建模 256
9.8.3 电路实现 259
9.9 CIC补偿滤波器 263
9.9.1 算法建模 263
9.9.2 电路实现 265
9.10 半带滤波器 268
9.10.1 算法建模 268
9.10.2 电路实现 272
9.11 用CSD方法进行抽头乘法运算 279
9.12 抽取滤波的整体效果 279
第10章 锁相环小数倍分频器的电路设计 286
10.1 锁相环的基本结构 286
10.2 对ΣΔ结构的改进 287
10.3 电路实现与验证 289
第11章 CRC校验电路设计 298
11.1 校验技术概述 298
11.2 CRC校验原理 300
11.3 常用的生成多项式 302
11.4 用MATLAB计算CRC校验 信息 303
11.5 CRC的电路实现 304
11.6 CRC电路实现与CRC原理 310
11.7 校准结果的验收 311
11.8 CRC的应用 313
第12章 IEEE754浮点运算单元的设计 314
12.1 用数字硬件实现IEEE754浮点运算的意义 314
12.2 IEEE754的协议格式 315
12.3 IEEE754表示法中的特例 316
12.3.1 表示0的方法 316
12.3.2 表示无穷大的方法 317
12.4 IEEE754浮点运算单元的结构 317
12.5 IEEE754解析器的设计 319
12.6 加减法处理单元的设计 320
12.7 乘法处理单元的设计 327
12.8 除法处理单元的设计 330
12.9 乘除法结构的改进措施 333
12.10 APB接口设计 334
12.11 模块顶层设计 337
12.12 浮点运算单元的软件验证和性能对比 338
猜您喜欢



