购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 Vivado设计套件

Xilinx公司前一代的软件平台基于ISE集成开发环境,如Xilinx ISE Design Suite 13.x,这是在早期的Foundation系列基础上发展并不断升级换代的一个开发软件,包含集设计输入、仿真、逻辑综合、布局布线与实现、时序分析、功率分析、下载与配置等几乎所有FPGA开发工具于一体的集成化环境。

Xilinx公司于2012年发布了新一代的Vivado设计套件,改变了传统的设计环境和设计方法,打造了一个最先进的设计实现流程,可以让用户更快地实现设计收敛。Vivado设计套件不仅包含传统上寄存器传输级(RTL)到比特流的FPGA设计流程,而且提供了系统级的设计流程,全新的系统级设计的中心思想是基于知识产权(Intellectual Property,IP)核的设计。与前一代的ISE设计平台相比,Vivado设计套件在各方面的性能都有了明显的提升,如表2.1所示。

表2.1 Vivado与ISE对比

2.1.1 Vivado软件安装流程

1.安装Xilinx FPGA设计套件——Vivado

进入Xilinx中国网站,网址为http://china.xilinx.com/,单击网站主页的“技术支持”选项,选择“下载和许可”,即可找到Vivado软件进行下载(本书例程基于Vivado 2014.4版本,64位的Windows 7操作系统)。根据Xilinx官方网站发布的Vivado支持的操作系统示意图,如图2.1所示,建议Vivado软件安装在64位的Windows 7或Windows 8.1操作系统下,建议安装内存大于4GB,建议硬盘空间大于20GB。

图2.1 Vivado不同版本软件支持的操作系统

注意: Vivado 2014.4下载后的文件约为6GB,安装软件时,由于临时解压文件比较多,C盘需要有足够的空间,Vivado 2014.4安装后占用约13GB的空间。

Xilinx的官方网站上不仅提供软件下载,还提供一些软件说明、硬件更新、参考设计、经常遇到的问题及解决方法、丰富的视频教程等参考资料供读者学习。

下载安装后,解压缩,运行xsetup.exe, 进入安装程序。如果系统弹出可用的Vivado新版本提示对话框,如图2.2所示,则直接单击“Continue”按钮进入下一步。

图2.2 可用的Vivado新版本提示对话框

软件会提示Vivado 2014.4支持的操作系统等信息,如图2.3所示,单击“Next”按钮,进入下一步。

图2.3 Vivado 2014.4支持的操作系统

软件提示是否接受许可证管理,如图2.4所示,勾选“I agree”复选框,单击“Next”按钮。

图2.4 软件许可证管理界面

进入选择Vivado安装版本界面,如图2.5所示。对于初学者,建议选择第一项或第二项,第一项Vivado Webpack版本支持的器件和功能受限制,但是不需要安装License。第二项Vivado Design Edition版本安装完成后还需要安装License才能使用。

图2.5 选择Vivado安装版本界面

然后选择安装Vivado工具组件和器件库,如图2.6所示,XUP A7板卡是基于Artix-7架构的,对于初学者,图示中勾选的项是必须安装的。

图2.6 选择安装Vivado工具组件和器件库

进入设置安装路径界面,如图2.7所示。Xilinx全部软件都不能安装在带空格和中文字符的目录下,即不能安装在“Program Files”目录下。建议所有软件都安装在某个盘的根目录下。

图2.7 设置安装路径界面

Vivado设计套件的安装时间视计算机性能而定,为10~30min,安装过程中弹出的附属工具/软件对话框一律选择确定。

2.添加License文件

软件安装完毕后会弹出License管理界面,如图2.8所示。注意:如果是Vivado Webpack版本,不会弹出该界面。

(1)添加本地License文件

如果已经有License文件,选择“Load License”选项,然后单击“Copy License”按钮,选择准备好的License文件。

(2)在Xilinx官方网站获取License文件

勾选“Get My Purchase License(s)”选项,单击“Connect Now”按钮,链接到Xilinx官方网站。按照网站提示进行登录或注册新用户,然后进入License文件下载界面,选择License版本。最后生成的License文件会发送到注册时使用的邮箱里,下载License文件,剩余步骤与添加本地License文件的方式一样。

图2.8 License管理界面

2.1.2 IP封装器、集成器和目录

Vivado设计套件包括IP封装器、IP集成器和可扩展IP目录三种全新的IP功能,用于配置、实现、验证和集成IP。

采用IP封装器,可以在设计流程的任何阶段将部分设计或整个设计转换为可以重复使用的内核,这些设计可以是RTL、网表、布局或布线后的网表。IP封装器可以创建IP的IPXACT描述,使之符合IP-XACT协议,并在XML文件中设定了每个IP的数据。一旦IP封装完成,利用IP集成器功能就可以将IP集成到系统设计中。

