SystemVerilog——面向对象编程

本文详细介绍了SystemVerilog的面向对象编程(OOP)特性,包括类的定义、对象创建与销毁、静态变量与全局变量的使用、方法和作用域规则等。通过OOP,可以将测试平台划分为生成器、驱动器、监视器和记分板等组件,提高代码的可读性和可维护性。此外,文章还讨论了动态对象、句柄的使用以及对象复制等概念,强调了类的封装性和数据安全性。
摘要由CSDN通过智能技术生成

传统的测试平台强调的是要做的操作:创建一个事务、发送、接收检查结果、然后产生报告。而在OOP中.你需要重新考虑测试平台的结构,以及每部分的功能。发生器(generator)创建事务并且将它们传给下一级,驱动器(driver)和设计进行会话,设计返回的事务将被监视器(monitor)捕获,记分板(scoreboard)会将捕获的结果跟预期的结果进行比对。因此,测试平台应该分成若干个(block),然后定义它们相互之间如何通信。

类class

类封装了数据和操作这些数据的子程序

//简单的transaction类
class Transaction;
    bit [31:0] addr,crc,data[8];

    function void display;
        $display("transaction:%h",addr);
    endfunction:display

    function void calc_crc;
        crc = addr ^ data.xor;
    endfunction:calc_crc;
endclass:Transaction

定义类

在SystemVerilog中可以把类定义在program,module,package中,或者在这些块之外的任何地方。类可以在程序和模块中使用。在此之前,可以将程序块当作一个包含了测试代码的模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

取个名字真难啊啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值