自动化仿真平台由tcl语言搭建,大规模设计使用此平台让仿真便捷不少。大体上用tcl语言进行modelsim仿真的流程如下:
1. 建立库
2. 映射库到物理目录
3. 编译源代码
4. 启动仿真器
5. 执行仿真 tcl语言的语法 vlib :建立库。格式 vlib<library name> 。库名缺省值是work vmap:映射逻辑库名,将逻辑库名映射到库路径。语法格式vmap work <library name> vdir:显示指定库内容。语法格式vdir –lib <library name> vlog:编译verilog源代码,库名缺省时编译到work,文件按顺序编译。语法格式vlog –work <library_name> <file1>.v <file2>.v vcom:编译VHDL源代码,库名缺省时编译到work,文件按顺序编译。语法格式 vcom –work <library_name> <file1>.vhd <file2>.vhd vsim: 启动仿真器。语法格式vsim –lib <library_name><top_level_design> VHDL vsim top_entity top_architecture 仿真Entity/Architecture对也能选择一个结构 Verilog vsim top_levela top_level2 仿真多个top级模块 vsim命令的参数 -L<Library >:后面跟上仿真的库名 -t <time_unit> :指定仿真的时间分辨率;单位可以是{fs,ps,ns,ms,sec,min,hr}如果用了verilong的`timescale指令,将使用这个设计中的最小时间精度;时间进度可选项(缺省是ns) -sdfmin |-sdftyp|-sdfmax <instance>=<sdf_filename>:注释SDF文件;是可选项;使用实例名也是可选项;如果没有使用,SDF用于顶级 add wave /tb/ * :该命令作用是将tb.v中模块tb下所有的信号加到波形文件中,注意*前要加空格
run: 执行命令。语法格式run <time_step> <time_units>按照timesteps指定的时间长度执行仿真 run命令的参数:-<time_step> <time_units>指定运行的timesteps数量,单位可用{ fs,ps,ns,ms,sec } -step :到下一个HDL状态的的步骤 -continue:继续上次在-step或断点后的仿真 -all:一直运行 所需文件 除了本身的设计文件之外,此仿真平台还要有以下文件:

tb.v: 测试激励文件 glbl.v: 使用xilinx IPcore的就需要此文件 define.v: 定义了全局变量 runtb.bat: 脚本文件,双击可以用来打开run.do文件 run.do: 主要的控制文件 src.f: 设计文件的路径列表 cfg.f: ise安装目录下verilog库文件的路径 下面为各个文件的内容 1. runtb.bat vsim -do "do run.do "
2 .run.do quit -sim vlib work vlog -f src.f -f cfg.f ../src/tb.v vsim -t ps -L XilinxCoreLib_ver -L unisims_ver -L secureip -L simprims_ver -L unimacro_ver -L simprim -L unimacro -L unisim -L XilinxCoreLib work.tb work.glbl log -r /* view signals wave # do wave.do add wave/top/ * run –all
3. cfg.f +licq_all+ +access+r -O0 -work work +libext+.vmd+.v -y G:/iselib14_5/secureip -y G:/iselib14_5/simprims_ver -y G:/iselib14_5/unimacro_ver -y G:/iselib14_5/unisims_ver -y G:/iselib14_5/xilinxcorelib_ver -y G:/iselib14_5/simprim -y G:/iselib14_5/unimacro
-y G:/iselib14_5/unisim -y G:/iselib14_5/XilinxCoreLib /* included files containing parameters and definitions */
+incdir+../src
-y G:/iselib14_5/unisim -y G:/iselib14_5/XilinxCoreLib /* included files containing parameters and definitions */
+incdir+../src 4.src.f /* source code */ ../src/define.v ../src/tb.v ../src/glbl.v ../src/top.v ../src/rx/BIT_ALIGN_MACHINE.v ../src/rx/RX.v ../src/rx/rx_dut.v
../src/rx/rx_top.v ../src/tx/ctl.v ../src/tx/TX.v ../src/tx/tx_dut.v
../src/tx/tx_top.v

2关掉自动优化选项
在modelsim.ini中,
“VoptFlow=0
Resolution = ns”

Modelsim的自动化脚本仿真平台的更多相关文章

  1. Matlab/Modelsim图像联合仿真平台

    FPGA图像仿真平台 1 引言 在使用modelsim进行图像算法的功能仿真时,无法得到图像的实时预览,因此直观性有所欠缺.因此可配合matlab使用,通过modelsim读出txt格式的图像,利用m ...

  2. #研发解决方案#iDB-数据库自动化运维平台

    郑昀 创建于2015/12/2 最后更新于2015/12/2 关键词:数据库,MySQL,自动化运维,AutoDDL,刷库,帐号授权,审核,回滚 提纲: 数据库自动化运维什么?别人家是怎么玩的? 我们 ...

  3. 利用IT++搭建通信仿真平台

    IT++ is a C++ library of mathematical, signal processing and communication classes and functions.也就是 ...

  4. 怎样使用Debussy+ModelSim快速查看前仿真波形

    引子:ModelSim是HDL仿真软件,Debussy是波形查看软件:搭配使用,相当爽.此处所谓快速查看前仿真波形仅为抛砖引玉,大家不要拘泥于此.两款软件的功能都很强大,请自行研究. 注:本篇博文的软 ...

  5. Aurora学习笔记连载一:仿真平台搭建

    由于公司项目需要,需要学习Aurora协议,才有了这样的连载学习笔记,也算是对自己学习的一份记录吧. 对于Aurora是什么,大家自行百度. 当然,Kevin也在此先提醒大家,本套学习笔记不是你想学就 ...

  6. 图像处理算法的仿真平台之VGA时序

    一  概述 图像处理算法一般是用matla或OpenCV实现的,若是用FPGA实现,设计思路差别极大.matlab和opencv的优势:这些工具的优势在于可以方便地载入图像文件,或输出数据到图像文件, ...

  7. java+selenium自动化脚本编写

    实训项目:创盟后台管理,页面自动化脚本编写 使用工具:java+selenium 1)java+selenium环境搭建文档 2)创盟项目后台管理系统链接 java+selenium环境搭建 一.Se ...

  8. P2P/WSN信任建模与仿真平台

    1.ART Testbed 该平台是基于多代理的信任仿真平台,官网的介绍如下: The Agent Reputation and Trust (ART) Testbed initiative has ...

  9. QuartusII 中使用Modelsim对子程序进行仿真

    QuartusII 中使用Modelsim对子程序进行仿真 如果采用RTL级仿真那么就没有任何问题,但是如果对子程序采用门级仿真就会出错 解决办法:在Project Navigator中右键需要进行门 ...

随机推荐

  1. 函数 flst_get_first

    /********************************************************************//** Gets list first node addre ...

  2. 清理Xcode中无用的 Provisioning Profile.

    Xcode中如果添加过多个开发者账号, 慢慢就会发现 Provisioning Profile 有很多, 无用的 Provisioning Profile Xcode也不会自动删除, 想要清理的话, ...

  3. servlet读取cookie问题

    String sessionid = request.getSession().getId(); // 取得当前的session id ckSessionid = new Cookie("s ...

  4. SVN使用教程之——分支、合并

    首先说下为什么我们需要用到分支-合并.比如项目demo下有两个小组,svn下有一个trunk版.由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正进行到一半的工作[某个 ...

  5. diamond专题(四)—— 容灾机制

    大家好,本次为大家带来diamond的容灾机制. diamond之所以表现的稳定可靠,除了架构简单之外,另一个重要原因是diamond具有一套完备的容灾机制,容灾机制涉及到client和server两 ...

  6. LoadRunner 参数化详解

    可能稍微对LR 有些了解的人都知道LR 参数化的功能,今天请跟我来一起好好理一下. 首先,咱们先说一下为啥要用参数化?假如您录制了一个登录的脚本,如下所示, web_submit_form(" ...

  7. Linux经久不衰的应用程序

    Linux里面的应用程序一贯以高安全性,高性价比(功能/所占空间),此次记录一下Linux里面比较常用的而且经久不衰的应用程序. Shell:               bash(它结合了 csh ...

  8. Linux串口调试

    shell方式 1.使用minicon -s配置串口并保存: 2.使用setserial /dev/ttyUSB0 -a等查看串口配置: 3.接收侧cat /dev/ttyUSB0等待串口输出: 4. ...

  9. Docker系列(五)OVS+Docker网络打通示例

    环境说明 两个虚拟机 操作系统Centos7 DOcker版本1.8 脚本内容: 1  4  7  10  19  27  32    33  39   -j ACCEPT 47    48  # R ...

  10. hdu 3724 Encoded Barcodes

    Trie模板.把所有单词都用字典树存起来,然后给每个节点赋权值表示前缀到该节点出现了几次.然后直接查询就可以了. #include <algorithm> #include <ios ...