从零开始的SystemVerilog之modelsim的仿真教程 Label: Research

首先激活modelsim然后打开modelsim

新建project

 

选择要使用的语言,这里使用systemverilog

 对于初学者,可以只使用一个文件编写主要模块和testbench(tb文件),所以这里直接关闭窗口

双击打开

填入测试代码

package definitions;
    parameter   version = "1.1";
    
    typedef enum {ADD, SUB, MUL} opcodes_t;

    typedef struct {
        logic   [31:0]  a, b;
        opcodes_t   opcode; //opcode ADD, SUB MUL
    } instruction_t;

    typedef union  {
        logic [31 : 0] u_data;
        logic signed [31 : 0] s_data;
    } data_t;

	 
endpackage 

//import definitions::*;

module homework5_5(
//	import definitions:: instruction_t IW,
	input logic read,
	output logic [31:0] result);
	
	import definitions:: *;
	
	enum logic {ON=1'b0, OFF=1'b1, HZ=1'bz, UN=1'bx} fo_st;
	
endmodule

`timescale 1 ns/ 1 ns
module homework5_5_tb();
logic read;//tb这里不要写input和output
logic [31:0] result;

// assign statements (if any)                          
homework5_5 i1 (//注意这里的引用要和主模块名称一致
// port map - connection between master ports and signals/registers   
	.read(read),
	.result(result)
);

initial                                                
begin                                               
	read=0;
	result=0;
	$display("variable"); 
end
                                                    
always                                                    
begin                                                             
	#10;
    result++;
	read+=2;
    if ($time >= 1000) begin
        $finish ;
    end
end        

endmodule

保存,右击,编译所有

提示编译成功

返回library,刷新工作区(如果不返回工作区刷新,有时候会报错Error loading design或者can't read "Startup(-L)": no such element in array

右击tb模块,选择仿真(一定要选择tb模块来仿真,因为目的是为了测试)

右击tb模块,添加波形

run-all

选择否

返回波形视图,查看仿真结果

posted @ 2022-09-17 21:52  Radiumlrb  阅读(1062)  评论(0编辑  收藏  举报