Vivado设计套件

Vivado设计套件是赛灵思面向未来十年的 “All-Programmable”器件打造的开发个工具,Vivado设计套件包括高度集成的设计环境和新一代从系统到IC级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。这也是一个基于AMBA AXI4 互联规范、IP-XACT IP封装元数据、工具命令语言(TCL)、Synopsys 系统约束(SDC) 以及其它有助于根据客户需求量身定制设计流程并符合业界标准的开放式环境。赛灵思构建的的Vivado 工具将各类可编程技术结合在一起,能够可扩展实现多达1 亿个等效ASIC 门的设计

【视频】使用 Tcl 命令完成设计分析

使用 Vivado 设计套件中的各种设计分析特性。

Vivado HLS 程序优化(基础实例)

前言(本文基于赛灵思官方HLS文档UG871中的7.1节):

          在使用高层次综合,创造高质量的RTL设计时,一个重要部分就是对C代码进行优化。

          Vivado HLS拥有自动优化的功能,试图最小化loop和function的latency,为了实现这一点,软件会在loop和function上并行执行尽可能多的操作(比如说,在function级别上,高级综合总是试图并行执行function)。 

          除了这些自动优化,我们可以手动进行程序优化,即用在不同的solution中添加不同的directive的方法,进行优化和性能对比。其中,对同一个工程,可以建立多个不同的solution(解决方案),为不同的solution添加directive可以达到如下目的: 

1、并行执行多个tasks,例如,同一个function的多次执行或同一loop的多次迭代。这是流水线结构。 

