编辑推荐
选择本书的3大理由: 知名作者何宾老师新力作,凝结了何宾老师多年工程设计、教学经验和创作的心血。 系统介绍了Xilinx新一代集成开发环境Vivado 2014.3的设计方法、设计流程和具体实现,工程实用性强。 《电子系统EDA新技术丛书·Xilinx FPGA设计指南:Vivado 2014集成开发环境》理论与应用并重,将Xilinx新的设计理论贯穿在具体的设计实现中。
内容简介
《电子系统EDA新技术丛书·Xilinx FPGA设计指南:Vivado 2014集成开发环境》全面系统地介绍了Xilinx新一代集成开发环境Vivado 2014.3的设计方法、设计流程和具体实现。全书共分11章,内容包括:Xilinx UltraScale结构、Vivado集成设计环境导论、Vivado工程模式基本设计实现、Vivado非工程模式基本设计实现、创建和封装用户IP核流程、Vivado高级约束原理及实现、Vivado调试工具原理及实现、Vivado嵌入式系统设计实现、Vivado模型设计原理及实现、Vivado HLS原理及实现、Vivado部分可重配置原理及实现。《电子系统EDA新技术丛书·Xilinx FPGA设计指南:Vivado 2014集成开发环境》参考了Xilinx提供的大量Vivado设计资料,理论与应用并重,将Xilinx设计理论贯穿在具体的设计实现中。
作者简介
何宾,著名的嵌入式系统专家和EDA技术专家,长期从事嵌入式系统和电子设计自动化方面的教学和科研工作,与全球知名的半导体厂商和EDA工具厂商保持紧密合作,致力于推动国内高校电子信息技术的教学改革。目前已经出版嵌入式系统和电子设计自动化方面的著作20余部,内容涵盖电路仿真、电路设计、现场可编程门阵列、单片机、嵌入式系统等。代表作有《Xilinx FPGA数字设计》、《Xilinx All Programmable Zynq-7000 SoC设计指南》、《Altium Designer13.0电路设计、《STC单片机原理及应用》等。
内页插图
目录
第1章 Xilinx新一代Ultra Scale结构
1.1 Ultra Scale结构特点
1.2 可配置逻辑块
1.2.1 可配置逻辑块的特点
1.2.2 多路复用器
1.2.3 进位逻辑
1.2.5 分布式RAM(只有SLICEM)
1.2.6 只读存储器(ROM)
1.2.7 移位寄存器(只有SLICEM)
1.3 时钟资源和时钟管理单元
1.3.1 时钟资源
1.3.2 时钟管理模块
1.4 块存储器资源
1.5 专用的DSP模块
1.6 输入/输出块
1.7 高速串行收发器
1.8 PCI-E模块
1.9 Interlaken集成块
1.10 Ethernet模块
1.11 系统监控器模块
1.12 配置模块
1.13 互联资源
第2章 Vivado集成设计环境导论
2.1 Vivado系统级设计流程
2.2 Vivado功能和特性
2.3 Vivado中电路结构的网表描述
2.4 Vivado中工程数据的目录结构
2.5 Vivado中Journal文件和Log文件功能
2.5.1 Journal文件(Vivado.jou)
2.5.2 Log文件(Vivado.log)
2.6 Vivado两种设计流程模式
2.6.1 工程模式和非工程模式不同点比较
2.6.2 工程模式和非工程模式命令的不同
2.7 Vivado中XDC文件
2.7.1 XDC的特性
2.7.2 XDC与UCF比较
2.7.3 约束文件的使用方法
2.7.4 约束顺序
2.7.5 XDC约束命令
2.8 Vivado集成设计环境的启动方法
2.9 Vivado集成设计环境主界面
2.10 Vivado设计主界面及功能
2.10.1 流程处理主界面及功能
2.10.2 工程管理器主界面及功能
2.10.3 工作区窗口
2.10.4 设计运行窗口
第3章 Vivado工程模式基本设计实现
3.1 创建新的设计工程
3.2 创建并添加一个新的设计文件
3.3 RTL详细描述和分析
3.4 设计综合和分析
3.4.1 综合过程的关键问题
3.4.2 设计综合选项
3.4.3 Vivado支持的属性
3.4.4 执行设计综合
3.4.5 综合报告的查看
3.5 设计行为级仿真
3.6 创建实现约束
3.6.1 实现约束的原理
3.6.2 I/O规划器功能
3.6.3 实现约束过程
3.7 设计实现和分析
3.7.1 设计实现原理
3.7.2 设计实现选项
3.7.3 设计实现及分析
3.7.4 静态时序分析
3.8 设计时序仿真
3.9 生成编程文件
3.9.1 执行生成可编程文件
3.9.2 生成编程文件选项
3.10 下载比特流文件到FPGA
第4章 Vivado非工程模式基本设计实现
4.1 非工程模式基本命令和功能
4.1.1 非工程模式基本命令列表
4.1.2 典型Tcl脚本的使用
4.2 Vivado集成开发环境分析设计
4.2.1 启动Vivado集成开发环境
4.2.2 打开设计检查点的方法
4.3 修改设计路径
4.4 设置设计输出路径
4.5 读取设计文件
4.6 运行设计综合
4.7 运行设计布局
4.8 运行设计布线
4.9 生成比特流文件
4.10 下载比特流文件
第5章 创建和封装用户IP核流程
5.1 Vivado定制IP流程
5.2 创建新的用于创建IP的工程
5.3 设置定制IP的库名和目录
5.4 封装定制IP的实现
5.5 创建新的用于调用IP的工程
5.6 设置包含调用IP的路径
5.7 创建基于IP的系统
5.8 系统行为级仿真
5.9 系统设计综合
5.10 系统实现和验证
第6章 Vivado高级约束原理及实现
6.1 时序检查概念
6.1.1 基本术语
6.1.2 时序路径
6.1.3 建立和保持松弛
6.1.4 建立和保持检查
6.1.5 恢复和去除检查
6.2 时序约束概念
6.2.1 时钟定义
6.2.2 时钟组
6.2.3 I/O延迟约束
6.2.4 时序例外
6.3 生成时序报告
6.4 添加时序约束
6.4.1 时序约束策略
6.4.2 时序约束策略
6.5 物理约束原理
6.5.1 网表约束
6.5.2 布局约束
6.5.3 布线约束
6.6 布局约束实现
6.6.1 修改综合属性
6.6.2 布局约束方法
6.7 布线约束实现
6.7.1 手工布线
6.7.2 进入分配布线模式
6.7.3 分配布线节点
6.7.4 取消分配布线节点
6.7.5 完成并退出分配布线模式
6.7.6 锁定LUT负载上的单元输入
6.7.7 分支布线
6.7.8 直接约束布线
6.8 修改逻辑实现
6.9 配置约束原理
6.10 增量编译
6.10.1 增量编译流程
6.10.2 运行增量布局和布线
6.10.3 使用增量编译
6.10.4 增量编译高级分析
第7章 Vivado调试工具原理及实现
7.1 设计调试原理和方法
7.2 创建新的FIFO调试工程
7.3 添加FIFOIP到设计中
7.4 添加顶层设计文件
7.5 使用HDL例化添加FIFO到设计中
7.6 添加约束文件
7.7 网表插入调试探测流程方法及实现
7.7.1 网表插入调试探测流程的方法
7.7.2 网表插入调试探测流程的实现
7.8 使用添加HDL属性调试探测流程
7.9 使用HDL例化调试核调试探测流程
第8章 Vivado嵌入式系统设计实现
8.1 简单硬件系统设计
8.1.1 创建新的工程
8.1.2 使用IP集成器创建处理器系统
8.1.3 生成顶层HDL和导出设计到SDK
8.1.4 创建存储器测试程序
8.1.5 验证设计
8.2 在PL内添加外设
8.2.1 打开工程
8.2.2 添加两个GPIO实例
8.2.3 连接外部GPIO外设
8.2.4 设计综合
8.2.5 生成比特流和导出硬件到SDK
8.2.6 生成测试程序
8.2.7 验证设计
8.3 创建和添加定制IP
8.3.1 创建定制IP模板
8.3.2 修改定制IP设计模板
8.3.3 使用IP封装器封装外设
8.3.4 打开工程和修改设置
8.3.5 添加定制IP到设计
8.3.6 添加BRAM
8.3.7 添加约束xdc
8.4 编写软件程序
8.4.1 打开工程
8.4.2 创建应用工程
8.4.3 为LED_IP分配驱动
8.4.4 分析汇编目标文件
8.4.5 验证设计
8.5 软件控制定时器和调试
8.5.1 打开工程
8.5.2 创建SDK软件工程
8.5.3 在硬件上验证操作
8.5.4 启动调试器
8.6 使用硬件分析仪调试
8.6.1 ILA核原理
8.6.2 VIO核原理
8.6.3 打开工程
8.6.4 添加定制IP
8.6.5 添加ILA和VIO核
8.6.6 标记和分配调试网络
8.6.7 生成测试程序
8.6.8 验证和调试
第9章 Vivado模型设计原理及实现
9.1 FPGA信号处理方法
9.2 FPGA模型设计模块
9.2.1 Xilinx Blockset
9.2.2 Xilinx Reference Blockset
9.3 System Generator运行环境的配置
9.4 信号模型的构建和实现
9.4.1 信号模型的构建
9.4.2 模型参数的设置
9.4.3 信号处理模型的仿真
9.4.4 生成模型子系统
9.4.5 模型HDL代码的生成
9.4.6 打开生成设计文件并仿真
9.4.7 协同仿真的配置及实现
9.4.8 生成IP核
9.5 编译MATLAB到FPGA
9.5.1 模型的设计原理
9.5.2 系统模型的建立
9.5.3 系统模型的仿真
9.6 FIR滤波器的设计与实现
9.6.1 FIR滤波器设计原理
9.6.2 生成FIR滤波器系数
9.6.3 构建FIR滤波器模型
9.6.4 仿真FIR滤波器模型
9.6.5 修改FIR滤波器模型
9.6.6 仿真修改后FIR滤波器模型
第10章 VivadoHLS原理及实现
10.1 高级综合工具概述
10.1.1 高级综合工具的功能和特点
10.1.2 不同的命令对HLS综合结果的影响
10.1.3 从C中提取硬件结构
10.2 高级综合工具调度和绑定
10.2.1 高级综合工具调度
10.2.2 高级综合工具绑定
10.3 VivadoHLS工具的优势
10.4 C代码的关键属性
10.4.1 函数
10.4.2 类型
10.4.3 循环
10.4.4 数组
10.4.5 端口
10.4.6 操作符
10.5 时钟测量术语说明
10.6 HLS关键优化策略
10.6.1 延迟和吞吐量
10.6.2 循环的处理
10.6.3 数组的处理
10.6.4 函数内联
10.6.5 命令和编译指示
10.7 VivadoHLS数字系统实现
10.7.1 基于HLS实现组合逻辑
10.7.2 基于HLS实现时序逻辑
10.7.3 基于HLS实现矩阵相乘
第11章 Vivado部分可重配置原理及实现
11.1 可重配置导论
11.1.1 可重配置的概念
11.1.2 可重配置的应用
11.1.3 可重配置的特点
11.1.4 可重配置术语解释
11.1.5 可重配置的要求
11.1.6 可重配置的标准
11.1.7 可重配置的流程
11.2 可重配置的实现
11.2.1 查看脚本
11.2.2 综合设计
11.2.3 实现第一个配置
11.2.4 实现第二个配置
11.2.5 验证配置
11.2.6 生成比特流
11.2.7 部分重配置FPGA
精彩书摘
11.1.3 可重配置的特点 1.降低成本和电路板的空间 通过重配置技术解决了两个设计者普遍存在的问题。 (1)在一个已经使用的器件中,适配更多的逻辑。 (2)在一个更小的、更便宜的器件中,适配一个设计。 历史上,设计者们花费数天时间,甚至几个星期,尝试新的实现开关,返工设计代码,并重新设计解决方案,将设计装入最小可能的FPGA器件中。现在通过部分重新配置技术,设计者就可以动态地时分复用部分可用的硬件资源,以减少其设计规模。同时根据设计要求来控制加载逻辑功能的能力,也大大减少了空闲逻辑,从而进一步节省了额外的空间。 这一策略的一个例子是,在软件无线电(Software Defined Radio,SDR)系统中使用部分可重配置。在SDR中,设计者根据要求上传一个新的波形用于和一个新的通道建立通信。为了使单一的硬件平台可以支持任意数量的波形,要求只有唯一的部分比特流能用于这些波形。由于部分可重配置的“在飞行”(on-the-fly)特性,其他已经建立连接的通道不会被上传到其他的通道所破坏。 2.增加已部署系统的灵活性 在过去,改变现场的一个设计,要求设计新的布局和布线,以及交付整个的配置文件。当需要修改设计时,设计者不得不将系统断电。相比较之下,通过部分可重配置技术,设计者只需要布局和布线所修改的功能,然后将这个新的部分映像提交到系统中即可。 并且,当启动并运行系统时,设计者可以动态地插入新的功能,以改善系统的性能。因此,互斥的功能可以插入到相同的空间内,而不需要重新设计系统或者将设计移植到一个更大的器件中。 体现部分可重配置好处的另一个例子是在光纤传输网络(Optical Transport Network,OTN)的应用。类似于SDR,支持不同的协议来创建一个更高效的硬件系统,即在FPGA中只加载用于当前在任何一点特定通道的协议。因此,对于一个已经部署的系统来说,不仅可以通过使用最小的资源来处理很多不同类型的流量,而且可以使用最新的协议更新系统,而不必全部重新设计。 3.降低功耗 对于当前的设计者来说,功耗是最为关心的问题。但是,随着FPGA设计规模和复杂度的增加,功耗也相应增加。而带有设计技巧的综合和实现工具,能帮助设计者降低功耗。通过使用部分重配置技术,进一步降低静态和动态功耗。 一种降低静态功率的方法是使用较小规模的器件。通过使用部分可重配置技术,设计者能将FPGA进行时间片分割,并且能独立地运行设计的一部分。由于不是设计的每个部分都需要100%的时间,因此设计能要求更小的器件或者更少数量的器件。 部分可重配置也潜在地降低了操作功耗和静态功耗。例如,很多设计必须能高速运行,而最高的性能可能只需要一个很少的时间段,为了降低功耗,设计者使用部分重配置来暂时去除一个高性能的设计,该设计是同一设计的低功耗版本,而不使用排他性设计用于最大性能,当系统要求时,设计者可以切换回高性能的设计。 这个原理也应用到了I/O标准,特别是当一个高功率接口并不要求100%时间的场合。低电压差分传输(Low Voltage Differential Signaling,LVDS)是一个高功耗的接口(不考虑活动性,这是由于高DC电流要求为接口提供能量)。当不要求最高性能时,设计者能使用部分可重配置将I/O从LVDS变成低功耗接口,如LVCMOS;而当要求高速传输时,再切换到LVDS。 4.其他优点 在一个FPGA内动态地时分复用硬件的能力,提供了其他方面的优势。 (1)在选择用于一个应用的算法或者协议时,提供了实时的灵活性。 (2)在一个设计安全性时,可以使用新的技术。 (3)改善FPGA的故障容错能力。 (4)促进可配置计算。 (5)降低存储比特流的要求。 11.1.4 可重配置术语解释 为了后续章节的描述方便,下面对可重配置技术中所涉及的一些术语进行说明。 1.Top-down synthesis(自顶向下的综合,不用于部分可重配置) (1)一个综合工程,该工程综合平面设计,用于优化。 (2)经常称为平面综合。 (3)不支持层次化实现。 2.Bottom-up synthesis(自底向上综合) (1)独立综合工程,产生多个网表。 (2)自底向上综合要求为每个分区分配一个独立的网表。 (3)没有跨越边界的优化。这样,可以对设计的每个分区进行独立地综合。 (4)对带有用于分区的黑盒顶层逻辑进行综合。 3.Configuration(配置) 一个配置是一个完整的设计,包括静态逻辑以及用于每个可配置分区的一个可配置的模块。 在一个部分重配置FPGA工程中,可以有多个配置。每个配置生成一个充分的比特流文件,以及用于每个可配置模块的一个部分比特流文件。 4.Configuration Frame(配置帧) 配置帧是FPGA配置存储空间中最小的可寻址段。从这些分散的最底层元素构建配置帧。在7系列器件中,基本的可重配置的帧的大小为一个元件(CLB、BRAM、DSP)宽度和一个时钟区域高度。 5.Internal Configuration Access Port(内部配置访问端口) 内部配置访问端口是SelectMAP接口的一个内部版本。 6.Partial Reconfiguration(部分重配置) 部分重配置指当前正在修改一个正在运行的FPGA设计,这个修改是通过下载一个部分比特流实现的。 7.Partition(分区) 一个分区是设计的一个逻辑部分,由设计者在一个层次中进行定义。这个定义用于设计重用。一个分区是一个新的实现或者先前保留的一个实现。一个被保护的分区其功能和实现都是一致的。 8.Partition Pins(分区引脚) 一个分区引脚是在静态和可重配置逻辑之间的逻辑和物理的连接。 9.Static Logic(静态逻辑) 所有设计内的逻辑是不可重配置的,它不是可重配置分区的一部分。当对可重配置分区进行重新配置时,静态逻辑总是活动的。 10.Static Design(静态设计) 静态设计是设计的一部分,它在部分重配置的过程中不会变化。静态设计包括顶层和没有定义为可重配置的所有模块。静态设计由静态逻辑和静态布线所建立。 11.Reconfigurable Module(可重配置模块,RM) 在可重配置分区内,一个RM是网表或者HDL描述的实现。每个可配置分区内可以有多个可重配置的模块。 12.Reconfigurable Partition(可重配置分区,RP) RP是在一个例化中的属性设置,其定义了该实例是可重配置的。PR是设计层次中的一个层次,在这个层次上可以使用不同的RM进行实现。典型地,一些Tcl命令,如opt_design、place_design和rout
电子系统EDA新技术丛书·Xilinx FPGA权威设计指南:Vivado 2014集成开发环境 下载 mobi epub pdf txt 电子书 格式
电子系统EDA新技术丛书·Xilinx FPGA权威设计指南:Vivado 2014集成开发环境 下载 mobi pdf epub txt 电子书 格式 2024
电子系统EDA新技术丛书·Xilinx FPGA权威设计指南:Vivado 2014集成开发环境 mobi epub pdf txt 电子书 格式下载 2024