Vivado设计套件包含即插即用型IP集成设计环境,并且具有IP集成器特性,用于实现IP智能集成,从而解决了RTL设计生产力的问题。Vivado IP集成器提供基于Tcl脚本编写和图形化设计的开发流程,通过IP集成器提供的器件和平台层面的互动环境,能够保证实现最大化的系统带宽,并支持关键IP接口的智能自动连接、一键式IP子系统生成、实时设计规则检查(DRC)等功能。

Vivado IP集成器采用业界标准的AX14互连协议,能够将不同的IP组合在一起。在IP之间建立连接时,设计者工作在“接口”而不是“信号”的抽象层面上,并且可以像绘制原理图一样,通过DRC正确的连接,很容易地将不同的IP接口连接在一起。组合后的IP可以重新进行封装,作为单个设计源,在单个设计工程或多个工程之间进行共享。通过接口层面上的IP连接,能够快速组装复杂系统,加快系统实现,大幅提高生产力。

Vivado可扩展IP目录允许设计者使用自己创建的IP及Xilinx和第三方厂商许可的IP创建自己的标准IP库。Xilinx按照IP-XACT标准要求创建的该目录能够让设计者更好地组织IP,用于整个机构共享。Xilinx系统生成器(System Generator)和IP集成器已经与Vivado的可扩展IP目录集成,设计者可以很容易地访问已经编好的IP目录,并将其集成到自己的设计项目中。

2.1.3 标准化XDC约束文件

Xilinx Vivado设计套件基于目前最流行的一种约束方法—Synopsys设计约束(Synopsys Design Constraints,SDC)格式,并增加了对FPGA的I/O引脚分配,从而构成了新的Xilinx设计约束(Xilinx Design Constraints,XDC)文件。Vivado不再支持以前设计套件ISE的用户约束文件(User Constraints File,UCF)格式。

1.XDC约束文件的特点

1)基于业界标准的Synopsys设计约束,并增加Xilinx专有的物理约束。

2)XDC文件基于TCL的格式,不是简单的字符串。通过Vivado TCL翻译器,可以像其他TCL命令一样读取XDC文件,并按顺序从语法上进行分析。

3)设计者可以在设计流程的不同阶段添加XDC约束:一种方式是将约束保存在一个或多个XDC文件中,另一种方式是通过TCL脚本生成约束。

2.XDC与UCF对比

Vivado的XDC与ISE的UCF存在很大的区别,主要表现在以下几点。

1)XDC是顺序语言,并带有明确的优先级规则。

2)XDC通常应用于寄存器、时钟、端口、引脚和网线等设计对象,而UCF应用于网络。

3)默认状态下,对于UCF来说,在异步时钟组之间无时序关系;对于XDC来说,所有时钟之间都是有联系的,存在时序关系。

4)在XDC中,在相同的对象中存在多个时钟。

为了便于读者理解XDC与UCF两者之间的区别,表2.2给出了Vivado与ISE设计套件中约束文件的比较。

表2.2 Vivado与ISE中约束文件的比较

2.1.4 工程命令语言

工程命令语言(Tool Command Language,TCL)在Vivado设计套件中起着不可或缺的作用,Tcl不仅能对设计项目进行约束,还支持设计分析、工具控制和模块构建。此外,利用Tcl指令可以运行设计程序、添加时序约束、生成时序报告和查询设计网表等操作。

Tcl在Vivado设计套件中支持:

1)Synopsys设计约束,包括设计单元和整个设计的约束;

2)XDC设计约束的专门指令为设计项目、程序编辑和报告结果等;

3)网表文件、目标器件、静态时序和设计项目等包含的设计对象;

4)通用的Tcl指令中,可以方便地直接使用支持主要对象的相关指令清单。

Tcl脚本支持两种设计模式:基于项目的模式和非项目批作业模式。对于非项目的批作业设计流程,可以最小化存储器的使用,但是要求设计者自行编写checkpoint,人工执行其他项目管理功能。两种流程都能从Vivado设计套件中存取结果。如表2.3所示,通过几种不同的方式,Tcl指令可以输入到Vivado设计套件中进行交互的设计。

表2.3 Vivado设计套件的不同工作方式

Vivado IDE利用Tcl指令具有以下优点:

1)设计约束文件XDC可以利用Tcl进行综合和实现,而时序约束是改善设计性能的关键;

2)强大的设计诊断和分析的能力,利用Tcl指令进行静态时序分析STA要优于其他方式,具有快速构建设计和定制时序报告的能力,进行增量STA的what-if假设分析;

