书  名  CPLD/FPGA应用开发技术与工程实践 丛 书 名  电子电气设计与自动控制系列 标准书号  ISBN 7-115-12720-4/TP.4272 编目分类  TP332.1 作  者  求是科技 责任编辑  张立科 开  本  16 开 印  张  28.75 张 字  数  697 千字 页  数  446 页 版  次  第1版第1次 初版时间  2005年1月 本 印 次  2005年1月 定  价  42.00 元 内容提要   本书以当前流行的可编程器件为例,包括Altera公司的CPLD以及Xilinx公司的FPGA产品,完整地阐述了可编程逻辑器件开发的整个流程。   首先本书系统地介绍了CPLD和FPGA典型产品的结构原理、性能特点以及Altera公司提供的开发软件-MAX+PLUSII,其次详细地列举了VHDL语言的各种语法结构以及相应的例程。读者也可以通过本书详尽地了解数字电路设计中所涉及的一些问题,其中包括组合逻辑电路设计、时序逻辑电路设计、运算电路设计以及存储器电路设计等。   本书后面的部分是可编程逻辑电路系统开发部分。可以让读者了解什么是数字系统设计的方法,然后再用4个有一定难度的例程向读者完整地再现可编程逻辑电路系统开发的全过程。 目 录 第1章 PLD、CPLD与FPGA概述 1 1.1 可编程逻辑器件的发展进程 1 1.2 可编程逻辑器件的分类 2 1.2.1 按集成度分类 2 1.2.2 按可编程原理分类 2 1.2.3 按结构特点分类 3 1.3 CPLD的基本结构 3 1.3.1 CPLD的基本结构 4 1.3.2 CPLD的编程工艺 8 1.4 FPGA简介 10 1.4.1 什么是门阵列 10 1.4.2 FPGA的基本结构与设计工艺 11 1.4.3 Xilinx公司的FPGA简介 12 1.4.4 FPGA的编程 17 1.5 CPLD与FPGA的比较 18 1.5.1 逻辑单元比较 18 1.5.2 互连资源 19 1.5.3 编程工艺 19 1.5.4 开发应用选择 19 1.6 器件厂商及其产品 21 1.6.1 Altera公司 21 1.6.2 Xilinx公司 21 1.6.3 其他公司 21 第2章 逻辑器件 23 2.1 Altera器件综述 23 2.2 Altera MAX7000系列CPLD/FPGA芯片 24 2.2.1 MAX7000系列器件简介 24 2.2.2 结构特点与功能描述 26 2.2.3 器件特性配置 32 2.2.4 器件编程特征 34 2.2.5 器件测试 35 2.2.6 定时模型 35 2.3 Altera FLEX10K系列CPLD/FPGA芯片 36 2.3.1 FLEX 10K系列器件简介 36 2.3.2 结构特点与功能描述 38 2.3.3 器件特性设定 53 2.3.4 器件配置与测试 55 2.3.5 定时模型 56 2.4 Altera APEX20K系列FPGA芯片 58 2.4.1 APEX系列器件简介 58 2.4.2 APEX20K系列概述 59 2.4.3 APEX20K系列的特点 59 2.4.4 APEX20K系列的结构描述 60 2.5 Xilinx XC9500系列FPGA芯片 73 2.5.1 XC9500系列CPLD器件 73 2.5.2 系列器件的结构 75 第3章 初探CPLD/FPGA设计工具——MAX+PLUSⅡ 83 3.1 MAX+PLUSⅡ简介 83 3.1.1 MAX+PLUSⅡ的功能和特点 83 3.1.2 软件的版本 85 3.1.3 系统要求 85 3.1.4 软件的安装 85 3.1.5 MAX+PLUSⅡ的操作环境 86 3.1.6 MAX+PLUSⅡ的设计方法 87 3.2 图形输入的设计过程 90 3.2.1 项目建立与图形输入 90 3.2.2 项目编译 95 3.2.3 项目检验 96 3.2.4 目标器件选择与管脚锁定 101 3.2.5 器件编程/配置 104 3.3 工具条和常用菜单选项说明 105 3.3.1 菜单栏 105 3.3.2 工具栏 110 3.3.3 状态栏 112 第4章 深入了解CPLD/FPGA设计工具——MAX+PLUSⅡ 113 4.1 图形的层次化设计和BUS使用 113 4.1.1 层次化设计 113 4.1.2 BUS使用 115 4.2 语言描述输入法 117 4.3 混合设计输入 120 4.4 使用LPM及FLEX10K中的RAM 121 4.4.1 LPM的使用 121 4.4.2 FLEX10K中的RAM 123 4.5 创建用户符号库 126 4.5.1 制作兆功能模块(Mega_Function)符号 126 4.6 编译控制 131 4.6.1 编译顶层系统文件 131 4.6.2 启用设计规则检查工具 136 4.6.3 编译后生成的报告文件 140 4.6.4 分析资源占用情况 142 第5章 VHDL硬件描述语言(一) 146 5.1 常用硬件描述语言 147 5.2 VHDL基本结构 148 5.2.1 实体说明 149 5.2.2 构造体 153 5.3 VHDL语言要素 156 5.3.1 VHDL文字规则 156 5.3.2 VHDL数据对象 157 5.3.3 VHDL数据类型 163 5.3.4 VHDL运算符 170 5.4 VHDL顺序语句 176 5.4.1 赋值语句 176 5.4.2 分支控制语句 176 5.4.3 循环控制语句 183 5.4.4 同步控制语句 187 5.4.5 其他语句 189 5.5 VHDL并发语句 190 5.5.1 并行信号赋值语句 191 5.5.2 进程语句 193 5.5.3 元件例化语句 194 5.5.4 并发过程调用语句 197 5.5.5 块语句 197 5.5.6 生成语句 199 第6章 VHDL硬件描述语言(二) 201 6.1 子程序 201 6.1.1 函数 201 6.1.2 过程 205 6.1.3 子程序重载 206 6.2 库、程序包、配置及其他 207 6.2.1 库 207 6.2.2 程序包 209 6.2.3 配置 211 6.2.4 属性描述 215 6.3 VHDL构造体的描述风格 222 6.3.1 行为描述 222 6.3.2 数据流描述 223 6.3.3 结构描述 228 6.4 VHDL语言的仿真与逻辑综合 231 6.4.1 VHDL语言的仿真 231 6.4.2 VHDL语言的逻辑综合 234 6.5 VHDL语言93版与87版的区别 236 6.5.1 93版对规范的修订 236 6.5.2 87版到93版的移植问题 244 第7章 基本逻辑单元的VHDL实现 245 7.1 组合逻辑电路的VHDL实现 245 7.1.1 简单门电路 245 7.1.2 译码器、编码器和选择器 251 7.1.3 三态门和总线缓冲器 257 7.1.4 组合逻辑电路VHDL实现的一般方法 259 7.2 时序逻辑电路的VHDL实现 260 7.2.1 锁存器 260 7.2.2 触发器 263 7.2.3 计数器 266 7.3 状态机 271 7.3.1 状态机的基本结构和功能 271 7.3.2 状态机的VHDL模型 271 7.3.3 状态机的应用举例 277 第8章 存储器实例设计 284 8.1 存储器原理 284 8.2 移位寄存器设计 285 8.2.1 双向移位寄存器 286 8.2.2 环形移位寄存器 287 8.2.3 M序列发生器 289 8.3 ROM和RAM 291 8.3.1 ROM 291 8.3.2 RAM 293 8.4 先进先出队列(FIFO) 296 第9章 算术运算电路设计 301 9.1 数值的表示 301 9.1.1 进位计数制 301 9.1.2 二进制表示 301 9.1.3 二-十进制编码 302 9.2 一位全加器和一位全减器 302 9.2.1 一位全加器 302 9.2.2 一位全减器 303 9.3 N位加法器 305 9.3.1 串行进位加法器 305 9.3.2 N位超前进位加法器 307 9.3.3 利用算术运算包实现加法 309 9.4 N位减法器 311 9.4.1 用加法器实现减法器 311 9.4.2 利用算术运算包实现减法 312 9.5 乘法器 313 9.5.1 组合逻辑乘法器 313 9.5.2 时序逻辑乘法器 314 9.5.3 混合逻辑乘法器 320 9.6 除法器 325 第10章 数字系统设计方法 329 10.1 概述 329 10.1.1 数字系统的基本概念 329 10.1.2 数字系统的基本模型 329 10.1.3 数字系统设计方法 330 10.2 数字系统设计的一般步骤 331 10.2.1 需求分析 332 10.2.2 数字系统的设计任务 333 10.2.3 子系统划分的原则 333 10.3 数字系统的描述方法 334 10.3.1 算法流程图 334 10.3.2 算法状态机(ASM图) 336 第11章 视频颜色空间转换芯片设计 338 11.1 视频颜色空间的转换原理 338 11.1.1 颜色空间的转换的基本概念 338 11.1.2 颜色空间转换的定点运算实现 340 11.2 系统设计 341 11.2.1 设计要求 341 11.2.2 系统结构和模块划分 341 11.2.3 流水线结构设计 342 11.3 系统实现 342 11.3.1 乘法器模块的实现 342 11.3.2 主体模块的实现 343 11.3.3 顶层模块设计 353 11.4 逻辑综合选项设定和系统仿真 355 11.4.1 逻辑综合选项设定 355 11.4.2 波形仿真 356 11.4.3 最高时钟频率仿真 357 11.4.4 提高系统速度的方法 357 第12章 键盘接口电路和LED显示电路设计 359 12.1 键盘接口电路 359 12.1.1 行列式键盘原理 359 12.1.2 系统结构和模块划分 360 12.1.3 键盘扫描电路 361 12.1.4 键盘译码电路和按键标志产生电路 362 12.1.5 时钟产生模块 368 12.1.6 键盘接口电路顶层电路实现 370 12.2 LED显示管理电路 372 12.2.1 LED显示管理电路原理 372 12.2.2 系统结构和模块划分 373 12.2.3 扫描信号发生器 373 12.2.4 显示缓存器 375 12.2.5 多路选通器 376 12.2.6 七段译码器 377 12.2.7 闪烁模块 378 12.2.8 时钟发生器 380 12.2.9 LED显示管理顶层电路实现 383 第13章 数字频率计 387 13.1 频率测量方法和原理 387 13.1.1 常用测频方法 387 13.1.2 直接计数测频法 388 13.2 系统分析和设计 388 13.2.1 设计要求 388 13.2.2 系统分析 389 13.2.3 系统结构和模块划分 390 13.3 量程估计模块 390 13.3.1 量程估计原理 390 13.3.2 7位BCD计数器 391 13.3.3 量程估计功能的实现 394 13.4 计数时钟和闸门产生模块 397 13.5 周期测量计数器模块 401 13.6 除法器模块 403 13.6.1 除法器原理 403 13.6.2 7位BCD减法器 404 13.6.3 7位BCD减法计数器 407 13.6.4 除法器实现 409 13.7 小数点产生模块 414 13.8 数字频率计的顶层电路实现 416 第14章 电子表 420 14.1 电子表的系统分析和设计 420 14.1.1 设计要求 420 14.1.2 用户界面设计 420 14.1.3 系统结构和模块划分 421 14.2 计时器 422 14.2.1 计时器电路结构 422 14.2.2 106分频计数器的实现和仿真 422 14.2.3 计时器的实现和仿真 423 14.3 状态机 426 14.3.1 状态机的模块分析 426 14.3.2 校时和设闹状态机 427 14.3.3 闹钟和整点报时状态机 435 14.4 闹钟寄存器 437 14.5 铃声管理模块 438 14.5.1 铃声管理模块分析 438 14.5.2 VHDL实现 439 14.5.3 仿真 442 14.6 电子表顶层电路的实现 442 14.6.1 顶层电路结构 442 14.6.2 VHDL实现 443 14.6.3 仿真 446