Modelsim下载安装【Verilog】

本文详细介绍了Modelsim软件的下载、安装和使用过程,特别针对Verilog语言的仿真进行了讲解,包括如何编写和测试四选一逻辑门、D触发器等实验,以及解决常见的错误问题,如vsim-12110警告和Wave波形窗口的开启。
摘要由CSDN通过智能技术生成

前言

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

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触发器功能正确。
在这里插入图片描述

最后

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

### 回答1: ModelSim仿真教程Verilog是一种用于学习和使用ModelSim仿真工具的教程,主要针对Verilog语言进行讲解。该教程包括了ModelSim仿真工具的基本操作、Verilog语言的基础知识、Verilog模块的设计和仿真等内容。通过学习该教程,可以帮助初学者快速掌握ModelSim仿真工具的使用方法,以及Verilog语言的基本概念和设计方法,从而更好地进行数字电路设计和仿真。 ### 回答2: Modelsim是业界最受欢迎的Verilog仿真器之一,具有学习简单、使用方便、功能强大等优点,广泛应用于硬件设计和验证中。以下为你提供有关Modelsim仿真教程Verilog的详细介绍: 1. Modelsim的基本操作: (1) 新建工程:在Modelsim面板上点击"File"->"New"->"Project",输入工程名称和路径,选择仿真信息,包括仿真方式、Verilog源文件和仿真设置等。 (2) 添加源文件:在工程管理面板上点击"Add Files",选择要添加的Verilog源文件。 (3) 编译:在菜单栏中选择"Compile",或者点击工具栏上的"Compile"图标,对Verilog源文件进行编译。 (4) 仿真:在仿真前需要设置仿真时钟、信号参数和仿真波形图等,然后点击菜单栏中的"Simulate",或者点击工具栏上的"Run"图标,进行仿真。 (5) 分析仿真结果:在仿真结果窗口中,可以查看仿真信号的变化、波形图、仿真日志等信息,进行仿真结果的分析和验证。 2. Verilog的基本语法: Verilog是一种基于模块化设计的硬件描述语言,由模块、端口、信号和过程组成。以下是Verilog的基本语法: (1) 模块的声明:用"module"关键字声明模块,格式如下: module 模块名称(端口声明); (2) 端口的声明:用"input"或"output"关键字声明模块的输入和输出端口,格式如下: input 端口名称; output 端口名称; (3) 信号的声明:用"wire"或"reg"关键字声明信号,分别用于连线和存储,格式如下: wire 信号名称; reg 信号名称; (4) 过程的声明:用"always"关键字声明过程,控制信号的变化,格式如下: always @(敏感信号) begin 过程语句 end 3. Verilog的应用场景: Verilog广泛应用于FPGA、ASIC、芯片设计、集成电路等领域,主要用于硬件设计、仿真和验证。其中,FPGA是最主要的应用场景之一,可以实现高速、低成本的电路设计和验证,广泛应用于各个行业的产品中。ASIC是应用范围较广的电路设计应用,可以实现低功耗、高集成度的芯片设计,用于网络通信、消费电子、汽车电子等行业的产品中。集成电路是应用领域最广的硬件设计应用之一,可以实现超大规模、超高速、超低功耗的芯片设计,用于计算机、通信、医疗、能源等各个领域的产品中。 总之,Modelsim仿真教程Verilog是硬件设计和验证中必不可少的技能,只有掌握了它的基本操作和语法,才能提高硬件设计的效率、减少错误率、提高产品质量和竞争力。 ### 回答3: ModelSim是一款广泛使用的EDA仿真工具,可以支持Verilog、VHDL等硬件描述语言的仿真,对于数字电路、嵌入式系统和FPGA等的开发具有重要的作用。下面将从两个方面来介绍ModelSim仿真教程Verilog。 一、ModelSim仿真环境介绍 ModelSim仿真环境由两个窗口组成:Wave窗口和console窗口。Wave窗口显示波形,可用于观察待仿真电路输出信号的变化;console窗口用于输入仿真指令,查看仿真状态。下面介绍ModelSim仿真环境的基本操作: 1. 启动ModelSim软件,在File菜单中选择「New」命令创建新工程。 2. 在New Project Wizard页面,填写工程名、工程路径等信息,勾选Add Existing Files后点击Next。 3. 选择仿真源代码文件,添加至工程中。 4. 在Working Directory窗格下方的Command Line中输入仿真指令,完成仿真流程。 5. 在console窗口中,输入run -all命令即可启动仿真。 二、ModelSim仿真实例 下面我们来看一个简单的Verilog模块的仿真实例。我们将通过ModelSim仿真环境,验证Verilog代码的正确性。 代码: module test(Din, Dout); input [7:0] Din; output [7:0] Dout; // 2-1 multiplexer assign Dout = (Din[6]) ? Din[3:0] : Din[7:4]; endmodule 仿真原理: 该Verilog代码实现一个8位2-1多路复用器。通过判断输入信号Din[6]的值,输出Din[3:0]或Din[7:4]中的信号。 仿真流程: 1. 新建工程。 2. 新建仿真源代码文件test.v。 3. 在console窗口中,输入vlib test_lib,创建新仿真库。 4. 在console窗口中,输入vlog test.v -work test_lib,编译仿真源代码。 5. 在console窗口中,输入vsim work.test,启动仿真。 6. 在Wave窗口中,添加模块信号进行波形显示。 7. 在console窗口中,输入run -all命令,开始仿真。 仿真结果: 仿真结果显示Dout输出信号,符合实际情况。 综上,ModelSim仿真教程的Verilog,可以帮助我们更好地了解数字电路的实现流程,优化硬件电路结构。同时,ModelSim仿真工具也为数字电路设计提供了可靠的验证手段。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

日星月云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值