VERDVANA'S BLOG Verdvana

Vivado入门


1 前言

        在Qualcomm接触了一下Vivado,确实比Quartus牛逼一些。


2 Vivado FPGA Design Flow

2.1 Logic Design Flow

        Design Flow如下图:

img1

        设计输入可以是Verilog、VHDL、SystemVerilog,也可以是IP、DSP和嵌入式处理器;

        综合时可以加入第三方的网表文件,同时也可以加入约束文件(不支持.ucf,支持.xdc);

        综合之后进行时序分析;

        实现过程中“opt_desgin”、“place_design”和“route_design”是必须的;

        实现之后再次进行时序分析;最终生成bit流。

        紫色部分都会生成相应的.dcp文件。

2.2 System Level Design Flow

        系统级设计流程如下:

img2

        IP Package可以把自己设计的代码封装成新的IP放入IP Catalog中。

2.3 Design Checkpoint

        Design Checkpoint由三部分构成:

  • Logical Netlist(EDIF);
  • Constraints(XDC);
  • Physical Data(XDEF)。

        如果工程文件名为top,那么生成的Design Checkpoint分别为:

  • Synthesis:top.dcp;
  • Opt:top_opt.dcp;
  • Place:top_placed.dcp;
  • Route:top_routed.dcp。

        也可以用相应的tcl脚本生成或读取Design Checkpoint文件:

write_checkpoint
read_checkpoint

2.4 Design Database

        可以按照以下结构创建工程目录:

img3

        以Project Mode运行,会生成以下三个文件夹和最后一个工程文件:

  • project.data:存放floorplan和网表数据;
  • project.runs:存放综合和实现时生成的文件;
  • project.srcs:存放HDL代码、约束、网表和XDC文件;
  • project.xpr;工程文件。

3 IP Design

3.1 Vivado IP Overview

        在Vivado下调用IP会生成以下文件:

img4

        首先是例化的模板,verilog的后缀为.veo,VHDL的后缀为.vho。

        然后就是综合网表文件、行为级仿真文件和Testbench。

        对于第三方的仿真工具(Cadence的IES和Synopsys的VCS)会生成HDL文件。

        对于第三方综合工具,会生成.v或.vho的黑盒文件。

        有的IP会生成Example Design,它是独立的以IP为顶层的工程,方便仿真和综合。

        在Vivado下通常有两种方式创建IP,一种是创建独立的IP工程,一种是在工程内创建IP。这两种方式对于IP的综合都可以采用OOC(out of context)或Globally的方式。OOC是先对IP综合,生成相应的.dcp文件;Globally是只生成相应的RYL代码,最后与整个工程一起综合。

        IP的版本既可以锁定,禁止更新;也可以更新到最新版本。

        把IP交给第三方综合工具综合的步骤如下:

  • 创建IP工程;
  • 生成每个IP的.scp文件;
  • 把生成的_stub.v或.vho文件加入到第三方综合工具的工程里;
  • 生成.edf网表文件;
  • 把.edf和.dcp文件加入到Vivado的工程中;
  • 使用Vivado进行实现。

3.2 Vivado IP Design Flow

        Vivado的设计理念是以IP为核心的。设计流程如下图: img5

        在IP Catalog里除了赛灵思的IP之外,还可以有第三方的IP或者用户自定义的IP,这些都可以用IP Pacjager工具加入到IP Catalog里。


4 Simulation

4.1 Simulation Flow

        仿真的基本流程如下: