内容简介
本书系统介绍了超大规模集成电路(VLSI)与嵌入式系统的设计与应用。全书共分为4个部分:第1部分主要介绍决策图(DD),DD广泛使用计算机辅助设计(CAD)软件进行综合电路和形式验证;第2部分主要涵盖多值电路的设计架构,多值电路能够改进当前的VLSI设计;第3部分涉及可编程逻辑器件(PLD),PLD可以被编程,用于在单个芯片中为VLSI和嵌入式系统整合复杂的逻辑函数。第4部分集中介绍用于嵌入式系统的数字电路设计架构,最后还结合大量实例介绍VLSI与嵌入式系统的应用。
本书适合从事超大规模集成电路与嵌入式系统设计及应用的从业者,也可供院校集成电路相关专业师生学习参考。
目录
缩略语
第1部分 决策图 001
第1章 共享多端二元决策图 003
1.1 引言 003
1.2 预备知识 004
1.3 SMTBDD(k ) 的一个优化算法 008
1.3.1 权重计算程序 009
1.3.2 SMTBDD(3) 的优化 011
1.4 小结 011
参考文献 012
第2章 多输出函数 014
2.1 引言 014
2.2 多输出函数的二元决策图 015
2.2.1 共享二元决策图和多端二元决策图 016
2.2.2 用于特征函数的二元决策图 016
2.2.3 各种二元决策图的比较 019
2.3 紧凑型BDD for CF 的构造 019
2.3.1 问题描述 020
2.3.2 输出变量的排序 020
2.3.3 基于交错采样方案的输入变量排序 021
2.3.4 输入变量和输出变量的交错 022
2.3.5 变量排序算法 024
2.4 小结 024
参考文献 024
第3章 多输出函数的共享多值决策图 026
3.1 引言 026
3.2 决策图 027
3.2.1 二元决策图 027
3.2.2 多值决策图 027
3.3 紧凑型SMDD 的构造 029
3.3.1 二进制输入变量的配对 029
3.3.2 输入变量的排序 032
3.4 小结 033
参考文献 033
第4章 多值决策图最小化的启发式算法 035
4.1 引言 035
4.2 基本性质 036
4.3 多值决策图 037
4.4 多值决策图的最小化 040
4.4.1 二值输入的配对 040
4.4.2 多值变量的排序 041
4.5 小结 043
参考文献 043
第5章 多输出函数的时分复用实现——基于共享多端多值决策图 045
5.1 引言 045
5.2 多输出函数的决策图 045
5.2.1 共享二元决策图 046
5.2.2 共享多值决策图 047
5.2.3 共享多端多值决策图 047
5.3 时分复用实现 049
5.3.1 基于SBDD 的TDM 实现 049
5.3.2 基于SMDD 的TDM 实现 050
5.3.3 基于SMTMDD 的TDM 实现 050
5.3.4 TDM 实现的比较 052
5.4 SMTMDD 的精简 052
5.5 决策图大小的上限 053
5.6 小结 053
参考文献 053
第6章 多输出开关函数——基于多值伪克罗内克决策图 055
6.1 引言 055
6.2 定义和基本性质 057
6.3 伪克罗内克决策图 057
6.3.1 二值伪克罗内克决策图 058
6.3.2 多值伪克罗内克决策图 058
6.4 四值伪克罗内克决策图的优化 058
6.4.1 二值输入变量的配对 058
6.4.2 四值变量的排序 060
6.4.3 展开的选择 061
6.5 小结 062
参考文献 063
第2部分 多值电路设计架构 064
第7章 多值触发器——基于传输管逻辑 066
7.1 引言 066
7.1.1 传输管逻辑实现多值触发器 066
7.1.2 传输管逻辑实现带二进制编译码的多值触发器 067
7.2 无二进制编译码的多值触发器 068
7.2.1 传输管和阈值门的特性 069
7.2.2 用阈值门实现多值逆变器 070
7.2.3 用多值传输管逻辑实现多值触发器 071
7.3 小结 073
参考文献 073
第8章 多值多输出逻辑电路——基于电压模式传输管 074
8.1 引言 074
8.2 基本定义和术语 075
8.3 方法 075
8.3.1 二进制逻辑函数到多值逻辑函数的转换 075
8.3.2 函数的配对 077
8.3.3 输出阶段 077
8.4 小结 080
参考文献 081
第9章 多值输入二值输出函数 082
9.1 引言 082
9.2 基本定义 083
9.3 二值变量转换为多值变量 084
9.4 小结 092
参考文献 093
第10章 数字模糊运算——基于多值Fredkin 门 094
10.1 引言 094
10.2 可逆逻辑 095
10.2.1 可逆门和经典数字逻辑 095
10.2.2 多值Fredkin 门 096
10.3 模糊集与模糊关系 097
10.4 电路 100
10.4.1 多值Fredkin 门模糊运算 100
10.4.2 用于组合模糊关系的脉动阵列结构 101
10.5 小结 102
参考文献 102
第11章 基于查找表的多值多输出逻辑表达式 104
11.1 引言 104
11.2 基本定义和性质 104
11.2.1 乘积项 105
11.2.2 最小乘积和 105
11.2.3 使用Kleenean 系数的多值逻辑乘积和表达式 105
11.3 方法 106
11.3.1 支撑集矩阵 106
11.3.2 配对支撑集矩阵 107
11.4 基于Kleenean 系数的多值多输出函数最小化算法 108
11.5 基于电流模式CMOS 实现多值多输出函数 110
11.6 小结 112
参考文献 112
第3部分 可编程逻辑器件 113
第12章 基于查找表的神经网络矩阵乘法 116
12.1 引言 116
12.2 基本定义 116
12.3 方法 117
12.4 小结 121
参考文献 121
第13章 基于传输管逻辑的易测试可编程逻辑阵列 123
13.1 引言 123
13.2 乘积线分组 123
13.3 设计 124
13.4 乘积线分组技术 126
13.5 小结 127
参考文献 128
第14章 译码PLA 输入分配的遗传算法 129
14.1 译码器简介 129
14.2 译码PLA 132
14.3 基本定义 134
14.4 遗传算法 134
14.4.1 遗传算法术语 135
14.4.2 简单遗传算法 136
14.4.3 稳态遗传算法 136
14.5 遗传算子 138
14.5.1 选择 138
14.5.2 交叉 139
14.5.3 突变 139
14.5.4 反演 140
14.6 译码PLA 的遗传算法 141
14.6.1 问题编码 141
14.6.2 适应度函数 141
14.6.3 改进的遗传算法 142
14.6.4 译码与- 异或PLA 实现 143
14.7 小结 143
参考文献 144
第15章 基于FPGA 的乘法器——采用LUT 合并定理 145
15.1 引言 145
15.2 LUT 合并定理 146
15.3 采用LUT 合并定理的乘法器电路 146
15.4 小结 153
参考文献 153
第16章 基于LUT 的BCD 加法器 154
16.1 引言 154
16.2 基于LUT 的BCD 加法器的设计 154
16.2.1 并行BCD 加法 155
16.2.2 用LUT 实现并行BCD 加法器电路 159
16.3 小结 161
参考文献 161
第17章 FPGA 布局布线算法 163
17.1 引言 163
17.2 布局和布线 164
17.3 模块划分算法 164
17.4 Kernighan-Lin 算法 164
17.4.1 K-L 算法原理 165
17.4.2 K-L 算法实现 165
17.4.3 K-L 算法步骤 166
17.5 小结 167
参考文献 167
第18章 基于LUT 的BCD 乘法器 169
18.1 引言 169
18.2 基本性质 171
18.3 算法 173
18.3.1 BCD 乘法思想 174
18.3.2 LUT 架构 175
18.4 基于LUT 的BCD 乘法器设计 179
18.5 小结 183
参考文献 183
第19章 基于鸽笼原理的LUT 矩阵乘法器电路 185
19.1 引言 185
19.2 基本定义 188
19.2.1 二进制乘法 188
19.2.2 矩阵乘法 189
19.2.3 BCD 编码 189
19.2.4 BCD 加法 190
19.2.5 二进制到BCD 转换 191
19.2.6 鸽笼原理 191
19.2.7 现场可编程门阵列 192
19.2.8 查找表 193
19.2.9 基于LUT 的加法器 194
19.2.10 BCD 加法器 195
19.2.11 比较器 197
19.2.12 移位寄存器 197
19.2.13 字面量成本 198
19.2.14 门输入成本 199
19.2.15 Xilinx Virtex-6 FPGA Slice 200
19.3 矩阵乘法器 200
19.3.1 一种高效的矩阵乘法 200
19.3.2 矩阵乘法算法 213
19.3.3 高性价比的矩阵乘法器电路 217
19.4 小结 225
参考文献 226
第20章 BCD 加法器——使用基于LUT 的FPGA 229
20.1 引言 229
20.2 基于LUT 的BCD 加法器 230
20.2.1 BCD 加法 230
20.2.2 LUT 架构 232
20.3 使用LUT 的BCD 加法器电路 236
20.4 小结 237
参考文献 237
第21章 通用复杂可编程逻辑器件(CPLD)电路板 239
21.1 引言 239
21.2 硬件设计与开发 240
21.2.1 DC-DC 转换器 240
21.2.2 JTAG 接口 241
21.2.3 LED 接口 241
21.2.4 时钟电路 241
21.2.5 CPLD 241
21.2.6 七段显示器 243
21.2.7 输入/ 输出连接器 243
21.3 CPLD 内部硬件设计 243
21.3.1 A5/1 算法 243
21.3.2 七段显示驱动器 244
21.3.3 8 位二进制计数器 244
21.4 应用 246
21.5 小结 246
参考文献 246
第22章 基于FPGA 的可编程逻辑控制器(PLC) 248
22.1 引言 248
22.2 PLC 中的FPGA 技术 249
22.3 PLC 系统设计流程 250
22.3.1 梯形图程序结构 250
22.3.2 PLC 的运行模式 251
22.3.3 梯形图扫描 251
22.3.4 梯形图执行 251
22.3.5 系统实现 252
22.4 设计约束 253
22.5 小结 254
参考文献 254
第4部分 数字电路设计架构 256
第23章 除法器电路设计——基于商和部分余数的并行计算 258
23.1 引言 258
23.2 基本定义 262
23.2.1 除法运算 262
23.2.2 移位寄存器 263
23.2.3 补码逻辑 266
23.2.4 比较器 266
23.2.5 加法器 267
23.2.6 减法器 268
23.2.7 查找表 270
23.2.8 计数器电路 270
23.2.9 可逆逻辑和容错逻辑 272
23.3 方法学 272
23.3.1 除法算法 272
23.3.2 基于ASIC 的电路 277
23.3.3 基于LUT 的电路 296
23.4 小结 307
参考文献 308
第24章 TANT 网络的布尔函数综合 310
24.1 引言 310
24.2 TANT 最小化 310
24.3 TANT 最小化的推荐方法 312
24.4 不同阶段使用的算法 314
24.5 小结 315
参考文献 316
第25章 基于神经网络的非对称高基有符号数加法器 317
25.1 基本定义 318
25.1.1 神经网络 318
25.1.2 非对称数系统 318
25.1.3 二进制到非对称数系统的转换 318
25.1.4 AHSD4 数字系统的加法 319
25.2 基于神经网络的加法器设计 320
25.3 基5 非对称高基有符号数加法 321
25.4 小结 321
参考文献 321
第26章 SoC 测试自动化集成框架——基于矩形装箱的包装器/TAM 协同优化与约束测试调度 322
26.1 引言 322
26.2 包装器设计 323
26.3 TAM 设计及测试调度 324
26.4 功率约束测试调度 326
26.4.1 数据结构 326
26.4.2 矩形结构 327
26.4.3 对角线长度计算 328
26.4.4 TAM 任务分配 329
26.5 小结 330
参考文献 330
第27章 基于忆阻器的SRAM 331
27.1 引言 331
27.2 忆阻器特性 332
27.3 忆阻器作为开关 334
27.4 忆阻器工作原理 334
27.5 忆阻SRAM 335
27.6 小结 336
参考文献 337
第28章 微处理器设计的容错方法 338
28.1 引言 338
28.1.1 设计故障 338
28.1.2 制造缺陷 339
28.1.3 运行故障 339
28.2 动态验证 340
28.2.1 系统架构 341
28.2.2 检查处理器架构 342
28.3 物理设计 344
28.4 附加故障覆盖率的设计改进 345
28.4.1 运行错误 345
28.4.2 制造错误 347
28.5 小结 348
参考文献 348
第29章 超大规模集成电路与嵌入式系统的应用 350
29.1 超大规模集成电路应用 350
29.1.1 工业厂房中的自主机器人 351
29.1.2 制造业中的机器 351
29.1.3 用于质量控制的智能视觉技术 353
29.1.4 确保安全的可穿戴设备 354
29.1.5 使用CPU 进行计算 354
29.1.6 片上系统 355
29.1.7 前沿AI 处理 356
29.1.8 5G 网络中的VLSI 356
29.1.9 模糊逻辑和决策图 357
29.2 嵌入式系统应用 358
29.2.1 用于路灯控制的嵌入式系统 358
29.2.2 用于工业温度控制的嵌入式系统 358
29.2.3 用于交通信号控制的嵌入式系统 358
29.2.4 用于车辆定位的嵌入式系统 359
29.2.5 用于战地侦察机器人的嵌入式系统 359
29.2.6 自动售货机 359
29.2.7 机械臂调节器 359
29.2.8 路由器和交换机 359
29.2.9 工业FPGA 360
29.2.10 工业PLC 361
29.3 小结 361
参考文献 362
结束语 364
作者简介 366
前言/序言
原书前言
超大规模集成是微芯片处理器、集成电路和组件设计中应用最广泛的技术之一。最初设计的微芯片仅集成数千个晶体管,今天超过了数十亿个晶体管。所有这些晶体管都被极度集成并嵌入到一个微芯片中,随着时间的推移,芯片尺寸已经缩小,但仍有能力容纳大量晶体管。在超大规模集成电路中,数十亿晶体管的集成提升了设计方法,也确保了更高的运行速度、更低的功耗、更小的电路尺寸、更高的可靠性和更低的制造成本。超大规模集成电路芯片广泛应用于工程的各个领域,如语音和数据通信网络、数字信号处理、计算机、商业电子、汽车以及嵌入式系统。超大规模集成电路在高性能计算、电信和消费电子领域的重要性一直在快速持续提高。
嵌入式系统是基于微处理器或微控制器的硬件和软件系统,用于大型机械或电气系统中执行特定功能。嵌入式系统不同于通用计算机,后者被设计用于处理广泛的任务。因为嵌入式系统的设计仅用于执行某些任务,设计工程师可以优化尺寸、成本、功耗、可靠性和性能。嵌入式系统的复杂性因其设计的任务而异。其应用范围从数字手表、微波炉到混合动力汽车和航空电子设备等。所有微处理器中,有多达98% 用于嵌入式系统。嵌入式系统便于大规模生产,从而降低了单价。它们高度稳定、可靠,体积非常小,便于在任何地方携带和装载。同时它们的速度也很快,耗电量也较小。此外,它们优化了资源的使用。由于以上原因,嵌入式系统日益普及。
本书主要涵盖两个广泛的主题:超大规模集成电路和嵌入式系统。这两个主题进一步分为四个部分:决策图、多值电路设计架构、可编程逻辑器件和数字电路设计架构。
决策图部分主要涵盖各种类型的决策图,如二元决策图、共享多端二元决策图,基于共享多端多值决策图的多输出函数的时分复用(TDM) 实现,使用多值伪克罗内克(Kronecker) 决策图的多输出开关函数。
具有两个以上逻辑电平的电路被称为多值电路,并且它们具有通过减少芯片上互连来减小面积的潜力。多值电路的设计架构部分主要涵盖多值逻辑(MVL) 的基础,使用传输管逻辑的MVL 触发器,基于电压模式传输管的多值多输出逻辑电路,多值输入二值输出函数,使用多值Fredkin 门的数字模糊运算,使用查找表(LUT) 来降低复杂性的多值多输出逻辑表达式。
可编程逻辑器件(PLD) 是一种用于构建可重构数字电路的电子元件。可编程逻辑器件部分主要包括基于LUT 的神经网络矩阵乘法,使用传输管逻辑的易测试可编程逻辑阵列(PLA),用于译码PLA 输入分配的遗传算法,使用LUT 合并定理的基于FPGA 的乘法器,基于LUT 的BCD 加法器和乘法器的设计,使用鸽笼原理的基于LUT 的矩阵乘法器电路,FPGA 的布局布线算法,基于FPGA 的可编程逻辑控制器(PLC) 和通用的复杂可编程逻辑器件(CPLD) 电路板。
数字电路的设计架构部分主要包括基于商和部分余数的并行计算设计除法器电路,最小化TANT 电路和构造最优TANT 网络的算法,使用神经网络的非对称高基有符号数加法器,使用忆阻器的非易失性6 管静态随机存取存储器和电阻式随机存取存储器的设计,芯片测试自动化系统的容错微处理器和集成框架的设计。
超大规模集成电路与嵌入式系统的一些重要应用也在这本书中得到了很好的讨论:VLSI 的实际实现,如工业工厂中的自主机器人、5G 网络中的VLSI、用于质量控制的智能视觉技术等;嵌入式系统的实际实现,如用于路灯控制的嵌入式系统、自动售货机、用于车辆跟踪的嵌入式系统等。通过这些应用,使读者能更好地了解超大规模集成电路与嵌入式系统。
本书对于超大规模集成电路与嵌入式系统领域的读者,无论其处于初学者还是专家水平,均有所裨益,也适合作为本科生和研究生的教材。本书同样适用于全球范围内这一备受尊崇领域的教职员工及研究人员。此外,对于致力于嵌入式系统行业的专业人士而言,本书也充满吸引力。
Hafiz Md. Hasan Babu
E-mail: hafizbabu@du.ac.bd