先给大家简单快速地介绍一下 Vivado 集成设计环境,即 IDE。
IDE 总体介绍
工程总结
当打开 Vivado 工程后,会有一个工程概要,向您介绍工程的设置、警告和错误信息以及工程的一般状态。
源
源视图用于显示项目中的文件类型,比如硬件描述语言文件、约束文件、仿真文件和 IP。您可以使用源代码编辑器,在工作过程中添加或者创建源文件。
流程导航
左边的这个部分叫做流程导航器 (Flow Navigator),用于控制编译流程和分析视图。它的组织方式与一般的开发流程一样。点击浏览器上的按钮可以执行流程,也可以加载处于某种特定状态的设计,用于查看和分析。
IP 目录
赛灵思 IP 库可用于选择和配置 IP。点击“IP 目录”按钮会出现 IP 视图,供浏览和搜索。完全展开后,我们会看到完整的 IP 列表,双击某个 IP,弹出配置向导,它将引导用户完成对 IP 核的整个参数配置过程,比如这个基于 AXI 的 DMA 控制器。完成配置向导的所有选项后,点击“结束”按钮,IP 核就作为源被添加到我的工程中。
一键式实现
流程浏览器用于执行最常见的任务,包括仿真、行为验证以及综合与实现。点击“运行实现”按钮启动一键式综合与实现操作,在后台执行设计编译工作,从而可将 GUI 用于执行分析任务。Vivado 可以充分发挥多核处理器的功能,最大化工作效率。Vivado 仿真、综合与实现的速度比同类竞争工具快 4 倍。
仿真
波形视图
点击“仿真”按钮即可加载设计的仿真视图。仿真最重要的作用是在 RTL 层面对设计进行功能验证。在这里,您可以运行仿真工作台,选择需要检测的信号并查看波形视图。波形视图和其他视图一样,可以用键盘缩放大小并对设计进行调试。
源交叉追踪
仿真视图中的对象可以轻松在 RTL 源代码中找到。选择信号,点击鼠标右键,您可以通过弹出菜单直接找到源代码文件中的相关代码行。
可以发现在整个工具中,您可以利用共享对象模型跨越不同区域查找设计对象,这对调试和分析工作有巨大帮助。
RTL 详情
打开详情
点击“RTL分析”按钮打开 RTL 的详细视图,在运行综合之前查看设计原理图。这样可以迅速查看自己的设计,无需等到编译完成。您还可以利用此工具对设计进行早期分析,使 RTL 和约束的开发工作更有效率。
源交叉追踪
在原理图中选择一个实例,同样是点击鼠标右键弹出菜单,直接找到定义或实例化此对象的源代码。
综合视图
点击“综合”按钮运行综合,或打开综合完成后建立的综合网表。这将读取综合生成的门级网表,并读取约束,将其应用于网表(在内存中),便于您对设计进行报告和分析。这里我们使用的是综合网表结果,但设计还没有完成布局布线,因此工具会适当地使用估计算法,这个阶段有许多报告可以使用。
资源利用率
后综合阶段,您最关注的可能是资源利用。打开设计后,点击“资源利用报告”按钮,就可以看到以图形方式显示的器件资源利用情况,既可以按类型进行全局划分,也可以按设计的逻辑层次结构划分。
设计人员关注的另一个问题是时序分析。如果设计在这个阶段遇到时序问题,整个编译过程就有可能是无用功,因此我们建议用户最好先用约束多试几次,在实施前将问题全部清除。
时序
介绍
点击“时序报告”按钮,弹出时序报告选项对话框。点击“OK”选择默认设置,
即可显示每个时钟域的总体状况以及其中的最差路径。这样可以生成按时钟组分类的图形化报告,最差路径显示在报告的顶端。
展开结果视图查看所有路径,双击一条路径查看路径的详细情况以及建立时间或者保持时间分析裕量的计算方法。
时序交叉跟踪
也可以选择一条路径,点击鼠标右键,选择生成时序路径的原理图,也可以跨区域查询路径的 RTL 源代码。
实现
在后实现阶段点击“实现视图”加载设计,读取最终网表,布局布线数据库以及与实现结果匹配的最终约束。这是设计的最终阶段,您可以得到最准确的分析结果。
注意器件详细视图显示很多绿色区域,这代表器件使用的走线资源。
资源利用率
与后综合阶段一样,我们可以生成用图形显示的资源利用报告,用以反映实现状态,按资源类型或者逻辑层次结构划分。
时序
现在我们将运行时序报告,就像我们在后综合阶段所做的一样。
不过现在不需要估算网络延迟,而是使用布局布线设计的实际延迟。
我们可以利用内存实时运行静态时序分析,不需要从磁盘读取报告文件。
这样能够提供强大的互动查询功能,还可以根据“假设”场景添加约束。
器件视图交叉跟踪
展开时序结果报告,发现有不满足时序的地方,我们需要对这些不满足时序的地方进行研究。
双击一条路径,弹出详细的路径跟踪窗口。转到器件视图,放大器件,查看选中单元的布局布线,观察器件的哪些区域受到了影响。
路径详情
回到路径跟踪窗口,
可以注意到源时钟和目的时钟不同,意味着这是一条跨时钟路径。
而且我知道这两个时钟域彼此独立,也就是说不能同时处于激活状态,但是我忘记了添加约束来对其进行恰当的配置。约束语言采用行业标准的 SDC (Synopsys Design Constraints)。
假设加约束
打开约束编辑器,添加set_clock_group命令,将两个时钟设置为彼此逻辑独立。
然后重新运行时序报告,可以立刻看到时序图有很大改善。
请注意,我无需重新运行实现过程就能看到修改约束后的结果。
我刚刚加入约束文件的约束将在下次运行时参与整个运行过程。
功耗
现在来看一下设计的功耗情况。点击“电源报告”图标,弹出电源分析对话框。选择所有默认选项,点击“运行”,我将得到设计的静态功耗和动态功耗报告图。
柱状图
展开报告,可以看到有关
IO、内核动态功耗以及器件静态功耗的柱状图。
还可以将其展开,按层级查看资源利用详情,明确设计的哪个部分动态功耗最高。
比特流产生 总结
当然可以从实现结果生成比特流,下载并编程到器件上。
上面就是 Vivado 集成设计环境的简单使用介绍,它是赛灵思面向7系列器件的新一代工具套件。Vivado 在编译时间、设计效率和使用便利性方面实现了革命性改进。谢谢。
年内,需要部分可重配置功能的用户用户还需要继续使用 ISE。
Vivado 综合技术与赛灵思综合技术 (XST) 有何不同?
Vivado 综合技术基于经业界验证的 ASIC 综合技术,能扩展适应于极大型设计。它可支持 SystemVerilog、SDC、TCL 等,并采用 Vivado共享的可扩展数据模型支持整个流程的交叉探测。
新工具与 ISE 间能否支持项目的移植?
ISE 项目浏览器和 PlanAhead 项目能移植到 Vivado IDE,但 Vivado 项目无法移植到 PlanAhead。除约束文件,包括源文件列表在内的所有其它项目设置均能进行传输。客户必须创建赛灵思设计约束 (XDC) 格式的约束条件,并将其单独添加到项目中。
Vivado IP 集成器为什么优于 Altera 的 QSys?
设计人员可利用 Vivado 以图形的形式创建 IP 系统,或利用 TCL、参数传递、Vivado 仿真和 ChipScope 集成等,专门针对调试设计。从实现工具(报告、布局规划、原理图)返回 IPI的交叉探测可加速融合,这也是一大优势。
Vivado 仿真器与 ISim 有什么不同?
Vivado 仿真器采用全新的引擎,紧密集成于 Vivado IDE 中。该引擎的速度比 ISim 快 3 倍,而占用的存储器容量却仅为一半。它完全集成于 Vivado IDE,能够通过 TCL 更好地控制仿真器操作。
Vivado 仿真器能否使旧版架构设计符合 7 系列要求?
一般说来,赛灵思建议用户采用原生架构。不过 Vivado 支持旧版架构的程度与 ISE 针对所有 Virtex 级别器件的支持相同。
Vivado 仿真器是否支持 VHDL 和 Verilog 的时序仿真?
Vivado 仅为 Verilog 的时序仿真提供支持。但是 Vivado 可为 Verilog 和 VHDL 以及混合语言提供功能仿真支持。
Vivado 为什么不支持 VHDL 时序仿真?
VHDL 时序仿真是基于 VITAL 的仿真,该标准速度很慢,限制性较大,且已长期未进行更新。
客户能否用 Mentor、Synopsys、Cadence 和 Aldec 编译赛灵思仿真库?
可以。Vivado 设计套件可提供名为 compxlib 的 TCL 命令以编译仿真库。
Vivado 仿真器是否支持 SystemVerilog 或硬件协仿真?
我们计划在今后发布的软件版本中为二者提供支持。