内容简介    本书定位于复杂可编程逻辑器件的系统设计技术,以ALTERA公司的系列芯片和相应的开发软件为目标载体进行阐述.本书从系统设计的角度详尽地阐述了ALTERA主要系列的PLD芯片的结构和特点以及相应的开发软件MAX+PlusII和Quartus的使用.同时,本书以大量新颖而详尽的设计实例为基础,着重描述了数字系统设计的系统级设计方法,并且从数字系统设计的完整性的角度对数字系统设计的重要性,数字系统的可测性和数字系统的可靠设计作了初步的探讨. 本书不仅可作为相关专业的各个层次的学生,教师的参考书与实验指导书,同时也可作硬件系统设计人员掌握最新技术的实用参考书. 目 录 第一篇 CPLD概述 第1章 CPLD与FPGA 3 1.1 CPLD的基本结构与发展概况 4 1.1.1 SPLD的基本结构 4 1.1.2 CPLD的结构特点 12 1.1.3 CPLD的编程工艺 15 1.2 FPGA的基本结构与发展概况 16 1.2.1 门阵列简介 16 1.2.2 FPGA的基本结构 17 1.2.3 FPGA的编程 20 1.3 CPLD和FPGA的新概念 22 1.3.1 CPLD的在系统编程技术 22 1.3.2 片内存储器和其他片内逻辑 23 1.3.3 低电压、低功耗系列芯片 23 1.3.4 IP的使用和嵌入式模块 23 1.3.5 混合编程技术 23 1.4 CPLD和FPGA的选用 23 1.4.1 逻辑单元 24 1.4.2 互连 24 1.4.3 编程工艺 24 第2章 ALTERA系列CPLD 27 2.1 ALTERA系列CPLD和FPGA简介 28 2.1.1 可编程片上系统解决方案 28 2.1.2 APEX系列器件 29 2.1.3 FLEX系列器件 32 2.1.4 MAX系列器件 34 2.1.5 ACEX系列器件 35 2.1.6 配置器件 35 2.2 ALTERA系列CPLD和FPGA的结构 35 2.2.1 Classic系列 36 2.2.2 MAX系列 38 2.2.3 FLEX系列 43 2.2.4 ACEX系列 51 2.2.5 APEX系列 56 2.2.6 小结 65 第3章 ALTERA系列CPLD的特点及使用 69 3.1 ALTERA系列库和IP核 70 3.1.1 IP核 70 3.1.2 LPM 71 3.2 器件编程与配置 73 3.2.1 编程硬件 73 3.2.2 编程/配置模式 75 第二篇 VHDL编程技术 第4章 VHDL基本结构与语法 93 4.1 VHDL程序基本结构 94 4.1.1 实体 95 4.1.2 结构体 96 4.2 VHDL语言要素 98 4.2.1 标识符 98 4.2.2 数据对象 99 4.2.3 数据类型 102 4.2.4 运算符 104 4.2.5 VHDL的属性 105 4.3 VHDL基本描述方法 106 4.3.1 顺序语句 106 4.3.2 并行语句 109 4.4 常用电路描述 115 4.4.1 加法器(全加器、BCD码加法器) 115 4.4.2 译码器 116 4.4.3 编码器 117 4.4.4 比较器 117 4.4.5 数据选择器 118 4.4.6 奇偶校验电路 118 4.4.7 三态输出电路 119 4.4.8 同步化电路 119 4.4.9 移位寄存器 119 4.4.10 M=60的计数器 120 4.4.11 堆栈(stack) 121 第5章 VHDL程序设计进阶 123 5.1 库、程序包、子程序和子程序重载 124 5.1.1 库 124 5.1.2 程序包 125 5.1.3 子程序 128 5.1.4 子程序重载 130 5.1.5 决断函数 131 5.2 结构VHDL 133 5.2.1 元件及元件例化 133 5.2.2 配置 137 5.3 有限状态机 139 第6章 逻辑综合和实现 147 6.1 可综合的VHDL设计特点 148 6.1.1 编码提示 148 6.1.2 设计要点 153 6.2 SYNOPSYS综合过程 154 6.2.1 概述 154 6.2.2 行为级综合的概念 154 6.2.3 行为级描述的局限性 155 6.2.4 示例 155 6.2.5 Synopsys行为综合工具 159 第三篇 软件操作 第7章 MAX+plusII基本操作 167 7.1 MAX+plusII概述 168 7.1.1 MAX+plusII10.0(Baseline)的功能 168 7.1.2 系统要求 168 7.2 MAX+plusII10.0的安装 169 7.2.1 MAX+plusII10.0的安装 169 7.2.2 MAX+plusII10.0的第一次运行 173 7.3 MAX+plusII的设计过程 174 7.4 图形输入的设计过程 176 7.4.1 项目建立与图形输入 176 7.4.2 项目编译 182 7.4.3 项目检验 183 7.4.4 目标器件选择与管脚锁定 189 7.4.5 器件编程/配置 193 7.5 工具条和常用菜单选项说明 194 7.6 图形的层次化设计及BUS使用 197 7.6.1 层次化设计 197 7.6.2 BUS使用 200 7.7 语言描述输入法 202 7.8 混合设计输入 203 7.9 使用LPM及FLEX10K中的RAM 203 7.9.1 LPM(可调参数元件)的使用 203 7.9.2 FLEX10K中RAM的使用 205 7.10 常见错误及处理方法 209 第8章 MAX+plusII设计进阶 211 8.1 项目层次结构与文件系统 212 8.1.1 项目层次结构 212 8.1.2 文件系统 213 8.2 功能库和IP核的使用 216 第9章 设计综合与器件配置 223 9.1 设计综合选择项 224 9.1.1 器件选择,资源和探测分配 224 9.1.2 反向注释 225 9.1.3 全局项目器件选择项 225 9.1.4 全局项目参数 225 9.1.5 全局项目定时要求 226 9.1.6 全局项目逻辑综合 226 9.2 器件配置 240 9.2.1 简介 240 9.2.2 使用Flash Memory配置PLD 240 第10章 Quartus II设计流程 243 10.1 Quartus II软件概述及安装 244 10.1.1 Quartus II概述 244 10.1.2 Quartus II的功能 244 10.1.3 系统安装要求 245 10.1.4 Quartus II软件安装 246 10.2 设计输入 251 10.3 设计编译 255 10.4 设计定时分析 264 10.5 设计仿真 269 10.6 器件编程 276 第四篇 数字系统设计方法及范例 第11章 数字系统设计方法 281 11.1 数字系统基本结构与模型 282 11.1.1 数字系统的基本概念 282 11.1.2 数字系统的基本模型 282 11.2 数字系统设计方法论 282 11.2.1 自顶向下设计方法 283 11.2.2 设计验证 283 11.3 自顶向下的设计方法 290 11.3.1 分离的控制器和体系结构 291 11.3.2 锤炼体系结构和控制算法 292 第12章 数字系统设计的重用性、可测性和可靠性 295 12.1 数字系统设计的重用性 296 12.1.1 概述 296 12.1.2 针对FPGA的系统级重用要点 299 12.1.3 编码和综合技巧 304 12.1.4 验证策略 313 12.2 数字系统设计的可测性 314 12.2.1 简介 314 12.2.2 IEEE Std.1149.1 BST架构 314 12.2.3 IEEE Std.1149.1边界扫描寄存器 316 12.3 数字系统设计的可靠性 318 12.3.1 故障容错技术 319 12.3.2 编码检错技术 319 12.3.3 自检测试设计 320 12.3.4 电路的故障安全性和可自检性 320 12.3.5 事故安全设计 320 12.3.6 软件容错技术 320 第13章 测试平台的建立 323 13.1 概述 324 13.1.1 测试平台的逻辑结构 324 13.1.2 不同级别的测试平台 324 13.1.3 测试平台的优点 324 13.1.4 测试平台的建立方法 325 13.1.5 TextIO相关定义 325 13.2 建立测试平台 326 13.2.1 源代码 326 13.2.2 测试平台的代码 326 13.2.3 测试向量文件 327 13.2.4 测试结果 327 第14章 数字系统设计开发平台及范例 329 14.1 设计开发系统、平台简介 330 14.2 设计范例 332 14.2.1 设计实例一:自适应数字频率计 332 14.2.2 设计实例二:直接数字频率合成信号发生器(DDS)设计 342 14.2.3 设计实例三:CPU设计 345 14.3 展望 351 参考文献 352