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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/557870.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++学习进阶:异常

目录 1.异常处理机制 1.1.抛异常和捕获异常 1.1.1.异常机制的基本场景 1.1.2.函数调用中异常栈展开的匹配规则: 1.2.异常机制的实际应用场景 2.异常相关知识 2.1.异常安全和异常重新抛出 2.2.noexcept关键字 2.3.异常的优缺点 1.异常处理机制 我们在C语言…

Finding a needle in Haystack: Facebook’s photo storage——论文泛读

OSDI 2010 Paper 分布式元数据论文阅读笔记整理 问题 到2010年为止,用户已经在Facebook上传了超过650亿张照片,对于每个上传的照片,Facebook生成并存储四个不同大小的图像,导致目前存储了超过2600亿张图片,相当于超过…

AQS(AbstractQueuedSynchronizer)队列同步器源码解读

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1. 前言 2. AOS、AQS、AQLS的区别 3. AQS的底层原理 3.1. 核心思想 3.2. 数…

Qt 项目文件(.pro)概述

Qt 项目pro文件 引言一、pro文件初探二、部分参数详解 引言 Qt工程项目由项目文件(.pro)进行管理。qmake使用文件中的信息生成Makefile,其中包含构建每个项目所需的所有命令。pro文件通常包含源文件和头文件的列表、常规配置信息以及任何特定…

ST-GCN模型详解(+openpose)

ST-GCN模型详解(openpose) 一、什么是ST-GCN呢 基于骨架的动作识别(Skeleton-Based Action Recognition)主要任务是从一系列时间连续的骨骼关键点(2D/3D)中识别出正在执行的动作。因为牵涉到骨骼框架这种…

CentOS7升级openssl

文章目录 一 系统环境二 操作步骤三 版本检查 一 系统环境 公司服务器等保要求,修复openssl的高危漏洞。 本机使用centos7.9系统,openssl版本是1.0.2k,计划升级到1.1.1q 在执行下列操作前,务必要打快照做好备份,以防升…

030——从GUI->Client->Server->driver实现对红外遥控的控制

目录 1、 解决韦东山老师irda模块中断申请失败的bug 2、 client添加处理程序 3、 添加服务器处理程序和驱动处理句柄 4、 处理数据读出不准确问题 5、 修改后的展示 1、 解决韦东山老师irda模块中断申请失败的bug irda需要通过中断来触发读操作,申请中断需要引…

Octopus v2:斯坦福的嵌入设备专用大模型

斯坦福大学推出了 Octopus v2,这是一种突破性的设备上语言模型,旨在解决与现有模型相关的延迟、准确性和隐私问题。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑…

源码篇--Nacos服务--中章(1):Nacos服务端的启动

文章目录 前言一、Nacos Console 启动入口:二、启动过程:2.1 容器启动监听器:2.1.1 调整启动标识为正在启动状态:2.1.2 环境准备阶段:2.1.3 容器环境准备:2.1.4 自定义的环境变量 设置:2.1.5 服…

Spectre-v2 以及 Linux Retpoline技术简介

文章目录 前言一、Executive Summary1.1 Spectre-v2: Branch Predictor Poisoning1.2 Mitigating Spectre-v2 with Retpolines1.3 Retpoline Concept 二、BackgroundExploit Composition 三、(Un-)Directing Speculative Execution四、Construction (x86)4.1 Speculation Barri…

测试人员通常遇到的“坑”

网上看到一个帖子,从事多年的测试从业者,吐槽测试过程中遇到的“坑”,感觉比较有意思,我在工作当中也遇到通常的问题,看得出这位网友比较喜欢总结,帖子地址奉上,有兴趣的可以浏览一下&#xff1…

bug(警告):[vue-router] Duplicate named routes definition: …

查看警告:[vue-router] Duplicate named routes definition——翻译[vue-router]重复命名路由定义 小编劝诫:当我们在开发过程中警告也一定不要忽略,虽然你在本地跑代码时这些警告影响项目的正常运行,但是会让你产生误区&#xff…

大模型日报|今日必读的8篇大模型论文

大家好,今日必读的大模型论文来啦! 1.EdgeFusion:端侧文本到图像生成,只需不到一秒 用于文本到图像生成的稳定扩散(SD)技术需要大量计算,这对其实际应用构成了重大障碍。为此,最近…

Oracle進階SQLDay03

一、函數進階復習 1、行轉列 select 用水儿量(噸) 统计项, sum(case when t_account.month01 then USENUM end) 一月, sum(case when t_account.month02 then USENUM end) 二月, sum(case when t_account.month03 then USENUM end) 三月, sum(case when …

STM32学习和实践笔记(15):STM32中断系统

中断概念 CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂 时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序 或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序 继…

飞桨Ai(二)paddle使用CPU版本可以正常识别,切换为GPU版本时无法识别结果

一、问题描述: 刚开始用paddle的CPU版本,对训练好的模型进行推理,正常识别出想要的结果后来尝试使用paddle的GPU版本,然后发现识别出来是空的 二、系统思路: 最终系统环境如下: 系统:win10 …

有哪些公认好用且免费的云渲染网渲平台?渲染100邀请码1a12

现在云渲染是越来越火了,无论是在建筑设计、影视动画还是效果图行业都有它的身影,云渲染能缩短制作周期,提高工作效率,那么市面上有哪些公认好用且免费的云渲染平台呢?这次我们来了解下。 首先,我们来看看有…

vulfocus靶场tomcat-cve_2017_12615 文件上传

7.0.0-7.0.81 影响版本 Windows上的Apache Tomcat如果开启PUT方法(默认关闭),则存在此漏洞,攻击者可以利用该漏洞上传JSP文件,从而导致远程代码执行。 Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多…

「GO基础」在Windows上配置VS Code GO语言开发环境

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

查看linux的主机配置脚本

废话不说 直接上指令 curl -Lso- bench.sh | bash 等待后,结果如图: 使用后没有问题,看情况使用 出事概不负责 介意勿用!!!