目录 1
丛书序 1
前言 1
第1章 可编程逻辑器件和EDA设计技术 1
1.1 可编程逻辑器件 1
1.1.1 可编程逻辑器件的发展 1
1.1.2 可编程逻辑器件的分类 3
1.2 EDA设计技术 8
1.2.1 EDA设计技术的发展历史 9
1.2.2 EDA设计技术的基本特征 10
1.2.3 EDA设计技术的工具 11
1.2.4 EDA设计技术的发展趋势 14
第2章 可编程逻辑器件的基本原理 15
2.1 可编程逻辑器件的基本结构 15
2.2 简单的可编程逻辑器件 16
2.2.1 可编程只读存储器(PROM) 17
2.2.2 可编程逻辑阵列(PLA) 18
2.2.3 可编程阵列逻辑(PAL) 21
2.2.4 通用阵列逻辑(GAL) 24
2.3 可编程逻辑器件:EPLD和CPLD 30
2.3.1 可擦除的可编程逻辑器件(EPLD) 30
2.3.2 复杂的可编程逻辑器件(CPLD) 34
2.4 现场可编程门阵列(FPGA) 41
2.4.1 查找表结构 42
2.4.2 多路开关结构 43
2.4.3 多级与非门结构 44
3.1 XC9500系列CPLD的结构原理 45
第3章 Xilinx公司可编程逻辑器件的结构原理 45
3.1.1 XC9500系列CPLD的结构框图 46
3.1.2 XC9500系列CPLD的基本单元 47
3.1.3 XC9500系列CPLD的其他特性 54
3.1.4 XC9500系列CPLD的时序模型 56
3.2 CoolRunner XPLA3系列CPLD的结构原理 57
3.2.1 CoolRunnerXPLA3系列CPLD的结构框图 59
3.2.2 CoolRunner XPLA3系列CPLD的基本单元 59
3.2.3 CoolRunner XPLA3系列CPLD的时序模型 64
3.3 CoolRunner-Ⅱ系列CPLD的结构原理 65
3.3.2 CoolRunner-Ⅱ系列CPLD的基本单元 67
3.3.1 CoolRunner-Ⅱ系列CPLD的结构框图 67
3.3.3 CoolRunner-Ⅱ系列CPLD的时序模型 70
3.4 Spartan-Ⅱ和Spartan-ⅡE系列FPGA的结构原理 71
3.4.1 Spartan-Ⅱ和Spartan-ⅡE系列FPGA的结构框图 73
3.4.2 Spartan-Ⅱ和Spartan-ⅡE系列FPGA的组成部分 74
3.4.3 延迟锁相环的应用 81
3.4.4 块状RAM的应用 86
3.5 Virtex-Ⅱ系列FPGA的结构原理 91
3.5.1 Virtex-Ⅱ系列FPGA的结构框图 92
3.5.2 Virtex-Ⅱ系列FPGA的组成部分 93
第4章 VHDL设计方法 102
4.1 VHDL概述 102
4.2 VHDL程序的结构 103
4.2.1 实体说明 103
4.2.2 结构体 104
4.2.3 库和程序包 107
4.2.4 配置 108
4.3 VHDL程序的元素 110
4.3.1 数据对象 110
4.3.2 数据类型 112
4.3.3 运算操作符 116
4.4 VHDL程序的描述语句 119
4.4.1 并行描述语句 120
4.4.2 顺序描述语句 126
第5章 EDA开发工具——MAX+plusⅡ 135
5.1 MAX+plusⅡ开发工具简介 135
5.1.1 MAX+plusⅡ开发工具的特点 135
5.1.2 MAX+plusⅡ对系统的配置要求 136
5.1.3 MAX+plusⅡ的安装和卸载 137
5.1.4 MAX+plusⅡ的功能模块 142
5.2 MAX+plusⅡ的设计输入 144
5.2.1 原理图设计输入 145
5.2.2 文本设计输入 150
5.3 MAX+plusⅡ的设计编译 153
5.3.1 可编程逻辑器件的设置 153
5.3.2 设计项目的编译操作 156
5.4 MAX+plusⅡ的设计校验 158
5.4.1 设计的仿真分析 158
5.4.2 设计的定时分析 164
5.5 MAX+plusⅡ的器件编程 165
第6章 EDA开发工具——ISE 167
6.1 设计开始 168
6.1.1 软件的安装 168
6.1.2 运行ISE软件 171
6.1.3 使用在线帮助 176
6.2 VHDL的设计输入 177
6.2.1 创建一个新的项目 177
6.2.2 使用Architecture Wizard来创建一个DCM模块 178
6.2.3 DCM模块的声明和例化 181
6.2.4 元器件设计 182
6.2.5 使用PACE创建管脚和面积约束 182
6.3 添加时序约束 185
6.4 仿真行为模型 188
6.5 使用ModelSim进行行为仿真 190
6.5.1 行为仿真 190
6.5.2 布局布线后的仿真 191
6.6 原理图方式的设计输入 191
6.6.1 创建生成一个原理图符号 191
6.6.3 例化VHDL模块 192
6.6.2 创建一个新的顶层原理图 192
6.6.4 原理图中连线 193
6.6.5 为连线添加网络名 193
6.6.6 为总线添加网络名 195
6.6.7 添加输入/输出管脚标记 195
6.7 设计输入(FSM状态机输入) 196
6.7.1 状态机的建立和产生VHDL代码 197
6.7.2 设计的功能仿真并产生测试平台 202
7.1 概述 205
第7章 CPLD/FPGA的边界扫描与下载方式 205
7.2 边界扫描测试 206
7.2.1 边界扫描测试的结构 206
7.2.2 测试逻辑的控制 212
7.2.3 边界扫描测试的应用 214
7.2.4 设计举例 220
7.3 Xilinx器件的下载 223
7.3.1 Xilinx器件的下载电缆 223
7.3.2 Xilinx器件的下载方式 227
8.1.2 双向传输的接口特性 231
8.1.1 I2C总线的基本结构 231
8.1 I2C总线的结构 231
第8章 I2C总线的设计 231
8.1.3 I2C总线上的时钟信号 232
8.1.4 总线竞争的仲裁 232
8.2 I2C总线的具体实现 233
8.2.1 原理框图 233
8.2.2 接口信号说明 234
8.2.3 I2C总线设计的详细框图 234
8.2.4 微处理器接口模块 235
8.2.5 I2C模块说明 237
8.3 程序说明 240
8.3.1 顶层程序说明 240
8.3.2 I2C-CONTROL.VHD程序说明 246
8.3.3 移位模块程序说明(SHIFT.VHD) 264
8.3.4 计数器模块说明(UPCNT4.VHD) 265
8.3.5 微处理器接口模块(UC_INTERFACE.VHD) 266
第9章 DDR SDRAM接口控制器 274
9.1 概述 274
9.2 设计要点 275
9.3 顶层程序模块 277
9.4 时钟模块 282
9.5 控制模块说明 290
9.5.1 控制模块概述 290
9.5.2 内存初始化 293
9.5.3 DDR SDRAM控制器的主状态机说明 294
9.5.4 内存访问 294
9.5.5 程序说明 294
9.6 数据通道模块 320
9.6.1 写数据通道 322
9.6.3 程序说明 323
9.6.2 读数据通道 323
9.6.4 V2_DDR_IOB_8.VHD程序说明 331
9.6.5 V2_DDR_IOB.VHD模块说明 335
9.6.6 SYNC_DQS2CLK_DRAM.VHD模块说明 339
9.6.7 RAM_8D.VHD模块 347
9.6.8 RAM_8D_1.VHD模块 351
9.7 DQS选通模块 355
9.8 测试平台 360
参考文献 368