3)工业标准的工具控制,包括Synplify、Precision和所有ASIC综合和布局布线,第三方的EDA工具利用相同的接口;

4)包括Linux和Windows的跨平台脚本方式。

2.1.5 Vivado设计套件的启动方法

常见的启动Vivado设计套件的方法有以下两种。

1)在Windows 7操作系统主界面下,执行菜单命令【开始】→【所有程序】→【XilinxDesign Tools】→【Vivado 2014.4】→【Vivado 2014.4】。

2)在Windows 7操作系统的桌面,单击标示为“Vivado 2014.4”的图标,如图2.9所示。

图2.9 Vivado桌面图标

3)在Windows 7操作系统的主界面左下角的命令行(默认为“搜索程序和文件”)中输入“Vivado”,然后按回车键,系统会启动Vivado设计套件。

2.1.6 Vivado设计套件的界面

Vivado设计套件的界面包括Vivado 2014.4的主界面和Vivado设计主界面。其中Vivado设计主界面包括流程处理界面、工程管理器界面、工作区窗口和设计运行窗口。

1.Vivado 2014.4的主界面

当启动Vivado设计套件后,进入Vivado 2014.4主界面,如图2.10所示,该界面的所有功能图标按组分类。

图2.10 Vivado 2014.4主界面

(1)“Quick Start”分组

1)Create New Project

该选项用于启动新设计工程项目的向导,指导用户创建不同类型的工程项目。

2)Open Project

该选项用于打开工程项目。打开浏览器,用户可以打开Vivado工程项目文件(.xpr扩展名),PlanAhead工具创建的工程文件(.ppr扩展名)和ISE设计套件所创建的工程项目文件(.xise扩展名)。

3)Open Example Project

该选项用于打开示例工程项目,Vivado可以打开的示例工程类型如图2.11所示。

图2.11 Vivado可以打开的示例工程类型

● BFT Core:小型RTL工程项目。

● Wavegen(HDL):包含3个嵌入IP核的小型工程项目。

● CPU(HDL):大型混合语言的RTL工程项目。

● CPU(synthesized):大型综合的网表工程项目。

● Embedded Design…:提供了基于MicroBlaze设计和Zynq设计的模板,并可以在所选择的器件上生成嵌入式设计模板。

(2)“Tasks”分组

1)Manage IP

该选项用于管理IP,用户可以创建或打开一个IP位置。允许用户从不同的设计工程和源控制器管理系统访问IP,通过Vivado IP目录,用户可以浏览和定制交付的IP。

2)Open Hardware Manager

该选项用于打开硬件管理器,允许用户快捷地打开Vivado设计套件的下载和调试器界面,将设计编程下载到硬件中。通过该工具所提供的Vivado逻辑分析仪和Vivado串行I/O分析仪特性,用户可以对设计项目进行调试。

3)Xilinx Tcl Store

该选项是Xilinx Tcl开源代码商店,用于在Vivado设计套件中进行FPGA的设计。第一次选中该选项,会弹出如图2.12所示的对话框,提示用户即将从Xilinx Tcl商店安装第三方的Tcl脚本,单击“OK”按钮即可。通过Tcl商店,能够访问多个不同来源的多个脚本和工具,用于解决不同的问题和提高设计效率。用户可以安装Tcl脚本,也可以与其他用户分享自己的Tcl脚本。

(3)“Information Center”分组

该分组是Vivado集成设计套件的信息中心,提供了学习文档、教程、视频等资源。

1)Documentation and Tutorials

该选项用于打开Xilinx的文档教程和支持设计数据。

图2.12 Vivado提示安装第三方Tcl脚本

2)Quick Take Video

该选项用于快速打开Xilinx视频教程。

3)Release Note Guide

该选项用于发布注释向导,如打开Vivado Design Suite Release Notes,Installation,and Licensing Guide文档。

2.Vivado流程处理主界面

Vivado流程处理主界面如图2.13所示,在Vivado设计主界面左侧的“Flow Navigator(流程向导)”界面中给出了工程项目的主要处理流程。

图2.13 Vivado流程处理主界面

(1)Project Manager(工程项目管理器)

1)Project Settings(工程项目设置):配置设计合成、设计仿真、设计实现及和IP有关的选项。

2)Add Sources(添加源文件):在工程项目中添加或创建源文件。

3)Language(语言模板):显示语言模板窗口。

4)IP Catalog(IP目录):浏览、自定义和生成IP核。

(2)IP Integrator(IP集成器)

1)Create Block Design(创建模块设计)。

2)Open Block Design(打开模块设计)。

