Vivado入门
12 Oct 2020 1221745字 4073分 次 FPGA打赏作者 CC BY 4.0 (除特别声明或转载文章外)
1 前言
在Qualcomm接触了一下Vivado,确实比Quartus牛逼一些。
2 Vivado FPGA Design Flow
2.1 Logic Design Flow
Design Flow如下图:
设计输入可以是Verilog、VHDL、SystemVerilog,也可以是IP、DSP和嵌入式处理器;
综合时可以加入第三方的网表文件,同时也可以加入约束文件(不支持.ucf,支持.xdc);
综合之后进行时序分析;
实现过程中“opt_desgin”、“place_design”和“route_design”是必须的;
实现之后再次进行时序分析;最终生成bit流。
紫色部分都会生成相应的.dcp文件。
2.2 System Level Design Flow
系统级设计流程如下:
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
可以按照以下结构创建工程目录:
以Project Mode运行,会生成以下三个文件夹和最后一个工程文件:
- project.data:存放floorplan和网表数据;
- project.runs:存放综合和实现时生成的文件;
- project.srcs:存放HDL代码、约束、网表和XDC文件;
- project.xpr;工程文件。
3 IP Design
3.1 Vivado IP Overview
在Vivado下调用IP会生成以下文件:
首先是例化的模板,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为核心的。设计流程如下图:
在IP Catalog里除了赛灵思的IP之外,还可以有第三方的IP或者用户自定义的IP,这些都可以用IP Pacjager工具加入到IP Catalog里。
4 Simulation
4.1 Simulation Flow
仿真的基本流程如下: