从零开始的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
选择否
返回波形视图,查看仿真结果
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!