3)Generate Block Design(生成模块设计):生成输出需要的仿真、综合、实现设计。

(3)Simulation(仿真)

1)Simulation Setting(仿真设置)。

2)Run Simulation(运行仿真)。

(4)RTL Analysis(RTL分析)

Open Elaborated Design(打开详细描述的设计)。

(5)Synthesis(综合)

1)Synthesis Settings(综合设置)。

2)Run Synthesis(运行综合)。

3)Open Synthesized Design(打开综合后的设计)。

(6)Implementation(实现)

1)Implementation Settings(实现设置)

2)Run Implementation(运行实现)

3)Open Implementation Design(打开实现后的设计)

(7)Program and Debug(编程和调试)

1)Bitstream Settings(比特流设置)。

2)Generate Bitstream(生成比特流)。

3)Open Hardware Manager(打开硬件管理器)。

3.工程项目管理器主界面

工程项目管理器(Project Manager)窗口界面如图2.14所示,在该界面窗口下显示所有设计文件及类型,以及这些设计文件之间的关系。

图2.14 工程项目管理器窗口界面

(1)Sources(源文件窗口)

该窗口允许用户管理工程项目的源文件,包括添加文件、删除文件和对源文件进行重新排序,用于满足指定的设计要求。源文件窗口包含以下几部分。

1)Design Sources(设计使用的源文件):显示设计中使用的源文件类型,这些源文件类型包括Verilog、VHDL、NGC/NGO、EDIF、IP核、数字信号处理(DSP)模块、嵌入式处理器和XDC/SDC约束文件。

2)Constraints(约束文件):显示用于对设计进行约束的约束文件。

3)Simulation Sources(仿真源文件):显示用于仿真的源文件。

(2)源文件窗口视图

源文件窗口提供了以下视图,用于显示不同的源文件。

1)Hierarchy(层次视图)。

层次视图用于显示设计模块和例化的层次。顶层模块定义了用于编译、综合和实现的设计层次。Vivado设计套件自动检测顶层的模块,此外用户可以对某个设计源文件,通过单击鼠标右键使用“Set as Top”命令手工定义顶层模块。

2)Library(库视图)。

库视图显示了保存到各种库的源文件。

3)Compile Order(编译顺序)。

该视图显示了所有需要编译的源文件顺序。顶层模块通常是编译的最后文件。基于定义的顶层模块和精细的设计,用户允许Vivado设计套件自动确定编译的顺序。此外,用户通过右击设计源文件,使用“Hierarchy Update”命令,可以人工控制设计的编译顺序,即重新安排源文件的编译顺序。

(3)源文件窗口工具栏命令

1) 图标。

鼠标左键单击该图标,打开查找工具条,允许快速定位源文件窗口内的对象。

2) 图标。

鼠标左键单击该图标,在源文件窗口展开层次设计中的所有设计源文件。

3) 图标。

鼠标左键单击该图标,将所有的设计源文件都折叠回去,只显示顶层对象。

4) 图标。

鼠标左键单击该图标,打开所选定的源文件。

5) 图标。

鼠标左键单击该图标,添加或创建RTL源文件、仿真源文件、约束文件、DSP模块或嵌入式处理器,以及已经存在的IP核。

4.工作区窗口

工作区窗口如图2.15所示,在该窗口下,给出了设计报告总结、综合、实现设计输入、查看设计、功耗等信息。

5.设计运行窗口

设计运行窗口如图2.16所示,可以切换Tcl Console、Messages、Log、Reports和Design Runs界面。

图2.15 工作区窗口

图2.16 设计运行窗口

(1)Tcl Console

Tcl控制台界面。可以在该界面下输出Tcl命令或预先写好的Tcl脚本,控制设计流程的每一步。

(2)Messages

消息窗口显示了工程项目的设计和报告信息,如图2.17所示。通过选择warnings、infos和status的状态,实现对消息的分组显示,以便用户可以在不同的工具或处理过程中快速地定位消息。

图2.17 消息窗口

(3)Log

日志窗口用来显示对设计进行编译命令活动的输出状态,这些命令用于综合、实现和仿真。输出显示是连续滚动格式的,当运行新的命令时,就会覆盖输出显示。

(4)Reports

该窗口用于显示当前状态运行的报告。当完成不同的操作步骤后,对报告进行更新。当执行完不同的步骤时,能够对报告进行分组,以便快速定位查找。双击某一项报告,可以在文本编辑器中打开报告文件。 8T0uXzFDuYiK6Qy4SqFyxlcbYLnd0SKZyr1s0qjfLLJv7yq9aZVe+60rPrldnH3H

点击中间区域
呼出菜单
上一章
目录
下一章
×