书籍详情
《Vivado》[48M]百度网盘|亲测有效|pdf下载
  • Vivado

  • 出版社:电子工业出版社
  • 出版时间:2021-06
  • 热度:7202
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

适读人群 :Tcl初学者和Vivado的初学者

内容翔实全面:既有Tcl编程知识,又有Vivado应用案例

讲解深入浅出:结合大量案例,帮助读者加强对基本概念的理解

描述图文并茂:给出具体操作步骤,易于快速动手实践


内容简介

本书既是一本有关Tcl语言编程的书籍,又是一本对在Vivado中应用Tcl的实践经验总结的书籍。全书分为两部分:第一部分为基础部分,以Tcl基础知识为主,包括第1~9章,重在理论;第二部分为应用部分,以Tcl在Vivado中的应用为主,包括第10~14章,重在实践。同时,本书给出了354个Tcl脚本的代码示例,结合49个表格、171张图片帮助读者深入理解知识点。无论Tcl初学者,还是已掌握Tcl精髓的工程师,只要想将Tcl得心应手地应用于Vivado设计与开发,都会从本书中受益。本书可供电子工程领域内的本科高年级学生和研究生参考,也可供FPGA工程师和自学者参考。

作者简介

高亚军,电路与系统专业硕士,FPGA技术分享者,设计优化、时序收敛专家,Vivado工具使用专家,Xilinx资深战略应用工程师。多年来使用Xilinx FPGA实现数字信号处理算法,对Xilinx FPGA器件架构、开发工具Vivado/Vitis HLS/System Generator有着深厚的理论基础和实战经验。主要著作:2011年出版图书《基于FPGA的数字信号处理》2012年发布网络视频课程:Vivado入门与提高2015年出版图书《基于FPGA的数字信号处理(第2版)》2016年出版图书《Vivado从此开始》2016年发布网络视频课程:跟Xilinx SAE学HLS2020年出版图书《Vivado从此开始(进阶篇)》自2018年创建FPGA技术分享公众号:TeacherGaoFPGAHub后,每周更新两篇原创文章,累计发表原创文章280余篇,获得大量粉丝的认可和赞誉。

目录

