书籍详情
Intel FPGA/CPLD设计:高级篇
作者:王江宏,蔡海宁,颜远,王诚,吴继华 著
出版社:人民邮电出版社
出版时间:2017-08-01
ISBN:9787115466785
定价:¥59.00
购买这本书可以去
内容简介
本书作者凭借多年工作经验,深入地讨论了Intel FPGA CPLD的设计和优化技巧。在讨论FPGA CPLD设计指导原则的基础上,介绍了Intel FPGA器件的高-级应用;引-领读者学习逻辑锁定设计工具,详细讨论了时序约束与静态时序分析的方法;针对市场应用需求,分别介绍了SoC FPGA和OpenCL系统应用技术;结合实例讨论如何进行设计优化,介绍了Intel的可编程器件的高-级设计工具与系统级设计技巧。本书所有实例的完整工程、源代码和使用说明文件,都以云存储的方式存放在云端,读者可以通过扫描二维码的方式进行下载。本书可作为高等院校通信工程、电子工程、计算机、微电子与半导体等专业的教材,也可作为硬件工程师和IC工程师的实用工具书。
作者简介
王诚:西安电子科技大学 通信与电子信息系统 硕士 高-级工程师 Lattice公司中国区总经理,工作经验丰富研究领域:扩频通信、CDMA通信、3G基带设计、FPGA 数字ASIC设计、优化、验证取得成果:两项WCDMA实现技术专利发明人,在一级期刊上发表多篇CDMA技术论文,发表数篇国内外FPGA ASIC设计技术研讨会论文,编写图书《FPGA CPLD设计工具──Xilinx ISE 使用详解》、《Altera FPGA CPLD设计(基础篇)》、《Altera FPGA CPLD设计(高-级篇)》 王江宏 西北工业大学 通信与信息系统专业 硕士研究生 毕业后先后加入中兴通讯 上海贝尔 Altera Intel工作 主要从事无线通信设备技术研发, FPGA+ARM技术支持。
目录
第1章\t可编程逻辑设计指导原则\t1
1.1\t可编程逻辑基本设计原则\t1
1.1.1\t面积和速度的平衡与互换原则\t1
1.1.2\t硬件原则\t11
1.1.3\t系统原则\t13
1.1.4\t同步设计原则\t16
1.2\t可编程逻辑常用设计思想与技巧\t19
1.2.1\t乒乓操作\t19
1.2.2\t串并转换\t21
1.2.3\t流水线操作\t21
1.2.4\t异步时钟域数据同步\t22
1.3\tAltera推荐的Coding Style\t26
1.3.1\tCoding Style的含义\t27
1.3.2\t结构层次化编码(Hierarchical Coding)\t27
1.3.3\t模块划分的技巧(Design Partitioning)\t28
1.3.4\t组合逻辑的注意事项\t29
1.3.5\t时钟设计的注意事项\t32
1.3.6\t全局异步复位资源\t38
1.3.7\t判断比较语句case和if...else的优先级\t39
1.3.8\t使用Pipelining技术优化时序\t39
1.3.9\t模块复用与Resource Sharing\t39
1.3.10\t逻辑复制\t41
1.3.11\t香农扩展运算\t43
1.3.12\t信号敏感表\t45
1.3.13\t状态机设计的一般原则\t46
1.3.14\tAltera Megafunction资源的使用\t48
1.3.15\t三态信号的设计\t48
1.3.16\t加法树的设计\t49
1.4\t小结\t51
1.5\t问题与思考\t52
第2章\tAltera器件高级特性与应用\t53
2.1\t时钟管理\t53
2.1.1\t时序问题\t53
2.1.2\t锁相环应用\t60
2.2\tArria10硬浮点数字信号处理模块\t69
2.2.1\t硬浮点DSP块介绍\t69
2.2.2\tAltera FPGA中浮点DSP实现的演进\t69
2.2.3\t硬浮点DSP的优势\t70
2.2.4\tXilinx Ultrascale DSP48E2\t74
2.3\t片外高速存储器\t74
2.3.1\t外部存储接口方案的关键特性\t74
2.3.2\t支持的存储标准\t75
2.3.3\t存储接口宽度\t75
2.3.4\tI O管脚\t76
2.3.5\t外部存储接口IP支持类型\t76
2.3.6\tArria10外部存储接口架构\t78
2.4\tHybrid Memory Cube\t83
2.4.1\t存储带宽面临的挑战\t83
2.4.2\tHMC的优势\t84
2.4.3\tAltera HMC交互操作平台\t85
2.4.4\tAltera HMC路标\t87
2.4.5\t网络系统应用案例\t88
2.5\tAltera JESD204B Megacore\t90
2.5.1\t基本介绍\t90
2.5.2\t功能描述\t94
2.5.3\tDebug指导\t97
2.6\t高速串行收发器\t100
2.6.1\tArria10 Transceiver概述\t100
2.6.2\tTransceiver设计流程\t104
2.6.3\tPLL和时钟网络\t107
2.6.4\t复位Transceiver通道\t112
2.6.5\t重配接口和动态重配\t115
2.6.6\t校准\t118
2.7\t小结\t119
2.8\t问题与思考\t119
第3章\tSoC FPGA嵌入式设计基础\t120
3.1\tSoC FPGA简介\t120
3.1.1\tSoC FPGA系列器件组合\t120
3.1.2\tSoC FPGA的工具和软件\t124
3.1.3\tSoC FPGA的生态系统\t124
3.2\t基于ARM Coretex A9 MPCore的硬件处理系统\t126
3.2.1\t硬核处理器系统框图与系统集成\t127
3.2.2\tEndian支持\t129
3.2.3\tHPS-FPGA桥接\t129
3.2.4\tHPS地址映射\t130
3.3\tQsys系统集成工具\t131
3.3.1\tQsys简介\t131
3.3.2\t在Qsys中例化硬核处理器系统组件\t132
3.4\tSoC嵌入式设计套装 (Embedded Design Suite)\t140
3.4.1\tSoC EDS介绍\t140
3.4.2\tEmbedded Command Shell\t143
3.4.3\tARM DS-5 AE\t143
3.4.4\t启动工具使用指南\t144
3.4.5\t硬件库(Hardware Library)\t145
3.4.6\tHPS Flash编程器\t146
3.4.7\t裸金属编译器\t147
3.4.8\tLinux软件开发工具\t147
3.5\t小结\t148
3.6\t问题与思考\t148
第4章\t时序约束与时序分析\t149
4.1\t时序约束与时序分析基础\t149
4.1.1\t周期与最高频率\t150
4.1.2\t利用Quartus II工具分析设计\t152
4.1.3\t时钟建立时间\t155
4.1.4\t时钟保持时间\t156
4.1.5\t时钟输出延时\t156
4.1.6\t引脚到引脚的延迟\t157
4.1.7\tSlack\t157
4.1.8\t时钟偏斜\t158
4.1.9\tQuartus II 时序分析工具和优化向导\t158
4.2\t设置时序约束的常用方法\t159
4.2.1\t指定全局时序约束\t160
4.2.2\t指定个别时钟约束\t164
4.3\t高级时序分析\t172
4.3.1\t时钟偏斜\t172
4.3.2\t多时钟域\t174
4.3.3\t多周期约束\t174
4.3.4\t伪路径\t181
4.3.5\t修正保持时间违例\t183
4.3.6\t异步时钟域时序分析\t184
4.4\t最小化时序分析\t185
4.5\t使用Tcl工具进行高级时序分析\t186
4.6\tTimeQuest简介\t187
4.7\t小结\t190
4.8\t问题与思考\t190
第5章\t设计优化\t191
5.1\t解读设计\t191
5.1.1\t内部时钟域\t192
5.1.2\t多周期路径和伪路径\t193
5.1.3\tI O接口的时序要求\t194
5.1.4\t平衡资源的使用\t194
5.2\t设计优化的基本流程和首次编译\t195
5.2.1\t设计优化基本流程\t195
5.2.2\t首次编译的约束和设置\t196
5.2.3\t查看编译报告\t198
5.3\t资源利用优化\t200
5.3.1\t设计代码优化\t201
5.3.2\t资源重新分配\t201
5.3.3\t解决互连资源紧张的问题\t203
5.3.4\t逻辑综合面积优化\t203
5.3.5\t网表面积优化\t207
5.3.6\t寄存器打包\t209
5.3.7\tQuartus II中的资源优化顾问\t211
5.4\tI O时序优化\t211
5.4.1\t执行时序驱动的编译\t211
5.4.2\t使用IOE中的触发器\t212
5.4.3\t可编程输入 输出延时\t215
5.4.4\t使用锁相环对时钟移相\t217
5.4.5\t其他I O时序优化方法\t218
5.5\t最高时钟频率优化\t219
5.5.1\t设计代码优化\t219
5.5.2\t逻辑综合速度优化\t225
5.5.3\t布局布线器设置\t227
5.5.4\t网表优化和物理综合\t228
5.5.5\t使用LogicLock对局部进行优化\t233
5.5.6\t位置约束、手动布局和反标注\t234
5.5.7\tQuartus II中的时序优化顾问\t235
5.6\t使用DSE工具优化设计\t236
5.6.1\t为什么需要DSE\t236
5.6.2\t什么是DSE,如何使用\t236
5.7\t如何减少编译时间\t238
5.8\t设计优化实例\t239
5.9\t小结\t242
5.10\t问题与思考\t243
第6章\tAltera OpenCL开发套件和其他高级工具\t244
6.1\t命令行与Tcl脚本\t244
6.1.1\t命令行脚本\t245
6.1.2\tTcl脚本\t249
6.1.3\t使用命令行和Tcl脚本\t253
6.2\tDSP Builder工具\t254
6.2.1\tDSP Builder设计流程\t254
6.2.2\t与SOPC Builder一起构建系统\t258
6.3\tAltera OpenCL软件开发套件\t259
6.3.1\tOpenCL基本介绍\t259
6.3.2\tOpenCL架构\t260
6.3.3\tAOCL的安装和应用\t264
6.3.4\tAOCL FPGA编程\t267
6.4\t小结\t272
6.5\t问题与思考\t272
第7章\tFPGA系统级设计技术\t273
7.1\t信号完整性及常用I O电平标准\t273
7.1.1\t信号完整性\t273
7.1.2\t单端标准\t278
7.1.3\t差分标准\t282
7.1.4\t伪差分标准\t285
7.1.5\t片上终端电阻\t285
7.2\t电源完整性设计\t286
7.2.1\t电源完整性\t286
7.2.2\t同步翻转噪声\t287
7.2.3\t非理想回路\t290
7.2.4\t低阻抗电源分配系统\t293
7.3\t功耗分析和热设计\t297
7.3.1\t功耗的挑战\t297
7.3.2\tFPGA的功耗\t297
7.3.3\t热设计\t299
7.4\tSERDES与高速系统设计\t301
7.4.1\tSERDES的基本概念\t302
7.4.2\tAltera Stratix IV GX中SERDES的基本结构\t305
7.4.3\t典型高速系统应用框图举例\t311
7.4.4\t高速PCB设计注意事项\t315
7.5\t小结\t317
7.6\t问题与思考\t318
1.1\t可编程逻辑基本设计原则\t1
1.1.1\t面积和速度的平衡与互换原则\t1
1.1.2\t硬件原则\t11
1.1.3\t系统原则\t13
1.1.4\t同步设计原则\t16
1.2\t可编程逻辑常用设计思想与技巧\t19
1.2.1\t乒乓操作\t19
1.2.2\t串并转换\t21
1.2.3\t流水线操作\t21
1.2.4\t异步时钟域数据同步\t22
1.3\tAltera推荐的Coding Style\t26
1.3.1\tCoding Style的含义\t27
1.3.2\t结构层次化编码(Hierarchical Coding)\t27
1.3.3\t模块划分的技巧(Design Partitioning)\t28
1.3.4\t组合逻辑的注意事项\t29
1.3.5\t时钟设计的注意事项\t32
1.3.6\t全局异步复位资源\t38
1.3.7\t判断比较语句case和if...else的优先级\t39
1.3.8\t使用Pipelining技术优化时序\t39
1.3.9\t模块复用与Resource Sharing\t39
1.3.10\t逻辑复制\t41
1.3.11\t香农扩展运算\t43
1.3.12\t信号敏感表\t45
1.3.13\t状态机设计的一般原则\t46
1.3.14\tAltera Megafunction资源的使用\t48
1.3.15\t三态信号的设计\t48
1.3.16\t加法树的设计\t49
1.4\t小结\t51
1.5\t问题与思考\t52
第2章\tAltera器件高级特性与应用\t53
2.1\t时钟管理\t53
2.1.1\t时序问题\t53
2.1.2\t锁相环应用\t60
2.2\tArria10硬浮点数字信号处理模块\t69
2.2.1\t硬浮点DSP块介绍\t69
2.2.2\tAltera FPGA中浮点DSP实现的演进\t69
2.2.3\t硬浮点DSP的优势\t70
2.2.4\tXilinx Ultrascale DSP48E2\t74
2.3\t片外高速存储器\t74
2.3.1\t外部存储接口方案的关键特性\t74
2.3.2\t支持的存储标准\t75
2.3.3\t存储接口宽度\t75
2.3.4\tI O管脚\t76
2.3.5\t外部存储接口IP支持类型\t76
2.3.6\tArria10外部存储接口架构\t78
2.4\tHybrid Memory Cube\t83
2.4.1\t存储带宽面临的挑战\t83
2.4.2\tHMC的优势\t84
2.4.3\tAltera HMC交互操作平台\t85
2.4.4\tAltera HMC路标\t87
2.4.5\t网络系统应用案例\t88
2.5\tAltera JESD204B Megacore\t90
2.5.1\t基本介绍\t90
2.5.2\t功能描述\t94
2.5.3\tDebug指导\t97
2.6\t高速串行收发器\t100
2.6.1\tArria10 Transceiver概述\t100
2.6.2\tTransceiver设计流程\t104
2.6.3\tPLL和时钟网络\t107
2.6.4\t复位Transceiver通道\t112
2.6.5\t重配接口和动态重配\t115
2.6.6\t校准\t118
2.7\t小结\t119
2.8\t问题与思考\t119
第3章\tSoC FPGA嵌入式设计基础\t120
3.1\tSoC FPGA简介\t120
3.1.1\tSoC FPGA系列器件组合\t120
3.1.2\tSoC FPGA的工具和软件\t124
3.1.3\tSoC FPGA的生态系统\t124
3.2\t基于ARM Coretex A9 MPCore的硬件处理系统\t126
3.2.1\t硬核处理器系统框图与系统集成\t127
3.2.2\tEndian支持\t129
3.2.3\tHPS-FPGA桥接\t129
3.2.4\tHPS地址映射\t130
3.3\tQsys系统集成工具\t131
3.3.1\tQsys简介\t131
3.3.2\t在Qsys中例化硬核处理器系统组件\t132
3.4\tSoC嵌入式设计套装 (Embedded Design Suite)\t140
3.4.1\tSoC EDS介绍\t140
3.4.2\tEmbedded Command Shell\t143
3.4.3\tARM DS-5 AE\t143
3.4.4\t启动工具使用指南\t144
3.4.5\t硬件库(Hardware Library)\t145
3.4.6\tHPS Flash编程器\t146
3.4.7\t裸金属编译器\t147
3.4.8\tLinux软件开发工具\t147
3.5\t小结\t148
3.6\t问题与思考\t148
第4章\t时序约束与时序分析\t149
4.1\t时序约束与时序分析基础\t149
4.1.1\t周期与最高频率\t150
4.1.2\t利用Quartus II工具分析设计\t152
4.1.3\t时钟建立时间\t155
4.1.4\t时钟保持时间\t156
4.1.5\t时钟输出延时\t156
4.1.6\t引脚到引脚的延迟\t157
4.1.7\tSlack\t157
4.1.8\t时钟偏斜\t158
4.1.9\tQuartus II 时序分析工具和优化向导\t158
4.2\t设置时序约束的常用方法\t159
4.2.1\t指定全局时序约束\t160
4.2.2\t指定个别时钟约束\t164
4.3\t高级时序分析\t172
4.3.1\t时钟偏斜\t172
4.3.2\t多时钟域\t174
4.3.3\t多周期约束\t174
4.3.4\t伪路径\t181
4.3.5\t修正保持时间违例\t183
4.3.6\t异步时钟域时序分析\t184
4.4\t最小化时序分析\t185
4.5\t使用Tcl工具进行高级时序分析\t186
4.6\tTimeQuest简介\t187
4.7\t小结\t190
4.8\t问题与思考\t190
第5章\t设计优化\t191
5.1\t解读设计\t191
5.1.1\t内部时钟域\t192
5.1.2\t多周期路径和伪路径\t193
5.1.3\tI O接口的时序要求\t194
5.1.4\t平衡资源的使用\t194
5.2\t设计优化的基本流程和首次编译\t195
5.2.1\t设计优化基本流程\t195
5.2.2\t首次编译的约束和设置\t196
5.2.3\t查看编译报告\t198
5.3\t资源利用优化\t200
5.3.1\t设计代码优化\t201
5.3.2\t资源重新分配\t201
5.3.3\t解决互连资源紧张的问题\t203
5.3.4\t逻辑综合面积优化\t203
5.3.5\t网表面积优化\t207
5.3.6\t寄存器打包\t209
5.3.7\tQuartus II中的资源优化顾问\t211
5.4\tI O时序优化\t211
5.4.1\t执行时序驱动的编译\t211
5.4.2\t使用IOE中的触发器\t212
5.4.3\t可编程输入 输出延时\t215
5.4.4\t使用锁相环对时钟移相\t217
5.4.5\t其他I O时序优化方法\t218
5.5\t最高时钟频率优化\t219
5.5.1\t设计代码优化\t219
5.5.2\t逻辑综合速度优化\t225
5.5.3\t布局布线器设置\t227
5.5.4\t网表优化和物理综合\t228
5.5.5\t使用LogicLock对局部进行优化\t233
5.5.6\t位置约束、手动布局和反标注\t234
5.5.7\tQuartus II中的时序优化顾问\t235
5.6\t使用DSE工具优化设计\t236
5.6.1\t为什么需要DSE\t236
5.6.2\t什么是DSE,如何使用\t236
5.7\t如何减少编译时间\t238
5.8\t设计优化实例\t239
5.9\t小结\t242
5.10\t问题与思考\t243
第6章\tAltera OpenCL开发套件和其他高级工具\t244
6.1\t命令行与Tcl脚本\t244
6.1.1\t命令行脚本\t245
6.1.2\tTcl脚本\t249
6.1.3\t使用命令行和Tcl脚本\t253
6.2\tDSP Builder工具\t254
6.2.1\tDSP Builder设计流程\t254
6.2.2\t与SOPC Builder一起构建系统\t258
6.3\tAltera OpenCL软件开发套件\t259
6.3.1\tOpenCL基本介绍\t259
6.3.2\tOpenCL架构\t260
6.3.3\tAOCL的安装和应用\t264
6.3.4\tAOCL FPGA编程\t267
6.4\t小结\t272
6.5\t问题与思考\t272
第7章\tFPGA系统级设计技术\t273
7.1\t信号完整性及常用I O电平标准\t273
7.1.1\t信号完整性\t273
7.1.2\t单端标准\t278
7.1.3\t差分标准\t282
7.1.4\t伪差分标准\t285
7.1.5\t片上终端电阻\t285
7.2\t电源完整性设计\t286
7.2.1\t电源完整性\t286
7.2.2\t同步翻转噪声\t287
7.2.3\t非理想回路\t290
7.2.4\t低阻抗电源分配系统\t293
7.3\t功耗分析和热设计\t297
7.3.1\t功耗的挑战\t297
7.3.2\tFPGA的功耗\t297
7.3.3\t热设计\t299
7.4\tSERDES与高速系统设计\t301
7.4.1\tSERDES的基本概念\t302
7.4.2\tAltera Stratix IV GX中SERDES的基本结构\t305
7.4.3\t典型高速系统应用框图举例\t311
7.4.4\t高速PCB设计注意事项\t315
7.5\t小结\t317
7.6\t问题与思考\t318
猜您喜欢