《EDA工程的理论与实践 SOC系统芯片设计》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:曾繁泰,王强,盛娜等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2004
  • ISBN:7505396161
  • 页数:469 页
图书介绍:本书阐述了EDA工程的理论基础和系统芯片SOC(数字集成系统芯片)的设计方法。第1~3章阐述了电子设计自动化的发展历程、常用设计方法,阐述了集成电路设计的流程和集成设计环境;第4章介绍了Verilog HDL语言基础;第5章详细介绍了VHDL程序设计方法;第6章介绍了软硬件协同设计语言——System C语言;第7章介绍了一个著名的SOC设计工具的使用;第8章阐述了集成电路的可测试设计方法,算法验证方法;第9章介绍了SOC芯片的实现方法和EDA工程设计方法学的进展。全书以系统芯片SOC为线索,阐述了EDA工程的设计方法、设计语言、设计流程、实现方法、验证方法。

目录 1

第1章 绪论 1

1.1 EDA工程概论 1

1.1.1 概述 1

1.1.2 EDA工程的实现载体 1

1.1.3 EDA工程的设计语言 2

1.1.4 EDA工程的基本特征 3

1.1.5 EDA工程的学科范畴 4

1.2 EDA工程发展历程 5

1.3 EDA工程与其他学科 7

1.3.1 EDA工程学科与微电子技术的关系 7

1.3.2 EDA工程促进其他学科的发展 7

第2章 EDA工程设计方法 9

2.1 EDA工程的设计方法 9

2.2 IC设计描述法 11

2.2.1 集成电路设计的描述方法 11

2.2.2 行为描述法 12

2.3 IP复用方法 14

2.3.1 问题的提出 14

2.3.2 软IP核与硬IP核 15

2.3.3 设计复用方法 17

2.3.4 基于IP模块的设计技术 20

2.4 以集成平台为基础的设计方法 23

2.4.1 集成平台的概念 24

2.4.2 集成平台的结构 25

2.4.3 集成平台的发展 26

2.5 EDA工程集成设计环境IDE 27

2.5.1 集成设计环境的概念 27

2.5.2 趋向集成化的EDA工具平台 30

2.5.3 集成设计环境介绍 32

2.6 虚拟器件协同设计环境 33

2.7 软、硬件协同设计方法 37

2.7.1 软、硬件协同设计语言 37

2.7.2 软、硬件划分的问题 38

2.7.3 软、硬件协同设计工具 39

2.8 EDA工程的分层设计方法 43

2.8.1 层次设计方法概述 43

2.8.2 层次设计方法实例——4位微处理器设计 43

2.9 EDA工程的仿生学方法 54

2.9.1 概述 54

2.9.2 进化硬件 54

2.9.3 POE模型 55

2.9.4 电子胚胎结构模型 55

2.9.5 仿生SOC芯片模型 56

2.10 EDA工程综合方法 58

2.10.1 综合的概念 58

2.10.2 逻辑电路综合 58

2.10.3 时序电路综合 58

2.10.4 用EDA工具进行自动综合 60

2.11 EDA工程仿真方法 61

2.11.1 概述 61

2.11.2 仿真方法 62

2.11.3 功能仿真 66

第3章 SOC设计流程规划 68

3.1 流程的概念 68

3.1.1 EDA工程方法与设计流程 68

3.1.2 集成电路产业流程 69

3.1.3 系统层与算法层设计流程 70

3.1.4 高层次综合设计流程 70

3.2 系统级芯片验证流程 71

3.3.1 设计环境 76

3.3 基于模块的设计流程 76

3.3.2 设计流程 78

3.4 系统芯片SOC设计方法 80

3.4.1 系统芯片SOC概念 80

3.4.2 系统芯片对IC产业的影响 81

3.4.3 系统芯片的一般设计方法 84

3.4.4 系统芯片的分层设计方法 87

3.4.5 系统芯片的集成设计方法 90

3.4.6 系统芯片设计的关键问题 97

3.5.1 可编程系统级芯片的结构 99

3.5 可编程系统级芯片 99

3.5.2 可编程系统级芯片的设计方法 102

3.6 系统芯片的测试方法 105

3.7 系统芯片的设计实例 109

3.7.1 单片微处理器芯片 109

3.7.2 多处理器系统芯片 112

3.8 系统芯片SOC展望 115

第4章 Verilog HDL语言 118

4.1 概述 118

4.1.1 硬件描述语言的发展历史 118

4.1.2 HDL语言的主要特征 119

4.1.3 Verilog HDL与VHDL的比较 119

