EDA技术与CPLD/FPGA开发应用简明教程 第二版
出版时间: 2013年版
丛编项: 高等学校计算机应用规划教材
内容简介
在信息技术高速发展的现代社会,电子系统的设计方法和设计手段已有了革命性的变化。可编程逻辑器件和EDA技术已广泛应用于通信、工业自动化、智能家电、智能交通、智能仪表、大屏幕、图像处理以及计算机等领域。因此,EDA技术是电子工程师必须掌握的技术。《EDA技术与CPLD/FPGA开发应用简明教程(第2版)/高等学校计算机应用规划教材》共分12章。《EDA技术与CPLD/FPGA开发应用简明教程(第2版)/高等学校计算机应用规划教材》根据课堂教学和实践的需要,详细介绍了EDA技术的基本知识、大规模可编程逻辑器件CPLD/FPGA的结构原理、EDA开发工具的使用方法、VHDL语言的语法结构和编程技巧、宏功能模块的应用、状态机和SOPC设计及应用。为提高读者的工程设计能力,第9~11章分别介绍了CPLD/FPGA器件在数字系统、通信工程和计算机等领域的具体应用,并且运用大量综合性实例对各种关键技术进行了深入浅出的分析。此外,基础章节配有思考题,应用章节配有设计题,附录4配有实训内容、设计思路和实训步骤,为读者实训提供方便。
目录
第1章 EDA概述与可编程逻辑器件
1.1 EDA技术
1.2 EDA技术发展历程
1.2.1 20世纪70年代的计算机辅助
设计CAD阶段
1.2.2 20世纪80年代的计算机辅助
工程设计CAE阶段
1.2.3 20世纪90年代电子系统设计
自动化EDA阶段
1.3 面向CPLD/FPGA的EDA技术
主要内容
1.3.1 大规模可编程逻辑器件
1.3.2 硬件描述语言(HDL)
1.3.3 软件开发工具
1.3.4 实验开发系统
1.3.5 关于EDA技术的学习重点及
学习方法
1.4 EDA技术应用对象
1.4.1 可编程逻辑器件
1.4.2 半定制或全定制ASIC
1.4.3 混合ASIC
1.5 面向CPLD/FPGA的EDA开发
流程
1.5.1 设计输入
1.5.2 逻辑综合和优化
1.5.3 适配(目标器件的布局布线)
1.5.4 仿真
1.5.5 目标器件的编程/下载
1.6 可编程逻辑器件
1.6.1 PLD的分类
1.6.2 PROM可编程原理
1.6.3 GAL
1.7 CPLD的结构与可编程原理
1.7.1 CPLD的基本结构
1.7.2 逻辑阵列宏单元
1.7.3 I/O控制模块
1.7.4 可编程连线阵列
1.8 FPGA的结构与可编程原理
1.8.1 FPGA的结构描述
1.8.2 查找表逻辑结构
1.8.3 Cyclone III系列器件与工作
原理
1.9 硬件测试技术
1.9.1 内部逻辑测试
1.9.2 JTAG边界扫描测试
1.10 FPGA/CPLD产品概述
1.10.1 Lattice公司的PLD器件
1.10.2 Xilinx公司的PLD器件
1.10.3 Altera公司的PLD器件
1.11 编程与配置
1.12 数字系统的设计方法简介
1.12.1 数字系统的设计准则
1.12.2 数字系统设计的艺术
1.13 Quartus II
1.14 IP核
1.15 EDA的发展趋势
1.16 本章小结
1.17 习题
第2章 原理图输入法逻辑电路设计
流程
2.1 原理图输入设计方法的特点
2.2 数字频率计设计任务导入
2.3 原理图输入方式基本设计
流程
2.3.1 建立工作库文件夹和存盘
原理图空文件
2.3.2 创建工程
2.3.3 功能简要分析
2.3.4 编译前设置
2.3.5 全程编译
2.3.6 时序仿真测试电路功能
2.4 引脚设置和编程下载
2.4.1 引脚锁定
2.4.2 配置文件下载
2.4.3 AS模式直接编程配置
器件
2.4.4 JTAG间接模式编程配置
器件
2.4.5 USB-Blaster编程配置器
安装方法
2.5 层次化设计
2.6 6位十进制频率计设计
2.6.1 时序控制器设计
2.6.2 顶层电路设计与测试
2.7 本章小结
2.8 习题
第3章 VHDL结构和要素
3.1 VHDL程序基本结构
3.1.1 实体(ENTITY)
3.1.2 结构体(ARCHITECTURE)
3.2 子程序(SUBPROGRAM)
3.2.1 函数(FUNCTION)
3.2.2 过程(PROCEDURE)
3.2.3 重载函数
3.2.4 转换函数
3.2.5 决断函数
3.3 VHDL库
3.3.1 库的种类
3.3.2 库的用法
3.4 VHDL程序包
3.4.1 程序包定义
3.4.2 预定义程序包
3.5 配置(CONFIGURATION)
3.6 VHDL文字规则
3.6.1 关键字
3.6.2 标识符
3.6.3 数字
3.6.4 字符和字符串
3.6.5 下标名及下标段名
3.6.6 注释
3.7 数据对象
3.7.1 变量(VARIABLE)
3.7.2 信号(SIGNAL)
3.7.3 常量(CONSTANT)
3.8 数据类型
3.8.1 VHDL预定义数据类型
3.8.2 用户自定义数据类型
3.8.3 数据类型转换
3.9 运算操作符
3.10 本章小结
3.11 习题
第4章 Quartus II应用深入
4.1 用VHDL设计十进制计数器
的步骤
4.1.1 建立工作库文件夹和编辑
设计文件
4.1.2 创建工程
4.1.3 编译前设置
4.1.4 全程编译
4.1.5 时序仿真
4.2 引脚锁定与硬件测试
4.2.1 引脚锁定
4.2.2 配置文件下载
4.2.3 AS模式编程配置器件
4.3 嵌入式逻辑分析仪使用方法
4.4 本章小结
4.5 习题
第5章 VHDL语言描述语句
5.1 VHDL语句概述
5.2 VHDL并行语句
5.2.1 并行信号赋值语句
5.2.2 进程语句(PROCESS)
5.2.3 块语句(BLOCK)
5.2.4 子程序的并行调用语句
5.2.5 元件例化语句
(COMPONENT)
5.2.6 生成语句(GENERATE)
5.3 VHDL顺序语句
5.3.1 顺序赋值语句
5.3.2 IF语句
5.3.3 CASE语句
5.3.4 LOOP语句
5.3.5 NULL语句
5.3.6 WAIT语句
5.4 VHDL程序设计难点解析
5.4.1 面向硬件的设计思维
5.4.2 组合电路和时序电路
5.4.3 可编程逻辑设计的基本
原则
5.4.4 设计思想和技巧
5.5 本章小结
5.6 习题
第6章 基本逻辑电路设计
6.1 组合逻辑电路设计
6.1.1 基本门电路
6.1.2 三态门及总线缓冲器
6.1.3 单向总线驱动器
6.1.4 双向总线缓冲器
6.2 时序逻辑电路设计
6.2.1 时序电路特殊信号描述
6.2.2 常用时序电路设计
6.2.3 寄存器和移位寄存器
6.2.4 计数器
6.2.5 序列信号发生器、
检测器
6.3 存储器设计
6.3.1 只读存储器(ROM)
6.3.2 静态数据存储器(SRAM)
6.3.3 先进先出堆栈(FIFO)
6.4 本章小结
6.5 习题
第7章 CPLD/FPGA应用系统设计
实例
7.1 键盘接口的FPGA设计
7.1.1 设计要求
7.1.2 设计分析
7.1.3 设计实现
7.2 LED数码管显示控制
7.2.1 LED数码管工作原理
7.2.2 静态LED数码管驱动原理
及其FPGA电路设计
7.2.3 动态LED数码管驱动原理
及其FPGA电路设计
7.3 序列检测器的设计
7.3.1 序列检测器设计思路
7.3.2 VHDL源程序
7.3.3 仿真结果
7.4 数字频率计的设计
7.4.1 数字频率计设计思路
7.4.2 数字频率计的VHDL
源程序
7.5 数字秒表的设计
7.5.1 数字秒表设计思路
7.5.2 数字秒表的VHDL
源程序
7.6 交通信号控制器的设计
7.6.1 交通信号控制器设计
思路
7.6.2 VHDL源程序
7.6.3 系统的有关仿真
7.6.4 系统的硬件验证
7.6.5 设计技巧分析
7.7 智能函数发生器的设计
7.7.1 智能函数发生器的设计
思路
7.7.2 模块及模块功能
7.8 SPWM发生器设计
7.8.1 SPWM信号产生的基本
原理
7.8.2 设计方案
7.8.3 设计的顶层原理图
和程序
7.8.4 主要模块的VHDL
程序
7.9 本章小结
7.10 习题
第8章 有限状态机的设计
8.1 状态机的一般形式
8.1.1 状态机的特点
8.1.2 状态机的基本结构
和功能
8.1.3 一般状态机的VHDL
描述
8.2 摩尔状态机的设计
8.2.1 多进程结构状态机
8.2.2 单进程Moore型有限
状态机
8.2.3 序列检测器之状态机
设计
8.3 Mealy型有限状态机的设计
8.4 状态机图形编辑设计方法
8.5 状态编码
8.5.1 直接输出型编码
8.5.2 顺序编码
8.5.3 一位热码状态编码
8.6 非法状态处理
8.6.1 程序直接导引法
8.6.2 状态编码监测法
8.7 三层电梯控制器的设计
8.7.1 三层电梯控制器的功能
8.7.2 三层电梯控制器的设计
思路
8.7.3 三层电梯控制器的综合
设计
8.7.4 三层电梯控制器的波形
仿真
8.7.5 N层电梯控制器的设计
技巧分析
8.8 本章小结
8.9 习题
第9章 宏功能模块与IP应用
9.1 宏功能模块概述
9.1.1 知识产权核的应用
9.1.2 使用MegaWizard Plug-In
Manager
9.1.3 在Quartus II中对宏功能模块
进行例化
9.1.4 宏功能模块LPM计数器
的使用方法
9.2 存储器模块的定制与应用
9.2.1 存储器初始化文件生成
9.2.2 定制LPM_ROM元件
9.3 在系统存储器单元读写
编辑器
9.4 RAM定制
9.4.1 RAM定制和调用
9.4.2 对LPM_RAM仿真测试
9.4.3 VHDL的存储器描述及相关
属性
9.4.4 存储器配置文件属性定义
和结构设置
9.5 FIFO定制
9.6 8051单片机IP核应用
9.7 本章小结
9.8 习题
第10章 FPGA在DSP领域中
的应用
10.1 快速加法器的设计
10.1.1 4位二进制并行加法器
10.1.2 8位二进制加法器
的源程序
10.2 快速乘法器的设计
10.2.1 设计思路
10.2.2 快速乘法器VHDL
源程序
10.3 数字滤波器的设计
10.3.1 数字滤波器概述
10.3.2 数字滤波器的原理
分析
10.3.3 数字滤波器系统实现
10.3.4 数字滤波器系统原理
框图
10.3.5 数字滤波器顶层IIR
模块
10.3.6 数字滤波器的VHDL
语言程序
10.3.7 数字滤波器系统性能
测试
10.4 本章小结
10.5 习题
第11章 FPGA在通信工程中
的应用
11.1 二进制振幅键控(ASK)调制器
与解调器设计
11.1.1 ASK信号调制原理
11.1.2 ASK信号解调原理
11.1.3 ASK调制VHDL程序
11.1.4 ASK解调VHDL程序
11.2 二进制频移键控(FSK)调制器
与解调器设计
11.2.1 FSK信号调制原理
11.2.2 FSK信号解调原理
11.2.3 FSK调制VHDL程序及
仿真
11.2.4 FSK解调VHDL程序及
仿真
11.3 二进制相位键控(PSK)调制器
与解调器设计
11.3.1 基本概念
11.3.2 CPSK信号调制
11.3.3 DPSK信号调制
11.3.4 DPSK信号解调
11.3.5 DPSK调制方框图及电路
符号
11.4 UART接口设计
11.4.1 UART概述
11.4.2 UART系统FPGA接口
电路
11.4.3 UART系统FPGA程序
设计
11.5 本章小结
11.6 习题 第12章 SOPC系统开发技术
12.1 Nios II 32位RSIC嵌入式
处理器
12.1.1 Nios II结构
12.1.2 Nios II处理器的特点
12.1.3 Nios II处理器的优势
12.2 基于NiosⅡ的SOPC开发
流程
12.2.1 Nios II系统设计流程
12.2.2 Avalon总线外设
12.2.3 Avalon总线信号
12.2.4 自定制指令
12.2.5 HAL系统库
12.3 SOPC系统设计示例
12.3.1 基于Nios II LED控制
的硬件系统设计
12.3.2 基于Nios II IDE环境
LED控制的软件设计
12.4 本章小结
12.5 习题
附录1 VHDL程序设计的语法结构
附录2 VHDL语言关键词和保留字
附录3 VHDL预定义程序包及缩略词
汇表
附录4 实验及实训项目
参考文献