【用VCS跑关于继承的测试用例以及报错调整】

145 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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,都想扇自己两个大嘴巴子!哈哈


3.运行结果

在这里插入图片描述