0 - ModelSim 仿真

0 - ModelSim 仿真

1、切换工作目录(.v 文件所在目录)

【File-Change Directory】

代码:

cd C:/Users/16041/Documents/Verilog/Course
2、创建 Library

【File-new-Library】

缺省名称为 work - work

也可使用代码:

//在当前目录建立逻辑库 work,运行后会在当前目录下找到 work 文件夹。
vlib work
//映射逻辑库名到指定的目录
vmap work work
3、编译 Compile(图标为image-20211116104603118)

image-20211116104816347

选中待编译的文件,点击 compile,编译完后需手动点击 done 来关闭当前窗口。

看输出结果,显示先编译了一个 model 叫 inv,而后编译了一个 model 叫 inv_tb,顶层模块是 inv_tb。

Inv 和 inv_tb 这两个模块正是和 编写的 inv.v 程序中定义的两个模块相对应。

image-20211116105107489

编译完以后打开 work 可以看到两个编译出来的 model。

image-20211116105355420

4、仿真

对顶层模块进行仿真:【右键点击 inv_tb - simulate】

即 vsim -voptargs=+acc work.inv_tb
5、添加需要观察的波形

点击下方的【sim】

image-20211116110102168

点击 inv_tb,右侧出现 yy,aa 也就是 .v 文件中该模块定义的信号。

image-20211116110224699

右键 add to 添加到波形

image-20211116110344233

点击 【restart】

image-20211116110557683

点击 【run all】

image-20211116110702581

6、查看波形

先查看全图

image-20211116110924571

image-20211116111044589

可以看到 aa 一开始是0,每过 10ns 进行一次反转,yy 始终是 aa 的反相。

至此完成了反相器的代码仿真。

附 inv.v 程序内容:

//反相器设计
//1ns的时间单位,10ps的时间精度
`timescale 1ns/10ps
module inv (
A,
Y
);
    input                               A                          ;
    output                              Y                          ;
    assign Y=~A;
endmodule

//测试代码 testbench 不带括号
module inv_tb;
reg                                     aa                         ;
wire                                    yy                         ;
inv inv(
    //异名例化
    .A                                 (aa                        ),
    .Y                                 (yy                        ) 
);
initial begin
        aa<=0;
    //#10表示过十个时间单位
    #10 aa<=1;
    #10 aa<=0;
    #10 aa<=1;
    //仿真停止用Verilog的系统任务
    #10 $stop;
end
endmodule


PS:CSDN 不支持 Verilog 语言的语法高亮,太令人难受了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值