首先激活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
選擇否
返回波形視圖,查看仿真結果