Modelsim与Verilog入门

0.什么是Modelsim?

Modelsim是一个支持多语言的仿真环境,比如我知道的Verilog和VHDL语言都可以在里边使用,这俩都是硬件描述语言;

即就是个软件,你可以用Verilog语言来写代码,然后编译,仿真出波形.....

软件图标长这样:

1.什么专业学习它,以及它可以干什么?

我知道的:计算机科学与技术本科阶段是要学的,然后体系结构的硕士也可以学习,IC设计类专业那就更要学(另外如果是萌新要了解IC的话,可以看这个知乎链接);

B站上陈硕大佬讲了几节课,也可以看看,新手勿进,B站链接

2.你应该怎么学习?

西安交大的这个36页的讲义值得一看;

南京大学的这个实验指导书更是值得一看,比前者更全;

牛客有大量练习Verilog的题目,从入门到进阶都是不错,请点击链接

要想有更深入理解,看书是必要的,推荐一下**《**Verilog HDL高级数字设计》一书;

如果英语不错,请看ModelSim User's Manual

再往后,就请联系学校老师,看能不能进入实验室做些什么,一来可以精进技能打打比赛,二来为将来升学就业打下基础,切忌闭门造车;

3.Modelsim软件下载:

点击百度网盘链接下载;

下好后,移动到某个僻静的位置,解压,双击exe,一路next即可,如果弹出是否创建快捷方式,同意即可。具体可以看这个知乎链接,讲的不错。

如果"一切顺利"的话,你大概会遇到这么一个问题:

解决方法一:

那个知乎链接中说的开头复制粘粘破解文件那一步,那两个mg开头的文件先不要复制粘粘,等到变量名修改完之后再替换。在系统环境变量中把变量名MGLS_LICENSE_FILE改成LM_LICENSE_FILE

法一不行的话,请看法二:

链接,即:环境变量有问题,你看下你的环境变量的值是不是下图这样子,变量名以LM开头,它的值以LICENSE.TXT结尾。如果不是,请更改你的环境变量;

法二都不行,你就别折腾电脑了,去买个正版......

4.实现一个与门:

New-File-Project,依次点击;

再来一个:

然后close;

此时你得到了两个文件,都是问号,你双击编辑它,或者右键然后Edit也可以;

源代码在下边;
【注】:我是在vscode中编辑代码的,你可以直接在Modelsim中写代码;

源代码:

复制代码
module and_gate(

input in1,
input in2,
output print
);
assign print=in1&in2;
endmodule

`timescale 1ns / 1ns

module and_gate_test;

  reg in1, in2;
  wire print;

  and_gate and_inst (
    .in1(in1),
    .in2(in2),
    .print(print)
  );

  initial begin
    in1 = 0;
    in2 = 0;
    
    #10 in1 = 0; in2 = 0;
    #10 in1 = 0; in2 = 1;
    #10 in1 = 1; in2 = 0;
    #10 in1 = 1; in2 = 1;
    #10 $stop;
  end

endmodule

右键你写好的文件,然后像上图一样(Compile All),如果文件从问号变为了对号,说明编译成功了(你也可以看下边):

然后,点击底部的Library:

右键你的测试文件(有timescale的那个文件);

点击Simulate后会进入下图;

右键点击箭头所指文件:

【注】:如果出来弹窗问你是否要quit?点击否;

你应该可以看到波形了,与门是全为真结果为真,反之为假;

怎么退出仿真波形呢?

看到下面这个transcript了嘛?

输入quit -sim回车即可退出;

关闭仿真也可以点击菜单栏中的End Simulation而不去在命令行中输入quit -sim,如下:

另外一个补充的点就是你可以直接对于变量赋值(在你右键Add Wave之后):

赋值后再点击Run;

5.写在最后:

以上都基于我浅薄的理解,如有不对之处,请评论区指正,感谢。

6.参考链接:

链接1

链接2

相关推荐
ARM|X86+FPGA工业主板厂家16 小时前
RK3588+FPGA+EtherCAT异构架构解析|工业场景如何同时保住AI算力与微秒级运动实时性
人工智能·fpga开发·架构
zlinear数据采集卡20 小时前
从“脏信号”到“纳伏级纯净”:硬核拆解DABL7606的多级抗混叠滤波与24位过采样算法
arm开发·科技·嵌入式硬件·fpga开发·开源
尤老师FPGA1 天前
HDMI数据的接收发送实验(二十)
fpga开发
千寻xun2 天前
三、实战篇-NVME SSD控制之FPGA实现(一)
fpga开发·nvme ssd·nvme协议
XMAIPC_Robot2 天前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
upper20202 天前
从零开始设计riscv cpu记录之七
fpga开发·riscv·riscv设计·btb·分支预测
ARM|X86+FPGA工业主板厂家2 天前
AI视觉跟随运动控制实战|RK3588 NPU检测+FPGA EtherCAT多轴联动精准跟随方案,适用于半导体视觉对位等
人工智能·fpga开发·硬件工程·ethercat·实时系统
XMAIPC_Robot2 天前
RK3588+FPGA半导体设备量产踩坑大全|发热、时序漂移、推理抖动、成像干扰、EMC干扰方案
人工智能·嵌入式硬件·fpga开发·arm+fpga
凡亿卓达方案设计3 天前
FPGA硬件开发怎么选靠谱方案商?
fpga开发
Eloudy3 天前
QSFP28、RoCEv2、RFSoC-4x2 数据传输与器件链路
网络·fpga开发·rocev2