yuanpin318的个人空间 https://blog.eetop.cn/13812 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

sv class

已有 495 次阅读| 2019-6-18 20:56 |个人分类:Verilog|系统分类:芯片设计

1 子类调用父类的member: super.computer_crc();
2 子类和父类的handle相互赋值
          parent = child;
          $cast(child, parent);
3 父类作为函数参数
         task proc (parent_class tr);
           ...
         endtask
         ...
        proc(child_tr);
4 多态:用virtual task/function实现
          a. 父类中有proc task, 子类中也有proc task,tr.proc()会使用父类还是子类的呢?
                 这取决于tr的类型,与是否virtual无关。如果tr的类型是父类,那么使用父类中的proc,否则使用子类的proc
          b. 但当父类作为function的参数时就不一样了
              task compute (parent_class tr);
                ...
                tr.proc();      
              endtask
              ...
              computer(child);   //如果proc不是virtual, 则一定调用父类的proc;
                                        //如果要调用子类的proc,那么proc要声明为virtual
5 在class定义的外面实现task和function
          class parent;
               ...
               external virtual function void proc();
          endclass
          function void parent::proc();
             ...
          endfunction
6 parameterized class
             class stack #(type T=int);
                 local T item;
                ...
                external virtual function T pop();
                ...
            endclass
            stack #(bit[31:0]) addr_stack;                            或                               typedef stack #(bit[31:0]) stack32;
            stack #(transaction) tr_stack;                                                                typedef stack #(transaction) stack_tr;
                                                                                                                          stack32    addr_stack;
                                                                                                                          stack_tr    tr_stack;
           
7 声明顺序是C1, C2,但C1中要用C2,需要使用typedef
          typedef class C2;
          class C1;
               ...
               C2 obj;
              ...
          endclass
          class C2
             ...
          endclass

8. static变量
    



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 11

    粉丝
  • 2

    好友
  • 18

    获赞
  • 7

    评论
  • 3605

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 16:10 , Processed in 0.016767 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部