Modelsim脚本自动仿真

1、创建文件 run.do,“#”为注释符号

  1. quit -sim #退出上次仿真
  2. .main clear #清除上次仿真所有文件以及打印信息
  3. vlib work.veloce #创建veloce的工作环境
  4. #-------------------------------------------------------------------------------------------------
  5. vlog ./tb_XXXXXXX.v #testbench文件
  6. vlog ./../src/*.v #代码源文件
  7. vlog ./../ip_core/*.v #IP核
  8. #--------------------------------------------------------------------------------------------------
  9. #Alrera
  10. vlog /opt/Quartus/13.1/quartus/eda/sim_lib/altera_mf.v #IP核仿真模型
  11. vlog /opt/Quartus/13.1/quartus/eda/sim_lib/220model.v #IP核仿真模型
  12. #--------------------------------------------------------------------------------------------------
  13. #Xilinx
  14. vlog /opt/Xilinx/Vivado/2015.4/data/verilog/src/unimacro/*.v #IP核仿真模型
  15. vlog /opt/Xilinx/Vivado/2015.4/data/verilog/src/unisims/*.v #IP核仿真模型
  16. vlog /opt/Xilinx/Vivado/2015.4/data/verilog/src/unisims_dr/*.v #IP核仿真模型
  17. vlog /opt/Xilinx/Vivado/2015.4/data/verilog/src/xeclib/*.v #IP核仿真模型
  18. vlog /opt/Xilinx/Vivado/2015.4/data/verilog/src/glbl.v #IP核仿真模型
  19. #--------------------------------------------------------------------------------------------------
  20. #LATTICE
  21. vlog ./lattice/verilog/ecp3 #IP核仿真模型
  22. vlog ./lattice/verilog/pmi #IP核仿真模型
  23. #--------------------------------------------------------------------------------------------------
  24. vsim -voptargs=+acc work.tb_XXXXXXXX
  25. #--------------------------------------------------------------------------------------------------
  26. add wave /tb_XXXX/i2s_XXX_inst/* #添加例化模块所有信号波形
  27. do wave.do #若保存有新模型,用此语句可以复现已保存的波形
  28. run 500000 ns #仿真运行时间

2、写完以上run.do文件后,在「 terminal 」中执行以下语句,则可以自动跑完仿真

  1. [redhat@fpga marin]$ vsim -do run.do


Vcs+Verdi脚本自动仿真
0、定义环境变量,在.bashrc或者.cshrc文件中加入

  1. ##VCS
  2. setenv VCS_HOME /work/tools/synopsys2015/vcs
  3. setenv PATH $VCS_HOME/amd64/bin:$PATH
  4. ##Verdi
  5. setenv VERDI_HOME /work/tools/synosys2015/verdi
  6. setenv NOVAS_HOME /work/tools/synopsys2015/verdi
  7. setenv LD_LIBRARY_PATH ${NOVAS_HOME}/share/PLI/VCS/LINUX64
  8. setenv PATH $NOVAS_HOME/bin:$PATH

1、创建文件Makefile

  1. #--------------------------------------------------------------------------------------------------
  2. comp : clean vcs
  3. #--------------------------------------------------------------------------------------------------
  4. vcs :
  5. vcs \
  6. -f filelist.f \
  7. -fsdb -full64 -R +vc +v2k -sverilog -debug_all vpi \
  8. -P ${LD_LIBRARY_PATH}/novas.tab ${LD_LIBRARY_PATH}/pli.a \
  9. | tee vcs.log &
  10. #--------------------------------------------------------------------------------------------------
  11. verdi :
  12. verdi \
  13. +v2k -sverilog -f filist.f -ssf tb.fsdb &
  14. #--------------------------------------------------------------------------------------------------
  15. clean :
  16. rm -rf *~ core csrc simv* vc_hdrs.h ucli.key urg* *.log novas.* *.fsdb* verdiLog 64* DVEfiles *.vpd
  17. #--------------------------------------------------------------------------------------------------

2、创建文件filelist.f,加入要编译的.v文件

  1. #--------------------------------------------------------------------------------------------------
  2. #Alrera
  3. /opt/Quartus/13.1/quartus/eda/sim_lib/altera_mf.v #IP核仿真模型
  4. /opt/Quartus/13.1/quartus/eda/sim_lib/220model.v #IP核仿真模型
  5. #--------------------------------------------------------------------------------------------------
  6. #Xilinx
  7. -y /opt/Xilinx/Vivado/2015.4/data/verilog/src/unimacro #IP核仿真模型
  8. -y /opt/Xilinx/Vivado/2015.4/data/verilog/src/unisims #IP核仿真模型
  9. -y /opt/Xilinx/Vivado/2015.4/data/verilog/src/unisims_dr #IP核仿真模型
  10. -y /opt/Xilinx/Vivado/2015.4/data/verilog/src/xeclib #IP核仿真模型
  11. -y /opt/Xilinx/Vivado/2015.4/data/verilog/src/glbl.v #IP核仿真模型
  12. +libext+.v+
  13. #--------------------------------------------------------------------------------------------------
  14. #LATTICE
  15. -y ./lattice/verilog/ecp3 #IP核仿真模型
  16. -y ./lattice/verilog/pmi #IP核仿真模型
  17. +libext+.v+
  18. #--------------------------------------------------------------------------------------------------
  19. ./tb_file/tb_XXXXX.v #加入test_bench文件
  20. ./src/*.v #加入源文件
  21. ./ip_core/*.v #加入IP核源文件
  22. +incdir+directory+

3、在test_bench文件中添加如下代码,用于Vcs产生波形文件 tb.fsdb

  1. initial
  2. begin
  3. $fsdbDumpfile("tb.fsdb");
  4. $fsdbDumpSVA;
  5. $fsdbDumpvars(0,tb_XXXX,"+all");
  6. #200000
  7. $finish;
  8. end

4、如果是Lattice器件,还需在test_bench中加入如下代码

  1. GSR GSR_INST ( .GSR(1'b1) );
  2. PUR PUR_INST ( .PUT(1'b1) );

5、在「 terminal 」中输入如下命令运行VCS进行编译生成fsdb文件

  1. [redhat@fpga marin]$ make comp

6、在「 terminal 」中输入如下命令运行Verdi把fsdb文件吃进去看波形

  1. [redhat@fpga marin]$ make verdi

以上路径均需按照自己实际情况进行修改

转自:https://www.cnblogs.com/mage0306/p/10595328.html

转:Modelsim和Vcs+Verdi使用技巧(Linux)的更多相关文章

  1. 88.modelsim仿真do文件相关技巧

    网上的关于DO文件的编写好像资料不多,比较杂,所以本人总结一下常用的简单语法,方便大家查看.其实本人也刚接触DO文件没多久,有纰漏很正常,欢迎指正批评,互相学习.PS:写得有点乱   还有一个值得注意 ...

  2. 本地上传文件至服务器的技巧(linux文件压缩及解压文件)

    linux(ubuntu)文件解压及压缩文件 ubuntu支持文件的解压及压缩功能, 如果ubuntu上面没有安装过unzip工具的话,可以通过下面命令安装: sudo apt-get install ...

  3. [小技巧]Linux的一些信息获取

    1. Linux 系统登录之后,显示如下 Last login: Thu Jan :: UTC on ttyS0 Linux xxx # PREEMPT Wed Jul :: CST armv7l 那 ...

  4. vcs/verdi filist

    . 现在很多verilog 的filelist 文件中用如下形式来指定文件所在的目录就行了,而不必指定具体文件 ./testbench/ppc460_PLB4/p464s_test_top_tb.v ...

  5. 工程技巧Linux上建立工程项目

    程序中用到的核心代码用库的形式进行封装,并且给出示例程序,下面给出一个程序文件夹的建立脚本. 如运行sh MakeProject.sh  PersonNameIdentification PNILib ...

  6. linux 常用命令及技巧

    linux 常用命令及技巧 linux 常用命令及技巧:linux 常用命令总结: 一. 通用命令: 1. date :print or set the system date and time 2. ...

  7. linux 小技巧(磁盘空间搜索)

    这里记录一些linux 管理中可能会用到的又容易忘的一些小技巧. linux磁盘写入失败,提示磁盘空间不足.一般都会用df -h 或者df -i看是不是磁盘空间不足或者是inode空间不足.发生这种情 ...

  8. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  9. Linux基础精华

    Linux基础精华 (继续跟新中...) 常用命令: Linux shell 环境 让你提升命令行效 率的 Bash 快捷键 [完整版] 设置你自己的liux alias Linux的Find使用 L ...

随机推荐

  1. gitlab安装CI问题汇总

    0.设置gitlab获取代码的存放位置 vim /etc/gitlab-runner/config.toml 1.unable to access http://gitlab-ci-token:xxx ...

  2. selenium-ide-2.3.0 组件在foxfire45.0无法安装的问题

    楼主在安装selenium-ide组件时,尝试了下面两种方式都无法安装: 1.在forfire浏览器进行拖拽安装,页面无任何跳转.拖拽后回车安装,也没任何效果 2.附件组件-从文件安装添加组件,添加了 ...

  3. MySql分表、分库、分片和分区的区别

    一.前言 数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈.需要进行数据的处理,采用的手段是分区.分片.分库.分表. 二.分片(类似分库) 分片是把数据库横向扩展(Scale Out)到多个 ...

  4. Android——菜单(Menu)

    菜单的运用在Android中很常见,今天就两节体育课,闲下来也想认真的学一学,正好项目中也会有应用.我是跟着菜鸟教程进行学习的,我相应的粘了一些我自己认为比较重要的,以供方便记录学习. 本章给大家带来 ...

  5. 学习PHP中的信息格式化操作

    在国际化组件的学习过程中,我们已经接触过了 NumberFormatter 这种数字的格式化操作,它可以让我们将数字转换成标准格式.货币.本地语言等形式.今天我们来学习的是另一种专门用于信息格式化的类 ...

  6. adobe media encoder cc 2018无法打开,报错0xc0000005

    在我这里是因为显卡的原因 下载NVIDIA然后打开NVIDIA控制面板,在里面选择软件的显卡,挨个试就行, 还不行就在设备管理器中将多余的先禁用,试一试

  7. Linux C语言 取得MTU (最大传输单元)

    参照这篇博客: http://www.geekpage.jp/programming/linux-network/book/04/4-21.php * 查看主机当前网卡,哪块在使用. ifconfig ...

  8. LR Socket接收超时TPS上不去解决方法

    在一次做项目中,由于Socket协议接收的报文会有不定长度,基本每次都会有变化,在data.ws 接收buf1有固定长度,这是在接收的实时报文会有长度不一致的问题.这时LR默认会去与接收的报文的长度及 ...

  9. JSP页面属性

    一.JSP指令 <%@指令名属性名=属性值 %> page指令: 定义页面是如何解析 include指令: 静态包含 taglib指令: 在页面引入标签呢库. 1.page指令属性 imp ...

  10. docker - compose 部署 Nginx

    主要介绍 docker 中 Nginx 的部署及项目目录挂载券的方法.docker 中部署一个服务,有三种方法,分别是 docker run.Dockerfile.docker-compose . 下 ...