4.1.4 设计方法 120

4.1.5 硬件描述语言的发展 121

4.2 程序结构 121

4.3.1 词法 125

4.3 词法约定 125

4.3.2 字符串 126

4.3.3 标志符关键字和系统名称 127

4.4 数据类型 128

4.4.1 物理数据类型 128

4.4.2 抽象数据类型 128

4.5 运算符和表达式 129

4.5.1 算术运算符 129

4.5.3 关系运算符 130

4.5.2 符号运算符 130

4.5.4 逻辑运算符 132

4.5.5 位逻辑运算符 132

4.5.6 一元约简运算符 133

4.5.7 其他运算符 134

4.5.8 运算符优先级排序 135

4.6 控制结构 135

4.6.1 选择结构 136

4.6.2 重复结构 137

4.7.1 参数语句 139

4.7 其他语句 139

4.7.2 连续赋值语句 140

4.7.3 阻塞和无阻塞过程赋值 141

4.7.4 任务和函数结构 142

4.8 时序控制 143

4.8.1 延迟控制 143

4.8.2 事件 144

4.8.3 等待语句 145

4.8.4 延迟定义块 146

4.9 Verilog_XL仿真 147

4.10 设计练习 149

4.10.1 简单的组合逻辑设计 150

4.10.2 简单时序逻辑电路的设计 151

4.10.3 利用条件语句实现较复杂的时序逻辑电路 152

4.10.4 设计时序逻辑时采用阻塞赋值与非阻塞赋值的区别 154

4.10.5 用always块实现较复杂的组合逻辑电路 157

4.10.6 在Verilog HDL中使用函数 159

4.10.7 在Verilog HDL中使用任务 161

4.10.8 利用有限状态机进行复杂时序逻辑的设计 163

第5章 VHDL程序设计基础 167

5.1 VHDL程序结构 167

5.1.1 实体及实体说明 167

5.1.2 类属说明和端口说明 168

5.1.3 结构体及其描述方法 170

5.1.4 库、程序包及其配置 173

5.2 VHDL语言的客体及其分类 181

5.2.1 标志符 181

5.2.2 对象 182

5.2.3 数据类型 185

5.2.4 类型转换 188

5.2.5 运算操作符 190

5.3 VHDL语法基础 192

5.3.1 并行语句 192

5.3.2 顺序语句 210

5.4 组合逻辑设计 219

5.4.1 门电路 219

5.4.2 编码器、译码器和选择器电路 222

5.5.1 时钟信号的VHDL描述方法 228

5.5 时序逻辑电路设计 228

5.5.2 时序电路中复位信号Reset的VHDL描述方法 230

5.5.3 时序电路基础模块之一——触发器的设计 231

5.5.4 时序电路基础模块之二——寄存器的设计 236

5.5.5 时序电路基础模块之三——计数器的设计 238

5.6 测试平台程序的设计方法 241

5.6.1 实体描述可简化 241

5.6.2 程序中应包含输出错误信息的语句 241

5.6.3 配置语句 241

5.6.4 不同仿真目的对测试平台设计的要求 242

第6章 软、硬件协同设计语言SystemC 244

6.1 SystemC概述 244

6.1.1 系统级设计所面临的挑战 244

6.1.2 SystemC概述 245

6.1.3 SystemC引起系统级设计方法的变化 245

6.1.4 SystemC开发平台 247

6.2.1 sc_bit类型 248

6.2 SystemC数据类型 248

6.2.2 sc_logic类型 249

6.2.3 固定精度的有符号和无符号整数 250

6.2.4 任意精度符号和无符号整数类型 252

6.2.5 任意长度的位矢量类型 252

6.2.6 定点类型 252

6.3 用SystemC创建RTL模型 253

6.3.1 定义进程 253

6.3.2 创建模块 255

6.3.3 用单一SC_METHOD进程的模块 264

6.3.4 含有多个SC_METHOD进程的模块 266

6.3.5 创建层次化RTL模型 269

6.4 使用可综合的子集 276

6.4.1 可综合子集转换 276

6.4.2 系统综合前数据修改 278

6.4.3 系统综合前修改建议 283

6.5 寄存器传输级(RTL)编程 283

6.5.1 寄存器 283

6.5.2 三态输出 301

6.5.3 状态机 305

6.6 行为级建模和综合 310

6.6.1 RTL级建模和行为级建模的比较 310

6.6.2 行为级综合简介 311

6.6.3 选择用于仿真的正确抽象方式 314

6.6.4 RTL代码和行为级代码示例 315

