队列同样可以保存类对象,这在验证环境中是非常有用的,下面是一个例子:
 class animals;
    string sname;
    int i1;
    function new (string name="UN");
        sname = name;
        i1++;
    endfunction
 endclass
 
 module tb;
 // queue of class type 'animals'
 animals alist [$];
 initial begin
    animals f, f2; //declare two variables of type animals
    // Create a new class object 'f' and push into the queue
    f = new ("lion");
    alist.push_front (f);
    // Create another class object 'f2'and push into the queue
    f2 = new ("tiger");
    alist.push_back (f2);
    // Iterate through queue and access each class object
    foreach (alist[i]) begin
        $display ("alist[%0d] = %s", i, alist[i].sname);
        $display ("alist[%0d] = %p", i, alist[i]);
    end
    // Simply display the whole queue
    $display ("alist = %p", alist);
 end
 endmodule
仿真log:
# KERNEL: alist[0] = lion
# KERNEL: alist[0] = '{sname:"lion", i1:1}
# KERNEL: alist[1] = tiger
# KERNEL: alist[1] = '{sname:"tiger", i1:1}
# KERNEL: alist = '{'{sname:"lion", i1:1}, '{sname:"tiger", i1:1}}
该示例声明了一个名为“animals”的类,字符串“name”初始化为“UN”。
声明了两个“animals”类型的对象" f "和“f2”。
创建“animals”类型的对象队列“alist”。
分别实例化两个对象“f”和“f2”,然后push到队列中。
	审核编辑:汤梓红
                        声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
                        举报投诉
                    
                    - 
                                Verilog
                                +关注
关注
28文章
1351浏览量
110078 - 
                                System
                                +关注
关注
0文章
165浏览量
36931 - 
                                队列
                                +关注
关注
1文章
46浏览量
10893 
原文标题:SystemVerilog中的类队列
文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
SystemVerilog 3.1a语言参考手册
本参考手册详细描述了Accellera为使用Verilog硬件描述语言在更高的抽象层次上进行系统的建模和验证所作的扩展。这些扩展将Verilog语言推向了系统级空间和验证级空间。SystemVerilog
    
                发表于 07-22 12:14        
                •188次下载    
    
SystemC 和SystemVerilog的比较
就 SystemC 和 SystemVerilog 这两种语言而言, SystemC 是C++在硬件支持方面的扩展,而 SystemVerilog 则继承了 Verilog,并对 Verilo
    
                发表于 08-16 10:52        
        •5368次阅读            
    
System Verilog与verilog的对比
SystemVerilog语言简介 SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE1364-2001 Verilog硬件描述语言(HDL),并对其进行了扩展,包括扩充
    
    
使用Verilog/SystemVerilog硬件描述语言练习数字硬件设计
HDLBits 是一组小型电路设计习题集,使用 Verilog/SystemVerilog 硬件描述语言 (HDL) 练习数字硬件设计~
    
    
FPGA学习-SystemVerilog语言简介
SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE1364-2001 Verilog硬件描述语言(HDL),并对其进行了扩展,包括扩充了 C语言 数据类型、结构、压缩和非
    
    
从Verilog PLI到SystemVerilog DPI的演变过程
写过Verilog和systemverilog的人肯定都用过系统自定义的函数$display,这是预定好的,可以直接调用的功能。
    
    
                    
    
如何实现全面的SystemVerilog语法覆盖
SystemVeirlog的全面支持是开发商用仿真器的第一道门槛。市面上可以找到不少基于纯Verilog的仿真器,但是真正能完整支持SystemVerilog 的仍然屈指可数。如何全面地支持SystemVerilog语言,是开发
    
    
                    
    
verilog-2005和systemverilog-2017标准规范
作为逻辑工程师,在FPGA和数字IC开发和设计中,一般采用verilog,VHDL或SystemVerilog等作为硬件描述语言进行工程设计,将一张白板描绘出万里江山图景。
    
    
                    
    
SystemVerilog在硬件设计部分有哪些优势
谈到SystemVerilog,很多工程师都认为SystemVerilog仅仅是一门验证语言,事实上不只如此。传统的Verilog和VHDL被称为HDL(Hardware Description
    
    
                    
    
SystemVerilog相比于Verilog的优势
我们再从对可综合代码的支持角度看看SystemVerilog相比于Verilog的优势。针对硬件设计,SystemVerilog引入了三种进程always_ff,always_comb
    
    
                    
    
verilog同步和异步的区别 verilog阻塞赋值和非阻塞赋值的区别
Verilog中同步和异步的区别,以及阻塞赋值和非阻塞赋值的区别。 一、Verilog中同步和异步的区别 同步传输和异步传输是指数据在电路中
    
    
          
        
        
systemverilog和verilog的区别
 
    
    
           
            
            
                
            
评论