关闭

modelsim输入信号

229人阅读 评论(0) 收藏 举报
分类:
 modelsim输入信号 2012-06-02 22:18:09

分类: 嵌入式

一,DO文件的应用和工作方式
    执行File/New/Souce/Do命令,进入Do文件编辑方式,在编辑窗口输入仿真批处理文件的代码,以.do为扩展名保存文件,调用方式:do filename parameters,完成对设计的仿真

用do文件进行仿真真得很方便,比写testbench方便多了,采用do文件没有那么多信号定义,管理也比较方便。
编写名为counter.do文件,其内容为下:
vlib work        //新建work库;
vmap work        //将work库映射到当前工作目录下;
vlog counter.v   //新建counter.v文件,默认编译到work库下;
vsim -L work work.counter -t 1ns //仿真work库中名为counter模块,最小时间单位为1ns;
add wave -r/ *                   //将所有信号加入到波形图中去;
force -repeat 10 clk 0 0,1 5     //添加一个时钟信号,周期为10(ns),50%占空比。如果要改变时间周期,修改代码中的“10”和“5”,即单个周期时间和高电平1所占时间要同时改变,且为两倍关系;PS:-repeat是关键字,表示重复产生;
force a 16#aa    //将a赋值为16进制的AA(10101010);
force b 164bb    //将b赋值为16进制的BB(10111011);
force n_rst 1    //将n_rst信号置1;
run 40           //运行40(ns),即40个最小单位时间;
force n_rst 0    //将n_rst信号置0;
run 20           //运行40(ns);
force n_rst 1    //将n_rst信号置1;
force a 16#55    //将a赋值为16进制的55(01010101); 
force b 16#aa    //将b赋值为16进制的AA(10101010);
run 20           //运行20ns;

在Modelsim中,将工作目录切换到counter.v和counter.do两个文件所在目录下,然后在命令行中输入 do counter.do即可。
PS:1,如果在仿真的时候要修改.do文件,需要现在modelsim里运行quit -sim,退出仿真,然后修改.do文件,再保存;

   2,如果是仿真单个VHDL文件,只要将do文件中第三行换成vcom counter.vhd即可!

二,交互式命令,通过在主窗口的命令窗口输入命令来实现,具有更好的调试和交互功能,提供多种指令,既可以是单步指令,也可以构成批处理文件,用来控制编辑、编译和仿真流程;
常见交互式命令
1,force-repeat指令
   指令格式:force 开始时间 开始电平值,结束电平值 忽略时间(即0电平保持时间) -repeat 周期
   force clk 0 0,1 30 -repeat 100  表示强制clk从0时间单元开始,起始电平为0,结束电平为1,0电平保持时间为30个默认时间单元,周期为100个默认时间单元,占空比为70%。
   指令功能:每隔一段的周期重复一定的force命令,用来产生时钟信号,也可用来产生周期的输入信号,如01010101,00110011等。
2,force指令
   指令格式:force item_name value time,value time;item_name为端口信号或内部信号,支持通配符号,但只能匹配一个;value不能默认,time,可选项,支持时间单元;
   force din 16#40900000   从当前时刻起给din赋值16进制40900000;
   force bus 16#F @100ns   在100ns时刻给bus赋值16进制F;
   force clr 1 100         经历100个默认时间单元延迟后为clr赋值1;
   force clr 1,0 100       示clr赋值1后,经历100个默认时间单元延迟后为clr赋值为0;
3,run指令
   指令格式:run timesteps time_unit,timesteps时间步长,time_unit时间单元,可以是fs、ps、ns、ms、sec;
   指令功能:运行(仿真)并指定时间及单元;
   run 100,               表示运行100个默认时间单元;
   run 2500ns,            表示运行2500ns;
   run -all,              表示运行全过程;
   run -continue,         表示继续运行
4,force-cancel指令
   指令格式:force-cancel period
   指令功能:执行period周期时间后取消force命令;
   force clk 0 0,1 30 -repeat 60-cancel 1000,表示强制clk从0时间单元开始,直到1000个时间单元结束;
5,view指令
   指令格式:view 窗口名
   指令功能:打开Modelsim的窗口
   view souce,打开源代码窗口;
   view wave,打开波形窗口;
   view list,打开列表窗口;
   view varibles,打开变量窗口;
   view signals,打开信号窗口;
   view all,打开所有窗口;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:29388次
    • 积分:806
    • 等级:
    • 排名:千里之外
    • 原创:51篇
    • 转载:10篇
    • 译文:0篇
    • 评论:1条