第1章 可编程逻辑器件的硬件结构 1
1.1 可编程逻辑器件概述 1
1.2 MAX7000系列PLD器件的结构与特点 2
1.2.1 基本宏单元(Macrocell) 2
1.2.2 逻辑阵列块(Logic Array Block) 5
1.2.3 I/O引脚 5
1.2.4 可编程互连阵列(Programmable Interconnect Array)及I/O控制块 6
1.2.5 复杂宏单元 6
1.2.5.1 共享扩展乘积项(Shareable Expanders) 6
1.2.5.2 并联扩展乘积项(Parallel Expanders) 8
1.2.5.3 异或门控制端 8
1.2.5.4 D触发器的时钟 9
1.2.5.5 D触发器的置位(PRN)和清零(CLRN)控制 10
1.2.6 MAX7000E和MAX7000S系列PLD的结构 10
1.2.7 时间特性(Timing) 11
1.3 FLEX10K系列PLD器件的结构与特点 14
1.3.1 FLEX10K系列PLD芯片的总结构 15
1.3.2 隐埋阵列块(EAB) 16
1.3.3 逻辑阵列块(LAB) 17
1.3.4 逻辑单元(LE) 17
1.3.5 快速互连通道(Fast Track Interconnect) 20
1.3.6 I/O单元(I/O Element) 20
1.3.7 时间特性(Timing) 23
1.3.8 其它应用特点 26
第2章 MAX+plusⅡPLD开发工具 27
2.1 PLD开发流程 27
2.2 电路设计输入 27
2.3 编译处理 29
2.4 仿真器(Simulator) 30
2.5 时序分析器(Timing Analyzer) 31
2.6 编程器(Programmer) 32
2.7 一个综合例子 33
2.7.1 设计说明 33
2.7.2 启动MAX+plusⅡ程序 37
2.7.3.1 建立新文件并指定项目(Project)名称 39
2.7.3.2 输入元件符号和引脚符号 39
2.7.3 建立图形文件tick_cnt.gdf 39
2.7.3.3 移动,拷贝,删除元件符号 41
2.7.3.4 引脚命名 41
2.7.3.5 连接元件符号 41
2.7.3.6 用名字来连接节点(node)和总线(bus) 42
2.7.3.7 保存文件 42
2.7.4 建立AHDL文本文件time_cnt.tdf 43
2.7.5 建立AHDL文本文件auto_max.tdf 43
2.7.3.8 建立一个默认的逻辑符号 43
2.7.3.9 关闭文件 43
2.7.6 建立波形设计文件speed_ch.wdf 44
2.7.6.1 建立一个新文件并指定项目名称 44
2.7.6.2 创建输入、输出和隐埋节点 44
2.7.6.3 显示时间网络(grid)并设置网格宽度 45
2.7.6.5 编辑输入和输出节点的波形 46
2.7.6.4 编辑隐埋状态机节点的波形 46
2.7.6.6 保存文件并创建一个默认符号 47
2.7.7 建立顶层图形设计文件chiptrip.gdf 47
2.7.8 编译处理 48
2.7.9 仿真 51
2.7.10 时间分析 54
2.7.11 芯片编程 56
第3章 AHDL硬件描述语言 58
3.1 AHDL文件的结构 58
3.2 节点和组 61
3.3 布尔表达式 62
3.3.1 逻辑运算符 62
3.3.2 算术运算符 63
3.3.3 比较符 64
3.3.4 运算符和比较符的优先级 64
3.4 AHDL中的保留关键字和标识符 64
3.5.1 Table真值表语句 65
3.5 常用的逻辑描述语句 65
3.5.2 IF语句 66
3.5.3 CASE语句 67
3.6 寄存器和计数器的描述 69
3.7 状态机的描述 72
3.7.1 状态机说明 72
3.7.2 状态位和状态值说明 74
3.7.3 对非法状态的处理 76
3.7.4 状态机输入和输出端口 77
3.8 函数及其引用 79
3.8.1 函数原型说明及其间接引用 79
3.8.2 函数的直接引用 83
3.8.3 基本元件(primitive)的函数模块 83
3.8.4 宏功能(macrofunction)函数模块 86
3.9 其它语句 95
3.9.1 Constant常量语句 95
3.9.2 Defaults默认值语句 95
3.9.3 Options选择语句 97
第4章 实验 99
4.1 软件仿真实验 99
4.2 硬件实验 105
4.2.1 芯片介绍 105
4.2.2 芯片编程(Programming)与配置(configuration) 108
4.2.3 实验板介绍 110
4.2.4 硬件实验设计 111
5.1 VHDL文件的结构 117
第5章 VHDL硬件描述语言 117
5.1.1 实体(ENTITY)说明 118
5.1.2 端口方向 118
5.1.3 数据类型 119
5.1.3.1 标准数据类型 119
5.1.3.2 用户定义的数据类型 120
5.1.3.3 用户定义的子类型 121
5.1.3.4 数据类型转换 122
5.1.4.1 信号(Signal)说明 123
5.1.4 构造体(ARCHITECTURE)说明 123
5.1.4.2 变量(Variable)说明 124
5.1.4.3 常数(Constant)说明 124
5.1.4.4 VHDL中的运算操作符 124
5.1.4.5 VHDL构造体中的子结构 126
5.2 VHDL中的描述语句 127
5.2.1 顺序描述语句(Sequential) 127
5.2.1.1 信号代入语句 127
5.2.1.2 变量赋值语句 128
5.2.1.3 IF语句 128
5.2.1.4 CASE语句 134
5.2.1.5 LOOP语句 136
5.2.1.6 NEXT语句 141
5.2.1.7 EXIT语句 141
5.2.2 并发描述语句(Concurrent) 142
5.2.2.1 条件信号代入语句(Conditional Signal Assignment) 142
5.2.2.2 选择信号代入语句(Selective Signal Assignment) 143
5.2.2.3 子程序语句(Subprogram)和包集合说明 144
5.2.2.4 函数(Function)语句 144
5.2.2.5 过程(Procedure)语句 145
5.2.3 其它描述语句 149
5.2.3.1 属性(Attribute)描述与定义语句 149
5.2.3.2 COMPONENT元件语句 150
5.2.3.3 GENERATE语句 152
5.2.3.4 VHDL的行为描述语句 154
AFTER 惯性延时语句 154
GENERIC类属语句 154
WAIT语句 155
ASSERT语句 156
5.3 状态机的描述 156
5.4 存储器的描述 157
附录1 VHDL标准包集合STD_LOGIC_1164文件 159
附录2 实用设计参考:PCI总线目标接口控制器 184