内容简介
本书定位于复杂可编程逻辑器件的系统设计技术,以ALTERA公司的系列芯片和相应的开发软件为目标载体进行阐述.本书从系统设计的角度详尽地阐述了ALTERA主要系列的PLD芯片的结构和特点以及相应的开发软件MAX+PlusII和Quartus的使用.同时,本书以大量新颖而详尽的设计实例为基础,着重描述了数字系统设计的系统级设计方法,并且从数字系统设计的完整性的角度对数字系统设计的重要性,数字系统的可测性和数字系统的可靠设计作了初步的探讨. 本书不仅可作为相关专业的各个层次的学生,教师的参考书与实验指导书,同时也可作硬件系统设计人员掌握技术的实用参考书. 序 言 众所周知,电子系统的集成化,不仅可使系统的体积小、重量轻且功耗低,更重要的是可使系统的可靠性大大提高。因此自集成电路问世以来,集成规模便以10倍/6年的速度增长。从20世纪90年代初以来,电子系统日趋数字化、复杂化和大规模集成化。由于个人电脑、无绳电话和高速数据传输设备的发展需求,电子厂商们越加迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸。为达此目标,必须采用少量的IC器件和面积尽可能小的PCB板研制高集成化的复杂系统,这些要求进一步促进集成工艺的发展。 1999年,以0.18微米工艺为基础的百万门器件已经出现,预计在2002年和2005年,集成?ひ战直鸫锏?0.13微米和0.1微米。深亚微米半导体工艺、B表面安装技术的发展又支持了产品的集成化程度的进步,使电子产品进入了片上系统(SOC,System On Chip)时代。所谓片上系统的设计,是将电路设计、系统设计、硬件设计、软件设计和体系结构设计集合于一体的设计。这样复杂的设计通常需要很多人、经过多年研究开发方能实现,不依靠计算机的帮助是无法在短期完成的。 图0-1 产品的利润与其上市时间的关系 另一方面,电子产品设计周期短和上市快也是电子厂商们坚持不懈的追求。图0-1表明了产品上市时间与其利润之间的关系。一个产品从开始上市到其从市场上被淘汰为止,其销售情况是一个三角形。这个三角形的面积便是此产品的总的利润,如果产品上市晚了,如图中t2时间较t1时间晚了时间Δ,则从t2开始的三角形的面积比从t1开始的三角形的面积将小得多,也就是所获得的总利润将小得多。这说明,一个企业如果能够比其竞争对手更快地推出新产品,更快地对市场作出反应,即可获取更大的市场份额和更大的利润。 电子设计自动化(EDA,Electronics Design Automation),即用计算机帮助设计人员完成繁琐的设计工作,是解决以上两个问题的惟一途径。 电子设计自动化在不同的时期有不同的内容。在20世纪70年代表现为计算机辅助设计(CAD),即将电子设计中涉及到的许多计算用计算机程序实现。在20世纪80年代表现为计算机辅助工程(CAE),主要体现在一些绘图软件出现,减轻了设计人员的劳动。从20世纪80年代末开始,设计复杂程度越来越高,EDA的主要内容逐步转变为电子系统设计自动化(ESDA)。现在数字系统的EDA可以直接根据设计要求,以自顶至底的方式设计,并相应地完成系统描述、仿真、集成和验证等环节,直到生成所需要的器件。在以上过程中,除系统级设计和行为级描述及对功能的描述以外均可由计算机自动完成。也就是说,设计人员借助开发软件的帮助,可以将设计过程中的许多细节问题抛开,而将注意力集中在产品的总体开发上。这样大大减轻了工作人员的工作量,提高了设计效率,减少了以往复杂的工序,缩短了开发周期,实现了真正意义上的电子设计自动化。这个变化是伴随着片上系统的设计出现的,因此有人将EDA转向片上系统看作是一次关于系统设计的革命。 对电子系统设计自动化而言,现代设计方法和现代测试方法是至关重要的。
目录
第一篇 CPLD概述 第1章 CPLD与FPGA 1.1 CPLD的基本结构与发展概况 1.1.1 SPLD的基本结构 1.1.2 CPLD的结构特点 1.1.3 CPLD的编程工艺 1.2 FPGA的基本结构与发展概况 1.2.1 门阵列简介 1.2.2 FPGA的基本结构 1.2.3 FPGA的编程 1.3 CPLD和FPGA的新概念 1.3.1 CPLD的在系统编程技术 1.3.2 片内存储器和其他片内逻辑 1.3.3 低电压、低功耗系列芯片 1.3.4 IP的使用和嵌入式模块 1.3.5 混合编程技术 1.4 CPLD和FPGA的选用 1.4.1 逻辑单元 1.4.2 互连 1.4.3 编程工艺 第2章 ALTERA系列CPLD 2.1 ALTERA系列CPLD和FPGA简介 2.1.1 可编程片上系统解决方案 2.1.2 APEX系列器件 2.1.3 FLEX系列器件 2.1.4 MAX系列器件 2.1.5 ACEX系列器件 2.1.6 配置器件 2.2 ALTERA系列CPLD和FPGA的结构 2.2.1 Classic系列 2.2.2 MAX系列 2.2.3 FLEX系列 2.2.4 ACEX系列 2.2.5 APEX系列 2.2.6 小结 第3章 ALTERA系列CPLD的特点及使用 3.1 ALTERA系列库和IP核 3.1.1 IP核 3.1.2 LPM 3.2 器件编程与配置 3.2.1 编程硬件 3.2.2 编程/配置模式 第二篇 VHDL编程技术 第4章 VHDL基本结构与语法 4.1 VHDL程序基本结构 4.1.1 实体 4.1.2 结构体 4.2 VHDL语言要素 4.2.1 标识符 4.2.2 数据对象 4.2.3 数据类型 4.2.4 运算符 4.2.5 VHDL的属性 4.3 VHDL基本描述方法 4.3.1 顺序语句 4.3.2 并行语句 4.4 常用电路描述 4.4.1 加法器(全加器、BCD码加法器) 4.4.2 译码器 4.4.3 编码器 4.4.4 比较器 4.4.5 数据选择器 4.4.6 奇偶校验电路 4.4.7 三态输出电路 4.4.8 同步化电路 4.4.9 移位寄存器 4.4.10 M=60的计数器 4.4.11 堆栈(stack) 第5章 VHDL程序设计进阶 5.1 库、程序包、子程序和子程序重载 5.1.1 库 5.1.2 程序包 5.1.3 子程序 5.1.4 子程序重载 5.1.5 决断函数 5.2 结构VHDL 5.2.1 元件及元件例化 5.2.2 配置 5.3 有限状态机 第6章 逻辑综合和实现 6.1 可综合的VHDL设计特点 6.1.1 编码提示 6.1.2 设计要点 6.2 SYNOPSYS综合过程 6.2.1 概述 6.2.2 行为级综合的概念 6.2.3 行为级描述的局限性 6.2.4 示例 6.2.5 Synopsys行为综合工具 第三篇 软件操作 第7章 MAX+plusII基本操作 7.1 MAX+plusII概述 7.1.1 MAX+plusII10.0(baseline)的功能 7.1.2 系统要求 7.2 MAX+plusII10.0的安装 7.2.1 MAX+plusII10.0的安装 7.2.2 MAX+plusII10.0的第一次运行 7.3 MAX+plusII的设计过程 7.4 图形输入的设计过程 7.4.1 项目建立与图形输入 7.4.2 项目编译 7.4.3 项目检验 7.4.4 目标器件选择与管脚锁定 7.4.5 器件编程/配置 7.5 工具条和常用菜单选项说明 7.6 图形的层次化设计及BUS使用 7.6.1 层次化设计 7.6.2 BUS使用 7.7 语言描述输入法 7.8 混合设计输入 7.9 使用LPM及FLEX10K中的RAM 7.9.1 LPM(可调参数元件)的使用 7.9.2 FLEX10K中RAM的使用 7.10 常见错误及处理方法 第8章 MAX+plusII设计进阶 8.1 项目层次结构与文件系统 8.1.1 项目层次结构 8.1.2 文件系统 8.2 功能库和IP核的使用 第9章 设计综合与器件配置 9.1 设计综合选择项 9.1.1 器件选择,资源和探测分配 9.1.2 反向注释 9.1.3 全局项目器件选择项 9.1.4 全局项目参数 9.1.5 全局项目定时要求 9.1.6 全局项目逻辑综合 9.2 器件配置 240 9.2.1 简介