2、调整数组的物理实现((block RAM),函数,循环和端口(I/O),以提高数据的可用性,并帮助数据流更快地通过设计。 

3、提供关于数据dependency的信息,或者缺乏数据dependency,允许执行更多的优化。最终的优化是修改C源代码,以消除在代码中意外的dependency,但是这可能会限制硬件的性能。 

Vivado HLS 开发步骤(高级综合)

对于Vivado Hls来说,输入包括Tesbench,C/C++源代码和Directives,相应的输出为IP Catalog,DSP和SysGen,特别的,一个工程只能有一个顶层函数用于综和,这个顶层函数下面的子函数也是可以被综合的,会生成相应的VHDL和Verilog代码,所以,C综合后的RTL代码结构通常是跟原始C描述的结构是一致的,除非是子函数功能很简单,所需要的逻辑量很小。 通常在main函数以下的函数都可以被综合,也就是说,并不是所有的C/C++都可以被综合,动态内存分配和涉及到操作系统层面的操作不可以被综合。

本文结构框架:

  • Creat New Project新建文档
  • C simulation
  • C systhesis
  • RTL级仿真
  • IP封装
  • 总结
  • 1.Creat New Project新建文档:

    Vivado如何清理工程并保证不缺失必要文件

    作者:材哥,玩儿转FPGA

    前言
    vivado和ISE的使用差别很大,Vivado是专门针对7系列和以后系列的FPGA/AP SOC进行高效设计的工具,特别是最近提出的UltraFast设计方法,能够极大地提高开发效率。ISE在支持老版本器件的基础上,目前也支持7系列/ZYNQ的设计,但是效率不能和Vivado相比。关于vivado的基本使用这里不多说,主要把一些问题点整理成“错题集”,把一些小技巧进行归纳。

    清理/压缩工程
    实际使用vivado的过程中,由于vivado会自动产生一系列文件,有些是不必要时刻保存的中间文件,有些是加快效率的文件(比如编译IP核后产生的文件)。但是在上传svn或者自己做备份的时候希望备份占用尽量少的空间。然而由于vivado不会自动清理,所以这时候就需要我们做手动清理了,很多人采用的方法是根据经验删除没用的文件和文件夹,这种对于不熟悉的人很容易犯下不可挽回的错误。也有人写好了批处理文件可以直接帮助删除的,但是这都不太适合初学者。其实vivado是有tcl命令可以帮助清理的。

    reset_project

    Vivado HLS 图像的获取

    作者: OpenSLee,来源:FPGA开源工作室

    1. 背景知识

    OPENCV(Open Source Computer Vision)被广泛的使用在计算机视觉开发上。使用Vivado HLS视频库在zynq-7000全可编程soc上加速OPENCV 应用的开发,将大大提升我们的计算机视觉开发。

    图1和图2展示了如何使用opencv加速zynq-7000全可编程 soc的计算机视觉开发。

    1> 使用Vivado HLS开发opencv的计算机视觉IP;

    2> 将IP添加到SOC系统中

    3> 验证和下板实验

    本次重点为HLS的图像读入显示,视频读入显示,以及摄像头的读入显示。

    2. HLS 使用到的函数

    enum

    {

    /* 8bit,color or not */

    CV_LOAD_IMAGE_UNCHANGED =-1,//读取图像的原通道数

    /* 8bit,gray */

    Vivado工程经验与时序收敛技巧

    FPGA毕竟不是ASIC,对时序收敛的要求更加严格,本文主要介绍本人在工程中学习到的各种时序约束技巧。

    首先强烈推荐阅读官方文档UG903和UG949,这是最重要的参考资料,没有之一。它提倡要在设计的早期阶段就要排除问题,越到后期时序的改善就越困难。其中HLS层次对性能的影响是最大的。

    本文将从代码风格,时序修正,工程设置等几个方面介绍本人的实践经验,希望让各位初学者快速提高,也希望FPGAer能给出宝贵建议。

    1. 代码风格
    推荐使用Xilinx language templates的代码块,这里的代码能够综合出正确且结构简洁的电路,包括移位寄存器,乘法,复数乘法,FIR滤波器等,凡是涉及到的模块尽量使用官方写法。

    合理的设计代码框架。IO相关的代码、时钟管理单元尽量放在顶层,后者有助于以共享资源从而提高性能降低功耗。模块的输出最好是使用寄存器输出,有助于降低路径延时帮助时序收敛。

    Vivado平台IP核的封装方式

    作者:浅搁 FPGA2嵌入式

    1. 前言

    IP核这个东西相信很多人都不陌生吧,不管是哪个FPGA厂家,都会有自己的一些现成IP核供用户使用,从而节省设计的开发时间。在一个设计中,个人觉得将模块变成一个个直观的图形界面更有助于理清思路,增强整个设计的逻辑性。以前用过Microsemi的开发平台,觉得挺人性化的,你写完代码后,直接把.v文件拉到画布中,文件便会以图形模块的形式显示出来,然后拖动鼠标便可以把两个模块的对应引脚连接起来,十分方便直观。

    2. Vivado中的IP核封装

    在Vivado平台中,我一直想寻找看看有没有这种形式,最终发现并没有~~。不过Vivado也提供了类似的方式,你首先要把.v文件封装成IP,然后才能放到画布中调用,虽然过程有点繁琐,不过有总比没有好呀~~

    IP核的封装其实也不会很难,前提是你得把.v文件先准备好,如果连代码都没有还扯啥犊子哟。

    在打开Vivado工程后,单击“Tools ---- Creat and Package IP”。嗯,就是这厮了,然后一路Next。

    接着出现如下界面,按着选项选择自己的需求即可,点击“Next”,正式进入主题。

    把WNS提升53%?使用Vivado的“Placement Seeds”

    尽管 Vivado 不支持 “placement cost tale”的功能,InTime 却有一个相似功能叫做“Placement Exploration”配方(Receipe),并且不会对性能产生任何影响。在本文中,我们将通过展示几则用户案例的结果,来了解这个布局配方的作用以及它能对您有哪些帮助。

    1. 什么是“Placement Exploration”配方?

    Placement Exploration 这种策略可以将非关键的寄存器位置随机化。这样可以让 Vivado 探索更多的可能性,使用不同的布局布线计算来产生不同的结果,同时不会影响设计的功能。

    2. 运行原理

    这个配方需要设计有一些非关键的单元(单元已经达到时序路径),目标器件要有一些未使用的 slice。设计中未使用的 slice 越多,就有更多的运行组合可以创造出来,从而提升随机性,取得更好的结果。

    如果这些需要没有满足,用户在运行配方的时候会看到下面的报错。

    Vivado下的仿真入门

    本文通过一个简单的例子,介绍Vivado 下的仿真过程。主要参考了miz702的教程,同时也参考了Xilinx的ug937,  xapp199.。

    我的软件平台是Vivado 2015.4, 硬件平台是黑金的AC7010, Zynq 7000, 其实与平台关系不大。

    本文分为四部分:工程的建立,测试代码,仿真图形输出,更复杂点的例子。

    工程和源码下载链接: 链接:http://pan.baidu.com/s/1gflHSdH 密码:fpi5

    1:工程的建立:

    打开Vivado 软件,
    并点击新建工程, New Project,并点击Next

    出现如图界面, 输入工程名和路径,我这里是qim

    【视频】Vivado 报告介绍

    生成并使用 Vivado 时序报告分析不成功的时序路径。

    同步内容