6.7 SystemC与VHDL设计对比 320

6.7.1 DFF实例 320

6.7.2 移位寄存器 323

6.7.3 计数器 325

6.7.4 状态机 327

6.7.5 存储器 332

第7章 SOC设计工具Cocentric System Studio 335

7.1 Cocentric System Studio概述 335

7.1.1 Cocentric System Studio的组织结构 335

7.1.2 启动设计平台 336

7.1.4 打开工作区 337

7.1.3 浏览用户界面 337

7.1.5 打开设计模型 338

7.1.6 设计项目的编译 340

7.1.7 设计项目的仿真 340

7.1.8 小结 341

7.2 数据流图表DFG 341

7.2.1 创建个人库 341

7.2.2 创建层次化DFG 342

7.3.1 单元级数字转换器 351

7.3 Prim模型 351

7.3.2 二进制到八进制转换 353

7.4 Control模型 355

7.4.1 宏调试或门模型 355

7.4.2 OR模型-复位计数器 359

7.4.3 OR模型——0与1计数器 361

7.4.4 层次化OR模型——加法器/乘法器转换开关 362

7.5 单元模型 362

7.5.1 单元模型错误演示 362

7.5.2 外部函数中的数量积 364

7.5.3 交换指针符号 369

7.5.4 利用已存在的模型建立新模型 372

7.5.5 仿真 376

7.5.6 调试 382

7.6 控制模型练习实验 387

7.6.1 “与模型”——调幅波 387

7.6.2 动态切换发生器 389

7.7 在系统平台中浮点到定点的转换 390

7.7.1 开启演示 390

7.7.2 仿真测试平台 390

7.7.3 建立质量量化标准 391

7.7.4 创建混合模型及添加字长参量 391

7.7.5 系统仿真时输入端口分配 392

7.7.6 改变模式、字长设置 394

7.7.7 计算系数、器件固定 395

7.7.8 创建定点模型 398

7.7.9 创建定点测试平台并仿真 399

7.8.1 从PRIM模型中输出HDL 400

7.8 算法建模——可综合的SystemC RTL代码产生 400

7.8.2 从控制模型中输出HDL 402

7.8.3 从DFG设计中输出HDL 403

7.9 Cocentric高级系统平台——使用DAVIS 406

7.9.1 创建数据组、调用DAVIS 407

7.9.2 选择数据组和初始化设置 407

7.9.3 显示DAVIS结果 408

7.9.4 计算 408

7.9.6 图形显示 409

7.9.5 创建并连接分散窗口 409

第8章 EDA工程可测试、验证设计方法 411

8.1 概述 411

8.1.1 可测试设计 411

8.1.2 内建自测试 412

8.1.3 可测试设计中的功耗优化问题 414

8.1.4 可测试设计技术的发展 415

8.2 测试方法的范畴 416

8.3 可测试性分析 417

8.4 测试矢量生成 418

8.4.1 组合电路测试 419

8.4.2 时序电路测试 420

8.5 可测试性结构设计 422

8.5.1 分块测试 422

8.5.2 扫描测试设计 422

8.5.3 内建自测试 427

8.6 测试平台程序的设计方法 430

8.6.1 测试平台的搭建 430

8.6.2 不同仿真目的对测试平台设计的要求 431

8.6.3 用子程序方式建立测试平台 432

8.7 深亚微米工艺的时序分析方法 435

8.7.1 动态模型 436

8.7.2 行为模式 436

8.8 故障测试概述 437

8.8.1 故障模型 438

8.8.2 故障仿真 439

8.9 验证方法概述 440

8.9.1 FPGA器件的仿真验证 441

8.9.2 嵌入式处理器验证环境 443

第9章 SOC实现方法和设计方法进展 446

9.1 设计实现方法的概念 446

9.1.1 设计实现初步 446

9.1.2 设计实现与逻辑综合的区分 448

9.2 EDA工程的CPLD实现方法 448

9.2.1 可编程技术 449

9.2.2 复杂可编程器件(CPLD) 451

9.2.3 现场可编程门阵列(FPGA) 452

9.2.4 百万门级FPGA的设计方法 457

9.3 系统芯片SOC设计方法进展 461

9.3.1 硬、软IP设计方法 461

9.3.2 C语言用于IC系统级设计 462

9.3.3 物理设计转向COT设计方法 462

9.3.4 EDA向EDO转变 463

9.4 IC设计技术的发展 463

9.4.1 共享RTL设计方法 466

9.4.2 动态可重构技术 466

参考文献 469