情境1 10分钟学会FPGA设计 1
情境1 任务单 1
实施步骤 1
准备工作 1
软件设计与仿真 2
相关知识 19
1.1 EDA技术概述 19
1.1.1 EDA技术基本概念 19
1.1.2 EDA技术的主要特征 19
1.1.3 EDA技术发展历程 20
1.1.4 EDA技术主要内容 21
1.2 可编程逻辑器件 23
1.2.1 基于乘积项(Product-Term)的PLD结构 24
1.2.2 乘积项结构PLD的逻辑实现原理 25
1.2.3 查找表(Look-Up-Table)的原理与结构 26
1.2.4 基于查找表(LUT)的FPGA的结构 26
1.2.5 查找表结构的FPGA逻辑实现原理 28
1.2.6 其他类型的FPGA和PLD 29
1.3 基于CPLD/FPGA的EDA设计流程 29
1.3.1 CPLD/FPGA的工程设计流程 29
1.3.2 源程序的编辑和编译 30
1.3.3 逻辑综合和优化 30
1.3.4 目标器件的布线/适配 31
1.3.5 目标器件的编程/下载 31
1.3.6 设计过程中的有关仿真 31
1.3.7 硬件仿真/硬件测试 32
1.4 基于CPLD/FPGA的常用EDA工具 32
1.4.1 Altera EDA软件工具Quartus Ⅱ简介 32
1.4.2 其他CPLD/FPGA的常用EDA工具 35
1.5 硬件描述语言 36
1.5.1 常用硬件描述语言对比 36
1.5.2 VHDL 36
评价与总结 41
情境2 QuartusⅡ原理图输入法 42
情境2 任务单 42
实施步骤 43
相关知识 45
2.1 Quartus Ⅱ原理图输入法 45
2.2 Quartus Ⅱ原理图输入法中的LPM函数 60
2.3 QuartusⅡ原理图输入法中的层次化设计 63
评价与总结 67
情境3 简易电子琴 68
情境3 任务单 68
实施步骤 68
相关知识 80
3.1 VHDL程序的语言要素 80
3.1.1 VHDL文字规则 80
3.1.2 VHDL数据对象 81
3.1.3 VHDL数据类型 83
3.1.4 VHDL运算操作符 85
3.2 VHDL顺序语句 86
3.2.1 等待语句和断言语句 86
3.2.2 赋值语句 87
3.2.3 转向控制语句 89
3.2.4 子程序调用语句 94
3.2.5 返回语句(RETURN) 95
3.2.6 空操作语句(NULL) 96
3.3 VHDL并行语句 96
3.3.1 进程语句 97
3.3.2 块语句 99
3.3.3 并行信号赋值语句 100
3.3.4 并行过程调用语句 102
3.3.5 元件例化语句 103
3.3.6 生成语句 104
相关的音乐知识 105
评价与总结 109
情境4 乒乓球游戏机 110
情境4 任务单 110
实施步骤 110
相关知识 130
4.1 通过端口和参数定义例化LPM 130
4.2 通过MegaWizardPlug-In Manager例化LPM 133
评价与总结 141
情境5 数字钟 142
情境5 任务单 142
实施步骤 142
相关知识 154
5.1 VHDL层次化文件设计 154
5.2 状态机的VHDL设计 157
5.2.1 状态机的基本结构和功能 157
5.2.2 一般状态机的VHDL设计 158
5.2.3 MOORE状态机的VHDL设计 160
5.2.4 MEALY状态机的VHDL设计 161
评价与总结 163
情境5 SOPC设计基础 164
情景6 任务单 164
实施步骤 164
相关知识 188
6.1 SOPC及其技术 188
6.1.1 基于FPGA嵌入IP硬核的SOPC系统 188
6.1.2 基于FPGA嵌入IP软核的SOPC系统 189
6.1.3 基于HardCopy技术的SOPC系统 189
6.2 NiosⅡ软核处理器 190
6.2.1 NiosⅡ软核处理器简介 190
6.2.2 可配置嵌入式软核处理器的优势 191
6.3 SOPC开发流程 191
6.3.1 硬件开发 192
6.3.2 软件开发 193
6.3.3 SOPC基本开发流程简介 193
评价与总结 195
参考文献 196