返回介绍

11.3 概述

发布于 2020-09-09 22:55:49 字数 923 浏览 1021 评论 0 收藏 0

类是一种数据类型,它包含了数据以及对数据进行操作的子程序(函数和任务)。类的数据被称为类属性,它的子程序被称为方法,无论是类属性还是方法都是类的成员。类属性和方法结合在一起,定义了某种类型的对象的内容和能力。

例如,一个数据包可以是一个对象。它可能具有一个命令域、一个地址、一个序列号、一个时戳、以及一个数据包净荷。另外,一个数据包可以实现多项不同的任务:初始化数据包、设置命令、读取数据包的状态、或者检查序列号。尽管每一个数据包都是不同的,然而作为一个类,数据包具有某些固有的属性,这些固有属性可以在类的定义中进行说明。

class Packet;
    // 数据或类属性
    bit [3:0] command;
    bit [40:0] address;
    bit [4:0] master_id;
    integer time_requested;
    integer time_issued;
    integer status;

    // 初始化
    function new();
        command = IDLE;
        address = 41'b0;
        master_id = 5'bx;
    endfunction

    // 方法
    // 公共访问入口点
    task clean();
        command = 0;
        address = 0;
        master_id = 5'bx;
    endtask

    task issue_request(int delay);
        // 向总线发送请求
    endtask

    function integer current_status();
        current_status = status;
    endfunction
endclass

一个通常的惯例是以大写字母形式书写类名字的第一个字母,这样我们能够很容易地识别类声明。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文