码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Modelsim下载安装【Verilog】


    Modelsim下载安装【Verilog】

    • 前言
    • Modelsim下载安装
      • 一、下载
      • 二、安装
      • 三、使用
      • 四、测试四选一
        • 编写mux41
        • 编写mux41_tb
        • 运行仿真
        • 仿真结果
        • 结束仿真
      • 五、打开已建立过的工程
      • 六、相关实验
        • 一、实验二选一
          • 编写代码
          • 仿真结果
        • 二、实验四选一
          • 编写mux41
          • 编写mux41_tb
          • 运行仿真
          • 仿真结果
          • 结束仿真
        • 三、实验D触发器
          • 编写代码
          • 开始仿真
          • 仿真结果
    • 最后

    前言

    以下内容源自资源
    仅供学习交流使用
    请您阅读文章声明,默认同意该声明

    Modelsim下载安装

    一、下载

    Modelsim SE-64 2020.4-windows(内含和谐文件)网盘分享:

    链接:https://pan.baidu.com/s/1sJHqoj6VEwrmf6GBMLXshQ
    提取码:161d

    网盘下载速率提升
    最新验证码:7678

    二、安装

    参考:Modelsim下载 安装 与 和谐教程

    安装成功
    在这里插入图片描述

    三、使用

    参考:ModelSim的使用详解

    或老师演示视频

    补充:

    若出错

    ** Error (suppressible): (vsim-12110) All optimizations are disabled because the -novopt option is in effect. This will cause your simulation to run very slowly. If you are using this switch to preserve visibility for Debug or PLI features, please see the User’s Manual section on Preserving Object Visibility with vopt. -novopt option is now deprecated and will be removed in future releases.

    出错解决
    Modelsim SE-64 2020.4 不能关闭优化的错误及其解决 Error (suppressible): (vsim-12110)

    在这里插入图片描述

    在这里插入图片描述

    若没有Wave窗口

    ModelSim的wave波形窗口在哪里打开

    点击View勾选Wave

    在Objects中右键变量->点击Add Wave使其添加到Wave窗口中

    四、测试四选一

    实验一 ModelSim的使用【Verilog】

    编写mux41

    在这里插入图片描述

    设计代码

    module mux41(
    	input wire in0,
    	input wire in1,
    	input wire in2,
    	input wire in3,
    	input wire [1:0] sel,
    	output reg out);
    	always@(*)
    		case(sel)
    			2'b00: out=in0;
    			2'b01: out=in1;
    			2'b10: out=in2;
    			2'b11: out=in3;
    			default: out=1'b0;
    		endcase
    endmodule
    
    

    编写mux41_tb

    在这里插入图片描述

    测试代码

    module mux41_tb;
    	reg in0,in1,in2,in3;
    	reg [1:0] sel;
    	wire out;
    	mux41 uut(.in0(in0), .in1(in1), .in2(in2), .in3(in3),
    	.sel(sel), .out(out));
    	initial 
    		begin
    				 in0=0;in1=0;in2=0;in3=0;	sel=2'b00;
    			#100 in0=1;in1=0;in2=0;in3=0;	sel=2'b00;
    
    			#100 in0=1;in1=0;in2=0;in3=0;	sel=2'b01;
    			#100 in0=1;in1=1;in2=0;in3=0;	sel=2'b01;
    			
    			#100 in0=1;in1=1;in2=0;in3=0;	sel=2'b10;
    			#100 in0=1;in1=1;in2=1;in3=0;	sel=2'b10;
    			
    			#100 in0=1;in1=1;in2=1;in3=0;	sel=2'b11;
    			#100 in0=1;in1=1;in2=1;in3=1;	sel=2'b11;
    		end
    endmodule
    
    

    运行仿真

    在这里插入图片描述

    若出错

    ** Error (suppressible): (vsim-12110) All optimizations are disabled because the -novopt option is in effect. This will cause your simulation to run very slowly. If you are using this switch to preserve visibility for Debug or PLI features, please see the User’s Manual section on Preserving Object Visibility with vopt. -novopt option is now deprecated and will be removed in future releases.

    出错解决
    Modelsim SE-64 2020.4 不能关闭优化的错误及其解决 Error (suppressible): (vsim-12110)

    在这里插入图片描述

    在这里插入图片描述

    若没有Wave窗口

    ModelSim的wave波形窗口在哪里打开

    点击View勾选Wave

    在Objects中右键变量->点击Add Wave使其添加到Wave窗口中

    仿真结果

    点击运行按钮

    四选一功能是正确的

    sel是00
    out和in0保持一致

    在这里插入图片描述

    在这里插入图片描述

    结束仿真

    在这里插入图片描述

    五、打开已建立过的工程

    File -> Open

    在弹出的窗口中,文件类型选.mpf

    然后路径指到工程所在文件夹,选择建立的.mpf文件即可
    在这里插入图片描述
    在这里插入图片描述

    六、相关实验

    一、实验二选一

    编写代码
    module mux21(in1,in2,sel,out);
        input[3:0]in1,in2;
        input sel;
        output[3:0]out;
        wire[3:0]out;
        assign out = (!sel)?in1:in2;  
    endmodule
    
    
    module mux21_tb;
      reg in1,in2;
      reg sel;
      wire out;
      mux21 uut(.in1(in1), .in2(in2),.sel(sel),.out(out));
      initial 
        begin
             in1 = 0; in2 = 0; sel = 0;
        #100 in1 = 1; in2 = 0; sel = 0;
        #100 in1 = 1; in2 = 1; sel = 1;
        #100 in1 = 0; in2 = 1; sel = 1;
        end
    endmodule
    
    仿真结果

    在这里插入图片描述

    二、实验四选一

    编写mux41

    在这里插入图片描述

    设计代码

    module mux41(
    	input wire in0,
    	input wire in1,
    	input wire in2,
    	input wire in3,
    	input wire [1:0] sel,
    	output reg out);
    	always@(*)
    		case(sel)
    			2'b00: out=in0;
    			2'b01: out=in1;
    			2'b10: out=in2;
    			2'b11: out=in3;
    			default: out=1'b0;
    		endcase
    endmodule
    
    
    编写mux41_tb

    在这里插入图片描述

    测试代码

    module mux41_tb;
    	reg in0,in1,in2,in3;
    	reg [1:0] sel;
    	wire out;
    	mux41 uut(.in0(in0), .in1(in1), .in2(in2), .in3(in3),
    	.sel(sel), .out(out));
    	initial 
    		begin
    				 in0=0;in1=0;in2=0;in3=0;	sel=2'b00;
    			#100 in0=1;in1=0;in2=0;in3=0;	sel=2'b00;
    
    			#100 in0=1;in1=0;in2=0;in3=0;	sel=2'b01;
    			#100 in0=1;in1=1;in2=0;in3=0;	sel=2'b01;
    			
    			#100 in0=1;in1=1;in2=0;in3=0;	sel=2'b10;
    			#100 in0=1;in1=1;in2=1;in3=0;	sel=2'b10;
    			
    			#100 in0=1;in1=1;in2=1;in3=0;	sel=2'b11;
    			#100 in0=1;in1=1;in2=1;in3=1;	sel=2'b11;
    		end
    endmodule
    
    
    运行仿真

    在这里插入图片描述

    若出错

    ** Error (suppressible): (vsim-12110) All optimizations are disabled because the -novopt option is in effect. This will cause your simulation to run very slowly. If you are using this switch to preserve visibility for Debug or PLI features, please see the User’s Manual section on Preserving Object Visibility with vopt. -novopt option is now deprecated and will be removed in future releases.

    出错解决
    Modelsim SE-64 2020.4 不能关闭优化的错误及其解决 Error (suppressible): (vsim-12110)

    在这里插入图片描述

    在这里插入图片描述

    若没有Wave窗口

    ModelSim的wave波形窗口在哪里打开

    点击View勾选Wave

    在Objects中右键变量->点击Add Wave使其添加到Wave窗口中

    仿真结果

    点击运行按钮

    四选一功能是正确的

    sel是00
    out和in0保持一致

    在这里插入图片描述

    在这里插入图片描述

    结束仿真

    在这里插入图片描述

    三、实验D触发器

    编写代码

    设计代码

    module dff(din,clk,q);
       input din,clk;
       output q;
       reg q;
       always @(posedge clk) 
          q<=din;
    endmodule
    
    

    测试代码

    `timescale 1ns/1ns  
    module dff_tb;
    	reg clk,data_in;
    	wire data_out;
      dff U1(data_in,clk,data_out);
      always #5 clk=~clk;  
      initial
    		begin
    			clk=0;
    			data_in=0;  
    			#20 data_in=1;
    			#20 data_in=0;
    			#20 data_in=1;
    			#15 data_in=0;
    			#15 data_in=1;
    		end
    endmodule
    
    
    开始仿真

    在这里插入图片描述
    右键 simulate

    仿真结果

    分析波形。
    在时钟上升沿,Dout=Din。
    D触发器功能正确。
    在这里插入图片描述

    最后

    请您阅读文章声明,默认同意该声明
    打赏通道
    请添加图片描述

  • 相关阅读:
    【课程作业】西瓜书 机器学习课后习题 : 第四章
    python用pip安装第三方库提示:Can’t connect to HTTPS URL because the SSL module...的解决办法
    2023年 MOOC《计算机网络》—— 第四章CSMA/CD作业答案解析(手写版)
    最重要的传输层
    Spark 3.0 - 4.Pipeline 管道的工作流程
    C++ 类的声明笔记
    快速学会linux中ssh服务的连接
    AI:63-基于Xception模型的服装分类
    Anaconda与Jupyter Notebook入门级详细使用教程
    Qt扫盲-QSqlRelationalTableModel 理论总结
  • 原文地址:https://blog.csdn.net/qq_51625007/article/details/127098442
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号