虚拟机里Vivado比实体机跑得还快?提升可达60%!

虚拟机里Vivado比实体机跑得还快?提升可达60%!

前言

在大规模的Vivado项目中,Implementation时间超过几个小时,因此等待(摸鱼)的时间无疑十分长,而且还有可能时序不通过。然而在Xilinx的论坛中有着一些虚拟机中比实体机跑的还快的传说,笔者实测快的不止一点。实测得到,在一个Block RAM资源占用率超过60%的项目中,Synthesis的速度和实体机相差不大,但是Implementation速度在实体机跑了85分钟,而在虚拟机跑了52分钟!
对此,论坛有大神解释称是windows的Vivado的GUI日志打印的效率低,因此大量时间都浪费在IO中。从CPU占用率可以看到,在Windows下CPU利用率是很低的,而内存占用非常大,猜测一部分原因是优化问题导致大量cache miss,另外一部分原因是IO中浪费很多时间。论坛中也有大神说运行Implementation的tcl而不在Vivado直接Impelmentation,这样也会快很多,这个本人并未尝试,但是感觉有用。在此,针对虚拟机方法做一个简单的教程。
本教程适合于用Linux基础且需要提升Implementation速度的人

虚拟机安装

针对特定的Vivado版本,建议使用此Vivado版本之前发布的Linux发行版(Vivado建议在测试过的Linux系统运行,毕竟Linux的兼容性不像Windows那样)。比如我使用Vivado2020.1,建议使用Ubuntu18.04以下的版本。使用VMWare Workstation进行安装,不会的跟着这个教程去做就行了。
https://blog.csdn.net/qq_39657434/article/details/112252844
内存分配尽量多分但不要超过实体机。
然后Xilinx官网下载Linux版Vivado,chmod +x 下载文件给运行权限,然后终端运行文件即可开始安装。

提高体验

Vivado跑的工程可以使用VMWare的共享文件夹进行共享,可在Windows与Linux随意访问,参考以下连接进行配置
https://zhuanlan.zhihu.com/p/43920548
打开Vivado会发现Linux下的字体渲染是有点随意的,完全没有边缘平滑。同时Vivado的内部代码编辑器是很垃圾的,需要配置外部编辑器,目前比较主流的是VSCode。不过在虚拟机内图形性能是有点差的,既然都配置共享文件夹了,有没有一种可能,可以在Linux中的Vivado双击跳转到Windows的VSCode?答案是可以的。
方法是实体机做一个简单的服务器,接收虚拟机的跳转请求。这里实体机使用Python Flask实现,虚拟机使用Curl Post实现。
首先我们需要将虚拟机的IP固定,跟着这个教程的前半部分做,到了后半部分固定Ubuntu ip时,可以使用ubuntu的GUI的设置中去固定ip、网关和dns,然后重启ubuntu即可。
https://blog.csdn.net/chinaxsw/article/details/1041605690
然后我们固定得到实体机的ip为192.168.65.1,ubuntu的ip为192.168.65.128,然后我们就能将这个固定ip写到flask服务器了。
首先实体机需要安装Python且下载Flask库

pip install flask

并且VSCode的目录要加入到系统的PATH中。
下载脚本,将脚本中的全局变量SHARE_FOLDER_WINDOWSSHARE_FOLDER_LINUX替换成VMWare共享文件夹在Windows与Linux下的目录
然后运行这个脚本
虚拟机端需要安装curl、dialog

sudo apt-get install curl dialog

然后将脚本放在某个目录,比如Home,然后chmod +x vscode_remote.sh给这个脚本可运行的权限
Vivado设置外部编辑器Tools->Settings->Text Editor->Custom Editor->右边3个点
在这里插入图片描述

填入以下命令

/home/<用户名>/vscode_remote.sh [file name] [line number]

这样Vivado就能通过Curl的HTTP Post方法将文件名和行数发送到实体机,实体机再将共享文件夹的地址替换成实体机中的真实地址,即可再实体机的VSCode打开。
在实体机的Vivado外部链接VSCode会出现界面无响应,但是这种方法不会。

总结

虽然这种方法需要折腾不少时间,但是雀食方便很多,只需要把工程放在共享文件夹中,然后用法就和Windows中的Vivado一样。当然直接使用Linux系统某种程度上更方便,但是一些软件的缺失使得Linux也比较难办公,双系统切换也麻烦。实测虚拟机内性能损耗十分小,完全可以接受。另外也有人使用WSL来装Vivado,但是WSL配置桌面环境复杂且使用CPU渲染GUI,还是比较麻烦。
脚本Github repo: https://github.com/HeroChan0330/RunVivadoInVMWare

要在Mac虚拟机上安装Vivado,您可以按照以下步骤进行操作: 1. 首先,确保您的虚拟机已经安装好Ubuntu 16.04操作系统,并且具备足够的磁盘空间。对于Vivado 2017.1,安装包需要大约20GB的空间,而安装软件时还需要额外的30GB左右的空间。 2. 在虚拟机中注册Xilinx账号,您可以在Xilinx中国官网上进行注册,常用的邮箱如QQ邮箱均可使用。这将为您提供所需的许可证和软件下载权限。 3. 您可以选择在虚拟机中直接下载Vivado安装包,或者在宿主机中下载后通过共享文件夹传输到虚拟机中。 4. 下载Vivado安装包后,您可以按照官方文档的指导进行安装。请注意,不同版本的Vivado可能在安装过程中有所差异,请确保参考适用于您的版本的文档。 5. 安装完成后,请按照官方文档的指导进行许可证的获取、激活和启动。 如果您在Linux系统下安装Vivado成功后导入了许可证,但在查看许可证状态时无法找到许可证,请确保您正确导入了许可证文件,并按照文档中的指导进行操作。您可能需要检查许可证文件的路径和权限,以确保许可证能够被正确识别。 总结一下安装Vivado的步骤: 1. 安装Ubuntu 16.04虚拟机并确保磁盘空间足够。 2. 注册Xilinx账号并获取下载权限。 3. 下载Vivado安装包。 4. 按照官方文档进行安装、许可证获取、激活和启动。 5. 如有许可证导入问题,请确保正确导入并检查路径和权限。 希望这些信息能对您有所帮助!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值