1.1 设计表示 1
目录出版者的话专家指导委员会译者序英文版序言致谢第1章 引言 1
1.2 抽象级别 2
1.3 当前的设计方法学 3
1.4 系统级方法学 5
1.5 系统描述和设计 6
第2章 模型与体系结构 9
2.1 引言 9
2.2 模型分类 11
2.3 面向状态的模型 11
2.3.1 有限状态机 11
2.3.2 Petri网 13
2.3.3 层次化并发有限状态机 15
2.4.1 数据流图 16
2.4 面向活动的模型 16
2.4.2 流程图 17
2.5 面向结构的模型 18
2.6 面向数据的模型 18
2.6.1 实体-关系图 18
2.6.2 Jackson图 19
2.7 异构模型 20
2.7.1 控制/数据流图 20
2.7.2 结构图 20
2.7.3 程序设计语言模式 22
2.7.4 面向对象的模型 23
2.7.5 程序状态机 24
2.7.6 队列模型 25
2.9.2 数据通路体系结构 26
2.9.1 控制器体系结构 26
2.8 体系结构分类 26
2.9 专用体系结构 26
2.9.3 带数据通路的有限状态机 28
2.10 处理器 28
2.10.1 复杂指令集计算机 28
2.10.2 精简指令集计算机 29
2.10.3 向量机 30
2.10.4 超长指令字计算机 31
2.11 并行处理器 31
2.12 结论 33
2.13 练习 33
第3章 系统描述语言 35
3.1 引言 35
3.2.1 并发性 36
3.2 概念模型的特性 36
3.2.2 状态迁移 38
3.2.3 层次化 39
3.2.4 程序结构 40
3.2.5 行为完成 41
3.2.6 通信 42
3.2.7 同步 43
3.2.8 异常处理 45
3.2.9 非确定性 46
3.2.10 时序 46
3.3 嵌入式系统的描述要求 47
3.4 描述语言综述 48
3.4.1 VHDL 48
3.4.2 Verilog 50
3.4.3 HardwareC 51
3.4.4 CSP 52
3.4.5 Statecharts 53
3.4.6 Argos 55
3.4.7 SDL 55
3.4.8 Silage 56
3.4.9 Esterel 56
3.5 SpecCharts 57
3.5.1 语言描述 57
3.5.2 用SpecCharts描述嵌入式系统 59
3.5.3 等价图形化表示 61
3.5.4 语言的可扩展性 61
3.6 结论和发展方向 62
3.7 练习 63
第4章 系统描述举例 65
4.1 引言 65
4.2 电话应答机 65
4.3 用SpecCharts进行系统描述 67
4.4 测试用例举例 72
4.5 可执行系统描述的优点 73
4.6 PSM模型的优势 74
4.6.1 层次性 74
4.6.2 状态迁移 74
4.6.3 程序设计结构 74
4.7.1 系统描述的获取比较 75
4.7 实验 75
4.6.7 状态分解和编码的等价性 75
4.6.6 完成 75
4.6.5 异常处理 75
4.6.4 并行性 75
4.7.2 系统描述的理解比较 76
4.7.3 系统描述的量化比较 76
4.7.4 设计质量比较 77
4.8 结论 78
4.9 练习 78
第5章 转换成VHDL 81
5.1 引言 81
5.2 状态迁移 82
5.3 消息传递通信 84
5.3.1 阻塞式消息传递 84
5.4 并发 86
5.3.2 非阻塞式消息传递 86
5.4.1 数据流 87
5.4.2 分叉 88
5.5 异常处理 89
5.6 从程序状态机到任务 90
5.6.1 概述 90
5.6.2 算法 91
5.6.3 时间调整 92
5.6.4 综合 93
5.7 结论和发展方向 93
5.8 练习 93
第6章 系统划分 95
6.1 引言 95
6.2 结构划分和功能划分 95
6.2.1 结构划分 95
6.2.2 功能划分 96
6.3 划分中的问题 97
6.3.1 系统描述抽象级别 98
6.3.2 粒度 98
6.3.3 系统组件的分配 99
6.3.4 度量和评估 99
6.3.5 目标函数和接近函数 100
6.3.6 划分算法 101
6.3.7 输出 101
6.3.8 控制流程和设计者的参与 101
6.3.9 典型系统配置 102
6.4 基本划分算法 102
6.4.1 随机映射 102
6.4.2 层次化结群 102
6.4.3 多级结群 104
6.4.4 成组移动 105
6.4.5 比率切割 107
6.4.6 模拟退火 108
6.4.7 遗传进化 109
6.4.8 整数线性规划 110
6.5 硬件功能划分 110
6.5.1 Yorktown硅编译器 111
6.5.2 BUD 113
6.5.3 Aparty 115
6.5.4 其他技术 117
6.6 软硬件划分算法 118
6.6.1 贪心算法 118
6.6.2 爬山算法 119
6.7.1 Vulcan 120
6.7 系统功能划分 120
6.6.3 二分约束搜索算法 120
6.7.2 Cosyma 121
6.7.3 SpecSyn 122
6.7.4 其他技术 123
6.8 折中的探索 124
6.9 结论和发展方向 125
6.10 练习 125
第7章 设计质量评估 127
7.1 引言 127
7.1.1 精确性与速度 128
7.1.2 评估的保真度 128
7.2 质量度量 129
7.2.1 硬件成本度量 129
7.2.3 性能度量 130
7.2.2 软件成本度量 130
7.2.4 其他度量 134
7.3 硬件评估 135
7.3.1 硬件评估模型 135
7.3.2 时钟周期评估 136
7.3.3 控制步评估 141
7.3.4 执行时间评估 145
7.3.5 通信速率评估 147
7.3.6 面积评估 148
7.3.7 引脚评估 156
7.4 软件评估 156
7.4.1 软件评估模型 156
7.4.2 程序执行时间 159
7.4.4 数据存储大小 160
7.4.3 程序存储大小 160
7.5 系统级工具的评估技术 161
7.5.1 BUD 161
7.5.2 Aparty 162
7.5.3 Vulcan 162
7.5.4 SpecSyn 162
7.6 结论和发展方向 164
7.7 练习 164
第8章 设计描述细化 167
8.1 引言 167
8.2 细化变量群组 167
8.2.1 变量折叠 167
8.2.2 存储地址转换 168
8.3.1 通道和总线的表征 169
8.3 通道细化 169
8.3.2 问题的定义 170
8.3.3 总线生成 170
8.3.4 协议生成 176
8.4 解决访问冲突 178
8.4.1 仲裁模型 178
8.4.2 仲裁方案 179
8.4.3 仲裁器生成 180
8.5 细化不兼容接口 181
8.5.1 问题的定义 182
8.5.2 通信协议描述 182
8.5.3 接口进程生成 184
8.5.4 协议兼容的其他方法 189
8.6 细化软件/硬件接口 191
8.6.2 变量分配 192
8.6.1 目标体系结构 192
8.6.3 接口生成 194
8.6.4 数据访问细化 195
8.6.5 控制访问细化 197
8.7 结论和发展方向 198
8.8 练习 199
第9章 系统设计方法学 201
9.1 引言 201
9.2 基本概念 201
9.3 设计方法学举例 201
9.3.1 当前的惯例 204
9.3.2 系统级方法学 205
9.4 通用综合系统 206
9.4.1 系统综合 208
9.4.2 ASIC综合 209
9.4.3 逻辑综合和时序综合 211
9.4.4 物理设计 212
9.4.5 软件综合 212
9.4.6 系统数据库 213
9.5 系统设计的概念化环境 213
9.6 结论和发展方向 215
9.7 练习 216
附录A 应答机的自然语言描述 217
附录B 应答机的SpecCharts描述 219
参考文献 233
术语解释 247
索引 249