华信教育资源网
Xilinx FPGA权威设计指南:基于Vivado 2023设计套件
丛   书   名: 电子系统EDA新技术丛书
作   译   者:何宾 出 版 日 期:2024-04-01
出   版   社:电子工业出版社 维   护   人: 
书   代   号:TN475160 I S B N:9787121475160

编辑推荐:

本书以Xilinx的集成开发环境Vivado 2023为载体,详细介绍了Xilinx新一代UltraScale+系列FPGA的内部结构、Vivado集成开发环境、Vivado工程模式和非工程模式设计流程、创建和封装IP、高级约束原理和实现方法、调式工具原理、部分可重配置原理及实现、HLS原理和实现、HDMI驱动原理和实现。? 内容全面:本书内容涵盖了现场可编程门阵列器件的内部结构、Vivado集成开发环境下工程模式和非工程模式的设计流程、IP的封装和调用、时序和物理约束、动态功能交换、高级综合工具,以及SelectIO资源的高级应用(HDMI驱动)。? 解读详细:对Vivado 2023集成开发环境的一些具体细节问题进行更深入的分析和讲解,如UltraScale+器件内部结构的原理和使用方法、创建不包含源文件的IP核方法、基于工程的动态功能交换、高级综合工具详解,以及SelectIO资源的高级应用。? 实例丰富:为了帮助读者全面掌握Vivado 2023集成开发工具的使用方法,本书配套提供近70个设计实例,这些设计实例基本覆盖了Vivado 2023设计套件所提供的设计功能。
您的专属联系人更多
关注 评论(0) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    本书资源

    本书暂无资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书全面系统介绍了Xilinx新一代集成开发环境Vivado 2023的设计方法、设计流程和具体实现。全书共11章,内容包括:Xilinx新一代UltraScale+架构FPGA、Vivado设计套件导论、Vivado工程模式基本设计实现、Vivado非工程模式基本设计实现、Vivado创建和封装用户IP核流程、Vivado时序和物理约束原理及实现、Vivado调试工具原理及实现、Vivado动态功能交换原理及实现、Vitis HLS原理详解、Vitis HLS实现过程详解,以及HDMI显示屏驱动原理和实现。本书参考了Xilinx最新的Vivado 2023设计套件设计资料,理论与应用并重,将Xilinx最新的设计理论贯穿在具体的设计实现中。

    图书详情

    ISBN:9787121475160
    开 本:16(185*260)
    页 数:632
    字 数:1138

    本书目录

    目    录
    第 章  Xilinx新一代UltraScale+架构FPGA	1
    1.1  UltraScale+结构特点	1
    1.1.1  Artix UltraScale+ FPGA系列	1
    1.1.2  Kintex UltraScale+ FPGA系列	2
    1.1.3  Virtex UltraScale+ FPGA系列	3
    1.2  可配置逻辑块	4
    1.2.1  查找表功能和配置	7
    1.2.2  多路复用器	10
    1.2.3  进位逻辑	21
    1.2.4  存储元件	29
    1.2.5  分布式RAM(只有SLICEM)	33
    1.2.6  只读存储器(ROM)	37
    1.2.7  移位寄存器(只有SLICEM)	42
    1.3  时钟资源和时钟管理模块	45
    1.3.1  时钟架构概述	45
    1.3.2  时钟布线资源概述	46
    1.3.3  CMT概述	46
    1.3.4  时钟资源	47
    1.3.5  时钟管理模块	52
    1.4  存储器资源	56
    1.4.1  BRAM资源	56
    1.4.2  UltraRAM资源	66
    1.5  专用的DSP模块	72
    1.6  SelectIO资源	83
    1.6.1  SelectIO接口资源	83
    1.6.2  SelectIO接口通用指南	87
    1.6.3  SelectIO接口逻辑资源	90
    1.6.4  高密度I/O组	99
    1.7  高速串行收发器	100
    1.7.1  GTH和GTY收发器	101
    1.7.2  GTM收发器	103
    1.8  系统监控器模块	104
    1.9  互联资源	107
    1.10  配置模块	107
    1.10.1  配置模式概述	108
    1.10.2  JTAG连接	110
    1.10.3  保护比特流	111
    1.11  参考资料	112
    第 章  Vivado设计套件导论	113
    2.1  Vivado设计套件框架	113
    2.1.1  Vivado设计套件功能	113
    2.1.2  Vivado设计套件支持的工业标准	114
    2.1.3  Vivado对第三方工具的支持	114
    2.2  Vivado系统级设计流程	114
    2.3  Vivado两种设计流程模式	117
    2.3.1 工程模式	117
    2.3.2  非工程模式	117
    2.3.3  两种模式不同点比较	118
    2.3.4  两种模式命令的区别	119
    2.4  Vivado中电路结构的网表描述	120
    2.5  Vivado中工程数据的目录结构	121
    2.6  Vivado中Journal文件和Log文件功能	121
    2.6.1  Journal文件(Vivado.jou)	121
    2.6.2  Log文件(Vivado.log)	122
    2.7  Vivado中XDC文件	124
    2.7.1  XDC的特性	124
    2.7.2  XDC与UCF区别	125
    2.7.3  约束文件的使用方法	125
    2.7.4  约束顺序	126
    2.7.5  XDC命令	127
    2.8  Vivado IDE的启动方法	128
    2.9  Vivado IDE主界面	128
    2.9.1  Quick Start分组	129
    2.9.2  Tasks分组	132
    2.9.3  Learning Center分组	132
    2.10  Vivado IDE工程界面及功能	133
    2.10.1  流程处理主界面及功能	133
    2.10.2  Sources窗口及功能	134
    2.10.3  工程总结窗口	136
    2.10.4  运行设计的交互窗口	138
    2.11  Vivado支持的属性	142
    第 章  Vivado工程模式基本设计实现	159
    3.1  创建新的设计工程	159
    3.2  修改工程属性	162
    3.2.1  修改目标语言设置	162
    3.2.2  General设置参数含义	163
    3.3  创建并添加一个新的设计文件	164
    3.4  设计RTL分析	169
    3.4.1  运行Linter	169
    3.4.2  详细描述的实现	170
    3.4.3  运行方法检查	173
    3.4.4  报告DRC	174
    3.4.5  报告噪声	176
    3.4.6  生成HDL例化模板	177
    3.5  行为级仿真	179
    3.5.1  仿真功能概述	179
    3.5.2  编译仿真库(可选)	179
    3.5.3  行为级仿真的实现	180
    3.5.4  仿真器界面的功能	184
    3.6  设计综合和分析	187
    3.6.1  综合的概念和特性	187
    3.6.2  设计综合选项	188
    3.6.3  执行设计综合	191
    3.6.4  打开综合后的设计	193
    3.6.5  打开综合后的原理图	194
    3.6.6  查看综合报告	196
    3.6.7  添加其他报告	197
    3.6.8  创建新的运行	198
    3.7  综合后的仿真	199
    3.8  创建实现约束	200
    3.8.1  实现约束的原理	200
    3.8.2  I/O规划工具	201
    3.8.3  添加引脚约束	206
    3.8.4  添加时序约束	210
    3.9  设计实现和分析	212
    3.9.1  设计实现原理	213
    3.9.2  设计实现设置	214
    3.9.3  设计实现及分析	228
    3.9.4  静态时序分析	236
    3.10  布局布线后时序仿真	241
    3.11  生成编程文件	242
    3.11.1  配置器件属性	242
    3.11.2  修改生成编程文件选项	248
    3.11.3  执行生成可编程文件	249
    3.12  下载比特流文件到FPGA	249
    3.13  生成并烧写PROM文件	251
    第 章  Vivado非工程模式基本设计实现	255
    4.1  非工程模式基本命令和功能	255
    4.1.1  非工程模式基本命令列表	255
    4.1.2  典型Tcl脚本的使用	256
    4.2  Vivado集成开发环境分析设计	257
    4.2.1  启动Vivado集成开发环境	257
    4.2.2  打开设计检查点的方法	257
    4.3  修改设计路径	258
    4.4  设置设计输出路径	258
    4.5  读取设计文件	259
    4.6  运行设计综合	259
    4.7  运行设计布局	260
    4.8  运行设计布线	262
    4.9  生成比特流文件	263
    4.10  下载比特流文件	263
    第 章  Vivado创建和封装用户IP核流程	265
    5.1  Vivado IP设计方法	265
    5.1.1  Vivado IP设计流程	265
    5.1.2  IP核术语	266
    5.2  创建并封装包含源文件的IP	266
    5.2.1  创建新的用于创建IP的工程	266
    5.2.2  设置定制IP的库名和目录	268
    5.2.3  封装定制IP的实现	270
    5.3  调用并验证包含源文件的IP设计	273
    5.3.1  创建新的用于调用IP的工程	273
    5.3.2  设置包含调用IP的路径	274
    5.3.3  创建基于IP的系统	275
    5.3.4  执行行为级仿真	279
    5.3.5  系统设计综合	281
    5.3.6  系统实现和验证	281
    5.4  创建并封装不包含源文件的IP	282
    5.4.1  创建网表文件	282
    5.4.2  创建新的设计工程	282
    5.4.3  设置定制IP的库名和目录	283
    5.4.4  封装定制IP的实现	283
    5.5  调用并验证不包含源文件的IP设计	285
    5.5.1  创建新的用于调用IP的工程	285
    5.5.2  设置包含调用IP的路径	285
    5.5.3  创建基于IP的系统	285
    5.5.4  系统设计综合	287
    第 章  Vivado时序和物理约束原理及实现	288
    6.1  时序检查的概念	288
    6.1.1  基本术语	288
    6.1.2  时序路径	288
    6.1.3  建立和保持松弛	290
    6.1.4  时序分析关键概念	291
    6.2  定义时钟	297
    6.2.1  关于时钟	297
    6.2.2  基本时钟	298
    6.2.3  虚拟时钟	299
    6.2.4  生成时钟	300
    6.2.5  时钟组	309
    6.2.6  时钟延迟、抖动和不确定性	315
    6.3  I/O延迟约束	316
    6.3.1  输入延迟	316
    6.3.2  输出延迟	318
    6.4  时序例外	332
    6.4.1  多周期路径	333
    6.4.2  假路径	345
    6.4.3  最大和最小延迟	346
    6.4.4  Case分析	355
    6.4.5  禁止时序弧	356
    6.5  CDC约束	357
    6.5.1  关于总线偏移约束	357
    6.5.2  set_bus_skew命令的语法	358
    6.6  物理约束原理	359
    6.6.1  关于布局约束	359
    6.6.2  网表约束	360
    6.6.3  布局约束原理	361
    6.6.4  布线约束原理	362
    6.7  配置约束	363
    6.8  定义相对布局的宏	363
    6.8.1  定义设计元素集	363
    6.8.2  创建宏	364
    6.8.3  单元分配到RPM集	364
    6.8.4  分配相对位置	365
    6.8.5  分配固定位置到RPM	368
    6.9  布局约束实现	369
    6.9.1  修改综合属性	369
    6.9.2  布局约束方法	370
    6.10  布线约束实现	372
    6.10.1  手工布线	373
    6.10.2  进入分配布线模式	373
    6.10.3  分配布线节点	375
    6.10.4  取消分配布线节点	375
    6.10.5  完成并退出分配布线模式	375
    6.10.6  锁定LUT负载上的单元输入	376
    6.10.7  分支布线	376
    6.10.8  直接约束布线	377
    6.11  修改逻辑实现	378
    6.12  增量编译	379
    6.12.1  增量编译流程	379
    6.12.2  运行增量布局和布线	379
    6.12.3  使用增量编译	381
    6.12.4  增量编译高级分析	383
    第 章  Vivado调试工具原理和实现	384
    7.1  设计调试原理和方法	384
    7.2  创建新的调试设计	385
    7.2.1  创建新的FIFO调试工程	385
    7.2.2  添加FIFO IP到设计中	386
    7.2.3  添加顶层设计文件	389
    7.2.4  在顶层文件中添加设计代码	389
    7.2.5  添加约束文件	393
    7.3  网表插入调试探测流程的实现	395
    7.3.1  网表插入调试探测流程的方法	395
    7.3.2  网表插入调试探测流程的实现	396
    7.4  添加HDL属性调试探测流程的实现	404
    7.5  添加HDL例化调试核探测流程的实现	405
    7.6  VIO原理和应用	408
    7.6.1  设计原理	409
    7.6.2  添加VIO核	409
    7.6.3  生成比特流文件	413
    7.6.4  下载并调试设计	414
    第 章  Vivado动态功能交换原理及实现	416
    8.1  动态功能交换导论	416
    8.1.1  动态功能交换介绍	416
    8.1.2  术语解释	417
    8.1.3  设计考虑	418
    8.1.4  常见应用	421
    8.1.5  Vivado软件流程	424
    8.2  基于工程的动态功能交换实现	425
    8.2.1  设计原理	425
    8.2.2  建立动态功能交换工程	427
    8.2.3  创建新的分区定义	429
    8.2.4  添加新的可重配置模块	430
    8.2.5  设置不同的配置选项	432
    8.2.6  查看/修改分区的布局	436
    8.2.7  执行DRC	437
    8.2.8  实现第一个运行配置并生成比特流文件	439
    8.2.9  实现第二个运行配置并生成比特流文件	439
    8.2.10  实现第三个运行配置并生成比特流文件	440
    8.2.11  实现第四个运行配置并生成比特流文件	440
    8.2.12  下载不同运行配置的部分比特流	441
    8.3  基于非工程的动态功能交换实现	442
    8.3.1  查看脚本	443
    8.3.2  综合设计	443
    8.3.3  实现第一个配置	444
    8.3.4  实现第二个配置	449
    8.3.5  验证配置	451
    8.3.6  生成比特流	451
    8.3.7  部分重配置FPGA	453
    8.4  动态功能交换控制器的原理及应用	453
    8.4.1  动态功能交换控制器原理	453
    8.4.2  实现原理	460
    8.4.3  创建和配置新的设计	461
    8.4.4  添加和配置ILA核	464
    8.4.5  添加和配置DFXC核	465
    8.4.6  创建新的分区定义	467
    8.4.7  设置不同的配置选项	469
    8.4.8  定义分区的布局	471
    8.4.9  实现第一个运行配置并生成比特流文件	473
    8.4.10  实现第二个运行配置并生成比特流文件	474
    8.4.11  实现第三个运行配置并生成比特流文件	474
    8.4.12  创建应用工程	475
    8.4.13  创建启动镜像	480
    8.4.14  从SD卡启动引导系统	482
    第 章  Vitis HLS原理详解	483
    9.1  高级综合工具概述	483
    9.1.1  硬件实现算法的优势	483
    9.1.2  高级综合工具的概述	484
    9.1.3  Vitis HLS工具的优势	485
    9.1.4  从C中提取硬件结构	486
    9.1.5  从不同角度理解代码	489
    9.1.6  吞吐量和性能定义	492
    9.1.7  FPGA编程的三种模式	492
    9.2  高级综合工具调度和绑定	497
    9.3  HLS的抽象并行编程模型	500
    9.3.1  控制和数据驱动任务	501
    9.3.2  数据驱动任务级并行	501
    9.3.3  控制驱动任务级并行	504
    9.3.4  混合数据驱动和控制驱动模型	511
    9.3.5  小结	513
    9.4  函数	513
    9.4.1  函数内联	514
    9.4.2  函数流水线	514
    9.4.3  函数例化	515
    9.5  循环	515
    9.5.1  循环流水线	516
    9.5.2  展开循环	524
    9.5.3  合并循环	525
    9.5.4  嵌套循环	526
    9.5.5  可变循环边界	528
    9.6  数据类型	529
    9.6.1  标准类型	530
    9.6.2  复合类型	534
    9.6.3  任意精度类型	542
    9.6.4  指针	544
    9.7  数组	546
    9.7.1  数组的映射	547
    9.7.2  数组分割	548
    9.7.3  数组重组	550
    9.8  Vitis HLS优化技术	551
    9.9  接口及信号定义	552
    9.9.1  模块级控制协议	552
    9.9.2  端口级协议	555
    第  章  Vitis HLS实现过程详解	561
    10.1  基于Vitis HLS实现组合逻辑	561
    10.1.1  修改Vitis HLS环境参数	561
    10.1.2  建立新的设计工程	562
    10.1.3  添加设计文件	565
    10.1.4  工具栏的功能	566
    10.1.5  流程导航器的功能	567
    10.1.6  执行高级综合	567
    10.1.7  添加用户命令优化设计	570
    10.1.8  打开调度查看器	572
    10.1.9  运行协同仿真	574
    10.1.10  查看RTL仿真结果	576
    10.1.11  运行实现	577
    10.1.12  导出RTL	580
    10.2  基于Vitis HLS实现时序逻辑	583
    10.2.1  创建新的设计工程	583
    10.2.2  添加设计文件	584
    10.2.3  添加用户命令	585
    10.2.4  执行高级综合	585
    10.2.5  打开调度查看器	587
    10.2.6  运行协同仿真	588
    10.2.7  查看RTL仿真结果	589
    10.2.8  运行实现	590
    10.2.9  导出RTL	591
    10.3  基于Vitis HLS实现矩阵相乘	594
    10.3.1  创建新的设计工程	594
    10.3.2  添加设计文件	594
    10.3.3  执行高级综合	595
    10.3.4  打开调度查看器	597
    10.3.5  添加C++测试文件	597
    10.3.6  运行和调试C工程	598
    10.3.7  运行协同仿真	599
    10.3.8  查看RTL仿真结果	600
    10.3.9  添加用户策略	601
    10.3.10  添加策略后的高级综合	602
    10.3.11  查看RTL仿真结果	603
    10.3.12  比较设计结果	604
    第  章  HDMI显示屏驱动原理和实现	606
    11.1  HDMI的发展历史	606
    11.2  HDMI视频显示接口定义	607
    11.3  HDMI链路结构	608
    11.4  HDMI链路时序要求	609
    11.5  HDMI编码算法	609
    11.6  HDMI并行编码数据转换原理及实现	613
    11.6.1  数据并行-串行转换	613
    11.6.2  三态并行-串行转换器	614
    11.6.3  OSERDESE2原语	614
    11.6.4  TMDS信号转换模块	616
    11.6.5  HDMI并行编码数据转换的实现	616
    11.7  系统整体设计结构	618
    
    
    
    展开

    前     言

    前    言 
    自从本书作者2009年第一次出版Xilinx FPGA的书籍到现在已经过去近15年了,在这15年间,作为全球最大的FPGA厂商—美国Xilinx,不断推出新的器件和软件开发环境,业已成为全球信息技术重要的推动者,为全球信息技术的发展做出了重要贡献。由于Xilinx FPGA在高算力方面有着不可替代的作用,全球知名的半导体公司AMD于2022年完成了对Xilinx公司的收购。在AMD并购Xilinx后,将进一步拓展Xilinx FPGA在人工智能、数据中心等高算力方面的应用。
    在这里需要指出,在此次并购完成后,新推出的关于FPGA的官方文档、软件设计套件和器件都用AMD进行冠名。为了兼顾老读者的阅读习惯,本书仍然沿用Xilinx这一名字。
    本书是在《Xilinx FPGA权威设计指南:基于Vivado 2018集成开发环境》(电子工业出版社,2018)基础上,采用Xilinx公司最新的Vivado 2023设计套件,针对读者提出的意见和建议,对原书进行修订的。主要修订内容包括:
    (1)在第1章Xilinx新一代UltraScale+架构FPGA中,将器件从原书的UltraScale架构更新为UltraScale+架构,并增加了对VHDL语言的支持。通过同时使用Verilog HDL和VHDL,详细解读了UltraScale+架构FPGA内部原语的原理和使用方法。
    (2)在第2章Vivado设计套件导论中,针对 Vivado 2023设计套件,大幅度修订了关于设计套件框架、图形窗口和综合属性的内容。
    (3)在第3章Vivado工程模式基本设计实现中,增加了对Vivado 2023集成开发环境新功能和新特性的介绍,并且增加了对综合属性、实现属性和配置属性的一些细节内容的介绍。
    (4)在第6章Vivado时序和物理约束原理及实现中,大幅度增加了时序约束原理的介绍,并通过相应设计实例对时序约束原理进行解释和说明。
    (5)根据Vivado设计套件的新特性,重新编写了第8章动态功能交换原理及实现中的内容。
    (6)根据Vitis HLS的新特性,重新编写了第9章Vitis HLS原理详解中的内容。
    (7)根据Vitis HLS的新特性,重新编写了第10章Vitis HLS实现过程详解中的内容。 
    由于FPGA技术发展迅速,作者水平有限,书中难免会有疏漏之处,欢迎读者批评指正。
    
    作  者
    2024年4月于北京
    
    
    展开

    作者简介

    何宾,知名的嵌入式和EDA技术专家,长期从事电子设计自动化方面的教学和科研工作,与全球多家知名的半导体厂商和EDA工具厂商密切合作。已经出版电子信息方面的著作共40余部,内容涵盖电路仿真、电路设计、FPGA、数字信号处理、单片机、嵌入式系统等。典型的代表作有《模拟电子系统设计指南(基础篇):从半导体、分立元件到TI集成电路的分析与实现》、《模拟电子系统设计指南(实践篇):从半导体、分立元件到TI集成电路的分析与实现》、《Xilinx Zynq-7000嵌入式系统设计与实现-基于ARM Cortex-A9双核处理器和Vivado的设计方法》、《Altium Designer17一体化设计标准教程-从仿真原理和PCB设计到单片机系统》、《STC8系列单片机开发指南:面向处理器、程序设计和操作系统的分析与应用》等。
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网