跳转到主要内容

史上最全的SpinalHDL运行VCS+Vivado教程

judy 提交于

本文转载自:<span id="profileBt"><a href="https://mp.weixin.qq.com/s/XKU4j2AKw_KfDdKRVWnayQ"&gt; Spinal FPGA微信公众号</a></span>

本篇文章来源于微信群中的网友,分享下在SpinalHDL里如何丝滑的运行VCS跑Vivado相关仿真。自此仿真设计一体化不是问题~

<strong>环境依赖</strong>

SpinalHDL 1.7.1 (如果使用 1.7.0 版本,需要每次在 VCS 运行前导入 synopsys_sim.setup 文件到仿真目录)

Xilinx Vivado 2021.2

Synopsys vcs-mx_O-2018.09-SP2

Synopsys Verdi _O-2018.09-SP2

GCC/GXX 4.8.5

IDEA 2021

<strong>使用 VCS 预编译 Xilinx 官方 IP</strong>

首先将默认的 gcc/g++ 切换到 4.8.5 版本

打开 vivado,在 Tools → Compile Simulation Libraries,选择仿真器 VCS,其他按需选择。

选择 预编译库保存路径 以及 VCS 可执行路径。

由于一开始选择了默认版本gcc/g++,这里直接使用默认执行路径。

下面是笔者的配置图:
<center><img src="http://xilinx.eetrend.com/files/2022-08/%E5%8D%9A%E5%AE%A2/100563105-26…; alt=""></center>

Click Compile 等待完成…(3 min的样子)

结束后会有部分编译失败,这是因为 System C 的环境没有配置,但由于该部分组件笔者不会使用到,便忽略了。

此时,前面选择的预编译库保存路径下会出现synopsys_sim.setup 配置文件,用于 vcs 启动前自动加载预编译库。

同时可以将 ${vivado_install_path}/${verison}/data/verilog/src/glbl.v 复制到预编译库的文件夹下,方便后续使用
<center><img src="http://xilinx.eetrend.com/files/2022-08/%E5%8D%9A%E5%AE%A2/100563105-26…; alt=""></center>

<strong>配置 Idea</strong>

使用 IDEA 配置 SpinalHDL 运行环境。

GitHub - SpinalHDL/SpinalTemplateSbt: A basic SpinalHDL project

以 Template 工程为例,配置 SpinalHDL 调用 VCS 仿真。
<center><img src="http://xilinx.eetrend.com/files/2022-08/%E5%8D%9A%E5%AE%A2/100563105-26…; alt=""></center>

在命令行中用 verdi 打开波形,正常打开则 VCS 仿真环境已正常运行。
<center><img src="http://xilinx.eetrend.com/files/2022-08/%E5%8D%9A%E5%AE%A2/100563105-26…; alt=""></center>

以使用 xilinx PLL 为例,为了减少使用 vivado 编译 ip 后导入(每次不同的设置都需要重新配置),笔者直接使用 XPM 模板进行例化。(可以在 xilinx xpm 手册或者是 Tools → Language Templates 中找到)。需要使用 BlackBox 对 XPM 模板进行封装

封装后尝试一下例化该 PLL 做一个 二分频。
<center><img src="http://xilinx.eetrend.com/files/2022-08/%E5%8D%9A%E5%AE%A2/100563105-26…; alt=""></center>

在该工程根目录下,创建名为 synopsys_sim.stup 一个指向预编译库的文件。里面填写预编译库对应生成的 setup 文件的目录。下面是笔者的 synopsys_sim.setup 文件。
<center><img src="http://xilinx.eetrend.com/files/2022-08/%E5%8D%9A%E5%AE%A2/100563105-26…; alt=""></center>

SpinalHDL 调用 VCS 仿真 xilinx ip 前环境,需要将文件复制到当前仿真目录(1.7.1不需要手动拷贝,1.7.0需要手动,注意的是SpinalHDL每次仿真都会清空仿目录)。需要注意是:仿真 xilinx ip 需要加入 xilinx 的全局复位控制(上次没加,仿真 DSP 被坑了好久…)
<center><img src="http://xilinx.eetrend.com/files/2022-08/%E5%8D%9A%E5%AE%A2/100563105-26…; alt=""></center>

此时配置完成了,试一下仿真吧~
<center><img src="http://xilinx.eetrend.com/files/2022-08/%E5%8D%9A%E5%AE%A2/100563105-26…; alt=""></center>