内容简介
第1章 EDA技术概述
1.1 EDA技术及其发展
1.2 EDA技术实现目标
1.3 硬件描述语言
1.4 HDL综合
1.5 自顶向下的设计技术
1.6 EDA技术的优势
1.7 EDA设计流程
1.7.1 设计输入(原理图/HDL文本编辑)
1.7.2 综合
1.7.3 适配
1.7.4 时序仿真与功能仿真
1.7.5 编程下载
1.7.6 硬件测试
1.8 ASIC及其设计流程
1.8.1 ASIC设计简介
1.8.2 ASIC设计一般流程简述
1.9 常用EDA工具
1.9.1 设计输入编辑器
1.9.2 HDL综合器
1.9.3 仿真器
1.9.4 适配器
1.9.5 下载器
1.10 Quartus Ⅱ概述
1.11 IP核
1.12 EDA技术发展趋势管窥
习题
第2章 FPGA与CPLD的结构原理
2.1 PLD概述
2.1.1 PLD的发展历程
2.1.2 PLD分类
2.2 简单PLD结构原理
2.2.1 逻辑元件符号表示
2.2.2 PROM结构原理
2.2.3 PLA结构原理
2.2.4 PAL结构原理
2.2.5 GAL结构原理
2.3 CPLD的结构原理
2.4 FPGA的结构原理
2.4.1 查找表逻辑结构
2.4.2 Cyclone Ⅲ系列器件的结构原理
2.5 硬件测试
2.5.1 内部逻辑测试
2.5.2 JTAG边界扫描
2.6 PLD产品概述
2.6.1 Altera公司的PLD器件
2.6.2 Lattice公司的PLD器件
2.6.3 Xilinx公司的PLD器件
2.6.4 Actel公司的PLD器件
2.6.5 Altera的FPGA配置方式
2.7 CPLD/FPGA的编程与配置
2.7.1 CPLD在系统编程
2.7.2 FPGA配置方式
2.7.3 FPGA专用配置器件
2.7.4 使用单片机配置FPGA
2.7.5 使用CPLD配置FPGA
习题
第3章 组合电路的VHDL设计
3.1 多路选择器及其VHDL描述
3.2 半加器及其VHDL描述
3.3 4选1多路选择器及其VHDL描述
3.3.1 4选1多路选择器及CASE语句表述方式
3.3.2 CASE语句
3.3.3 IEEE库预定义标准逻辑位与矢量
3.3.4 其他预定义标准数据类型
3.3.5 信号定义和数据对象
3.3.6 并置操作符&
3.3.7 4选1多路选择器的VHDL不同描述方式
3.4 全加器及其VHDL表述
3.4.1 全加器设计及例化语句应用
3.4.2 VHDL例化语句
3.4.3 8位加法器设计及算术操作符应用
3.5 乘法器及其VHDL表述
3.5.1 统计位矢中含‘1’个数的电路模块设计
3.5.2 FOR LOOP循环语句用法
3.5.3 移位相加型乘法器的VHDL表述方法
3.5.4 GENERIC参数定义语句
3.5.5 整数数据类型
3.5.6 省略赋值操作符
3.5.7 移位操作符
3.5.8 各类运算操作对数据类型的要求
3.5.9 数据类型转换函数
3.5.10 GENERIC参数传递映射语句
习题
第4章 时序仿真与硬件实现
4.1 VHDL程序输入与仿真测试
4.1.1 编辑和输入设计文件
4.1.2 创建工程
4.1.3 全程编译前约束项目设置
4.1.4 全程综合与编译
4.1.5 仿真测试
4.1.6 RTL图观察器应用
4.2 引脚锁定与硬件测试
4.2.1 引脚锁定
4.2.2 编译文件下载
4.2.3 JTAG间接编程模式
4.2.4 USB-Blaster驱动程序安装方法
4.3 电路原理图设计流程
4.4 HDL版本设置及Analysis & Synthesis功能
4.5 利用属性表述实现引脚锁定
4.6 keep属性应用
4.7 SignalProbe使用方法
4.8 宏模块逻辑功能查询
习题
实验与设计
4-1 多路选择器设计实验
4-2 8位加法器设计实验
4-3 8位硬件乘法器设计实验
4-4 十六进制7段数码显示译码器设计
第5章 时序电路的VHDL设计
5.1 基本时序元件的VHDL表述
5.1.1 D触发器的VHDL描述
5.1.2 含异步复位和时钟使能的D触发器及其VHDL表述
5.1.3 含同步复位控制的D触发器及其VHDL表述
5.1.4 基本锁存器及其VHDL表述
5.1.5 含清0控制的锁存器及其VHDL表述
5.1.6 VHDL实现时序电路的不同表述
5.1.7 双边沿触发时序电路设计讨论
5.2 计数器的VHDL设计
5.2.1 4位二进制加法计数器设计
5.2.2 计数器更常用的VHDL表达方式
5.2.3 实用计数器的VHDL设计
5.3 移位寄存器的VHDL设计
5.4 属性描述与定义语句
习题
实验与设计
5-1 高速硬件除法器设计
5-2 移位相加型8位硬件乘法器设计
5-3 半整数与奇数分频器设计
5-4 不同类型的移位寄存器设计实验
第6章 Quartus Ⅱ应用深入
6.1 时序电路硬件设计与仿真示例
6.1.1 编辑电路、创建工程和仿真测试
6.1.2 FPGA硬件测试
6.2 SignalTap Ⅱ的使用方法
6.3 编辑SignalTap Ⅱ的触发信号
6.4 Fitter Settings项设置
6.5 功能块Chip Planner应用
6.5.1 Chip Planner应用流程说明
6.5.2 Chip Planner说明
6.6 Synplify的应用及接口方法
6.6.1 Synplify使用流程
6.6.2 Synplify与Quartus Ⅱ接口
习题
实验与设计
6-1 计数器设计实验
6-2 数码扫描显示电路设计
6-3 串行静态显示控制电路设计
6-4 基于VHDL代码的频率计设计
6-5 VGA彩条信号显示控制电路设计
第7章 宏功能模块应用
7.1 计数器LPM模块调用
7.1.1 计数器模块文本的调用与参数设置
7.1.2 创建工程与仿真测试
7.2 利用属性控制乘法器的构建
7.3 LPM随机存储器的设置和调用
7.3.1 存储器初始化文件
7.3.2 LPM_RAM的设置和调用
7.3.3 仿真测试RAM宏模块
7.3.4 VHDL的存储器描述及相关属性
7.3.5 数据类型定义语句
7.3.6 存储器配置文件属性定义和结构设置
7.4 LPM ROM的定制和使用示例
7.4.1 LPM ROM的定制调用和测试
7.4.2 简易正弦信号发生器设计
7.4.3 正弦信号发生器硬件实现和测试
7.5 在系统存储器数据读写编辑器应用
7.6 LPM嵌入式锁相环调用
7.7 In-System Sources and Probes Editor使用方法
7.8 NCO核数控振荡器使用方法
7.9 FIR核使用方法
7.10 DDS实现原理与应用
7.10.1 DDS原理
7.10.2 DDS信号发生器设计示例
习题
实验与设计
7-1 查表式硬件运算器设计
7-2 正弦信号发生器设计
7-3 DDS正弦信号发生器设计
7-4 简易逻辑分析仪设计
7-5 移相信号发生器设计
7-6 VGA简单图像显示控制模块设计
第8章 VHDL设计深入
8.1 数据对象
8.1.1 常数
8.1.2 变量
8.1.3 信号
8.1.4 进程中的信号赋值与变量赋值
8.2 含高阻输出的电路设计
8.2.1 三态门设计
8.2.2 双向端口的设计方法
8.2.3 三态总线电路设计
8.3 顺序语句归纳
8.3.1 进程语句格式
8.3.2 进程结构组成
8.3.3 进程要点
8.4 并行赋值语句讨论
8.5 IF语句概述
8.6 仿真延时
8.6.1 固有延时
8.6.2 传输延时
8.6.3 仿真δ
8.7 VHDL的描述风格
8.7.1 RTL描述
8.7.2 行为描述
8.7.3 数据流描述
8.7.4 结构描述
习题
实验与设计
8-1 4×4阵列键盘键信号检测电路设计
8-2 乐曲硬件演奏电路设计
8-3 PS2键盘控制模型电子琴电路设计
8-4 直流电机综合测控系统设计
8-5 AM幅度调制信号发生器设计
第9章 VHDL设计优化
9.1 资源优化
9.1.1 资源共享
9.1.2 逻辑优化
9.1.3 串行化
9.2 速度优化
9.2.1 流水线设计
9.2.2 寄存器配平
9.2.3 关键路径法
9.2.4 乒乓操作法
9.2.5 加法树法
习题
实验与设计
9-1 采用流水线技术设计高速数字相关器
9-2 线性反馈移位寄存器设计
9-3 SPWM脉宽调制控制系统设计
9-4 数字彩色液晶显示控制电路设计
第10章 VHDL有限状态机设计
10.1 VHDL状态机的一般形式
10.1.1 状态机的特点与优势
10.1.2 状态机的一般结构
10.1.3 状态机设计初始约束与表述
10.2 Moore型有限状态机的设计
10.2.1 多进程结构状态机
10.2.2 序列检测器之状态机设计
10.3 Mealy型有限状态机的设计
10.4 状态编码
10.4.1 直接输出型编码
10.4.2 顺序编码
10.4.3 一位热码状态编码
10.4.4 状态编码设置
10.5 安全状态机设计
10.5.1 程序直接导引法
10.5.2 状态编码监测法
10.5.3 借助EDA优化控制工具生成安全状态机
10.6 硬件数字技术排除毛刺
10.6.1 延时方式
10.6.2 逻辑方式去毛刺
10.6.3 定时方式去毛刺
习题
实验与设计
10-1 序列检测器设计
10-2 并行ADC采样控制电路实现与硬件验证
10-3 数据采集模块设计
10-4 五功能智能逻辑笔设计
10-5 通用异步收发器UART设计
10-6 串行ADC/DAC采样或信号输出控制电路设计
10-7 硬件消抖动电路设计
第11章 16位实用CPU创新设计
11.1 KX9016的结构与特色
11.2 KX9016基本硬件系统设计
11.2.1 单步节拍发生模块
11.2.2 运算器
11.2.3 比较器
11.2.4 基本寄存器与寄存器阵列组
11.2.5 移位器
11.2.6 程序与数据存储器
11.3 KX9016v1指令系统设计
11.3.1 指令格式
11.3.2 指令操作码
11.3.3 软件程序设计实例
11.3.4 KX9016v1控制器设计
11.3.5 指令设计实例详解
11.4 KX9016的时序仿真与硬件测试
11.4.1 时序仿真与指令执行波形分析
11.4.2 CPU工作情况的硬件测试
11.5 KX9016应用程序设计实例和系统优化
11.5.1 除法算法及其硬件实现
11.5.2 乘法算法及其硬件实现
11.5.3 KX9016v1的硬件系统优化
习题
实验与设计
11-1 16位CPU验证性设计综合实验
11-2 新指令设计及程序测试实验
11-3 16位CPU的优化设计与创新
11-4 CPU创新设计竞赛
第12章 MCU与FPGA片上系统开发
12.1 FPGA扩展MCU开发技术
12.1.1 FPGA扩展方案及其系统设计技术
12.1.2 基于单片机IP软核的SOC设计方案
12.2 基于单片机核的FPGA片上系统设计
实验与设计
12-1 脉宽/占空比/等精度频率多功能测试仪设计
第13章 VHDL语法补充说明
13.1 VHDL库
13.1.1 库的种类
13.1.2 库的用法
13.2 VHDL程序包
13.3 VHDL文字规则补充说明
13.3.1 数字
13.3.2 字符串
13.3.3 标识符及其表述规则
13.3.4 下标名
13.4 子程序
13.4.1 函数
13.4.2 重载函数
13.4.3 决断函数
13.4.4 过程
13.4.5 重载过程
13.5 数据类型
13.6 VHDL操作符补充说明
13.6.1 逻辑操作符
13.6.2 关系操作符
13.6.3 算术操作符
13.7 VHDL基本语句补充说明
13.7.1 NEXT语句
13.7.2 EXIT语句
13.7.3 WAIT语句
13.7.4 子程序调用语句
13.7.5 RETURN语句
13.8 VHDL并行语句补充说明
13.8.1 并行信号赋值语句
13.8.2 块语句
13.8.3 并行过程调用语句
13.8.4 生成语句
13.8.5 REPORT语句
13.8.6 断言语句
习题
第14章 VHDL Test Bench仿真
14.1 VHDL行为仿真流程
14.2 VHDL测试基准实例
14.3 VHDL Test Bench测试流程
习题
实验与设计
14-1 在ModelSim上对VHDL Test Bench进行仿真
附录 EDA开发系统及相关软硬件
参考文献