#“#”为注释

#删除原有工程,需重启Modelsim

#vdel -all -lib work

#退出当前仿真

quit -sim

#清空命令行显示

.main clear

#创建库,是实际存在的物理库

vlib ./lib
vlib ./lib/design_work
vlib ./lib/sim_work
vlib ./lib/altera_work

#映射逻辑库到指定的物理库

vmap d_work ./lib/design_work
vmap s_work ./lib/sim_work
vmap a_work ./lib/altera_work

#编译代码文件到逻辑库

vlog -work s_work ./tb_serial_detec.v
vlog -work d_work ./../design/*.vo
vlog -work a_work ./altera_lib/*.v

#连接逻辑库,并启动仿真

vsim -t ns -sdfmax tb_serial_detec/serial_detec_inst=serial_detec_v.sdo -voptargs=+acc -L s_work -L d_work -L a_work s_work.tb_serial_detec

#状态机中状态的定义,用于显示

virtual type {
{0x001 s0}
{0x002 s1}
{0x004 s2}
{0x008 s3}
{0x010 s4}
{0x020 s5}
{0x040 s6}
{0x080 s7}
{0x100 s8}
} new_state

virtual function {(new_state)/tb_serial_detec/serial_detec_inst/c_state} state

#添加波形

add wave -divider {tb_serial_detec}
add wave -color yellow tb_serial_detec/*
add wave -divider {serial_detec}
add wave -color blue tb_serial_detec/serial_detec_inst/sclk
add wave -color blue tb_serial_detec/serial_detec_inst/rst_n
add wave -color blue tb_serial_detec/serial_detec_inst/i_bit
add wave -color blue tb_serial_detec/serial_detec_inst/detec_success

#状态机状态显示

add wave -color red tb_serial_detec/serial_detec_inst/state

#设定仿真运行时间

run  50us

Modelsim仿真.do脚本示例的更多相关文章

  1. Modelsim仿真tcl脚本与wave.do文件

    Modelsim的仿真,如果一直使用图形界面建工程,编译,仿真,一个个加入观察波形的话,未免复杂了一些,尤其是当工程较大,需要观察的信号较多时,下面贴出一些常用的tcl脚本命令和wave.do常用语法 ...

  2. Modelsim的自动化脚本仿真平台

    自动化仿真平台由tcl语言搭建,大规模设计使用此平台让仿真便捷不少.大体上用tcl语言进行modelsim仿真的流程如下: 1. 建立库 2. 映射库到物理目录 3. 编译源代码 4. 启动仿真器 5 ...

  3. modelsim仿真基本流程

    好久没再用过modelsim,都忘的一干二净了.刚换了份工作,又要重新拾起来,不过现在感觉modelsim的仿真其实是比较快的,很有用处.再者这么长时间老是学了忘,忘了再学,觉得真浪费时间,平时确实应 ...

  4. Vivado级联Modelsim仿真Re-launch问题

    前两天在群里看到有朋友说Vivado级联Modelsim仿真出现修改设计代码后重新run do文件,波形没有随着代码修改而改变,这个问题博主之前没有注意到,因为把Vivado和Modelsim级联好后 ...

  5. Modelsim仿真新手入门最详细教程

    2021年11月15日 00 安装包/版本 我是提前在网上下好的(但这一点也给我的实验造成了"麻烦"),用的是Modelsim SE-64 2020.4版本的,学校实验室的似乎不同 ...

  6. 45.modelsim仿真include文件

    modelsim仿真include文件会出现找不到文件的情况,这是因为include文件路径有两种,一种是相对路径,另一种是绝对路径. 相对路径: 如果 ‘include "primitiv ...

  7. 14.quartus联合modelsim仿真

    在quartus调用modelsim仿真过程中,出现了一个错误,如下所示: Check the NativeLink log file I:/Quartus11.0/Myproject/testi_n ...

  8. 用Modelsim仿真QuartusII综合后网表时库的添加方法(转)

    这两天做综合后仿真,发现FPGA器件库又不会加了,无奈上网找方法.说起来不好意思,很早就接触Modelsim这个仿真软件了,可是没有好好琢磨.把这两天找的方法贴出来,再加上自己的理解,以后忘了可以上博 ...

  9. modelsim 仿真时出现无限迭代(iteration reach limitation)的原因及其解决办法

    modelsim 仿真时出现无限迭代(iteration reach limitation) 出现这种故障的原因:  一般都是代码里出现的组合逻辑无限循环或者组合逻辑A产生signal_A,signa ...

随机推荐

  1. [Java]先有Class还是先有Object?

    先有鸡还是先有蛋 这个问题让我想到了一个古老的问题,先有鸡还是先有蛋. 回到本题 下面让我们详细看一下这个问题: 在Java的对象模型中: 所有的类都是Class类的实例,Object是类,那么Obj ...

  2. Qt信号槽第5个参数

    1.Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定.如果接收者和发送者在同一个线程,则自动使用Qt::DirectConnection类型.如果接收者和发送者不 ...

  3. linux下ifconfig命令看不到IP centos7——ens33

    当前环境VMware15+centos7  在终端输入ifconfig后没有开到IP地址: 解决方法:root用户执行命令 cd /etc/sysconfig/network-scripts/ vi ...

  4. vue安装之后的报错处理---chromedriver@2.35.0 install: `node install.js`

    报错:chromedriver@2.35.0 install: `node install.js` 这个错误的解决方法就是在你创建的项目目录,比如你创建的项目叫myVue,然后你就要在myVue这个目 ...

  5. php接口签名验证

    在做一些api接口设计时候会遇到设置权限问题,比如我这个接口只有指定的用户才能访问. 很多时候api接口是属于无状态的,没办法获取session,就不能够用登录的机制去验证,那么 大概的思路是在请求包 ...

  6. 用JSON.stringify处理循环引用对象

    通常,我们会用JSON.stringify把Javascript对象序列化成JSON格式,这在大多数情况下是够用的.但是,当你要转换的对象里存在循环引用时,问题就来了. js对象循环引用导致内存泄漏 ...

  7. shell 的多进程

    例子 #!/bin/bash temp_fifo_file=$$.info #以当前进程号,为临时管道取名 mkfifo $temp_fifo_file #创建临时管道 exec <>$t ...

  8. Oracle 并发创建索引

    建索引时,我们为了建索引快,会加上并行,加上并行之后,此列索引就会是并行了.访问有并行度的索引时,CBO可能可能会考虑并行执行,这可能会引发一些问题,如在服务器资源紧张的时候用并行会引起更加严重的争用 ...

  9. Mysql8 查询事务隔离级别

    Mysql8  查询事务隔离级别 SELECT @@TRANSACTION_ISOLATION REPEATABLE-READ  ---默认隔离级别(可重复读)

  10. Python连接MySQL数据库的多种方式

    上篇文章分享了windows下载mysql5.7压缩包配置安装mysql 后续可以选择 ①在本地创建一个数据库,使用navicat工具导出远程测试服务器的数据库至本地,用于学习操作,且不影响测试服务器 ...