FPGA/CPLD技术最近年来计算机与电子技术领域的又一场革命。本书以Xilinx与Altera公司的FPGA/CPLD为主,详细介绍了FPGA/CPLD从芯版式到MAX+plus II、Quartus与ISE开发环境和Verilog/VHDL语言,并以交通灯逻辑控制、电子钟与点阵LED显示、LCD液晶显示及计算机ISA接口和PCI接口的设计等为例,由浅入深地详述了如何应用FPGA/CPLD进行电子设计。书中的大多数电路图和源程序已经过实例验证,读者可以直接应用于自己的设计。本书的特点是强调实用性和无进性,力求通俗通懂。本书适用于计算机、电子、控制及信息等相关专业的校大学生,对广大工程技术人员也具有实用价值。当今世界,科技飞速发展,人类面临着一次又一次的机遇和挑战。2003年举世闻名的FORBES杂志(www.forbes.com)曾经揭示了一个新的概念,在未来的计算机中,CPU将被FPGA(现场可编程逻辑门阵列)芯片所取代,同时美国的一家公司也已成功推出了以FPGA取代CPU的计算机,FPGA/CPLD被国外的媒体认为是一次新的革命性技术进步。本书的作者都是长期从事嵌入式与FPGA/CPLD研究、发展与普及的科技人员,本书系统;全面地介绍了FPGAJCPLD从原理、开发环境、编程语言到应用实例,并全面反映该领域的最新发展成果。本书的特点是通俗易懂,深入浅出,可被高等院校及其他读者选用为相关教材,也是初学者的敲门砖,中高级人员的有益助手和资料。本书包括11章及7个附录。全书介绍了目前世界最大和主流的两个FPGA/CPLD生产厂家的产品和开发工具,第1章-第3章介绍了Xilinx公司的FPGA/CPLD基本知识与结构:第4章-第5章以矩阵LED显示等实例介绍了XiHnx公司的集成开发环境ISE的基本和高级知识;第6章-第7章分别以实例介绍了Altera公司的集成开发环境MAX+plusⅡ与Quartus;第8章-第9章分别以实例介绍了Altera公司的FLEXl0K与FLEX6000系列FPGA在点阵、字符液晶显示以及交通灯等其他领域的应用;第10章介绍了ISA与PCI总线的原理及FPGA用于接口芯片设计的实例。为利于读者速查,附录A介绍了Altera公司的主要产品和芯片;附录B和附录C介绍了FPGA/CPLD主要的两种开发语言VHDL与Vefilog;附录D和附录E介绍了MAX+plusⅡ在Windows 2000/WindowsXP下的驱动配置;附录F介绍了ISE 6.1i的新增功能;附录G介绍了由本书作者开发,针对FPGA/CPLD应用学习者的,支持Altera/Xilinx开发环境的学习开发工具箱(www.edtyang.com);附录H介绍了FPGA/CPLD万能型快速学习开发器CHICAG08.0。本书是集体智慧的结晶,由西雅图数码科技有限公司杨恒博士、西安科技大学李爱国博士、深圳英特数码科技有限公司王辉先生与北京大学深圳研究生院王新安博士合作编著。参加本书编辑审校工作的有以下人员:第1章-第3章:西北工业大学的李伟和白冰洋,西安电子科技大学的李智奇;第4章-第5章:西安电子科技大学的李剑红,西安科技大学的赵彩,西雅图数码科技有限公司的吴言水: 第6章:西安科技大学的雍煌,深圳大学的申向军;第7章:西北农林科技大学的何东健、李书琴、耿楠、田国华;第8章-第9章:深圳英特数码科技有限公司的王辉;第10章:广州南沙资讯科技园的唐会华;‘附录:西北工业大学的李伟,西雅图数码科技有限公司的吴言水。本书可以独立作为大专院校或工程技术人员学习参考之用,读者也可以根据自身情况与本书作者专门研发的不同版本的配套学习实验开发箱(含开发学习板、下载线缆、手册和光盘)结合使用(详见www.edtyang.com)。作者向以下关心过本书或在学术上给予过帮助的朋友表示感谢,他们是:新加坡南洋理工大学(NanyangTechnologicalUniversity,Singapore)Prof.SerWee,Prof.C.ZHU,Prof.GB.HUANG;亚洲咨询公司、美国密西根大学博士ChrisKoh;新加坡国家咨讯技术研究院林晓博士、姜力军博士、陈建峰博士;西安市科技局副局长陈长春博士;国家集成电路西安产业化基地蔺建文主任、何晓宁部长和王坤元主任;美国德州仪器上海办事处张浩先生:西北工业大学陈明教授、博士生导师;西安建筑科技大学李昌华教授、赵光华博士、李振国教授;西安理工大学李言教授、邱宗明教授;深圳熙和技术公司毛周明总裁、申凌博士和陶明博士;广州华意电子科技公司刘林先生;西安邮电学院朱自祥教授;北京大学崔小乐博士后;西雅图数码科技有限公司(西安)罗宵先生、张玉红小姐。由于作者水平有限,错误和不当之处在所难免,敬请各位读者不吝赐教。杨恒2004年8月8日于新加坡hyang999@sina.cOm 第O章绪论0.1 FPGA/CPLD概述0.2 FPGA/CPLD的开发软件0.3 FPGA/CPLD的分类和使用0.4因特网上的FPGA及其他资源0.5本章小结第1章Xilinx CPLD系列产品1.1 简介1.1.1 XC9500系列CPLD器件1.1.2 CoolRunner系列CPLD器件1.2 XC9500系列器件的结构1.3 CoolRunner系列CPLD器件的结构1.4 Xilinx CPLD器件的命名1.5本章小结第2章Xilinx FPGA系列产品2.1 Spartan-II E系列产品2.1.1 概述2.1.2器件结构2.2 Spartan-3系列产品2.2.1概述2.2.2器件结构2.3 Virtex.II系列产品2.3.1概述2.3.2器件结构2.4 Virtex.II Pro系列产品2.4.1概述2.4.2器件结构2.5 Virtex-4系列产品2.5.1概述2.5.2 Virtex-4系列的总体结构2.5.3 Virtex-4的三个平台FPGA简介2.5.4~trtex-4 FPGA综述2.6本章小结第3章CPLD/FPGA的边界扫描测试3.1 引言3.2 IEEE 1149.1边界扫描测试的结构3.3 JTAG BST操作控制3.3.1抽样/预加载(SAMPLE/PRELOAD)指令模式3.3.2外测试(EXTEST)指令模式3.3.3旁路(BYPASS)指令模式3.3.4用户码(USRCODE)指令模式3.3.5 ID码(IDCODE)指令模式3.4 Xilinx器件的边界扫描3.4.1数据存储器(Data Register)3.4.2指令集(Instruction Set)3.4.3位顺序(Bit Sequence)3.4.4在设计中插入边界扫描3.5边界扫描描述语言(BSDL)3.6 Xilinx器件下载3.6.1 MultiLINX下载电缆3.6.2 Xchecker下载电缆3.6.3 Parallel下载电缆3.7 Altera与Lattice公司CPLD下载电路3.8本章小结第4章Xilinx ISE应用基础.4.1 Xilinx ISE简介4.2安装Xilinx ISE4.2.1 系统需求4.2.2 ISE的安装4.3 Xilinx ISE应用入门4.4 Xilinx ISE设计流程4.4.1 设计输入4.4.2功能仿真4.4.3综合.4.4.4实现4.4.5时序仿真4.4.6下载配置4.5设计实例4.6本章小结第5章Xilinx ISE高级应用5.1设计输入5.1.1硬件描述语言(HDL)输入方式5.1.2原理图(Schematic)输入方式5.2功能仿真和时序仿真5.2.1功能仿真5.2.2时序仿真(对顶层文件进行仿真)5.3设计实现5.3.1运行实现设计5.3.2在布局规划器(Floorplanner)中查看设计布局5.4引脚锁定与器件下载编程5.4.1引脚锁定5.4.2 CPLD器件的编程下载5.5应用ISE 6.2i的矩阵LED设计实例5.5.1功能要求及硬件设计5.5.2控制逻辑设计5.5.3在ISE 6.2i中建立矩阵LED的工程文件并下载到CPLD运行5.6本章小结第6章MAX+plus II 1 0.1的使用指南6.1 MAX+plus II 10.1的特点6.2 MAX+plusⅡ的组成6.3 MAX+plus II的使用6.3.1图形文件的建立6.3.2文本文件的建立6.3.3建立顶层设计文件6.3.4 q-程文件的编译6.3.5模拟仿真6.3.6定时分析6.3.7器件编程6.4本章小结第7章Ouartus II使用指南7.1 QuartusⅡ设计入门7.1.1简介7.1.2设计流程7.1.3设计入门7.1.4综合7.1.5仿真7.1.6布线与制板7.1.7块结构设计7.1.8对EDA I具使用LogicLock7.2延时分析与延时终止7.2.1在Quartus II软件中执行延时分析7.2.2使用EDA工具执行延时分析7.2.3延时终止7.3.1程设计、调试与修改管理7.3.1使用SignalTap逻辑分析器7.3.2使用信号探针(SignalProbe)7.3.3使用芯片编辑器7.3.4 工程管理简介7.4系统设计7.4.1用SOPC Builder创建SOPC设计7.4.2用DSP Builder创建DSP设计7.5软件开发7.6下载与配置7.7本章小结第8章FLEX 6000系列器件简介及应用实例8.1 FLEX 6000系列器件简介8.1.1特点8.1.2概述8.1.3功能描述8.1.4输出配置8.1.5 JTAG边界扫描8.2交通信号灯控制逻辑设计8.2.1系统要求分析8.2.2控制逻辑描述8.3 电子钟的设计实例8.3.1功能要求和结构8.3.2控制芯片的设计8.4字符型LCD(KS0066)接口的设计8.4.1原理介绍8.4.2字符型LCD(KS0066)接口的VHDL描述8.5本章小结第9章 FLEX 1 0K嵌入式可编程逻辑系列器件简介及应用实例9.1 FLEX 10K嵌入式可编程逻辑系列器件简介9.1.1特点9.1.2总体描述9.1.3功能描述9.1.4相同结构的输出引脚9.1.5时钟锁和时钟推进特性9.1.6输出设置9.1.7 JTAG边界扫描9.1.8配置和操作9.2应用FLEX IOK设计图像点阵型LCD9.2.1 图像点阵型LCD原理介绍9.2.2基于FLEX 10K的图像点阵型LCD控制设计9.3本章小结第10章应用FPGA设计PC机的ISA和PCI总线接口10.1应用FPGA设计PC机的ISA总线接口10.1.1 ISA总线概述10.1.2基于Altera FLEX6000的ISA接口设计10.2应用FPGA设计PC机的PCI总线接口10.2.1 PCI总线概述10.2.2 PCI总线命令10.2.3 PCI总线访问地址解码10.2.4 PCI配置空间操作10.2.5基于Altera公司的FLEXl0K系列FPGA实现的PCI接口设计10.3本章小结附录A Altera公司FPGNCPLD系列器件纵览附录B VHDL编程基础附录C Verilog HDL编程基础附录D MAX+plus II Windows 2000驱动配置指南附录E MAX+plus II Windows XP驱动配置指南附录F ISE 6.1 i的新增功能附录G FPGNCPLD快速学习开发工具CHICAGO 6.0附录H FPGA/CPLD万能型快速学习开发器CHICAGO 8.0参考文献