第1章 FPGA概述 1
1.1 什么是FPGA 1
1.2 FPGA与32位处理器的比较 2
1.3 FPGA和ASIC的关系 3
1.4 FPGA的发展 3
1.5 代码语言VHDL和开发工具ISE 6
1.6 FPGA的应用 7
第2章 XC3S500E和XCF04S的基本结构 9
2.1 XC3S500E的主要特点 9
2.2 内部结构总论 10
2.3 配置操作 11
2.4 芯片封装标记 12
2.5 输入输出块(IOB) 12
2.5.1 IOB内部结构 12
2.5.2 输入延时功能 14
2.5.3 存储单元功能 15
2.5.4 倍速数据传输 16
2.5.5 支持多种信号标准 17
2.5.6 片内差分端电阻(On_Chip Differential Termination) 19
2.5.7 上拉电阻和下拉电阻 20
2.5.8 边沿切换速率(Slew Rate)控制和驱动强度(Drive Strength)控制 20
2.5.9 IOB的区(Bank)划分和规则 20
2.5.10 IOB的供电 21
2.5.11 上电和配置过程时I/O引脚行为 21
2.5.12 JTAG边界扫描功能 22
2.6 可配置逻辑块(CLB)和切片(Slice)资源 22
2.6.1 CLB总论 22
2.6.2 切片总论 23
2.7 块RAM(Block RAM) 31
2.8 专用乘法器(Dedicated Multipliers) 39
2.9 数字时钟管理器(DCM,Digital Clock Manager) 42
2.9.1 总论 42
2.9.2 延锁环(Delay—Locked Loop,DLL) 43
2.9.3 数字频率合成器(Digital Frequency Synthesizer,DFS) 49
2.9.4 相移器(Phase Shifter,PS) 50
2.9.5 状态逻辑(Status Logic) 52
2.10 时钟基本结构 53
2.11 芯片内功能单元互连(Interconnect) 57
2.12 配置(Coufiguration) 59
2.12.1 配置过程 59
2.12.2 配置数据大小 61
2.12.3 配置时钟信号CCLK的设计要点 61
2.12.4 HSWAP,M[2:0]和VS[2:0]引脚线路设计要点 61
2.12.5 主机串口模式(Master Serial Mode) 62
2.12.6 其它的主机配置模式 65
2.12.7 从机串口模式(Slave Seral Mode) 65
2.12.8 JTAG模式 68
2.12.9 配置过程总结 69
2.13 Spartan-3E系列FPGA芯片引脚说明 76
2.13.1 引脚类型 76
2.13.2 三种封装的引脚 77
2.14 Platform Flash PROM 81
2.14.1 Flash PROM的特点和对FPGA的支持 81
2.14.2 Flash PROM内部结构 82
2.14.3 PROM参与FPGA配置 83
2.14.4 PROM的在系统烧写(In—system Programming) 83
2.14.5 PROM的指标参数和引脚 84
第3章 核板和外围模块硬件设计 86
3.1 最小系统和外围器件 86
3.2 基于FPGA的电子产品分类 86
3.3 硬件系统的需求分析和项目方案 87
3.4 线路板集成设计工具Protel DXP简介 89
3.5 核板原理图设计 91
3.6 核板PCB设计 141
3.7 模块Bank1_Md1(液晶和8xLED模块)设计 161
3.7.1 接口模块Bank1_Md1设计 161
3.7.2 8xLED模块设计 164
3.7.3 RS232通信模块设计 165
3.8 模块Bank0_Md1(单数码管模块)设计 167
3.9 模块Bank1_Md2(4连数码管模块)设计 169
3.10 并口JTAG下载器设计 172
3.11 模块Bank2_Md1(输入模块)设计 176
第4章 开发环境ISE和VHDL语言 178
4.1 开发环境ISE 178
4.2 ISE安装过程 178
4.2.1 注册 178
4.2.2 ISE软件下载 183
4.2.3 ISE安装 189
4.3 ISE操作全过程 199
4.3.1 ISE界面介绍 199
4.3.2 新项目(New Project)建立 201
4.3.3 产生源代码 203
4.3.4 源代码综合(Synthesize) 208
4.3.5 波形仿真(Simulate) 211
4.3.6 产生用户约束文件 215
4.3.7 执行设计(Implement Design) 217
4.3.8 产生烧写文件(Generate Programming File) 218
4.3.9 产生PROM文件 218
4.3.10 烧写 224
4.3.11 运行 230
4.4 ISE各功能模块 231
4.4.1 ISE全过程总结 231
4.4.2 参考已有的源代码和约束文件建立新项目 231
4.4.3 源代码综合(Synthesize-XST) 231
4.4.4 执行设计(Implement Design) 232
4.4.5 产生烧写文件(Generate Programming File) 232
4.4.6 配置目标器件(Configure Target Device) 233
4.5 VHDL语言 233
4.5.1 VHDL源代码结构形式 233
4.5.2 VHDL基本定义 238
4.5.3 VHDL语句 243
4.5.4 元件模块(Component) 247
第5章 项目软件开发和源代码解释 250
5.1 简单逻辑门电路 250
5.1.1 双输入与非门电路test00_NAND 250
5.1.2 解码器电路test138_deCoder_1 254
5.2 简单时序电路 257
5.2.1 LED闪烁电路test0_LED 257
5.2.2 LED跑马灯电路test8LED_HorseRun 259
5.2.3 带锁存解码器电路test138_deCoder_2 263
5.2.4 同步解码器电路test138_deCoder_3 267
5.2.5 串入并出同步移位寄存器电路test164_SIPO 271
5.2.6 单数码管电路testLEDNumber_1 276
5.2.7 按键控制的单数码管电路testLEDNumber_2 279
5.3 I/O口电路 283
5.3.1 4连数码管计数器NumLEDx4_1 283
5.3.2 4连数码管精密计时器NumLEDx4_2 290
5.3.3 4连数码管倒计时器NumLEDx4_3 296
5.3.4 4连数码管定时器NumLEDx4_4 297
5.4 通信电路 307
5.4.1 字符液晶显示LCD1602_disp 307
5.4.2 UART通信发送UART_transmitter 315
5.4.3 UART通信接收发送UART_tranceiver 321
5.4.4 蓝牙通信BlueTooth_1 330
5.4.5 基于PWM的LED亮度控制PWM_2xLED 345
5.4.6 双舵机控制PWM_2xMiniServer 350
5.4.7 步进电机控制Step_Motor1 358
5.4.8 带设置的步进电机控制Step_Motor2 363
5.5 DCM开发 375
5.5.1 数字时钟管理器实例DCM_Test 375
5.6 其它项目 388
5.6.1 直流电机控制 388
5.6.2 继电器控制 389
5.6.3 单片机和FPGA双机系统 390
参考文献 392