第1章 ASIC概述 1
1.1 ASIC概念 2
1.2 ASIC设计方法 3
1.3 ASIC设计流程 4
1.3.1 设计需求分析 4
1.3.2 模块设计及验证 5
1.3.3 逻辑综合及验证 6
1.3.4 版图设计 6
1.3.5 参数提取与静态时序分析 6
1.3.6 物理验证 7
1.4 集成电路设计工具 7
1.4.1 EDA公司简介 7
1.4.2 设计流程各阶段所用工具 8
1.5 全书架构 10
第2章 Verilog HDL基础及实验环境 11
2.1 Verilog HDL硬件描述语言 11
2.1.1 Verilog HDL语法基础 12
2.1.2 Verilog HDL模块设计 24
2.1.3 Verilog HDL测试程序建模方法 33
2.1.4 Verilog HDL的编写技巧 38
2.2 ASIC设计工具运行环境 40
2.2.1 Linux组成结构 40
2.2.2 环境变量设置 43
2.2.3 Linux相关命令 45
第3章 中央处理器 48
3.1 CPU概述 48
3.2 CPU的指令系统 49
3.2.1 指令的基本格式 49
3.2.2 指令分类 50
3.2.3 寻址方式 52
3.2.4 指令周期 54
3.3 CPU的功能实现 55
3.3.1 存储器 55
3.3.2 程序计数器 55
3.3.3 指令寄存器 56
3.3.4 地址多路选择器 56
3.3.5 算术逻辑单元 57
3.3.6 累加器 57
3.3.7 状态控制器 58
3.3.8 CPU 59
第4章 RISC_CPU RTL级设计及仿真 60
4.1 RISC CPU设计流程 60
4.2 RTL编译与仿真工具使用 60
4.3 RTL级设计与仿真 62
4.3.1 选择器设计 62
4.3.2 程序计数器设计 64
4.3.3 指令寄存器设计 66
4.3.4 算术逻辑单元设计 69
4.3.5 存储器设计 72
4.3.6 设计时序逻辑时采用阻塞赋值与非阻塞赋值的区别 75
4.3.7 状态控制器设计 77
4.3.8 CPU集成设计及验证 81
第5章 电路综合 86
5.1 逻辑综合 86
5.1.1 逻辑综合定义 86
5.1.2 数字同步电路模型 86
5.1.3 时序驱动电路设计 89
5.1.4 综合的三个阶段和综合的层次 90
5.2 基于Design Compiler的逻辑综合流程 92
5.2.1 逻辑综合流程 92
5.2.2 设置库文件 92
5.2.3 读入设计文件 94
5.2.4 施加设计约束 94
5.2.5 定义环境属性 97
5.2.6 综合及结果输出 98
5.2.7 结果分析 99
5.2.8 综合后仿真 101
5.3 综合实验 102
5.3.1 建立工作目录 102
5.3.2 设置工作环境 103
5.3.3 添加PAD 104
5.3.4 编写综合脚本 105
5.3.5 综合的执行 106
5.3.6 综合结果分析 106
5.3.7 门级电路仿真 109
第6章 版图设计 110
6.1 版图设计定义及内容 110
6.1.1 版图设计定义 110
6.1.2 版图设计的输入输出 110
6.1.3 版图设计用到的库文件 111
6.2 基于IC Compiler的版图设计流程 113
6.2.1 ICC的启动和关闭 114
6.2.2 数据准备 115
6.2.3 布图规划 115
6.2.4 布局 118
6.2.5 时钟树综合 118
6.2.6 布线 119
6.2.7 参数提取和后仿真 120
6.2.8 物理验证 121
6.3 版图设计实验 121
6.3.1 实验内容和目的 121
6.3.2 实验指导 121
附录一 Verilog语言要素 135
附录二 各阶段常用命令使用说明 148
附录三 Linux常用命令及说明 153
参考文献 157