设置Vivado的RemoteHost功能

1.前言

最近实验室多了一台新的服务器,想尝试用服务器上的Vivado跑本地工程的编译(综合布局布线什么的),但是从网上搜了很多教程,感觉都不太完整,而且很多都是使用X11或者VNC实现,并没有完整实现Vivado的Remote Host功能。于是对这一部分进行了一下探索。在探索时找到了这篇CSDN文章,以及Vivado官方提供的UG904

因为Windows下的Vivado是没有Remote Host功能的,我本地的Vivado安装在WSL里,发行版是Rocky Linux 8,其实就可以当做Centos。服务器上的系统是Centos 7。我下面的各个操作都是在Vivado 2021.2这个版本上的。

其实Vivado的Remote Host功能的实现很简单,就是在共享文件夹里通过SSH在服务器的Vivado运行脚本罢了,所有的交互都是通过共享文件夹和SSH进行的,所以其实通用性和稳定性也不是太好。

2.使用Remote Host的需求

UG904提供了以下要求,主要分为三点,包括环境变量、Vivado安装和Vivado项目文件共享。
img

2.1 Vivado安装

前面提到使用Remote Host功能需要Linux上的Vivado。同时本地电脑上和服务器上装的和运行的版本需要一致(也可以装多个版本,但是就需要在服务器上对环境变量分别进行设置),比如说可以设置下面这样的环境变量,以及对settings64.sh进行source:

export XILINX_VIVADO="/opt/Xilinx/Vivado/2021.2"
export PATH="$PATH:$XILINX_VIVADO/bin"
source /opt/Xilinx/Vivado/2021.2/settings64.sh

license也需要安装好。

2.2 配置dash

对于Ubuntu系统,我从其他博客中看到可能需要将dash进行重新配置,切换回基本的sh,不过我这里没有这个问题。

2.3 SSH设置

Vivado直接调用SSH对远程服务器发送消息,告知其运行脚本进行编译。这里有一个比较麻烦的问题,就是Vivado在连接服务器时,是不能指定用户名的(我没找到方法)。也就是说,在本地电脑上用user01启动Vivado然后连接远程服务器,它会直接调用SSH连接Remote Host,这样他就会直接连接远程服务器的user01用户。那么在服务器和本地最好有相同的用户,方便连接。

SSH可以设置密钥,以节省输入密码的步骤,可以参考这篇文章。如果想用密码,也可以不使用,只不过后面在执行时需要另外输入密码。

2.4 共享文件设置(NFS)

共享文件的设置我主要是看的这篇文章,使用NFS进行共享,但实际上还做了一些修改。

我遇到了两个问题:

  • 从本地电脑通过NFS传递到服务器,权限可能出现问题
  • 共享文件后如何运行vivado

2.4.1 从本地电脑通过NFS传递到服务器,权限可能出现问题

对于第一个问题,我是通过修改/etc/exports文件解决的。因为默认情况下远程服务器在访问本的NFS server时,权限问题会导致其无法正常执行vivado新创建的脚本。我将这一文件做了以下修改:

/nfsroot *(rw,sync,all_squash,anongid=1000,anonuid=1000)

其中,all_squash代表使用匿名进行连接,anongid=1000代表连接时全部当做UID为1000的用户进行访问,anongid=1000代表当做GID为1000。这个主要是根据本地的用户修改的,因为我本地用户和服务器用户的UID和GID是不一致的,因此我需要所有的访问都当做本地电脑的用户进行访问,这样就不会出现权限问题了。

2.4.2 共享文件后如何运行vivado

这个问题比较简单,实际上Vivado就是通过共享文件夹进行交互的。所以需要把整个Vivado工程拷贝至/nfsroot(你的nfs共享文件夹),然后在这个文件夹处本地启动vivado(远程只需要安装好就行,不用启动)。

3.Remote Host

3.1 本地Vivado配置

Vivado的Remote Host配置页面:
img
由于我的服务器的SSH端口设置为了20022,因此在下面的指令处添加了-p 20022,同时删除了-q这样可以看到一些信息。在添加时,name就要输入远程服务器的地址。

可以使用下面的test来测试连接情况。注意需要远程服务器和本地同时有同一个用户(我没找到指定用户名的方法)。

3.2 执行

全部配置好后,便可以在Vivado中执行了。在Launch时选择remote hosts即可。
img

开始执行后,可以从打开本地vivado的终端处看到SSH返回的信息,并可以通过这些信息进行一些问题的检查。

posted @ 2025-10-28 21:58  Mieah108  阅读(153)  评论(0)    收藏  举报