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

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

日志

测试平台架构_测试平台2

已有 680 次阅读| 2018-9-4 09:13 |系统分类:芯片设计

天气: 晴朗
心情: 高兴

       与任何其他OOP语言(如C ++和Java)中的类一样,SystemVerilog类定义是在内存中构造的对象的模板。一旦创建,该对象将持久存储在内存中,直到它被解除引用并由自动后台进程进行垃圾回收。类模板定义了类的成员,它们可以是数据变量或方法。在SystemVerilog中,方法可以是非耗时的函数,也可以是消耗时间的任务。由于类对象必须在它存在于内存之前构造,因此必须从模块启动SystemVerilog测试平台中类层次结构的创建,因为模块是仿真开始时存在的静态对象。出于同样的原因,类不能包含模块。类被称为动态对象,因为它们可以在仿真的整个生命周期中来和去。

//
// 示例如何在静态对象(模块)中构造类
//

//
// 包含消息和一些便捷方法的示例类
//
class example;

string message;

function void set_message(string ip_string);
message = ip_string;
endfunction: set_message

function void print();
  $display("%s", message);
endfunction: print

endclass: example
//
// 使用类的模块 - 类被构造,使用和解引用
// 在仿真开始后的初始块中
//
module tb;
example C; // Null handle after elaboration
initial begin
  C = new(); // 处理指向内存中的C对象
C.set_message("This object has been created");
#10;
C.print();
C = null; // C已被解除引用,对象可以被垃圾收集
end

endmodule: tb



点赞

评论 (0 个评论)

facelist

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

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

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 0

    获赞
  • 6

    评论
  • 访问数
关闭

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

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

GMT+8, 2024-3-29 20:51 , Processed in 0.021909 second(s), 18 queries , Gzip On, Redis On.

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