本文来自微信群网友,分享如何在SpinalHDL中顺利运行VCS以及运行Vivado相关模拟。从此仿真与设计融合不再是问题~
》环境依赖?
Xilinx Vivado 2021.2
Synopsys vcs-mx_O-2018.09-SP2
Synopsys Verdi _O-2018.09-SP2
GCC/GXX 4.8.5
IDEA 2021
首先将默认的gcc/g++切换到4.8.5版本
打开 vivado,进入 Tools → Compile 仿真库,选择 simulator VCS,以及其他需要的选项。
选择预编译库存储路径和VCS可执行路径。
由于一开始就选择了默认版本gcc/g++,所以这里直接使用默认的执行路径。
以下是笔者的配置图:
点击编译等待完成...(3分钟)
结束后会出现一些编译失败的情况。这是因为没有配置System C环境,但是由于作者不会使用这些组件,所以我就忽略它们。
此时,在之前选择的预编译库存放路径下会出现synopsys_sim.setup
配置文件,用于vcs启动前自动加载预编译库。
同时可以将${vivado_install_path}/${verison}/data/verilog/src/glbl.v复制到预编译库的文件夹下备用
》配置思路
使用IDEA配置SpinalHDL运行环境。
GitHub - SpinalHDL/SpinalTemplateSbt:A basic SpinalHDL 项目
以Template工程为例,配置SpinalHDL调用VCS仿真。
使用verdi在命令行中打开波形。如果正常打开,说明VCS仿真环境运行正常。
4。以xilinx PLL的使用为例,为了减少需要使用vivado编译IP然后导入(每次不同的设置都需要重新配置),作者直接使用XPM模板进行实例化。 (可以在 xilinx xpm 手册或工具 → 语言模板中找到)。需要使用BlackBox来打包XPM模板
5。封装后,尝试实例化 PLL 以进行二分频。
6。在项目的根目录中,创建一个名为 synopsys_sim.stup
的文件,该文件指向预编译库。填写预编译库生成的安装文件的目录。下面是作者的synopsys_sim.setup文件。
7。 SpinalHDL调用VCS模拟xilinx ip预环境,需要将文件复制到当前模拟目录(1.7.1不需要手动复制,1.7.0需要手动复制。注意,SpinalHDL每次模拟都会清除模拟目录)。需要注意的是:模拟xilinx ip需要添加xilinx的全局复位控制(上次没有添加,模拟DSP被忽悠了好久……)
配置完成,我们来模拟一下吧~