标题：EDA工程的理论与实践——SOC系统芯片设计
基本信息
作者： 曾繁泰 王强 盛娜等   
丛书名： EDA工具应用丛书
出版社：电子工业出版社
ISBN：7505396161
出版日期：2004 年2月
开本：16开
页码：469
内容简介
本书介绍了EDA工程的理论基础和系统芯片SOC的设计方法。第1-3章阐述了电子设计自动化的发展历程、常用设计方法，介绍了集成电路设计的流程和集成设计环境；第4章介绍了Verilog HDL语言；第5章详细介绍了VHDL程序设计方法；第6章介绍了软、硬件协同设计语言——SystemC语言；第7章介绍了SOC设计工具的使用；第8章阐述了集成电路的可测试设计方法、算法验证方法；第9章介绍了SOC芯片的实现方法和EDA工程设计方法学的进展。全书以系统芯片SOC为线索，阐述了EDA工程的设计方法、设计语言、设计流程、实现方法和验证方法。 
本书可作为集成电路领域的科技共和者的读者，也可作为微电子、电子电路、通信、计算机等专业大学生、研究生的教学参考书。
目录
第1章 绪论 
1．1 eda工程概论 
1．1．1 概述 
1．1．2 eda工程的实现载体 
1．1．3 eda工程的设计语言 
1．1．4 eda工程的基本特征 
1．1．5 eda工程的学科范畴 
1．2 eda工程发展历程 
1．3 eda工程与其他学科 
1．3．1 eda工程学科与微电子技术的关系 
1．3．2 eda工程促进其他学科的发展 
第2章 eda工程设计方法 
2．1 eda工程的设计方法 
2．2 ic设计描述法 
2．2．1 集成电路设计的描述方法 
2．2．2 行为描述法 
2．3 ip复用方法 
2．3．1 问题的提出 
2．3．2 软ip核与硬ip核 
2．3．3 设计复用方法 
.2．3．4 基于ip模块的设计技术 
2．4 以集成平台为基础的设计方法 
2．4．1 集成平台的概念 
2．4．2 集成平台的结构 
2．4．3 集成平台的发展 
2．5 eda工程集成设计环境ide 
2．5．1 集成设计环境的概念 
2．5．2 趋向集成化的eda工具平台 
2．5．3 集成设计环境介绍 
2．6 虚拟器件协同设计环境 
2．7 软、硬件协同设计方法 
2．7．1 软、硬件协同设计语言 
2．7．2 软、硬件划分的问题 
2．7．3 软、硬件协同设计工具 
2．8 eda工程的分层设计方法 
2．8．1 层次设计方法概述 
2．8．2 层次设计方法实例--4位微处理器设计 
2．9 eda工程的仿生学方法 
2．9．1 概述 
2．9．2 进化硬件 
2．9．3 poe模型 
2．9．4 电子胚胎结构模型 
2．9．5 仿生soc芯片模型 
2．10 eda工程综合方法 
2．10．1 综合的概念 
2．10．2 逻辑电路综合 
2．10．3 时序电路综合 
2．10．4 用eda工具进行自动综合 
2．11 eda工程仿真方法 
2．11．1 概述 
2．11．2 仿真方法 
2．11．3 功能仿真 
第3章 soc设计流程规划 
3．1 流程的概念 
3．1．1 eda工程方法与设计流程 
3．1．2 集成电路产业流程 
3．1．3 系统层与算法层设计流程 
3．1．4 高层次综合设计流程 
3．2 系统级芯片验证流程 
3．3 基于模块的设计流程 
3．3．1 设计环境 
3．3．2 设计流程 
3．4 系统芯片soc设计方法 
3．4．1 系统芯片soc概念 
3．4．2 系统芯片对ic产业的影响 
3．4．3 系统芯片的一般设计方法 
3．4．4 系统芯片的分层设计方法 
3．4．5 系统芯片的集成设计方法 
3．4．6 系统芯片设计的关键问题 
3．5 可编程系统级芯片 
3．5．1 可编程系统级芯片的结构 
3．5．2 可编程系统级芯片的设计方法 
3．6 系统芯片的测试方法 
3．7 系统芯片的设计实例 
3．7．1 单片微处理器芯片 
3．7．2 多处理器系统芯片 
3．8 系统芯片soc展望 
第4章 veriloghdl语言 
4．1 概述 
4．1．1 硬件描述语言的发展历史 
4．1．2 hdl语言的主要特征 
4．1．3 veriloghdl与vhdl的比较 
4．1．4 设计方法 
4．1．5 硬件描述语言的发展 
4．2 程序结构 
4．3 词法约定 
4．3．1 词法 
4．3．2 字符串 
4．3．3 标志符关键字和系统名称 
4．4 数据类型 
4．4．1 物理数据类型 
4．4．2 抽象数据类型 
4．5 运算符和表达式 
4．5．1 算术运算符 
4．5．2 符号运算符 
4．5．3 关系运算符 
4．5．4 逻辑运算符 
4．5．5 位逻辑运算符 
4．5．6 一元约简运算符 
4．5．7 其他运算符 
4．5．8 运算符优先级排序 
4．6 控制结构 
4．6．1 选择结构 
4．6．2 重复结构 
4．7 其他语句 
4．7．1 参数语句 
4．7．2 连续赋值语句 
4．7．3 阻塞和无阻塞过程赋值 
4．7．4 任务和函数结构 
4．8 时序控制 
4．8．1 延迟控制 
4．8．2 事件 
4．8．3 等待语句 
4．8．4 延迟定义块 
4．9 vedlog_xl仿真 
4．10 设计练习 
4．10．1 简单的组合逻辑设计 
4．10．2 简单时序逻辑电路的设计 
4．10．3 利用条件语句实现较复杂的时序逻辑电路 
4．10．4 设计时序逻辑时采用阻塞赋值与非阻塞赋值的区别 
4．10．5 用always块实现较复杂的组合逻辑电路 
4．10．6 在veriloghdl中使用函数 
4．10．7 在veriloghdl中使用任务 
4．10．8 利用有限状态机进行复杂时序逻辑的设计 
第5章 vhdl程序设计基石出 
5．1 vhdl程序结构 
5．1．1 实体及实体说明 
5．1．2 类属说明和端口说明 
5．1．3 结构体及其描述方法 
5．1．4 库、程序包及其配置 
5．2 vhdl语言的客体及其分类 
5．2．1 标志符 
5．2．2 对象 
5．2．3 数据类型 
5．2．4 类型转换 
5．2．5 运算操作符 
5．3 vhdl语法基础 
5．3．1 并行语句 
5．3．2 顺序语句 
5．4 组合逻辑设计 
5．4．1 门电路 
5．4．2 编码器、译码器和选择器电路 
5．5 时序逻辑电路设计 
5．5．1 时钟信号的vhdl描述方法 
5．5．2 时序电路中复位信号reset的vhdl描述方法 
5．5．3 时序电路基础模块之一--触发器的设计 
5．5．4 时序电路基础模块之二--寄存器的设计 
5．5．5 时序电路基础模块之三--计数器的设计 
5．6 测试平台程序的设计方法 
5．6．1 实体描述可简化 
5．6．2 程序中应包含输出错误信息的语句 
5．6．3 配置语句 
5．6．4 不同仿真目的对测试平台设计的要求 
第6章 软、硬件协同设计语言systemc 
6．1 systemc概述 
6．1．1 系统级设计所面临的挑战 
6．1．2 systemc概述 
6．1．3 systemc引起系统级设计方法的变化 
6．1．4 systemc开发平台 
6．2 systemc数据类型 
6．2．1 sc_bit讧类型 
6．2．2 sc_logic类型 
6．2．3 固定精度的有符号和无符号整数 
6．2．4 任意精度符号和无符号整数类型 
6．2．5 任意长度的位矢量类型 
6．2．6 定点类型 
6．3 用systemc创建rtl模型 
6．3．1 定义进程 
6．3．2 创建模块 
6．3．3 用单一sc_method进程的模块 
6．3．4 含有多个sc_method进程的模块 
6．3．5 创建层次化rtl模型 
6．4 使用可综合的子集 
6．4．1 可综合子集转换 
6．4．2 系统综合前数据修改 
6．4．3 系统综合前修改建议 
6．5 寄存器传输级(rtl)编程 
6．5．1 寄存器 
6．5．2 三态输出 
6．5．3 状态机 
6．6 行为级建模和综合 
6．6．1 rtl级建模和行为级建模的比较 
6．6．2 行为级综合简介 
6．6．3 选择用于仿真的正确抽象方式 
6．6．4 rtl代码和行为级代码示例 
6．7 systemc与vhdl设计对比 
6．7．1 dff实例 
6．7．2 移位寄存器 
6．7．3 计数器 
6．7．4 状态机 
6．7．5 存储器 
第7章 soc设计工具cocemtric system studio 
7．1 cocentdc system studio概述 
7．1．1 cocentric system studio的组织结构 
7．1．2 启动设计平台 
7．1．3 浏览用户界面 
7．1．4 打开工作区 
7．1．5 打开设计模型 
7．1．6 设计项目的编译 
7．1．7 设计项目的仿真 
7．1．8 小结 
7．2 数据流图表dfg 
7．2．1 创建个人库 
7．2．2 创建层次化dfg 
7．3 ptim模型 
7．3．1 单元级数字转换器 
7．3．2 进制到八进制转换 
7．4 control模型 
7．4．1 宏调试或门模型 
7．4．2 or模型-复位计数器 
7．4．3 or模型--0与1计数器 
7．4．4 层次化or模型--加法器/乘法器转换开关 
7．5 单元模型 
7．5．1 单元模型错误演示 
7．5．2 外部函数中的数量积 
7．5．3 交换指针符号 
7．5．4 利用已存在的模型建立新模型 
7．5．5 仿真 
7．5．6 调试 
7．6 控制模型练习实验 
7．6．1 "与模型"--调幅波 
7．6．2 动态切换发生器 
7．7 在系统平台中浮点到定点的转换 
7．7．1 开启演示 
7．7．2 仿真测试平台 
7．7．3 建立质量量化标准 
7．7．4 创建混合模型及添加字长参量 
7．7．5 系统仿真时输入端口分配 
7．7．6 改变模式、字长设置 
7．7．7 计算系数、器件固定 
7．7．8 创建定点模型 
7．7．9 创建定点测试平台并仿真 
7．8 算法建模--可综合的systemc rtl代码产生 
7．8．1 从prim模型中输出hdl 
7．8．2 从控制模型中输出hdl 
7．8．3 从dfg设计中输出hdl 
7．9 cocentric高级系统平台--使用davis 
7．9．1 创建数据组、调用davis 
7．9．2 选择数据组和初始化设置 
7．9．3 显示davis结果 
7．9．4 计算 
7．9．5 创建并连接分散窗口 
7．9．6 图形显示 
第8章 eda工程可测试、验证设计方法 
8．1 概述 
8．1．1 可测试设计 
8．1．2 内建自测试 
8．1．3 可测试设计中的功耗优化问题 
8．1．4 可测试设计技术的发展 
8．2 测试方法的范畴 
8．3 可测试性分析 
8．4 测试矢量生成 
8．4．1 组合电路测试 
8．4．2 时序电路测试 
8．5 可测试性结构设计 
8．5. 1 分块测试 
8．5．2 扫描测试设计 
8．5．3 内建自测试 
8．6 测试平台程序的设计方法 
8．6．1 测试平台的搭建 
8．6．2 不同仿真目的对测试平台设计的要求 
8．6．3 用子程序方式建立测试平台 
8．7 深亚微米工艺的时序分析方法 
8．7．1 动态模型 
8．7．2 行为模式 
8．8 故障测试概述 
8．8．1 故障模型 
8．8．2 故障仿真 
8．9 验证方法概述 
8．9．1 fpga器件的仿真验证 
8．9．2 嵌入式处理器验证环境 
第9章 soc实现方法和设计方法进展 
9．1 设计实现方法的概念 
9．1．1 设计实现初步 
9．1．2 设计实现与逻辑综合的区分 
9．2 eda工程的cpld实现方法 
9．2．1 可编程技术 
9．2．2 复杂可编程器件(cpld) 
9．2．3 现场可编程门阵列(fpga) 
9．2．4 百万门级fpga的设计方法 
9．3 系统芯片soc设计方法进展 
9．3. 1 硬、软ip设计方法 
9．3．2 c语言用于ic系统级设计 
9．3．3 物理设计转向cot设计方法 
9．3．4 eda向edo转变 
9．4 ic设计技术的发展 
9．4．1 共享rtl设计方法 
9．4．2 动态可重构技术 
参考文献