1.1 FPGA/CPLD简介 1
目录 1
5.7 小结 27 1
第1章 ISE系统简介 1
1.1.1 FPGA/CPLD的基本原理 2
1.1.2 FPGA和CPLD的特点 7
1.2 FPGA/CPLD的设计流程 9
1.3 ISE系列产品的特点 11
1.3.1 特点综述 11
1.3.2 ISE的新增特性 12
1.4 ISE 6.x支持的器件 14
1.5 ISE的4个软件系列 14
1.6 ISE的系统配置与安装 18
1.6.1 推荐的系统配置 18
1.6.2 ISE的安装 19
1.7 ISE中集成工具及其基本功能 21
1.8 常用专有名词解释 27
1.10 问题与思考 29
1.9 小结 29
2.1 ISE工程管理器——Project Navigator 31
2.1.1 Project Navigator综述 31
第2章 工程管理器与设计输入工具 31
2.1.2 Project Navigator的用户界面 32
2.1.3 使用Project Navigator创建并管理工程 38
2.2 HDL语言的输入工具——HDL Editor 43
2.2.1 HDL Editor综述 43
2.2.2 源代码输入的好助手——Language Templates 44
2.3 状态机输入工具——StateCAD 45
2.3.1 StateCAD综述 46
2.3.2 StateCAD的用户界面 46
2.3.3 使用StateCAD设计状态机 51
2.4 原理图输入工具——ECS 62
2.4.1 ECS综述 63
2.4.2 ECS的用户界面 63
2.4.3 使用ECS完成原理图输入设计 66
2.4.4 使用ECS进行混合设计的方法 73
2.5 IP核生成工具——CORE Generator 74
2.5.1 CORE Generator综述 74
2.5.2 CORE Generator的用户界面 75
2.5.3 使用CORE Generator生成IP核的方法与技巧 78
2.6 测试激励生成器——HDL Bencher 83
2.6.1 HDL Bencher综述 83
2.6.2 使用HDL Bencher生成测试激励 85
2.7.1 Architecture Wizard综述 91
2.7.2 Architecture Wizard使用方法 91
2.7 设计结构向导——Architecture Wizard 91
2.8 小结 94
2.9 问题与思考 94
第3章 仿真工具 95
3.1 ModelSim的用户接口 97
3.1.1 行为仿真 99
3.1.2 时序仿真 101
3.1.3 高级设置 102
3.2 ModelSim仿真窗口综述 104
3.3 仿真环境的建立 114
3.3.1 各仿真切入点需要的库文件 114
3.3.2 仿真库文件说明 115
3.3.3 库文件编译 116
3.3.4 仿真库的命名 120
3.4.1 在ModelSim环境下进行仿真 121
3.4 一个简单的仿真示例 121
3.4.2 在ISE集成环境中进行仿真 128
3.5 ModelSim中的调试方法 130
3.5.1 源文件窗口调试 130
3.5.2 波形窗口调试 132
3.5.3 数据流窗口调试 135
3.5.4 存储器窗口调试 140
3.5.5 变量窗口调试 142
3.5.6 列表窗口调试 145
3.6 ModelSim的其他常用操作 146
3.6.1 自动仿真 146
3.6.2 WLF文件 149
3.6.3 波形比较 151
3.6.4 SDF文件 156
3.6.5 VCD文件 157
3.7 小结 159
3.8 问题与思考 159
第4章 ISE中集成的综合工具 161
4.1 新兴的高效综合工具——Synplify/Synplify Pro 161
4.1.1 Synplify/Synplify Pro的功能与特点 161
4.1.2 Synplify Pro的用户界面 168
4.1.3 Synplify Pro综合流程 171
4.1.4 Synplify Pro的其他综合技巧 193
4.2 Xilinx最早的合作伙伴——Synopsys综合工具 205
4.2.1 设计流程 206
4.2.2 FE综合优化过程 208
4.2.3 FST操作说明 217
4.3 Xilinx内嵌的综合工具——XST 220
4.3.1 XST综述 220
4.3.2 XST综合属性设置 221
4.3.3 使用XST的综合流程 226
4.4 全局时钟与第二全局时钟资源 229
4.4.1 全局时钟资源简介 229
4.4.2 常用的与全局时钟资源相关的Xilinx器件原语 230
4.4.3 Xilinx全局时钟资源的使用方法 232
4.4.4 使用Xilinx全局时钟资源的注意事项 233
4.4.5 第二全局时钟资源 235
4.6 问题与思考 236
4.5 小结 236
5.1 概述 237
第5章 约束 237
5.2 时序约束 239
5.2.1 周期约束(PERIOD约束) 239
5.2.2 偏移约束(OFFSET约束) 242
5.2.3 专门约束 245
5.3 分组约束 248
5.3.1 TNM约束 248
5.3.2 TNM NET约束 251
5.3.3 TIMEGRP约束 251
5.3.4 TPTHRU约束 252
5.3.5 TPSYNC约束 252
5.4.1 Constraints Editor的用户界面 253
5.4 约束编辑器——Constraints Editor 253
5.4.2 附加全局约束 254
5.4.3 附加端口约束 256
5.4.4 附加分组约束和时序约束 257
5.4.5 附加专用约束 261
5.5 引脚与区域约束编辑器——PACE 262
5.5.1 PACE的用户界面 263
5.5.2 附加区域约束 266
5.5.3 附加I/O引脚约束 267
5.6 约束文件 268
5.6.1 约束文件的概念 268
5.6.2 UCF、NCF文件的基本语法规则 269
5.8 问题与思考 271
6.1 时序分析器——Timing Analyzer 273
第6章 辅助设计工具 273
6.1.1 时序分析器的用户界面 274
6.1.2 时序分析器的作用及设计流程 275
6.1.3 基本时序路径 276
6.1.4 时序分析器的使用方法 282
6.2 布局规划器——Floorplanner 286
6.2.1 布局规划器的用户界面 286
6.2.2 布局规划器的特点及作用 288
6.2.3 布局规划设计流程 289
6.2.4 设计示例 292
6.3 FPGA底层编辑器——FPGA Editor 297
6.3.1 FPGA底层编辑器的用户接口 297
6.3.2 FPGA底层编辑器的作用 298
6.3.3 FPGA底层编辑器输入输出文件 300
6.3.4 FPGA底层编辑器的工作流程 301
6.3.5 使用FPGA底层编辑器的预备知识 301
6.3.6 设计示例 303
6.4 小结 308
6.5 问题与思考 308
第7章 XPower、iMPACT和ChipScope Pro 309
7.1 XPower 309
7.1.1 XPower综述 309
7.1.2 XPower的用户界面 310
7.1.3 用XPower分析功耗 313
7.2 iMPACT 316
7.2.1 iMPACT综述 316
7.2.2 iMPACT的用户界面 317
7.2.3 用iMPACT下载配置文件 320
7.3 ChipScope Pro 328
7.3.1 ChipScope Pro综述 328
7.3.2 ChipScope Pro Core Inserter 330
7.3.3 ChipScope Pro Analyzer 336
7.4 小结 341
7.5 问题与思考 341
第8章 模块化与增量式设计方法 343
8.1 模块化设计方法的基本概念 343
8.2 模块化设计方法的设计流程 344
8.2.1 Modular Design的设计输入与综合步骤 345
8.2.2 Modular Design的实现步骤 346
8.3 模块化设计方法的注意事项 350
8.3.1 Modular Design的应用场合 350
8.3.2 Modular Design的设计效能 351
8.3.3 Modular Design的目录管理 352
8.3.4 Modular Design的常用约束 352
8.3.5 Modular Design的报告查看 353
8.3.6 使用XFLOW自动进行模块化设计 353
8.4 模块化设计方法的设计实例 355
8.5 增量式设计方法的基本概念 364
8.6 增量设计方法的设计流程 366
8.6.1 增量综合 367
8.6.2 增量实现 369
8.7 增量设计方法的设计实例 372
8.8 小结 379
8.9 问题与思考 381
第9章 融会贯通——“运动计时表”设计 383
9.1 示例背景 384
9.2 多元混合设计输入方法 385
9.2.1 新建工程“watch_sc” 385
9.2.2 使用ECS绘制“cnt60”和“outs3”模块原理图 386
9.2.3 使用Core Generator生成“tenths”IP核 392
9.2.4 使用StateCAD设计“stmach_v”状态机 395
9.2.5 使用Architecture Wizard生成时钟管理模块“dcml” 403
9.2.6 使用语言模板设计“hex2led”和“decode”的HDL源代码 405
9.2.7 使用ECS设计顶层原理图 408
9.3 测试激励与行为级功能仿真 409
9.3.1 使用HDL Bencher生成测试激励 410
9.3.2 调用ModelSim进行行为级功能仿真 412
9.4 Synplify Pro和XST综合方法 413
9.4.1 使用XST综合整个设计 413
9.4.2 使用Synplify Pro的特色工具分析、优化设计 415
9.5 设计用户约束文件与实现结果的分析 421
9.5.1 使用Constraints Editor设计UCF文件 422
9.5.2 使用PACE设计UCF 425
9.5.3 实现步骤与实现结果分析 427
9.6 使用ModelSim进行布线后仿真 432
9.7 使用iMPACT配置FPGA/CPLD 433
9.8 小结 438
9.9 问题与思考 438
第10章 ISE实战——I2C接口设计 439
10.1 EFX-SP200——实验开发系统简介 439
10.2 I2C总线简介 440
10.2.1 I2C总线上的数据传输 441
10.2.2 I2C总线寻址 443
10.2.3 时钟同步与仲裁 445
10.2.4 I2C协议的扩展 446
10.3 I2C总线应用实例——AT24C系列EEPROM 446
10.3.1 AT24C02概述 447
10.3.2 写操作 448
10.3.3 读操作 448
10.3.4 AT24C在IC卡中的应用简介 449
10.4 I2C总线控制器设计详解 450
10.4.1 I2C总线控制器总体描述 451
10.4.2 μC接口设计 452
10.4.3 I2C接口设计 458
10.4.4 混合仿真验证 469
10.4.5 上板调试 478
10.5 小结 478
10.6 问题与思考 478