目录 1
第1章 电子系统设计的新挑战 1
1.1 SOC概述 1
1.1.1 什么是SOC? 1
1.1.2 SOC的特点 2
1.1.3 SOC发展中的关键技术 3
1.1.4 SOC的发展方向 4
1.2 嵌入式系统与SOC 4
1.2.1 嵌入式系统设计技术发展的特点 4
1.2.2 嵌入式微控制器的发展特点 6
1.3 SOC、PLD和SOPC 7
1.4 系统设计的新挑战 8
1.4.1 设计开发环境的进步 8
1.4.2 设计者面对的新挑战 10
1.5 小结 11
第2章 可编程逻辑器件概述 12
2.1 可编程逻辑器件(PLD)的发展 12
2.2 PLD的分类 14
2.2.1 按照集成度分类 14
2.2.2 其他分类方法 15
2.3 PLD的结构与原理 16
2.3.1 PLD的基本结构 16
2.3.2 基于乘积项(Product-Term)的PLD结构 17
2.3.3 乘积项结构PLD的逻辑实现原理 18
2.3.4 查找表(Look-Up-Table)的原理与结构 19
2.3.5 选择CPLD还是FPGA? 21
2.3.6 PLD的开发和设计 23
2.4 在系统编程(ISP)与边界扫描技术 23
2.5 可编程逻辑器件的发展趋势 25
2.5.3 IP内核得到进一步发展 26
2.5.4 SOPC(System-On-a-Programble-Chip)时代已经到来 26
2.5.5 ASIC和PLD出现相互融合 26
2.5.2 低密度PLD依然走俏 26
2.5.1 继续向更高密度,更大容量迈进 26
2.6 小结 27
第3章 Quartus Ⅱ开发软件 28
3.1 Quartus Ⅱ简介 28
3.2 Quartus Ⅱ软件的安装 30
3.2.1 Quartus Ⅱ软件的工作环境要求 30
3.2.2 Quartus Ⅱ软件的安装过程 31
3.2.3 Quartus Ⅱ软件的使用授权 34
3.2.4 服务器版授权文件的修改 35
3.2.5 在Quartus Ⅱ软件中指定授权文件 36
3.3 Quartus Ⅱ软件的设计过程 38
3.3.2 命令行设计流程 39
3.3.1 EDA工具设计流程 39
3.3.3 Quartus Ⅱ软件的主要设计特性 40
3.4 设计方法和设计规划 42
3.4.1 自上而下与自下而上的设计方法比较 42
3.4.2 自上而下渐进式编译设计流程 42
3.4.3 自下而上基于LogicLock的设计流程 42
3.5 小结 43
第4章 设计输入——图形方法 44
4.1 设计输入 44
4.2 创建工程 45
4.3.1 创建图形设计文件 49
4.3 图形设计输入 49
4.3.2 图形单元的输入 51
4.3.3 图形块的输入(Block Diagram) 53
4.3.4 使用MegaWizard Plug-In Manager进行宏功能模块的实例化 56
4.3.5 从设计文件创建模块 59
4.3.6 建立连线和I/O端口 60
4.3.7 图形编辑器选项设置 61
4.4 设计项目的编译 62
4.4.1 设计综合 62
4.4.2 Quartus Ⅱ编译器窗口 63
4.4.3 编译器选项设置 65
4.4.4 引脚分配 71
4.4.5 启动编译器 74
4.4.6 查看适配结果 76
4.5 设计项目的仿真验证 80
4.5.1 创建一个仿真波形文件 80
4.5.2 设计仿真 83
4.5.3 仿真结果分析 84
4.6 时序分析 86
4.6.1 时序分析基本参数 86
4.6.2 指定时序要求 87
4.6.4 查看时序分析结果 91
4.6.3 完成时序分析 91
4.7 器件编程 92
4.7.1 完成器件编程 93
4.7.2 编程硬件驱动安装 96
4.8 小结 96
第5章 AHDL基础 98
5.1 概述 98
5.2 AHDL的基本元素 98
5.2.1 保留关键字和保留标识符 98
5.2.2 符号 99
5.2.3 带引号和不带引号的名称 100
5.2.4 组 101
5.2.5 AHDL中的数字 102
5.2.6 布尔表达式 102
5.3 AHDL设计的基本结构 105
5.3.1 子设计段 106
5.3.2 逻辑段 106
5.3.3 变量段 114
5.3.4 Constant语句 117
5.3.5 Options语句 117
5.3.6 Include语句 117
5.3.7 Title语句 118
5.3.8 函数原型语句 119
5.4 设计风格 120
5.4.1 常用的设计风格 120
5.4.2 空白区 120
5.4.3 注释与文档 120
5.4.4 命名习惯 121
5.4.5 AHDL对缩格的建议 121
5.4.6 文件结构 123
5.5 小结 124
6.1 建立文本编辑文件 125
6.1.1 打开文本编辑器 125
第6章 设计输入——文本方法 125
6.1.2 编辑文本文件 126
6.1.3 文本编辑器选项设置 126
6.1.4 保存文本设计文件 127
6.2 层次化设计的实现和参数化模块的AHDL调用 127
6.2.1 在TDF中使用AHDL的函数 127
6.2.2 建立和使用用户自定义的函数 129
6.3 建立存储器编辑文件 133
6.3.1 创建存储器初始化文件 133
6.3.2 在设计中使用存储器文件 134
6.3.3 设计实例 136
6.4 小结 137
第7章 AHDL设计实践 138
7.1 组合逻辑的设计——加法器 138
7.1.1 1比特全加器 138
7.1.2 4比特行波进位加法器 141
7.1.3 4比特行波进位加法器的改进 145
7.1.4 4比特行波进位加法器的时序分析 147
7.2 纽环计数器——时序逻辑的例子 148
7.2.1 基本的纽环计数器 148
7.2.2 用CASE语句实现的可靠的纽环计数器 150
7.2.3 带状态解码器的可靠纽环计数器 151
7.3 8状态时序发生器——逻辑控制的实现 154
7.4 三态控制的实现 157
7.5 多项式计数器——伪随机序列的产生 159
7.5.1 3位多项式计数器 160
7.5.2 序列长度为3~65535的多项式计数器 162
7.5.3 最大长度序列的自相关特性计算 163
7.6 小结 169
第8章 Nios Ⅱ CPU的配置 171
8.1 Nios Ⅱ简介 171
8.2 SOPC Builder——嵌入式处理器开发工具 172
8.2.1 SOPC Builder简介 172
8.2.2 SOPC Builder的功能特点 173
8.3.1 配置阶段 174
8.2.3 SOPC Builder的优点 174
8.3 SOPC Builder设计流程 174
8.3.2 生成阶段 175
8.4 SOPC Builder用户界面 176
8.4.1 系统元件页 176
8.4.2 系统设置页 178
8.4.3 系统生成页 178
8.4.4 生成系统 181
8.4.5 SOPC Builder菜单命令 181
8.5 小结 182
9.1.1 工程管理器 184
第9章 Nios Ⅱ的软件开发 184
9.1 Nois Ⅱ集成开发环境(IDE)简介 184
9.1.2 编辑器和编译器 185
9.1.3 调试器 186
9.1.4 闪存编程器 187
9.2 SOPC开发举例 188
9.2.1 硬件部分设计 188
9.2.2 软件部分设计 200
9.2.3 Nios Ⅱ处理器外围接口 209
9.3 HAL系统库 210
9.3.1 简介 210
9.3.2 使用HAL开发程序 213
9.4 小结 217
第10章 SignalTap Ⅱ嵌入式逻辑分析仪的使用 219
10.1 SignalTap Ⅱ简介 219
10.2 在设计中嵌入SignalTap Ⅱ逻辑分析仪 221
10.2.1 使用STP文件建立嵌入式逻辑分析仪 222
10.2.2 使用MegaWizard Plug-In Manager建立嵌入式逻辑分析仪 227
10.2.3 SignalTap Ⅱ逻辑分析仪的编程 230
10.2.4 查看SignalTap Ⅱ采样数据 231
10.3 小结 231
参考文献 232