持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天!
下面基于VCS进行相关代码实操学习
1.测试用例
代码如下(示例):
class father;
string m_name;
function new(string name="");
m_name = name;
endfunction:new
function void print();
$display("Hello %s",m_name);
endfunction:print
endclass:father
class child0 extends father;
string car ="car";
function new(string name="");
m_name = name;
endfunction:new
endclass:child0
class child1 extends father;
string plane = "plane";
function new (string name = "");
m_name = name;
endfunction:new
endclass:child1
module test;
initial begin
father f;
child0 c0;
child1 c1;
child1 c2;
f = new("father");
f.print();
c0 = new("child0");
f = c0;
f.print();
c1 = new("child1");
f = c1;
f.print();
c1.plane= "J10";
$cast(c2,f);
c2.print();
$display("has %s",c2.plane);
end
endmodule
2.如何运行
打开终端,在命令行输入g test.sv ,就可以打开gvim终端,然后把上述代码复制进去。
在命令行输入vcs -R -full64 -sverilog test.sv(这里需要首先给其命名为test.sv)
刚开始运行时
这个报错的原因是因为我第一没有把initial 语句块写到module里。
又跑了一次,发现
这一次又报错了,才发现因为自己存心,敲成了diaplay,才发现这真是绝了,里面居然高亮还是识别出了,害。改成$display,都想扇自己两个大嘴巴子!哈哈