第1章 数字系统硬件设计概述 1
1.1 传统的系统硬件设计方法 1
1.1.1 采用自下至上(Bottom Up)的设计方法 2
1.1.2 采用通用的逻辑元、器件 4
1.1.3 在系统硬件设计的后期进行仿真和调试 4
1.1.4 主要设计文件是电原理图 4
1.2 利用硬件描述语言(HDL)的硬件电路设计方法 4
1.2.1 采用自上至下(Top Down)的设计方法 6
1.2.2 系统中可大量采用ASIC芯片 9
1.2.3 采用系统早期仿真 9
1.2.4 降低了硬件电路设计难度 9
1.2.5 主要设计文件是用HDL语言编写的源程序 9
1.3 利用VHDL语言设计硬件电路的优点 10
1.3.1 设计技术齐全、方法灵活、支持广泛 10
1.3.2 系统硬件描述能力强 10
1.3.3 VHDL语言可以与工艺无关编程 10
1.3.4 VHDL语言标准、规范,易于共享和复用 11
第2章 VHDL语言程序的基本结构 12
2.1 VHKL语言设计的基本单元及其构成 12
2.1.1 实体说明 13
2.1.2 构造体 15
2.2 VHDL语言构造体的子结构描述 17
2.2.1 BLOCK语句结构描述 17
2.2.2 进程(PROCESS)语句结构描述 20
2.2.3 子程序(SUBPROGRAM)语句结构描述 22
2.3 包集合、库及配置 25
2.3.1 库 25
2.3.2 包集合 27
2.3.3 配置 29
第3章 VHDL语言的数据类型及运算操作符 34
3.1 VHDL语言的客体及其分类 34
3.1.1 常数(Constant) 35
3.1.2 变量(variable) 35
3.1.3 信号(Signal) 35
3.1.4 信号和变量值代入的区别 36
3.2 VHDL语言的数据类型 37
3.2.1 标准的数据类型 37
3.2.2 用户定义的数据类型 40
3.2.3 用户定义的子类型 43
3.2.4 数据类型的转换 43
3.2.5 数据类型的限定 45
3.2.6 IEEE标准“STD_LOGIC”,“STD_LOGIC_VECTOR” 45
3.3 VHDL语言的运算操作符 46
3.3.1 逻辑运算符 46
3.3.2 算术运算符 47
3.3.3 关系运算符 48
3.3.4 并置运算符 48
第4章 VHDL语言构造体的描述方式 51
4.1 构造体的行为描述方式 51
4.1.1 代入语句 52
4.1.2 延时语句 53
4.1.3 多驱动器描述语句 54
4.1.4 GENERIC语句 56
4.2 构造体的寄存器传输(RTL)描述方式 58
4.2.1 RTL描述方式的特点 58
4.2.2 使用RTL描述方式应注意的几个问题 60
4.3 构造体的结构描述方式 64
4.3.1 构造体结构描述的基本框架 65
4.3.2 COMPONENT语句 68
4.3.3 COMPONENT_INSTANT语句 68
第5章 VHDL语言的主要描述语句 70
5.1 顺序描述语句 70
5.1.1 WAIT语句 71
5.1.2 断言(ASSERT)语句 75
5.1.3 信号代入语句 75
5.1.4 变量赋值语句 75
5.1.5 IF语句 76
5.1.6 CASE语句 78
5.1.7 LOOP语句 83
5.1.8 NEXT语句 85
5.1.9 EXIT语句 86
5.2 并发描述语句 87
5.2.1 进程(PROCESS)语句 87
5.2.2 并发信号代入(Concurrent Signal Assignment)语句 88
5.2.3 条件信号代入(Conditionnal Signal Assignment)语句 89
5.2.4 选择信号代入(Selective Signal Assignment)语句 90
5.2.5 并发过程调用(Concurrent procedure Call)语句 91
5.2.6 块(BLOCK)语句 92
5.3 其它语句和有关规定的说明 95
5.3.1 命名规则和注解的标记 96
5.3.2 ATTRIBUTE(属性)描述与定义语句 96
5.3.3 GENERATE语句 117
5.3.4 TEXTIO 120
第6章 数值系统的状态模型 124
6.1 二态数值系统 124
6.2 三态数值系统 125
6.3 四态数值系统 126
6.4 九态数值系统 128
6.5 十二态数值系统 130
6.6 四十六态数值系统 132
第7章 基本逻辑电路设计 136
7.1 组合逻辑电路设计 136
7.1.1 简单门电路 136
7.1.2 编、译码器与选择器 142
7.1.3 加法器、求补器 146
7.1.4 三态门及总线缓冲器 148
7.2 时序电路设计 153
7.2.1 时钟信号和复位信号 153
7.2.2 触发器 156
7.2.3 寄存器 162
7.2.4 计数器 167
7.3 存贮器 173
7.3.1 存贮器描述中的一些共性问题 173
7.3.2 ROM(只读存贮器) 174
7.3.3 RAM(随机存贮器) 176
7.3.4 FIFO(先进先出堆栈) 177
第8章 仿真与逻辑综合 182
8.1 仿真 182
8.1.1 仿真输入信息的产生 183
8.1.2 仿真? 188
8.1.3 仿真程序模块的书写 190
8.2 逻辑综合 192
8.2.1 约束条件 193
8.2.2 属性描述 193
8.2.3 工艺库 194
8.2.4 逻辑综合的基本步骤 195
第9章 计时电路设计实例 198
9.1 1/100s计时器的功能要求和结构 198
9.1.1 1/100s计时器的功能要求 198
9.1.2 1/100s计时器的结构设想 199
9.2 1/100s计时控制芯片设计 199
9.2.1 计时控制芯片的结构 200
9.2.2 计时控制芯片的包集合Package_p_stop_watch 204
9.2.3 计时控制芯片实体stop_watch描述 210
9.2.4 计时控制芯片的构造体描述 210
9.2.5 各子结构的描述说明 213
第10章 虚拟处理器COMET_chip设计实例 216
10.1 COMET_chip处理器基本规格和性能 216
10.1.1 COMET_chip的外部特性 216
10.1.2 COMET_chip的结构 218
10.1.3 处理器的控制 221
10.1.4 指令设置 221
10.1.5 芯片分割和描述方式 226
10.2 包集合comet_package的构成 227
10.2.1 包集合comet_package的说明(定义)部分 227
10.2.2 包集合comet_package本体描述 230
10.3 COMET_chip的各部分模块设计(行为描述) 231
10.3.1 rfu(寄存器阵列单元)的设计 231
10.3.2 alu(算术逻辑运算单元)的设计 235
10.3.3 bsu(循环移位单元)的设计 238
10.3.4 miu(存贮器接口单元)的设计 243
10.3.5 bcu(总线控制单元)的设计 247
10.3.6 mcu(主控单元)的设计 249
10.3.7 实体comet的描述 257
10.4 COMET_chip的RTL设计 264
10.4.1 alu(算术逻辑运算单元)的RTL描述 264
10.4.2 bcu(总线控制单元)的RTL描述 268
10.4.3 rfu(寄存器阵列单元)的RTL描述 269
10.4.4 miu(存贮器接口单元)的RTL描述 276
10.4.5 mcu(主控单元)的RTL描述 281
附录A VHDL语言文法一览表 289
附录B 属性说明 300
附录C VHDL标准包集合文件 302
附录D 93版和87版VHDL语言的区别 333
主要参考文献 336