记录VCS仿真的IP核只有VHDL文件的解决方法

电子说

1.3w人已加入

描述

使用VCS仿真Vivado里面的IP核时,如果Vivado的IP核的仿真文件只有VHDL时,仿真将变得有些困难,VCS不能直接仿真VHDL,从网上搜索的方案大致有以下几种:

  1. 使用VCS-MX的vhdlan编译vhdl文件,然后以库的形式加入到编译中
  2. Vivado使用export_simulation命令导出对应VCS的仿真IP文件(VCS版仅在Linux for Vivado有)
  3. 在Linux中使用Vivado联合VCS仿真

由于Linux虚拟机没有装对应19版的Vivado,所以2,3方法暂时都用不了,本想采用第一种方法,但是感觉配置环境,熟悉命令又需要一段时间学习磨合。遂放弃,找寻更好的方法。

本文记录解决VCS仿真IP核仅有VHDL文件时的解决方法,并不代表其他方法不行或者差,内容涉及基础的Vivado操作。

查遍网上的方案和资料之后,找到了一个Vivado自带的TCL命令,write_verilog

VHDL语言

在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的方法,因为这些方法可能更方便,通用。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分