第1部分 基 础 部 分
第1章 Tcl基础知识 2
1.1 什么是Tcl 2
1.2 Tcl脚本的构成 3
1.3 变量赋值 4
1.4 变量置换 6
1.5 命令置换 10
1.6 反斜线置换 11
1.7 深入理解Tcl中的置换 12
1.8 双引号与花括号 13
1.9 注释与续行 15
1.10 本章小结 18
第2章 表达式 19
2.1 表达式的构成要素 19
2.2 算术操作符 20
2.3 关系操作符 21
2.4 逻辑操作符 22
2.5 按位操作符 23
2.6 选择操作符 24
2.7 数学函数 25
2.8 字符串操作 28
2.9 本章小结 29
第3章 字符串 30
3.1 字符串的表示 30
3.2 字符串的类型 31
3.3 字符串的长度与索引 32
3.4 字符的获取 33
3.5 字符串的添加 34
3.6 字符的删除 34
3.7 字符的替换 35
3.8 字符串的比较 36
3.9 字符串的简单搜索 37
3.10 字符串的匹配 38
3.11 格式化输出 40
3.12 与字符串相关的其他命令 44
3.13 本章小结 45
第4章 列表 47
4.1 创建列表 47
4.2 列表长度与列表索引 49
4.3 获取列表元素 52
4.4 添加列表元素 54
4.5 删除列表元素 56
4.6 替换列表元素 57
4.7 搜索列表元素 58
4.8 对列表元素排序 61
4.9 字符串和列表之间的转换 62
4.10 in和ni操作符 63
4.11 foreach命令 65
4.12 本章小结 68
第5章 数组 69
5.1 创建数组 69
5.2 获取数组中的元素 70
5.3 删除数组中的元素 72
5.4 数组与列表之间的转换 73
5.5 二维数组 74
5.6 本章小结 75
第6章 流程控制 76
6.1 if命令 76
6.2 switch命令 79
6.3 while命令 83
6.4 for命令 85
6.5 source命令 87
6.6 本章小结 88
第7章 过程 89
7.1 过程的构成 89
7.2 过程的参数名列表 90
7.3 过程的返回值 93
7.4 局部变量与全局变量 96
7.5 模拟引用 98
7.6 数组用作参数或返回值 99
7.7 upvar命令 102
7.8 本章小结 106
第8章 命名空间 107
8.1 创建命名空间 107
8.2 创建命名空间变量 111
8.3 命名空间变量的作用域 112
8.4 访问命名空间变量 114
8.5 从命名空间导入和导出命令 116
8.6 创建集合命令 118
8.7 本章小结 119
第9章 访问文件 120
9.1 操纵文件名和目录名 120
9.2 当前工作目录和目录内容 121
9.3 处理磁盘上的文件 123
9.4 获取文件信息 125
9.5 读文件 127
9.6 写文件 129
9.7 处理CSV文件 130
9.8 本章小结 134
第2部分 应用部分
第10章 Vivado设计流程管理 138
10.1 Vivado对Tcl的支持 138
10.2 理解Vivado的设计流程 141
10.3 理解Vivado的两种工作模式 146
10.4 Project模式 147
10.5 Non-Project模式 154
10.6 扫描策略 164
10.7 本章小结 169
第11章 Vivado设计资源管理 170
11.1 管理资源要素 170
11.2 管理HDL代码文件 171
11.3 管理约束文件 176
11.4 管理IP文件 179
11.5 本章小结 183
第12章 Vivado设计分析 184
12.1 FPGA芯片架构中的对象 184
12.2 网表中的对象 192
12.3 时钟分析 204
12.4 时序分析 206
12.5 质量分析 212
12.6 资源利用率分析 221
12.7 逻辑级数分析 222
12.8 复杂度与拥塞分析 224
12.9 扇出分析 226
12.10 UFDM分析 229
12.11 跨时钟域路径分析 230
12.12 约束分析 232
12.13 本章小结 235
第13章 Vivado设计复用 236
13.1 增量编译 236
13.2 复用关键寄存器位置信息 240
13.3 复用Block的位置信息 242
13.4 复用关键路径的布局布线信息 245
13.5 本章小结 248
第14章 其他 249
14.1 模块化综合技术 249
14.2 反复执行物理优化 251
14.3 合理使用过约束 253
14.4 使用IOB寄存器 255
14.5 编辑网表 256
14.6 修改初始值 258
14.7 本章小结 260

前言/序言

尽管Tcl脚本自20世纪80年代初诞生以来已有30多年的历史了,但仍然经久不衰,在IC领域被广泛使用,很多EDA工具都将其集成其中。Vivado也不例外,在2012年正式发布时,我们就看到了Tcl的身影。这使得Vivado如虎添翼,功能愈发强大。能在图形界面下执行的操作几乎都有相应的Tcl命令。反过来,很多操作只能借助Tcl脚本完成而无法在图形界面下操作。借助Tcl脚本,工程师可以对设计进行深入分析,及时发现更深层次的问题。不得不说,Tcl俨然成为设计分析的利器。

遗憾的是,目前市面上鲜有Tcl方面的学习书籍,网络上的各种学习资源鱼目混珠、良莠不齐,且只注重语法或单一的常规命令,没有与Vivado结合起来讲解工程应用。在工作中,我遇到过很多FPGA工程师,他们迫切希望掌握这一利器,却因找不到合适的学习资源而深感无奈,或者已掌握Tcl基本语法知识,了解了一些基本命令,但却因不知在Vivado中如何应用而束手无策。这一现状深深地触动了我,促使我决定写一本与Tcl、Vivado都紧密相关的书。

