如何通过makefile实现Vivado自动化编译-FPGA常见问题社区-FPGA CPLD-ChipDebug

如何通过makefile实现Vivado自动化编译

导言

今天主要介绍通过配置Cygwin(在win环境执行makefile)和Vscode中实现Vivado从建立工程,综合,实现,生成bit,下载等一系列自动化运行。仅需输入make可以实现完成所有流程。

介绍

makefile就是,cygwin是为了能在win环境执行makefile,vscode是为了将cygwin控制台转到vscode进行调试(这里看个人习惯,可做可不做),vivado并没有特别的环境要求,完成这些自动化流程,需要懂一点makefile和tcl脚本,因为Vivado很好的支持了tcl脚本命令。

环境

Win11

Vivado2022.1

Vscode

Cygwin

以上版本均无要求

软件安装及配置

Cygwin安装

先在cygwin官网下载好安装包,安装过程仅需要在Select Packages注意勾选需要的包,gcc-core,make,diffutils,perl,binutils,这里不会的朋友可以网上搜Cygwin执行makefile安装教程,在Installing Cygwin目录选择setup-x86_64.exe即可(这里根据自己电脑体质选择)下面是官网地址:

http://www.cygwin.com/
图片[1]-如何通过makefile实现Vivado自动化编译-FPGA常见问题社区-FPGA CPLD-ChipDebug
官网下载位置

测试一下,打开Cygwin,输入cygcheck –c查看所有包的版本确认自己是否安装成功:

图片[2]-如何通过makefile实现Vivado自动化编译-FPGA常见问题社区-FPGA CPLD-ChipDebug

Cygwin配置

安装完毕需要配置一下.bashrc,打开安装目录,选择home文件夹,用编辑器打开.bashrc,内容末端添加Vivado路径,如下:

# alias cd=cd_func

# vivado
export PATH=$PATH:/cygdrive/C/Xilinx/Vivado/2022.1/bin


结束后在Cygwin控制台执行source .bashrc

Vscode

Vscode只需要配置一下,为了能在Vscode终端执行Cygwin命令(这里不是必须,也可以不用vscode直接用cygwin),点击终端,添加终端,打开setting.json,或者在设置中搜索@feature:terminal然后打开settings.json添加如下代码保存后关闭即可:

{
        "files.autoGuessEncoding": true,
        // cygwin 的安装目录
        "terminal.integrated.shell.windows":"C:cygwin64binbash.exe",

// 使得 cygwin 切换到当前工作目录
“terminal.integrated.env.windows”: {
“CHERE_INVOKING”: “1”
},


// 使 cygwin 能够在 vscode 中正常使用 Shell 命令
“terminal.integrated.shellArgs.windows”: [
“-l”
],
}


Vivado

关于Vivado安装是最简单的,安装完导入lic即可,由于Vivado默认2个线程运行,但大家可以在TCL工作台输入一下命令:get_param general.maxThreads来获得默认线程为2,通过set_param general.maxThreads n,n就是你要设置的线程,根据自己的电脑体质设置(makefile中加也可),也可在Vivado_init.tcl文件设置,这样不需要每次打开工程都设置了。Vivado在win下运行不如Linux,有条件可以直接换Linux环境。

执行

既然环境配置好了,那么我们实际操作一下,以之前发的以太网为例,直接cd到你要运行的目录下,我以KC705为例,进入fpga目录下,执行make all表示运行所有的流程包括下载,执行make fpga执行到生成bit流,执行make vivado则运行Vivado GUI,建立好工程,但不综合,这里我们先执行make fpga,再执行make vivado打开Vivado GUI。流程中的相关信息打印保存在相应目录下的runme中。

/desktop/verilog-ethernet-master/example/KC705/fpga_gmii/fpga

部分打印信息

执行综合

****** Vivado v2022.1 (64-bit)
    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
    
source fpga.tcl -notrace
create_project: Time (s): cpu = 00:00:08 ; elapsed = 00:00:07 . Memory (MB): peak = 1309.457 ; gain = 10.367
Command: synth_design -top fpga -part xc7k325tffg900-2
Starting synth_design

执行生成bit

****** Vivado v2022.1 (64-bit)
    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.

source generate_bit.tcl
# open_project fpga.xpr
Scanning sources…
Finished scanning sources
open_project: Time (s): cpu = 00:00:09 ; elapsed = 00:00:08 . Memory (MB): peak = 1307.023 ; gain = 9.199
# open_run impl_1


总结

对于没有安装Linux的朋友,在win环境使用cygwin是一个比较不错的方案,如果懂一点makefile,然后很好的理解tcl脚本,对执行Vivado编译会是很大的效率提升,不需要再使用Vivado的GUI。

 

请登录后发表评论

    没有回复内容