基本信息
- 商品名:Intel FPGA□□设计指南:基于Quartus Prime Pro 97871□138□444
- ISBN:9787121382444
- 定价:199
- 出版社:电子工业出版社
- 作者:何宾
参考信息(以实物为准)
- 出版时间:2020-02-01
- 印刷时间:2020-02-01
- 版次:1
- 印次:1
- 包装:平装
- 开本:16开
- 用纸:胶版纸
- 页数:794
- 字数:1312000
内容简介
本书以Intel公司的QuartusPrimePro19集成开发环境与Intel新一代的可编程逻辑器件Cyclone10GX为软件和硬件平台,系统地介绍了可编程逻辑器件的原理和Quartus PrimePro集成开发环境的关键特性。
全书共11章,内容主要包括IntelCyclone10GXFPGA结构详解、QuartusP rimeProHDL设计流程、QuartusPrimePro块设计流程、QuartusPrimePro定制IP核设计流程、Quartus PrimePro命令行脚本设计流程、DesignSpaceExplorerII设计流程、QuartusPrimePro系统调试原理及实现、QuartusPrimePro时序和物理约束原理及实现、QuartusPrimePro中HDL高级设计方法、QuartusPrimePro部分可重配置原理及实现,以及Intel高级综合工具原理及实现方法。
本书可作为使用Intel集成开发环境QuartusPrimePro进行FPGA设计的工程技术人员的参考用书,也可作为电子信息类专业高年级本科生和研究生的教学与科研用书,还可以作为Intel公司QuartusPrimePro相关培训的培训教材。
前言序言
□015年6月,英特尔(Intel)公司宣布以167亿美元的价格收购全球第二大可编程逻辑器件厂商阿尔特拉(Altera)公司。阿尔特拉公司被英特尔收购后,就成为了英特尔可编程方案事业部(IntelFPGA)。投入英特尔怀抱后,原先基于阿尔特拉公司的可编程解决方案水平显著提高,主要体现在两个方面:在将原来阿尔特拉公司的QuartusII软件集成开发环境进化成QuartusPrime集成开发环境后,QuartusPrime集成开发环境的功能和性能有了显著提高;现场可编程门阵列产品更加丰富,新系列产品的功能和性能也显著增强。可以预测,借助英特尔公司强大而丰富的生态系统资源,英特尔新的可编程解决方案将在大数据、人工智能,以及云计算等新兴热点领域发挥越来越重要的作用。
□018年年底,通过英特尔大学合作部经理颜历女士的介绍,有幸结识英特尔FPGA大学计划经理袁亚东先生,他希望我能基于英特尔可编程解决方案编写一套技术丛书。作为一名教育工作者,我有责任根据自己多年从事:FPGA教学和科研工作的经历并结合英特尔□新的技术资料,将英特尔□新的可编程解决方案系统呈现给广大从事相关工作的学生、教师和广大工程技术人员。从□019年年初开始,计划用大约一年半的时间,我将陆续编写并出版4本能够反映英特尔□新可编程技术的图书。这样,所编写和出版的相关图书就能够满足国内大多数从事可编程逻辑器件解决方案读者的需求,这将进一步满足可编程逻辑技术在新信息技术领域的应用需求,从而助力中国创新和中国智造。
作为该系列丛书的□□本图书,全书共11章内容,以Intel新一代Cyclone10GX器件和QuartusPIimePro19集成开发环境为主线,全面系统地介绍了Cyclone10GXFPGA内部架构、QuartusPrimeProHDL设计流程、Quartus Prime。Pro块设计流程、QuartusPrimePro定制IP核设计流程、QuartusPrimePro命令行脚本设计流程、DesignSpace:ExplorerII设计流程、QuartusPrimePro系统调试原理及实现、QuartusPrime:Pro时序和物理约束原理及实现、QuartusPrimePro中HDL高级设计方法、OuaItusPrimePro部分可重配置原理及实现,以及Intel高级综合工具原理及实现方法。应该说,书中很多内容均是首次以中文图书的形式对系统进行详细解读的。
在本书编写的过程中,得到IntelFPGA大学计划经理袁亚东先生的全力支持与指导,IntelFPGA大学计划李晓嫣女士为本书的编写也提供了很大帮助,IntelPSGSoC技术专家黄琦先生为本书的编写提供了技术支持。作为英特尔中国创新中心创始单位之一的北京海云捷迅科技有限公司组织并策划了该系列丛书的编写,该公司田亮先生、任德智先生和王晓星女士也对本书的编写提供了大量的支持和帮助,在此一并表示感谢。电子工业出版社的张迪编辑与作者合作多年,为本套丛书的整体策划和高质量出版倾注了大量的心血,在此也要向她表示我□衷心的感谢。
由于作者能力和水平有限,书中会有不足之处,恳请广大读者予以批评指正。
目录
目 录
第 章 Intel Cyclone 10 GX FPGA 结构详解1
1.1 逻辑阵列块和自适应逻辑块1
1.1.1 ALM结构和功能1
1.1.□ LUT的工作模式□
1.1.3 寄存器和锁存器1□
1.1.4 LAB的互联架构□1
1.1.5 分布式存储器□□
1.□ 存储器块3□
1.□.1 嵌入式存储器块设计指导3□
1.□.□ 存储器块打包模式34
1.□.3 地址时钟使能35
1.□.4 存储器块异步清除35
1.□.5 存储器块纠错码35
1.□.6 使用M□0K实现RAM36
1.3 时钟网络和相位锁相环40
1.3.1 时钟网络类型40
1.3.□ 时钟资源功能43
1.3.3 层次化时钟结构45
1.3.4 时钟控制块47
1.3.5 时钟功耗控制50
1.3.6 相位锁相环5□
1.4 I/O块58
1.4.1 I/O组的排列59
1.4.□ I/O电气标准60
1.4.3 I/O架构和特性6□
1.4.4 可编程的IOE特性65
1.4.5 片上端接67
1.4.6 SERDES和DPA67
1.5 DSP块70
1.5.1 DSP块特性71
1.5.□ DSP块资源71
1.5.3 DSP块架构7□
1.5.4 DSP块应用7□
1.6 外部存储器接口78
1.6.1 外部存储器接口特性79
1.6.□ 外部存储器接口I/O引脚80
1.6.3 器件封装支持的存储器接口80
1.6.4 外部存储器接口架构8□
1.7 配置技术87
1.7.1 AS配置89
1.7.□ PS配置94
1.7.3 FPP配置97
1.7.4 JTAG配置106
1.7.5 配置流程108
1.8 电源管理110
1.8.1 功耗110
1.8.□ 可编程电源技术110
1.8.3 电源传感线111
1.8.4 片上电压传感器111
1.8.5 温度传感二极管11□
1.8.6 上电/断电顺序要求11□
第 章 Quartus Prime Pro HDL 设计流程113
□.1 Quartus Prime Pro及组件的下载、安装和授权113
□.1.1 下载Quartus Prime Pro及组件113
□.1.□ 安装Quartus Prime Pro及组件117
□.1.3 授权Quartus Prime Pro及组件118
□.□ Quartus Prime Pro功能和特性1□1
□.3 Quartus Prime Pro设计流程1□□
□.3.1 处理流程框架1□□
□.3.□ 增量优化的概念1□5
□.3.3 超感知设计流程1□5
□.4 建立新的设计工程1□8
□.5 添加新的设计文件134
□.6 设计的分析和综合处理137
□.6.1 分析和综合的概念137
□.6.□ 分析和综合的属性选项140
□.6.3 分析和综合的实现147
□.6.4 查看分析和综合的结果149
□.7 设计的行为级仿真155
□.7.1 使用Verilog HDL生成测试向量的仿真155
□.7.□ 使用波形文件生成测试向量的仿真161
□.8 设计的约束165
□.8.1 通过GUI指定约束的方法165
□.8.□ 使用Tcl脚本约束设计的方法166
□.8.3 在Assignment Editor中添加约束条件17□
□.8.4 在Pin Planner中添加约束条件174
□.8.5 I/O分配分析178
□.8.6 添加简单的时序约束条件180
□.9 设计的适配184
□.9.1 适配器设置选项184
□.9.□ 适配的实现189
□.9.3 查看适配后的结果190
□.10 查看时序分析结果196
□.10.1 时序分析的基本概念196
□.10.□ 时序路径和时钟分析197
□.10.3 时钟建立分析□00
□.10.4 时钟保持分析□01
□.10.5 恢复和去除分析□0□
□.10.6 多周期路径分析□03
□.10.7 亚稳态分析□06
□.10.8 时序悲观□07
□.10.9 时钟作为数据分析□08
□.10.10 多角时序分析□09
□.10.11 时序分析的实现□10
□.11 功耗分析原理和实现□17
□.11.1 功耗分析器输入□18
□.11.□ 功耗分析器设置□□0
□.11.3 节点和实体分配□□□
□.11.4 执行功耗分析□□3
□.1□ 生成编程文件□□6
□.1□.1 装配器选项属性设置□□6
□.1□.□ 可编程文件类型□3□
□.1□.3 运行装配器工具□3□
□.1□.4 生成PROM文件□33
□.13 下载设计□39
□.13.1 下载设计到FPGA□39
□.13.□ 编程串行Flash存储器□41
第 章 Quartus Prime Pro 块设计流程□43
3.1 基于块的设计介绍□43
3.1.1 与块设计有关的术语□43
3.1.□ 设计块重用介绍□44
3.1.3 基于块的增量编译介绍□46
3.□ 设计方法学介绍□47
3.□.1 自顶向下设计方法学介绍□47
3.□.□ 自底向上设计方法学介绍□47
3.□.3 基于团队的设计方法学介绍□48
3.3 设计分区□49
3.3.1 为外围IP、时钟和PLL规划分区□50
3.3.□ 设计分区指导□51
3.3.3 保留和重用分区快照□51
3.3.4 创建设计分区□5□
3.4 设计分区重用流程□55
3.4.1 重用核心分区□56
3.4.□ 重用根分区□63
3.4.3 保留核心实体重新绑定□69
3.5 增量块设计流程□70
3.5.1 增量的时序收敛□70
3.5.□ 设计抽象及实现□7□
3.5.3 空分区时钟源保留□73
3.6 设计块重用和基于块增量编译的组合□73
3.7 建立基于团队的设计□74
3.7.1 为基于团队的设计创建一个顶层工程□74
3.7.□ 为工程集成准备一个设计分区□77
3.8 自底向上的设计考虑□78
第 章 Quartus Prime Pro定制IP 核设计流程□79
4.1 Platform Designer工具功能介绍□79
4.1.1 Platform Designer支持的接口□79
4.1.□ 元件结构□80
4.1.3 元件文件组织□81
4.1.4 元件版本□81
4.1.5 IP元件的设计周期□81
4.□ 调用Platform Designer工具□8□
4.3 创建定制元件IP核□85
4.3.1 指定IP元件类型□85
4.3.□ 创建/指定用于综合和仿真的HDL文件□86
4.4 创建通用元件IP核□98
4.5 对定制元件IP核进行验证309
4.6 对通用元件IP核进行验证310
4.6.1 添加顶层原理图文件310
4.6.□ 修改user_define.v文件31□
4.6.3 添加generic_component_0.v文件314
4.7 IP核生成输出(Quartus Prime Pro版本)315
第 章 Quartus Prime Pro命令行脚本设计流程317
5.1 工具命令语言317
5.□ Quartus Prime Tcl包317
5.3 Quartus Prime Tcl API Help319
5.3.1 命令行选项3□1
5.3.□ Quartus Prime Tcl控制台窗口3□3
5.4 端到端的设计流程3□3
5.4.1 建立新的设计工程3□5
5.4.□ 添加新的设计文件3□5
5.4.3 添加设计约束条件3□6
5.4.4 设计综合3□9
5.4.5 设计适配330
5.4.6 设计装配(生成编程文件)331
5.4.7 报告331
5.4.8 时序分析333
5.5 自动脚本执行335
5.5.1 执行例子336
5.5.□ 控制处理336
5.5.3 显示消息337
5.6 其他脚本337
5.6.1 自然总线命名337
5.6.□ 短选项名字337
5.6.3 集合命令337
5.6.4 Node Finder命令339
5.6.5 get_names命令354
5.6.6 post_message命令356
5.6.7 访问命令行参数356
5.6.8 quartus() Array358
5.7 tclsh shell359
5.8 Tcl脚本基础知识359
5.8.1 Intel FPGA COOL的例子359
5.8.□ □量359
5.8.3 替换360
5.8.4 算术360
5.8.5 列表361
5.8.6 数组361
5.8.7 控制结构36□
5.8.8 过程(子程序或函数)363
5.8.9 文件I/O363
第 章 Design Space Explorer II 设计流程365
6.1 启动DSE II工具365
6.□ DSE II工具介绍366
6.□.1 Project页面366
6.□.□ Setup页面367
6.□.3 Exploration页面369
6.□.4 Status页面373
6.3 在本地计算机上探索不同的实现策略373
6.4 在远程计算机上探索不同的实现策略377
6.4.1 创建一个Azure账户378
6.4.□ 下载PuTTY相关工具378
6.4.3 选择Intel FPGA工具379
6.4.4 创建和配置虚拟机380
6.4.5 配置和启动PuTTY工具388
6.4.6 捕获虚拟机上的GUI界面391
6.4.7 打开Quartus Prime软件393
6.4.8 终止虚拟机395
6.4.9 持久存储和数据传输396
6.4.10 搭建和配置许可证服务器397
6.4.11 连接到许可证服务器406
6.4.1□ 在虚拟机上运行DSE II407
第 章 Quartus Prime Pro系统调试原理及实现411
7.1 系统调试工具概述411
7.1.1 系统调试工具组合411
7.1.□ 用于监视RTL节点的工具414
7.1.3 具有激励功能的工具416
7.1.4 Virtual JTAG Interface Intel FPGA IP核417
7.1.5 系统级调试结构417
7.1.6 SLD JTAG桥418
7.1.7 部分重配置设计调试4□□
7.□ 使用Signal Tap逻辑分析仪的设计调试4□□
7.□.1 软件和硬件要求4□3
7.□.□ Signal Tap逻辑分析仪的特性和优点4□3
7.□.3 Signal Tap逻辑分析仪任务流程概述4□4
7.□.4 创建新的调试工程4□6
7.□.5 添加FIFO IP核4□7
7.□.6 添加顶层设计文件430
7.□.7 配置Signal Tap逻辑分析仪43□
7.□.8 编译设计463
7.□.9 编程目标器件或器件467
7.□.10 运行逻辑分析仪468
7.□.11 查看、分析和使用捕获的数据47□
7.3 使用Signal Probe的快速设计验证474
7.4 使用外部逻辑分析仪的系统内调试477
7.4.1 选择逻辑分析仪477
7.4.□ 为逻辑分析仪接口定义参数479
7.4.3 将LAI文件引脚映射到可用的I/O引脚480
7.4.4 将内部信号映射到LAI组480
7.4.5 编译Quartus Prime工程481
7.4.6 使用LAI编程Intel支持的器件48□
7.4.7 运行时控制活动的组48□
7.5 系统内修改存储器和常量48□
7.5.1 用系统内存储器内容编辑器调试设计483
7.5.□ 使能运行时修改设计中的实例483
7.5.3 用系统内存储器内容编辑器编程器件484
7.5.4 将存储器实例加载到ISMCE485
7.5.5 监视存储器中的位置485
7.5.6 使用“Hex Editor”窗口编辑存储器内容486
7.5.7 导入和导出存储器文件487
7.6 使用系统内源和探针的设计调试488
7.6.1 系统内源和探针的设计流程概述489
7.6.□ 例化In-System Sources & Probes IP核490
7.6.3 编译设计49□
7.6.4 运行系统内源和探针编辑器49□
7.6.5 用JTAG Chain Configuration编程器件493
7.6.6 “Instance Manager:”窗口494
7.6.7 In-System Sources and Probes Editor主界面494
7.6.8 In-System Sources and Probes Editor的Tcl命令495
第 章 Quartus Prime Pro时序和物理约束原理及实现497
8.1 SDC文件的高级特性497
8.1.1 使用实体绑定的SDC文件497
8.1.□ 实体绑定的约束范围498
8.1.3 实体绑定的约束实例498
8.□ 创建时钟和时钟约束500
8.□.1 基本时钟500
8.□.□ 虚拟时钟501
8.□.3 生成时钟50□
8.□.4 推导PLL时钟507
8.□.5 创建时钟组509
8.□.6 时钟效应特性51□
8.3 创建I/O约束515
8.3.1 设置输入延迟(set_input_delay)515
8.3.□ 设置输出延迟(set_output_delay)516
8.4 创建偏移和延迟约束516
8.4.1 高级I/O时序和板布线模型延迟516
8.4.□ 设置□大偏移(set_max_skew)517
8.4.3 设置网络延迟(set_net_delay)5□1
8.4.4 创建时序例外(异常)5□3
8.4.5 多周期例外的实例531
8.4.6 延迟注解550
8.4.7 约束设计分区端口550
8.5 使用适配器过约束551
8.6 接口规划工具原理及应用55□
8.6.1 接口规划概述553
8.6.□ 建立新的设计工程554
8.6.3 添加并配置外部存储器接口IP核555
8.6.4 添加Avalon MMM BFM IP核563
8.6.5 在顶层文件中例化IP核565
8.6.6 初始化Interface Planner567
8.6.7 用工程分配更新计划568
8.6.8 规划外围布□568
8.6.9 报告布□数据573
8.6.10 验证和导出规划约束574
第 章 Quartus Prime Pro中HDL 高级设计方法576
9.1 综合支持的HDL语言576
9.1.1 Verilog和SystemVerilog综合支持576
9.1.□ VHDL综合支持580
9.□ HDL支持的综合属性和命令581
9.□.1 Verilog HDL综合属性和命令581
9.□.□ VHDL综合属性和命令597
9.3 底层原语的使用614
9.3.1 底层I/O原语616
9.3.□ 底层逻辑原语6□1
第 章 Quartus Prime Pro部分可重配置原理及实现6□8
10.1 部分可重配置基本概念6□8
10.1.1 部分可重配置术语6□9
10.1.□ 部分可重配置过程序列6□9
10.1.3 内部主设备部分可重配置630
10.1.4 外部主设备部分可重配置63□
10.1.5 部分可重配置设计注意事项63□
10.□ 部分可重配置基本流程的实现633
10.□.1 建立新的设计工程634
10.□.□ 添加设计文件634
10.□.3 创建设计分区637
10.□.4 为PR分区分配布□和布线区域639
10.□.5 添加部分可重配置控制器IP核64□
10.□.6 定义角色644
10.□.7 创建修订版645
10.□.8 编译基本修订版本647
10.□.9 准备PR实现修订版648
10.□.10 编程器件650
10.3 层次化部分可重配置流程的实现65□
10.3.1 建立新的设计工程65□
10.3.□ 添加设计文件653
10.3.3 创建设计分区655
10.3.4 为PR分区分配布□和布线区域658
10.3.5 添加部分可重配置控制器IP核660
10.3.6 定义角色66□
10.3.7 创建修订版663
10.3.8 编译基本修订版本666
10.3.9 为父PR分区准备PR实现修订版667
10.3.10 为子PR分区准备PR实现修订版669
10.3.11 编程器件67□
第 章 Intel高级综合工具原理及实现方法673
11.1 高级综合工具概论673
11.1.1 高级综合工具的优势673
11.1.□ 高级综合工具运行要求675
11.1.3 高级综合工具的简要流程675
11.1.4 HLS与OpenCL676
11.1.5 高级综合工具编译器细节676
11.□ 高级综合工具基本流程的实现680
11.□.1 构建C++模型和测试平台680
11.□.□ C和C++库685
11.□.3 设置高级综合编译器690
11.□.4 运行高级综合编译器69□
11.□.5 查看高级设计报告694
11.□.6 查看元件RTL仿真波形700
11.3 任意精度数据类型及优化70□
11.3.1 元件中声明ac_int数据类型703
11.3.□ 调试ac_int数据类型的使用703
11.3.3 元件中声明ac_fixed数据类型704
11.3.4 浮点编译优化707
11.4 元件接口71□
11.4.1 元件调用接口71□
11.4.□ Avalon流接口715
11.4.3 Avalon存储器映射的主接口7□1
11.4.4 Avlaon存储器映射的从接口7□5
11.4.5 元件调用接口参数731
11.4.6 不稳定和稳定元件参数734
11.4.7 全□□量736
11.4.8 元件接口的结构体736
11.4.9 复位行为736
11.5 元件中的本地□量(存储器属性)737
11.5.1 编译器元件存储器属性737
11.5.□ 静态□量761
11.6 元件中的循环76□
11.6.1 循环启动间隔(ii编译指示)764
11.6.□ 循环携带的依赖性(ivdep编译指示)765
11.6.3 循环合并(loop_coalesce编译指示)768
11.6.4 循环展开(unroll编译指示)770
11.6.5 循环并发(max_concurrency编译指示)773
11.7 元件并发性773
11.7.1 存储空间或I/O的串行等效774
11.7.□ 并行性控制774
附录A C10-EDP-1硬件开发平台原理图775
附录B USB-Blaster下载器驱动故障排除方法790
作者简介
著名的嵌入式技术和EDA技术专家,长期从事电子信息技术方面的教学和科研工作,与全球多家知名的半导体厂商和EDA工具厂商大学计划保持紧密合作。目前已经出版电子信息技术方面的著作近70部,内容涵盖电路仿真、电路设计、可编程逻辑器件、数字信号处理、单片机、嵌入式系统、片上可编程系统等。典型的代表作有《模拟电子系统设计指南(基础篇):从半导体、分立元件到TI集成电路的分析与实现》、《模拟电子系统设计指南(实践篇):从半导体、分立元件到TI集成电路的分析与实现》、《Xilinx Zynq-7000嵌入式系统设计与实现-基于ARM Cortex-A9双核处理器和Vivado的设计方法(第□版)》、《Altium Designer17一体化设计标准教程-从仿真原理和PCB设计到单片机系统》、《STC8系列单片机开发指南:面向处理器、程序设计和操作系统的分析与应用》、《Xilinx FPGA数字信号处理系统设计指南-基于HDL、Simulink和HLS的实现》等。