0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SystemVerilog中可以嵌套的数据结构

芯片验证工程师 来源:芯片验证工程师 作者:验证哥布林 2022-11-03 09:59 次阅读

SystemVerilog中除了数组、队列和关联数组等数据结构,这些数据结构还可以嵌套。

module top;
 typedef int Qint[$];
 // dynamic array of queues
 Qint DynamicQ[ ]; // same as int DynamicQ[ ][$];
 // queue of queues
 Qint QueueQ[$]; // same as int QueueQ[$][$];
 // associative array of queues
 Qint AssociativeQ[string]; // same as
 //int AssociativeQ[string][$];
 initial begin
 // Dynamic array of 2 queues
 DynamicQ = new[2]; //Create dynamic array of size 2 
(queues)
 // initialize queue 0 with three entries
 DynamicQ[0] = {1,2,3};
 // Push onto queue 1
 DynamicQ[1].push_back(1);
 
 $display("DynamicQ = %p", DynamicQ);
 //push/initialize queue of 3 queues
 QueueQ[0].push_front(7);
 QueueQ[1].push_back(6);
 QueueQ[2].push_back(1);
 $display("QueueQ = %p", QueueQ);
 // Associative array of queues
 AssociativeQ["one"].push_back(5);
 AssociativeQ["two"] = {5,6,7,8};
 $display("AssociativeQ = %p", AssociativeQ);
 end
 endmodule : top

仿真log:

DynamicQ = '{'{1, 2, 3} , '{1} }
QueueQ = '{'{7} , '{6} , '{1} }
AssociativeQ = '{"one":'{5} , "two":'{5, 6, 7, 8} }

在上面的例子中,我们定义了三种不同类型的数据结构。队列动态数组、队列队列和队列关联数组:

 // dynamic array of queues
 Qint DynamicQ[ ]; // same as int DynamicQ[ ][$];
 // queue of queues
 Qint QueueQ[$]; // same as int QueueQ[$][$];
 // associative array of queues
 Qint AssociativeQ[string]; // same as
 //int AssociativeQ[string][$];

初始化这个队列动态数组大小为2,然后分别初始化这两个数组:

 DynamicQ = new[2]; //Dynamic Array size of 2. 
 DynamicQ[0] = {1,2,3}; 
 DynamicQ[1].push_back(1);

初始化队列队列

 QueueQ[0].push_front(7);
 QueueQ[1].push_back(6);
 QueueQ[2].push_back(1);

初始化队列关联数组

 //Queue at associative index/key "one"
 AssociativeQ["one"].push_front(5);
 //Queue at associative index/key "two"
 AssociativeQ["two"] = {5,6,7,8};





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog语言
    +关注

    关注

    0

    文章

    113

    浏览量

    8221

原文标题:SystemVerilog中的队列数组、队列队列和队列关联数组

文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是数据结构(Data Structrue)

    什么是数据结构(Data Structrue) 一 名词术语数据:描述客观事物的数字,字符以及一切能够输入到计算机,并且能够被计算机程序处理的符号的集合。数据元素:
    发表于 02-09 17:17

    数据结构

    的逻辑结构,是指反映数据之间逻辑关系的数据结构。对于电脑上的数据而言,逻辑结构就是能够用眼睛看到的数据
    发表于 03-04 14:13

    常见的数据结构

    顺序表结构的底层实现借助的就是数组,因此对于初学者来说,可以把顺序表完全等价为数组,但实则不是这样。数据结构是研究数据存储方式的一门学科,它囊括的都是各种存储
    发表于 05-10 07:58

    数据结构教程,下载

    1. 数据结构的基本概念 2. 算法与数据结构3. C语言的数据类型及其算法描述要点4. 学习算法与数据结构的意义与方法
    发表于 05-14 17:22 0次下载
    <b class='flag-5'>数据结构</b>教程,下载

    GPIB命令的数据结构

    针对GPIB命令的结构,提出一种存储GPIB命令的数据结构。根据GPIB命令的层次关系的特点,选择数据结构“树”的概念来存储GPIB命令结点;并考虑程序实现的效率问题以及管理维护
    发表于 02-10 16:20 70次下载

    GPIB命令的数据结构

    针对GPIB命令的结构,提出一种存储GPIB命令的数据结构。根据GPIB命令的层次关系的特点,选择数据结构“树”的概念来存储GPIB命令结点;并考虑程序实现的效率问题以及管理维护
    发表于 01-04 10:13 0次下载

    什么是数据结构

    什么是数据结构 1、数据类型和数据结构·数据值:atomic data value: 不可再分解。如3、2、5等。nonatomicdata value:
    发表于 08-13 13:56 1679次阅读

    数据结构在游戏编写的应用

    在游戏的编写,不可避免的出现很多应用数据结构的地方,有些简单的游戏,只是由几个 数据结构 的组合,所以说,数据结构在游戏编程扮演着很重要
    发表于 07-25 16:26 0次下载

    数据结构与算法

    全国C语言考试公共基础知识点——数据结构与算法,该资料包含了有关数据结构与算法的全部知识点。
    发表于 03-30 14:27 0次下载

    数据结构是什么_数据结构有什么用

    数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构
    发表于 11-17 14:45 1.6w次阅读
    <b class='flag-5'>数据结构</b>是什么_<b class='flag-5'>数据结构</b>有什么用

    java几种常用数据结构

    对于数组和链表这两种数据结构,如果要查找它们存储的某个特定元素却不知道它的位置,就需要从头开始访问元素直到找到匹配的为止;如果数据结构包含很多的元素,就会浪费时间。这时最好使用散列表来存储要查找的
    的头像 发表于 02-08 16:12 1.5w次阅读
    java<b class='flag-5'>中</b>几种常用<b class='flag-5'>数据结构</b>

    为什么要学习数据结构数据结构的应用详细资料概述免费下载

    本文档的主要内容详细介绍的是为什么要学习数据结构数据结构的应用详细资料概述免费下载包括了:数据结构在串口通信当中的应用,数据结构在按键监测当中的应用
    发表于 09-11 17:15 13次下载
    为什么要学习<b class='flag-5'>数据结构</b>?<b class='flag-5'>数据结构</b>的应用详细资料概述免费下载

    什么是数据结构?为什么要学习数据结构数据结构的应用实例分析

    本文档的主要内容详细介绍的是什么是数据结构?为什么要学习数据结构数据结构的应用实例分析包括了:数据结构在串口通信当中的应用,数据结构在按键
    发表于 09-26 15:45 14次下载
    什么是<b class='flag-5'>数据结构</b>?为什么要学习<b class='flag-5'>数据结构</b>?<b class='flag-5'>数据结构</b>的应用实例分析

    什么是栈?数据结构栈如何实现

    今天放松一下,我们来看看数据结构的栈,这节的知识点可以说是数据结构中最容易上手的知识点了,其实比起链表,其实链表也有栈和队列的模型,链表的头插其实就是后进先出,链表的尾插其实就是先进
    发表于 04-29 18:25 0次下载
    什么是栈?<b class='flag-5'>数据结构</b><b class='flag-5'>中</b>栈如何实现

    epoll的基础数据结构

    一、epoll的基础数据结构 在开始研究源代码之前,我们先看一下 epoll 中使用的数据结构,分别是 eventpoll、epitem 和 eppoll_entry。 1、eventpoll 我们
    的头像 发表于 11-10 10:20 783次阅读
    epoll的基础<b class='flag-5'>数据结构</b>