第1章序言 1
1.1现代数字设计 1
1.2使用硬件描述语言进行设计 1
1.2.1设计自动化 1
1.2.2什么是SystemVerilog 2
1.2.3什么是VHDL 2
1.2.4仿真 2
1.2.5综合 3
1.2.6可重用性 3
1.2.7验证 4
1.2.8设计流程 5
1.3CMOS技术 6
1.3.1逻辑门 6
1.3.2ASIC(专用集成电路)和FPGA(现场可编程门阵列) 7
1.4可编程逻辑 12
1.5电气属性 14
1.5.1噪声容限 14
1.5.2扇出 15
总结 16
参考资料 17
练习题 17
第2章组合逻辑设计 18
2.1布尔代数 18
2.1.1值 18
2.1.2操作符 18
2.1.3逻辑门的真值表 18
2.1.4布尔代数的定律 20
2.1.5德摩根定理 20
2.1.6香农扩展定理 20
2.2逻辑门 20
2.3组合逻辑设计 22
2.3.1逻辑最小化 23
2.3.2卡诺图 24
2.4时序 26
2.5数字码 29
2.5.1整数 29
2.5.2定点数 29
2.5.3浮点数 29
2.5.4文字数字字符 30
2.5.5格雷码 30
2.5.6奇偶校验位 31
总结 31
参考资料 32
练习题 32
第3章使用SystemVerilog门模型描述的组合逻辑 33
3.1模块和文件 33
3.2标识符、空格和注释 34
3.3基本门模型 35
3.4简单的网表 35
3.5逻辑值 36
3.6连续赋值语句 37
3.6.1SystemVerilog操作符 37
3.7延迟 38
3.8参数 39
3.9测试平台 40
总结 41
参考资料 41
练习题 41
第4章组合逻辑构件 42
4.1多路选择器 42
4.1.1 2选1多路选择器 42
4.1.2 4选1多路器 43
4.2译码器 43
4.2.12到4译码器 43
4.2.2参数化的译码器 44
4.2.3七段译码器 46
4.3优先编码器 47
4.3.1无关项和唯一性问题 47
4.4加法器 48
4.4.1功能模型 48
4.4.2逐位进位加法器 48
4.4.3任务 49
4.5奇偶校验器 50
4.6三态缓冲器 51
4.6.1多值逻辑 51
4.7组合逻辑块的测试平台 52
总结 53
参考资料 53
练习题 53
第5章时序逻辑块的SystemVerilog模型 54
5.1锁存器 54
5.1.1SR锁存器 54
5.1.2D锁存器 55
5.2触发器 56
5.2.1由跳变沿触发的D触发器 56
5.2.2异步置位与复位 56
5.2.3同步置位/复位和时钟使能 57
5.3JK触发器和T触发器 59
5.4寄存器和移位寄存器 60
5.4.1多比特寄存器 60
5.4.2移位寄存器 61
5.5计数器 62
5.5.1二进制计数器 62
5.5.2约翰森计数器 64
5.5.3线性反馈移位寄存器 65
5.6存储器 67
5.6.1ROM 67
5.6.2SRAM 68
5.6.3同步RAM 69
5.7时序乘法器 69
5.8时序构造块的测试平台 71
5.8.1时钟信号的产生 71
5.8.2复位信号及其他重要信号 73
5.8.3检查设计电路的响应 73
总结 74
参考资料 74
练习题 75
第6章同步时序设计 76
6.1同步时序系统 76
6.2同步时序系统的模型 77
6.2.1摩尔和米利状态机 77
6.2.2状态寄存器 77
6.2.3三位计数器的设计 78
6.3算法状态机 80
6.4由ASM图综合 83
6.4.1硬件的实现 83
6.4.2状态分配 85
6.4.3状态最小化 88
6.5使用Systemverilog描述的状态机 92
6.5.1第一个例子 92
6.5.2序列奇偶校验位检测器 94
6.5.3自动售票机 95
6.5.4数据的储存 97
6.6状态机的测试平台 98
总结 99
参考资料 99
练习题 100
第7章复杂时序系统的设计 102
7.1状态机的互连 102
7.2数据路径/控制器的划分 105
7.3指令 107
7.4一个简单的微处理器 108
7.5简单微处理器的SystemVerilog模型 112
总结 119
参考资料 119
练习题 119
第8章测试平台的编写 121
8.1基本的测试平台 121
8.1.1时钟信号的产生 122
8.1.2复位信号和其他重要信号 122
8.1.3响应的监视 123
8.1.4响应的转储 123
8.1.5来自于文件的测试向量 123
8.2测试平台的结构 124
8.2.1程序 125
8.3受约束随机激励的发生 126
8.3.1面向对象编程 127
8.3.2随机化 128
8.4基于断言的验证 130
总结 134
参考资料 134
练习题 134
第9章SystemVerilog的仿真 136
9.1由事件驱动的仿真 136
9.2SystemVerilog的仿真 139
9.3竞争 141
9.3.1避免冒险竞争 142
9.4延迟模型 143
9.5仿真工具 143
总结 144
参考资料 145
练习题 145
第10章SystemVerilog的综合 147
10.1RTL综合 148
10.1.1不可综合的SystemVerilog 148
10.1.2推导出触发器和锁存器 149
10.1.3组合逻辑 152
10.1.4RTL综合规则的总结 155
10.2约束 156
10.2.1属性 156
10.2.2面积和结构属性 157
10.2.3full_case和parallel_case属性 159
10.3FPGA的综合 160
10.4行为综合 162
10.5综合结果的验证 167
10.5.1时序仿真 168
总结 169
参考资料 169
练习题 170
第11章数字系统的测试 172
11.1测试的必要性 172
11.2故障模型 172
11.2.1单固定故障模型 173
11.2.2PLA(可编程逻辑阵列)故障 173
11.3面向故障的测试向量集的生成 174
11.3.1敏感路径算法 175
11.3.2无法检测到的故障 176
11.3.3采用D算法的故障测试 177
11.3.4PODEM算法 179
11.3.5合并 179
11.4故障的仿真 180
11.4.1并行故障仿真 181
11.4.2并发故障仿真 182
总结 184
参考资料 184
练习题 184
第12章可测试性设计 187
12.1为提高可测试性而做的改进 187
12.2针对测试的结构设计 188
12.3内建自测试 190
12.3.1示例 191
12.3.2内建逻辑块观察(BILBO) 194
12.4边界扫描(IEEE1 149.1) 197
总结 203
参考资料 203
练习题 203
第13章异步时序电路设计 206
13.1异步电路 206
13.2异步电路的分析 208
13.2.1非形式化分析 208
13.2.2形式化分析 210
13.3异步电路的设计 211
13.4异步状态机 217
13.5建立/保持时间和亚稳态 221
13.5.1基本模式制约和同步电路 221
13.5.2描述建立和保持时间不合格的SystemVerilog模型 221
13.5.3亚稳态 223
总结 224
参考资料 224
练习题 224
第14章与模拟电路的接口 227
14.1数字-模拟转换器 227
14.2模拟-数字转换器 228
14.3Verilog-AMS 231
14.3.1Verilog-AMS基础 231
14.3.2作用语句 233
14.3.3混合信号建模 234
14.4锁相环 238
14.5Verilog-AMS仿真器 241
总结 241
参考资料 241
练习题 242
附录ASystemVerilog与Verilog的关系 243
部分练习题的参考答案 247
参考文献 261