第一章 数字系统硬件设计概述 1
1.1 传统的系统硬件设计方法 1
1.1.1 采用自下至上(Bottom Up)的设计方法 1
1.1.2 采用通用的逻辑元、器件 3
1.1.3 在系统硬件设计的后期进行仿真和调试 4
1.1.4 主要设计文件是电原理图 4
1.2 利用硬件描述语言(HDL)的硬件电路设计方法 4
1.2.1 采用自上至下(Top Down)的设计方法 5
1.3 利用VHDL语言设计硬件电路的优点 9
1.2.5 主要设计文件是用HDL语言编写的源程序 9
1.2.4 降低了硬件电路设计难度 9
1.2.3 采用系统早期仿真 9
1.2.2 系统中可大量采用ASIC芯片 9
1.3.1 设计技术齐全、方法灵活、支持广泛 10
1.3.2 系统硬件描述能力强 10
1.3.3 VHDL语言可以与工艺无关编程 10
1.3.4 VHDL语言标准、规范、易于共享和复用 10
第二章 VHDL语言程序的基本结构 11
2.1 VHDL语言设计的基本单元及其构成 11
2.1.1 实体说明 12
2.1.2 构造体 14
2.2.2 进程(PROCESS)语句结构描述 16
2.2 VHDL语言构造体的子结构描述 16
2.2.1 BLOCK语句结构描述 16
2.2.3 子进程(SUBPROGRAM)语句结构描述 20
2.3 包集合、库及配置 23
2.3.1 库 24
2.3.2 包集合 25
2.3.3 配置 28
第三章 VHDL语言的数据类型及运算操作符 33
3.1 VHDL语言的客体及其分类 33
3.1.1 常数(Constant) 33
3.1.4 信号和变量值代入的区别 34
3.1.3 信号(Signal) 34
3.1.2 变量(Variable) 34
3.2 VHDL语言的数据类型 36
3.2.1 标准的数据类型 36
3.2.2 用户定义的数据类型 38
3.2.3 用户定义的子类型 42
3.2.4 数据类型的转换 42
3.2.5 数据类型的限定 42
3.2.6 IEEE标准“STD_LOGIG”、“STD_LOGIC_VECTOR” 44
3.3 VHDL语言的运算操作符 44
3.3.1 逻辑运算符 45
3.3.3 关系运算符 46
3.3.2 算术运算符 46
3.3.4 并置运算符 47
第四章 VHDL语言构造体的描述方式 49
4.1 构造体的行为描述方式 49
4.1.1 代入语句 49
4.1.2 延时语句 51
4.1.3 多驱动器描述语句 52
4.1.4 GENERIC语句 54
4.2 构造体的寄存器传输(RTL)描述方式 55
4.2.2 使用RTL描述方式应注意的几个问题 57
4.2.1 RTL描述方式的特点 62
4.3 构造体的结构描述方式 62
4.3.1 构造体结构描述的基本框架 62
4.3.2 COMPONENT语句 66
4.3.3 COMPONENT_INSTANT语句 66
第五章 VHDL语言的主要描述语句 68
5.1 顺序描述语句 68
5.1.1 WAIT语句 69
5.1.2 断言(ASSERT)语句 72
5.1.3 信号代入语句 72
5.1.4 变量赋值语句 73
5.1.5 IF语句 73
5.1.6 CASE语句 76
5.1.7 LOOP语句 81
5.1.8 NEXT语句 83
5.1.9 EXIT语句 84
5.2 并发描述语句 85
5.2.1 进程(PROCESS)语句 85
5.2.2 并发信号代入(Concurrent Signal Assignment)语句 86
5.2.3 条件信号代入(Conditionnal Signal Assignment)语句 87
5.2.4 选择信号代入(Selective Signal Assignment)语句 87
5.2.5 并以过程调用(Concurrent procedure Call)语句 89
5.2.6 块(BLOCK)语句 90
5.3.2 ATTRIBUTE(属性)描述与定义语句 94
5.3.1 命名规则和注释的标记 94
5.3 其它语句和有关规定的说明 94
5.3.3 GENERATE语句 115
5.3.4 TEXTIO 119
第六章 数值系统的状态模型 123
6.1 二态数值系统 123
6.2 三态数值系统 124
6.3 四态数值系统 125
6.4 九态数值系统 126
6.5 十二态数值系统 129
6.6 四十六态数值系统 131
7.1 组合逻辑电路设计 134
7.1.1 简单门电路 134
第七章 基本逻辑电路设计 134
7.1.2 编、译码器与选择器 140
7.1.3 加法器、求补器 144
7.1.4 三态门及总线缓冲器 146
7.2 时序电路设计 150
7.2.1 时钟信号和复位信号 150
7.2.2 触发器 154
7.2.3 寄存器 154
7.2.4 计数器 159
7.3 存贮器 171
7.3.1 存贮器描述中的一些共性问题 171
7.3.2 ROM(只读存贮器) 172
7.3.3 RAM(随机存贮器) 173
7.3.4 FIFO(先进先出堆栈) 175
第八章 仿真与逻辑综合 180
8.1 仿真 180
8.1.1 仿真输入信息的产生 180
8.1.2 仿真△ 185
8.1.3 仿真程序模块的书写 188
8.2 逻辑综合 190
8.2.1 约束条件 190
8.2.2 属性描述 191
8.2.3 工艺库 192
8.2.4 逻辑综合的基本步骤 193
9.1 1/100S计时器的功能要求与结构 195
9.1.1 1/100s计时器的功能要求 195
9.1.2 1/100s计时器的结构设想 195
第九章 计时电路设计实例 195
9.2 1/100s计时控制芯片设计 196
9.2.1 计时控制芯片的结构 196
9.2.2 计时控制芯片的包集合Package_p_stop_watch 200
9.2.3 基本单元电路描述 205
9.2.4 计时控制芯片实体stop_watch 描述 209
9.2.5 计时控制芯片的构造描述 210
9.2.6 各子模块描述说明 211
10.1.1 8255的引脚及内部结构 218
第十章 微处理器接口芯片设计实例 218
10.1 可编程并行接口芯片设计实例 218
10.1.2 8255的工作方式及其控制字 219
10.1.3 8255的结构设计 221
10.1.4 8255芯片的VHDL语言描述 222
10.1.5 8255芯片VHDL语言描述模块仿真 228
10.2 SCI串行接口芯片设计实例 228
10.2.2 串行数据传送格式及同步控制机构 228
10.2.3 SCI芯片的VHDL语言描述 230
10.2.4 SCI芯片VHDL语言描述模块仿真 235
10.3.1 KBC的引脚及内部结构 236
10.3 键盘接口芯片KBC设计实例 236
10.3.2 同步控制机械和查表描述 241
10.3.3 KBC芯片的VHDL语言描述 241
10.3.4 KBC芯片VHDL语言描述模块仿真 246
第十一章 93版和97版VHDL语言的主要区别 247
11.1 VHDL语言93版本的特点 247
11.1.1 文件是VHDL语言新的客体 247
11.1.2 在端口映射中使用常量表达式 248
11.1.3 定义了共享变量 249
11.1.4 定义了GROUP 250
11.1.5 定义了新的属性FOREIGN 250
11.1.7 扩展标号标注 251
11.1.5 语句描述上的区别 251
11.1.8 纯函数和非纯函数 252
11.1.10 文件操作定义 252
11.1.11 扩大了属性使用范围 253
11.1.12 增加了逻辑操作 253
11.1.13 Report语句(报告语句) 254
11.1.14 信号延时可指定脉冲宽度限制 254
11.1.15 可对信号赋无效值 254
11.1.16 延迟过程 254
11.1.17 COMPONENT语句、实体——构造体或配置的直接说明 254
11.1.18 GENERATE语句可含端口说明部分 254
11.1.22 增加了预定义属性 255
11.1.21 位串 255
11.1.19 扩展了字符集 255
11.1.20 定义了扩展标识符 255
11.1.23 扩充了标准包集合(STANDARD) 257
11.3 87版到93版的移值问题 257
第十二章 MAX+plusⅡ使用说明 258
12.1 MAX+plusⅡ概述 258
12.1.1 系统安装 258
12.1.2 MAX+plusⅡ对VHDL的支持 260
12.1.3 MAX+plusⅡ系统的启动 260
12.2 建立和编辑一个VHDL语言的工程文件 261
12.2.1 新文件的编辑 261
12.2.2 文件的修改 262
12.3 VHDL语言程序的编译 264
12.4 VHDL语言程序的仿真 267
12.4.1 生成仿真波形文件 267
12.4.2 仿真 271
12.4.3 定时分析 271
习题与思考题 274
附录A VHDL语言方法一览表 279
附录B 属性说明 290
附录C VHDL标准包集合文件 292
主要参考文献 319