第1章 EDA技术综述 1
本章内容简介 1
1.1 引言 1
1.2 EDA技术及其发展 2
1.3 设计方法与设计技术 3
1.3.1 Top-down设计 3
1.3.2 Bottom-up设计 5
1.3.3 IP复用技术与SOC 5
1.4 EDA设计的实现 6
1.5 硬件描述语言 7
思考与练习 9
第2章 EDA设计软件与设计流程 10
本章内容简介 10
2.1 EDA软件工具概述 10
2.1.1 集成的CPLD/FPGA开发工具 10
2.1.2 输入工具(Design Input Tools) 11
2.1.3 逻辑综合工具(Synthesis Tools) 12
2.1.4 仿真工具(Simulation Tools) 12
2.1.5 IC版图工具 13
2.1.6 其他EDA工具 14
2.2 EDA设计的流程 14
2.2.1 输入(Design Input) 14
2.2.2 综合(Synthesis) 15
2.2.3 适配(Fitter) 16
2.2.4 仿真(Simulation) 16
2.2.5 编程(Program) 17
思考与练习 17
第3章 Verilog HDL设计初步 18
本章内容简介 18
3.1 Verilog语言的历史及与C语言的比较 18
3.2 完整的Verilog HDL设计 20
3.2.1 4位全加器和4位计数器 20
3.2.2 综合 21
3.2.3 仿真 22
3.3 Verilog模块基本结构剖析 27
3.3.1 Verilog模块的结构 27
3.3.2 逻辑功能定义 29
思考与练习 30
第4章 Verilog HDL语言要素 32
本章内容简介 32
4.1 词法 32
4.1.1 空白符和注释 32
4.1.2 数字与字符串(Numbers & Strings) 33
4.1.3 标识符(Identifiers) 35
4.1.4 运算符(Operators) 36
4.1.5 关键字(Keywords) 36
4.2 数据类型 36
4.2.1 连线型(Net Type) 36
4.2.2 寄存器型(Register Type) 38
4.2.3 parameter 38
4.3 寄存器和存储器 39
4.3.1 寄存器 39
4.3.2 存储器 39
4.4 运算符 40
4.4.1 运算符 40
4.4.2 运算符的优先级 44
思考与练习 44
第5章 Verilog HDL行为语句 45
本章内容简介 45
5.1 概述 45
5.2 过程语句 46
5.2.1 always过程语句 46
5.2.2 initial语句 50
5.3 块语句 51
5.3.1 串行块begin-end 51
5.3.2 并行块fork-join 52
5.4 赋值语句 53
5.4.1 持续赋值与过程赋值 53
5.4.2 阻塞赋值与非阻塞赋值 55
5.5 条件语句 56
5.5.1 if-else语句 56
5.5.2 case语句 58
5.5.3 条件语句使用要点 60
5.6 循环语句 61
5.6.1 for语句 61
5.6.2 repeat语句 62
5.6.3 while和forever语句 63
5.7 编译向导 65
5.7.1 宏替换`define 66
5.7.2 文件包含`include 66
5.7.3 条件编译`ifdef、`else、`endif 67
思考与练习 68
第6章 进程、任务与函数 69
本章内容简介 69
6.1 进程(process) 69
6.1.1 进程 69
6.1.2 进程间的通信 70
6.2 任务(task) 71
6.3 函数(function) 74
6.3.1 函数 74
6.3.2 任务与函数的区别 79
6.4 顺序执行与并发执行 79
6.5 Verilog-2001新增语法结构简介 81
思考与练习 84
第7章 Verilog HDL的描述风格 85
本章内容简介 85
7.1 概述 85
7.2 结构描述 86
7.2.1 Verilog HDL内置门元件 86
7.2.2 门级结构描述 89
7.3 行为描述方式 90
7.4 数据流描述方式 91
7.5 不同描述风格的例子 93
7.5.1 半加器 93
7.5.2 1位全加器 95
7.5.3 4位全加器 98
思考与练习 100
第8章 仿真 101
本章内容简介 101
8.1 概
1