内容提要 本书以FPGA/CPLD设计流程为主线,阐述了如何合理利用ISE设计平台集成的各种设计工具, 高效地完成FPGA/CPLD的设计方法与技巧。全书在介绍FPGA/CPLD概念和设计流程的基础上, 依次论述工程管理与设计输入、仿真、综合、约束、实现与布局布线、配置调试等主要设计步骤在ISE集成环境中的实现方法与技巧。 本书立足工程实践,结合作者多年工作经验,选用大量典型实例,并配有一定数量的练习题。 本书配套光盘收录了所有实例的完整工程目录、源代码、详细操作步骤和使用说明,利于读者边学边练,提高实际应用能力。 本书可作为高等院校通信工程、电子工程、计算机、微电子与半导体学等专业的教材,也可作为硬件工程师和IC工程师的实用工具书。 目录 第1章 ISE系统简介  11.1 FPGA/CPLD简介  11.1.1 FPGA/CPLD的基本原理  21.1.2 FPGA/CPLD的特点  21.2 FPGA/CPLD的设计流程  31.3 ISE系列产品的新特点  51.3.1 特点综述  51.3.2 ISE 5.x的新增特性  61.4 ISE 5.x支持的器件  81.5 ISE 5.x的系统配置与安装  91.5.1 推荐的系统配置  91.5.2 ISE 5.x的安装  101.6 ISE 5.x的集成工具及其基本功能  121.7 常用专有名词解释  151.8 小结  171.9 问题与思考  第2章 工程管理器与设计输入工具  192.1 ISE工程管理器──Project Navigator  192.1.1 Project Navigator综述  192.1.2 Project Navigator的用户界面  202.1.3 使用Project Navigator创建并管理工程  272.2 HDL语言的输入工具──HDL Editor  322.2.1 HDL Editor综述  322.2.2 源代码输入的好助手──Language Templates  322.3 状态机输入工具──StateCAD  342.3.1 StateCAD综述  342.3.2 StateCAD的用户界面  352.3.3 使用StateCAD设计状态机  402.4 原理图输入工具──ECS  512.4.1 ECS综述  522.4.2 ECS的用户界面  522.4.3 使用ECS完成原理图输入设计  552.4.4 使用ECS进行混合设计的方法  622.5 IP核生成工具──CORE Generator  632.5.1 CORE Generator综述  632.5.2 CORE Generator的用户界面  642.5.3 使用CORE Generator生成IP核的方法与技巧  672.6 测试激励生成器──HDL Bencher  722.6.1 HDL Bencher综述  722.6.2 使用HDL Bencher生成测试激励  742.7 设计结构向导──Architecture Wizard  802.7.1 Architecture Wizard综述  802.7.2 Architecture Wizard使用方法  802.8 小结  832.9 问题与思考  第3章 ModelSim仿真工具  853.1 ModelSim的用户接口  863.2 ModelSim仿真窗口综述  883.3 仿真环境的建立  943.3.1 仿真库的命名  953.3.2 仿真库文件的手动建立  963.4 一个简单的仿真示例  973.4.1 在ModelSim环境下进行仿真  973.4.2 在ISE集成环境中进行仿真  1003.5 混合VHDL/Verilog仿真  1023.6 ModelSim中的调试方法  1043.7 使用批处理方式进行仿真  1073.8 波形比较与WLF文件  1093.8.1 创建一个参考的数据集合  1093.8.2 修改源文件重新运行仿真  1103.8.3 进行波形比较  1103.9 SDF时序标注  1153.10 仿真中的代码覆盖率  1163.11 VCD文件  1183.11.1 创建VCD文件  1183.11.2 使用一个VCD文件重新进行仿真  1193.12 问题与思考  第4章 ISE中集成的综合工具  1214.1 新兴的高效综合工具──Synplify/Synplify Pro  1214.1.1 Synplify/Synplify Pro 的功能与特点  1214.1.2 Synplify Pro的用户界面  1264.1.3 Synplify Pro综合流程  1304.1.4 Synplify Pro的其他综合技巧  1464.2 Xilinx最早的合作伙伴──Synopsys综合工具  1584.2.1 设计流程 1594.2.2 FE综合优化过程  1614.2.3 FST操作说明  1704.3 Xilinx内嵌的综合工具──XST  1734.3.1 XST综述  1734.3.2 XST综合属性设置  1734.3.3 使用XST的综合流程  1784.4 全局时钟与第二全局时钟资源  1824.4.1 全局时钟资源简介  1824.4.2 常用的与全局时钟资源相关的Xilinx器件原语  1824.4.3 Xilinx全局时钟资源的使用方法  1854.4.4 使用Xilinx全局时钟资源的注意事项  1864.4.5 第二全局时钟资源  1884.5 小结  1894.6 问题与思考  第5章 约束  1915.1 概述  1915.2 时序约束  1935.2.1 周期约束(PERIOD约束)  1935.2.2 偏移约束(OFFSET约束)  1965.2.3 专门约束  1995.3 分组约束  2025.3.1 TNM约束  2025.3.2 TNM_NET约束  2055.3.3 TIMEGRP约束  2055.3.4 TPTHRU约束  2065.3.5 TPSYNC约束  2065.4 约束编辑器──Constraints Editor  2075.4.1 Constraints Editor的用户界面  2075.4.2 附加全局约束  2085.4.3 附加端口约束  2105.4.4 附加分组约束和时序约束  2115.4.5 附加专用约束  2145.5 引脚与区域约束编辑器──PACE 2155.5.1 PACE的用户界面  2165.5.2 附加区域约束  2195.5.3 附加I/O引脚约束  2205.6 约束文件  2215.6.1 约束文件的概念  2215.6.2 UCF、NCF文件的基本语法规则  2225.7 小结  2245.8 问题与思考   第6章 辅助设计工具  2256.1 时序分析器──Timing Analyzer  2256.1.1 时序分析器的用户界面  2266.1.2 时序分析器的作用及设计流程  2276.1.3 基本时序路径  2286.1.4 时序分析器的使用方法  2366.2 布局规划器──Floorplanner  2406.2.1 布局规划器的用户界面  2406.2.2 布局规划器的特点及作用  2426.2.3 布局规划设计流程  2436.2.4 设计示例  2466.3 FPGA底层编辑器──FPGA Editor  2516.3.1 FPGA底层编辑器的用户接口  2516.3.2 FPGA底层编辑器的作用  2526.3.3 FPGA底层编辑器输入输出文件  2546.3.4 FPGA底层编辑器的工作流程  2556.3.5 使用FPGA底层编辑器的预备知识  2556.3.6 设计示例  2576.4 小结  2626.5 问题与思考   第7章 XPower、iMPACT和ChipScope Pro  2637.1 XPower 2637.1.1 XPower综述  2637.1.2 XPower的用户界面  2647.1.3 用XPower分析功耗  2677.2 iMPACT  2697.2.1 iMPACT综述  2697.2.2 iMPACT的用户界面  2707.2.3 用iMPACT下载配置文件  2737.3 ChipScope Pro 2817.3.1  ChipScope Pro综述  2817.3.2 ChipScope Pro Core Inserter  2837.3.3 ChipScope Pro Analyzer  2897.4 小结  2947.5 问题与思考   第8章 模块化设计方法  2958.1 模块化设计方法的基本概念  2958.2 模块化设计方法的设计流程  2968.2.1 Modular Design的设计输入与综合步骤  2978.2.2 Modular Design的实现步骤  2988.3 模块化设计方法的注意事项与设计技巧  3028.3.1 Modular Design的目录管理  3028.3.2 Modular Design的常用约束  3038.3.3 Modular Design的设计规模与性能表现  3038.3.4 Modular Design的报告查看  3048.3.5 使用XFLOW自动进行模块化设计  3048.4 模块化设计方法的设计实例  3068.5 小结 3158.6 问题与思考   第9章 融会贯通──“运动计时表”设计  3179.1 示例背景 3189.2 多元混合设计输入方法  3199.2.1 新建工程“watch_sc'  3199.2.2 使用ECS绘制“cnt60”和“outs3”模块原理图  3209.2.3 使用Core Generator生成“tenths'IP核  3269.2.4 使用StateCAD设计“stmach_v”状态机  3299.2.5 使用Architecture Wizard生成时钟管理模块“dcm1'  3379.2.6 使用语言模板设计“hex2led”和“decode”的HDL源代码  3399.2.7 使用ECS设计顶层原理图 3429.3 测试激励与行为级功能仿真  3439.3.1 使用HDL Bencher生成测试激励  3449.3.2 调用ModelSim进行行为级功能仿真  3469.4 Synplify Pro和XST综合方法  3479.4.1 使用XST综合整个设计  3489.4.2 使用Synplify Pro的特色工具分析、优化设计  3509.5 设计用户约束文件与实现结果的分析  3569.5.1 使用Constraints Editor设计UCF文件  3569.5.2 使用PACE设计UCF  3599.5.3 实现步骤与实现结果分析  3619.6 使用ModelSim进行布线后仿真  3669.7 使用iMPACT配置FPGA/CPLD  3679.8 小结  3729.9 问题与思考 372