首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >系统verilog中的复杂DataType (队列哈希)

系统verilog中的复杂DataType (队列哈希)
EN

Stack Overflow用户
提问于 2022-05-16 08:10:04
回答 1查看 266关注 0票数 0

假设我声明了一个队列:axi4_req_txn_t wr_req_queue[$];现在我想要一个队列的散列,键是地址,数据是指向队列的指针;在systemverilog中有可能吗?

当我编写如下代码:typedef wr_req_queue waw_hash[*];时,编译器报告wr_req_queue不是有效类型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-16 17:52:31

经验法则是,如果您想要在另一个ty对联f中使用,则将任何复杂的结构表示为ty胡枝子。下面是一个队列数组的简单示例:

代码语言:javascript
运行
复制
package pkg;
   typedef int mytype_t; // whatever the type of queue elements 
   typedef mytype_t queue_type_t[$];  // queue of mytype_t
   typedef queue_type_t array_type_t[int]; // associative  array of queues
endpackage // pkg

// test the above
module tb;
   import pkg::*;
   
   array_type_t arr;

   initial begin
      arr[0] = {0};
      arr[1] = {1};
      arr[3] = {arr[0], arr[1]};

      $display(arr);
   end
endmodule // tb

或者反之亦然,数组队列:

代码语言:javascript
运行
复制
package pkg;
   typedef int/*your type*/ mytype_t;
   typedef mytype_t array_type_t[int];
   typedef array_type_t queue_type_t[$];
endpackage // pkg

module tb;
   import pkg::*;
   
   array_type_t arr;

   initial begin
      array_type_t arr1, arr2;
      queue_type_t que;

      arr1[0] = 0;
      arr2[0] = 1;
      arr2[1] = 2;

      que = {arr1};
      que = {que,arr2};

      $display(que);
   end
endmodule // tb
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72256005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档