早在Xilinx前一代开发工具ISE中出现Tcl时,我就开始关注Tcl,而当Vivado正式发布时,我就决定深入学习Tcl。随着时间的流逝,一晃8年过去了,可以不夸张地说,Tcl几乎成为我每天工作中必用的语言之一。借助Tcl脚本,我可以实现从设计输入到生成位流文件的全流程操作,不仅可以对网表进行编辑和深入分析,还可以扫描布局布线策略并生成相关报告。但Tcl能做的还远不止这些。让我感受最深的是我可以并行工作,例如扫描策略时,可以同时分析设计的其他网表文件,从而大大提高了工作效率。

同时,我开发了基于Tcl脚本的Vivado自动化策略扫描,并开发了基于Tcl脚本的自动化设计分析。这两个脚本被很多工程师使用,广受好评。工程师普遍认为这些脚本可以极大地缩短设计迭代和分析时间,有效提高工作效率,减轻压力和负担。我相信通过本书的学习,读者也可以开发出自己想要的带有特定功能的Tcl脚本。

2020年初,我开始着手撰写本书,在内容安排上,要求既包含Tcl相关知识,又包含如何在Vivado中使用Tcl。首先,本书是一本与编程语言相关的书籍,少不了大量的代码,为此,在代码排版上花费了一些工夫,保证读者能够体会到代码的美感;其次,本书又不是一本单纯讲解编程的书籍,重点是工程应用,我结合自己的工程实践总结出了大量的常规应用,并分门别类地加以讲解。读者要掌握Tcl脚本并将其应用在Vivado工程中,仍需大量的实践。希望本书能起到抛砖引玉的功效。

与很多EDA工具一样,Vivado将Tcl集成其中后,极大地丰富并增强了Vivado的功能。因此,若想把Vivado用好,掌握Tcl势在必行。着眼于此,本书分为两部分:第一部分为基础部分,以Tcl基础知识为主;第二部分为应用部分,以Tcl在Vivado中的应用为主。

就第一部分而言,涵盖了Tcl的三类置换(包括变量置换、命令置换和反斜杠置换)、表达式和数学运算、经典数据类型(包括字符串、列表和数组)、流程控制命令、过程、命名空间及文件操作等,分布在第1~9章,尽可能地涵盖常见命令,并给出具体代码示例,讲解使用方法。

就第二部分而言,涵盖了Tcl在Vivado中的典型应用,包括设计流程管理、设计资源管理、设计分析,并给出了具体的应用案例,例如,如何通过Tcl脚本实现从设计输入到生成位流文件的自动化操作;如何借助Tcl脚本实现策略扫描;如何应用Tcl脚本发现设计的潜在问题。这些内容分布在第10~13章。同时,我结合工作实践,给出了Tcl在Vivado中的其他应用,并在第14章中进行了详细阐述。


如何阅读本书


对于只想学习Tcl脚本的初学者而言,可以只阅读第一部分内容,也就是第1~9章。对于已掌握Tcl基础知识,并想进一步了解如何在Vivado中应用Tcl的读者而言,可越过第一部分,直接阅读第二部分内容,也就是第10~14章。本书给出了丰富的代码示例。每个示例都有行号标记,便于快速找到书中提到的位置。第1行为文件名,读者可根据需要找到相应的文件直接使用或二次编辑相应脚本。以“=>”开头的行表示该行为上一行命令的返回值,并且该行以斜体字表示。若在“=>”后紧跟“@”,则表示上一行命令的使用不合法,该行为相应的错误信息。由于本书是一本偏向应用的书籍,故文中的变量与实际代码一致,不再区分正斜体。

本书所有代码均在Vivado 2020.1版本中验证。读者不需下载安装其他Tcl编译器,可直接使用Vivado Tcl Shell或在Vivado Tcl Console中使用Tcl。


获取代码示例


如果需要获取代码示例,关注我的微信公众号TeacherGaoFPGAHub,回复关键字“Tcl”(没有引号)即可。

Tcl/Vivado已经成为一个整体,Vivado因Tcl而熠熠生辉,Tcl因Vivado而历久弥新。愿此书能帮助广大FPGA工程师顺利踏上征服Tcl的旅程!


高亚军

2020年12月27日