使用VCS仿真Vivado里面的IP核时,如果Vivado的IP核的仿真文件只有VHDL时,仿真将变得有些困难,VCS不能直接仿真VHDL,从网上搜索的方案大致有以下几种:
- 使用VCS-MX的vhdlan编译vhdl文件,然后以库的形式加入到编译中
- Vivado使用export_simulation命令导出对应VCS的仿真IP文件(VCS版仅在Linux for Vivado有)
- 在Linux中使用Vivado联合VCS仿真
由于Linux虚拟机没有装对应19版的Vivado,所以2,3方法暂时都用不了,本想采用第一种方法,但是感觉配置环境,熟悉命令又需要一段时间学习磨合。遂放弃,找寻更好的方法。
本文记录解决VCS仿真IP核仅有VHDL文件时的解决方法,并不代表其他方法不行或者差,内容涉及基础的Vivado操作。
查遍网上的方案和资料之后,找到了一个Vivado自带的TCL命令,write_verilog
在Vivado的Tcl Console命令行下使用这个命令,模板如下:
write_verilog-cell [get_cells upconvert_inst/mult]-mode funcsim mult.v
命令的参数意义如下:
cell
:cell是FPGA工程里面例化实现的模块,比如模块名叫upconvert,但是我例化该模块的时候名字叫做upconvert_inst,cell指的是upconvert_inst;而且cell的路径是从顶层Top Level开始向下寻找的,不要把顶层模块掉了,不能直接使用get_cells mult找到上述模板的mult,顶层名是不需要加的,因为最顶层的文件没有被其他模块例化。
mode
:mode包含几种参数可选,design, pin_planning, syth_stub, sta, funcsim, timesim;这里funcsim是生成Verilog文件用于功能仿真,timesim用于时序仿真;
最后一个参数是生成的文件名存放路径;想了解更多可以在Vivado的Tcl Console输入write_verilog -help
使用这个命令必须打开Elaborated/Synthesized/Implemented Design中的某一个,命令才能找到Design中的cell
生成文件后,需要注意下,如果这个IP核被多次例化,生成的Verilog的Module名可能跟IP核的名字对应不上,可以手动修改下,否则VCS还是没办法找到对应的模块。
把生成的Verilog文件路径加入到VCS的命令行中,IP核仿真就会通过。有时间还是会试试1,2,3的方法,因为这些方法可能更方便,通用。
-
FPGA
+关注
关注
1629文章
21729浏览量
603010 -
Linux系统
+关注
关注
4文章
593浏览量
27392 -
VHDL语言
+关注
关注
1文章
113浏览量
18001 -
VCS
+关注
关注
0文章
79浏览量
9600 -
虚拟机
+关注
关注
1文章
914浏览量
28160
发布评论请先 登录
相关推荐
评论