VCS/XRUN如何创建一个非UVM的简单仿真环境?

电子说

1.3w人已加入

描述

设计码完代码后,有时候想简单调试一下基本的通路,此时还没有验证资源进来,可以仿照modesim仿真的方法,创建一个.v/.sv的顶层,里面例化DUT,里面加预期激励;

下面是VCS/XRUN两种仿真工具最简单的demo,spi_slv.v是待测dut,tb_top.sv为顶层top,例化dut, 里面添加对应的激励;

1.VCSdemo

步骤一:c bash下设置工具对应的环境变量(如果已经设置好,则忽略)

setenvNOVAS_HOME $ENVDIR/apps/synopsys/verdi/2017.03
setenvVERDI_HOME $ENVDIR/apps/synopsys/verdi/2017.03
setenvLD_LIBRARY_PATH$VERDI_HOME/share/PLI/lib/LINUX64:$VERDI_HOME/share/PLI/IUS/LINUX64/boot:$LD_LIBRARY_PATH

步骤二:编译运行对应的.v/.sv 文件 + dumpfsdb所需要的pli

vcs -full64 -R spi_master.v tb_top.sv +time_scale=1ns -debug_pp -LDFLAGS -rdynamic-P ${NOVAS_HOME}/share/PLI/VCS/LINUX64/novas.tab 

步骤三:例化顶层,添加fsdb dump 的系统函数, 添加激励

moduletb_top;
  wire SDO;
  wire SDI;
  wireSCLK;
  wireCS;
  spi_slv m_spi(
    .CS(CS),
    .SDO(SDI),
    .SDI(SDO),
    .SCLK(SCLK)
   );
  initial begin
     #10000;// simulation time
    //TODO ADD code here
    $finish();
  end
   initial begin
      $fsdbDumpfile("test.fsdb");
      $fsdbDumpvars(0,tb_top);
    end
endmodule

步骤四:打开波形: verdi -f filelist.f -ssf test.fsdb

波形效果如下

仿真

2.    XRUN demo:

步骤一:设置运行XRUN工具对应的环境变量

步骤二:编译运行对应的.v/.sv 文件 + dump shm 波形

xrun-sv -c -elaborate spi_master.v tb_top.sv -access rwc && xrun -R -input wave_dump.tcl

wave_dump.tcl 文件:

database-open waves -into test.shm -default -event
probetb_top -all -dynamic -depth all -tasks -functions -all -memories -variablestb_top
run
exit

步骤三:例化顶层,添加激励

moduletb_top;
    wireSDO;
    wireSDI;
    wire SCLK;
    wireCS;
    spi_slv m_spi(
       .CS(CS),
       .SDO(SDI),
       .SDI(SDO),
       .SCLK(SCLK)
    );
  initial begin
    #10000;
    //TODO ADD code here
    $finish();
  end
endmodule

步骤四:打开波形: simvision test.shm

波形效果如下:

仿真

  审核编辑:汤梓红

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

全部0条评论

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

×
20
完善资料,
赚取积分