第1章 绪论 1
1.1什么是SystemC? 1
1.2为什么使用SystemC? 3
1.3设计方法学 5
1.4SystemC的功能 8
1.5SystemC RTL 9
1.6本书的组织 9
1.7练习题 10
第2章 起步 11
2.1基础知识 11
2.2再举一个例子 14
2.3描述的层次 16
2.4功能的验证 18
2.5练习题 23
第3章 数据类型 24
3.1值保持器 24
3.2类型的总结 25
3.3位类型 26
3.4任意位宽类型 27
3.5逻辑类型 31
3.6任意位宽的逻辑类型 33
3.7有符号的整数类型 37
3.8无符号的整数类型 41
3.9任意精度有符号的整数类型 42
3.10任意精度无符号的整数类型 43
3.11判断类型 44
3.12用户定义的数据类型 45
3.13推荐的数据类型 46
3.14练习题 47
第4章 组合逻辑建模 48
4.1SC_MODULE 48
4.2一个例子 51
4.3端口和信号的读/写 52
4.4逻辑操作符 54
4.5算术操作符 56
4.5.1无符号的算术运算 56
4.5.2有符号的算术运算 57
4.6关系操作符 59
4.7向量和范围 61
4.7.1常数索引 61
4.7.2非常数索引 63
4.8条件语句 65
4.9开关语句 68
4.10循环 71
4.11方法 72
4.12结构 76
4.13多进程和Δ延迟 77
4.14小结 79
4.15练习题 79
第5章 同步逻辑建模 80
5.1触发器建模 80
5.2多进程 82
5.3带异步置位和清零端的触发器 84
5.4带同步置位和清零端的触发器 88
5.5多时钟和多相位时钟 89
5.6锁存器建模 91
5.6.1条件语句 91
5.6.2开关语句 94
5.6.3避免生成锁存器 96
5.7小结 97
5.8练习题 98
第6章 各色各样的逻辑 100
6.1三态驱动器 100
6.2多个驱动源 105
6.3无关项的处理 108
6.4层次 109
6.5模块的参数化 116
6.6变量和信号的赋值 118
6.7练习题 120
第7章 建模示例 121
7.1具有三态输出的参数化寄存器 121
7.2存储器模型 123
7.3有限状态机的建模 125
7.3.1摩尔型有限状态机 125
7.3.2米利型有限状态机 129
7.4通用移位寄存器 132
7.5计数器 135
7.5.1模N计数器 135
7.5.2Johnson计数器 136
7.5.3格雷码双向计数器 138
7.6Johnson译码器 140
7.7阶乘的模型 141
7.8只读存储器(ROM)的建模 143
7.9练习题 144
第8章 测试平台的编写 146
8.1编写测试平台 146
8.2仿真控制 149
8.2.1sc_clock 149
8.2.2sctrace 150
8.2.3scstart 151
8.2.4sc_stop 152
8.2.5sc_time_stamp 152
8.2.6scsimulationtime 152
8.2.7sc_cycle和sc_initialize 153
8.2.8sctime 153
8.3波形 155
8.3.1任意类型的波形 155
8.3.2复杂的重复波形 156
8.3.3生成一个衍生的时钟 157
8.3.4从文件中读取激励 159
8.3.5响应性激励 164
8.4监视行为 167
8.4.1判断仿真结果是否正确 167
8.4.2把结果保存到文本文件中 169
8.5更多示例 170
8.5.1触发器 170
8.5.2带同步输出的多路选择器 175
8.5.3全加器 178
8.5.4周期节拍级仿真 182
8.6在sc_main内的语句顺序 184
8.7跟踪记录集合类型 184
8.8跟踪记录枚举类型 186
8.9练习题 187
第9章 系统级建模 188
9.1SC_THREAD进程 188
9.2动态敏感性 192
9.3构造函数的参数 196
9.4更多示例 201
9.4.1求最大公约数 201
9.4.2滤波器 202
9.5端口、接口和通道 203
9.6高级话题 207
9.6.1共享的数据成员 207
9.6.2定点类型 208
9.6.3模块 209
9.6.4其他方法 209
9.7仿真算法 213
9.8练习题 214
附录A 运行环境 215
A.1软件的安装 215
A.2设计的编译 216
A.3设计的仿真 217
A.4设计的调试 217
附录B SystemC RTL:SystemC的可综合子集 219
B.1SystemC的特性 220
B.2C++的特性 221
参考文献 224
索引 226