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浏览量
8159
原文标题:SystemVerilog中的队列数组、队列队列和队列关联数组
文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
什么是数据结构(Data Structrue)
什么是数据结构(Data Structrue) 一 名词术语数据:描述客观事物的数字,字符以及一切能够输入到计算机中,并且能够被计算机程序处理的符号的集合。数据元素:
发表于 02-09 17:17
数据结构的几个重要知识点
希望所招入的技术人员能够面向数据和逻辑,这对于整个软件架构来说很重要,而不仅仅是把一段代码写好。数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中
发表于 02-27 15:01
常见的数据结构
顺序表结构的底层实现借助的就是数组,因此对于初学者来说,可以把顺序表完全等价为数组,但实则不是这样。数据结构是研究数据存储方式的一门学科,它囊括的都是各种存储
发表于 05-10 07:58
Linux内核中的数据结构的一点认识
大家都知道linux内核是世界上优秀的软件之一,作为一款优秀的软件,其中的许多的设计都精妙之处,十分值得学习和借鉴。今天我们就带大家看一下内核中的数据结构中一点设计。打开内核源码中的 include
发表于 04-20 16:42
C语言入门教程-动态数据结构
动态数据结构
动态数据结构可以根据需要,从称之为堆的内存空间上分配和释放内存。动态数据结构在C程序中极其重要,因为通过动态数据结构,程序员
发表于 07-29 11:51
•1053次阅读
什么是数据结构
什么是数据结构
1、数据类型和数据结构·数据值:atomic data value: 不可再分解。如3、2、5等。nonatomicdata value:
发表于 08-13 13:56
•1558次阅读
数据结构在游戏编写中的应用
在游戏的编写中,不可避免的出现很多应用数据结构的地方,有些简单的游戏,只是由几个 数据结构 的组合,所以说,数据结构在游戏编程中扮演着很重要的角色。 本文主要讲述数据
发表于 07-25 16:26
•0次下载
数据结构是什么_数据结构有什么用
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构
发表于 11-17 14:45
•1.6w次阅读
什么是数据结构?为什么要学习数据结构?数据结构的应用实例分析
本文档的主要内容详细介绍的是什么是数据结构?为什么要学习数据结构?数据结构的应用实例分析包括了:数据结构在串口通信当中的应用,数据结构在按键
发表于 09-26 15:45
•14次下载
评论