從零開始的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

選擇否

返回波形視圖,查看仿真結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章