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

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

Stack Overflow用户
提问于 2022-05-16 00: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 09:52:31

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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

复制
相关文章
Verilog复杂逻辑设计指南-ALU
算术逻辑单元(ALU)在大多数处理器中用于执行算术和逻辑运算。处理器根据操作代码(opcode)一次执行一个操作。对于8位处理器,ALU用于对两个8位操作数(Operand,操作数是需要对其执行操作的数据)执行操作。同样,对于16位处理器,ALU用于对两个16位数字执行操作。
碎碎思
2022/04/14
1.7K0
Verilog复杂逻辑设计指南-ALU
swagger中参数为数组dataType的设置
swagger中参数为数组dataType的设置
Java架构师必看
2021/09/22
3.5K0
swagger中参数为数组dataType的设置
Verilog中generate的使用
Verilog中的generate语句常用于编写可配置的、可综合的RTL的设计结构。它可用于创建模块的多个实例化,或者有条件的实例化代码块。然而,有时候很困惑generate的使用方法,因此看下generate的几种常用用法。
数字IC小站
2020/07/01
4.9K0
Verilog复杂逻辑设计指南-函数和任务
任务和函数在Verilog中用于描述常用的功能行为。与其在不同的地方复制相同的代码,不如根据需求使用函数或任务,这是一种良好且常见的做法。为了便于代码维护,最好使用子例程之类的函数或任务。
碎碎思
2022/04/14
4790
Verilog复杂逻辑设计指南-函数和任务
verilog中的操作符
其中, con_expr是条件表达式,他的结果为真或假;expr1,expr2是待选的执行表达式。当 con_expr为真时,选择执行expr1,否则选择执行expr2.
数字积木
2021/04/15
1.1K0
基于FPGA的直接扩频通信系统设计(中)Verilog 实现
今天给大侠带来直接扩频通信,由于篇幅较长,分三篇。今天带来中篇,也是第二篇,系统的 verilog 实现 。话不多说,上货。
FPGA技术江湖
2021/05/21
6760
基于FPGA的直接扩频通信系统设计(中)Verilog 实现
MySQL中的哈希索引
在MySQL中,如果你使用的是Innodb存储引擎,那么经常会遇到B+树索引的概念,关于这个概念,之前的文章中我们讲过,除此之外,还有一种索引值得关注,那就是"哈希索引"。
AsiaYe
2019/11/06
1.7K0
Redis中的哈希问题
在说redis中的哈希(准确来说是一致性哈希)问题之前,先来看一个问题:为什么在分布式集群中一致性哈希会得到大量应用?
大数据学习与分享
2020/08/10
9360
Redis中的哈希问题
Verilog中用于时序验证的系统任务[setup][hold][skew][width][recovery][removal]
C. $setuphold(posedge clk, data, tSU, tHLD)
FPGA探索者
2021/05/26
2.3K0
聊聊Java中的并发队列中 有界队列和无界队列的区别
转载自 https://blog.csdn.net/AJ1101/article/details/81711812
allsmallpig
2021/02/25
2.8K0
栈与队列:系统中处处都是栈的应用
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
代码随想录
2020/09/21
4540
你真的理解Verilog 中的module吗?
通过前段时间的面试,我发现很多入门或者工作1~2年的人,对于module的理解还停留在一种语法的关键字,类似c中的main,我相信应该还有很多人的想法都是这样。经过这几天的思考,我发现造成目前这种情况并不是个人能力导致的,而是国内的环境导致的。
碎碎思
2021/12/17
9670
你真的理解Verilog 中的module吗?
LeetCode 609. 在系统中查找重复文件(哈希)
给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径。 一组重复的文件至少包括二个具有完全相同内容的文件。
Michael阿明
2020/07/13
1.5K0
SystemVerilog与Verilog中多重定义
最常见的情况就是在写的Testbench中,一般来说,我们首先会创建一个数据包packet类,然后分别在generator、driver、scoreboard等类中调用它,也就是说多个文件包含同一个文件,这时候如何不添加其他语句,仿真器预处理时就会出现多重定义的错误。
数字IC小站
2020/06/30
1.7K0
Python中的哈希常识小结
       Python中,哈希是一种将相对复杂的值简化成小整数的计算方式。哈希值可以表示出原值所有的位,有些哈希值会得出非常大的数值,这样的算法通常用于密码学。
py3study
2020/01/03
8190
Java 中哈希码的说明
哈希码产生的依据:哈希码并不是完全唯一的,它是一种算法,让同一个类的对象按照自己不同的特征尽量的有不同的哈希码,但不表示不同的对象哈希码完全不同。也有相同的情况,看程序员如何写哈希码的算法。
全栈程序员站长
2022/11/17
5760
Java 中哈希码的说明
MyBatis中的复杂映射
上一章中实现的MyBatis对象映射较为简单,对象中的属性和数据库中的表字段是一一对应的(无论数量和名称都完全一样),如果对象中的属性名和表中的字段名不一致怎么办?又或者Java对象中存在复杂类型属性(即类似Hibernate中多对一、一对多关系对象时)怎么完成数据库表和对象的映射?本章来解决这样的问题。
用户10175992
2022/11/15
2.1K0
MyBatis中的复杂映射
如何交接复杂的遗留系统?
一半以上的新项目,都始于交接。交接期有长有短,交接形式多种多样。不管怎样,从客户关系、团队工作方式等各方面,交接期都奠定了项目进入稳定交付或维护期的基调。
ThoughtWorks
2022/02/16
7860
如何交接复杂的遗留系统?
理解复杂系统的关键:耐心
复杂系统本质上是多面的、复杂的。它们通常并非被设计成一瞬间就能理解的。这对于自然发生的系统,如生态系统,和人类设计的系统,如高级软件或机械,都是适用的。这些系统是由多个组件混合而成,每个组件都有其独特的属性和角色。要理解整个系统,理解每个组件及其相互作用是至关重要的。这个过程需要时间,因此,需要相当程度的耐心。
明明如月学长
2023/08/02
1520
理解复杂系统的关键:耐心
点击加载更多

相似问题

队列在系统Verilog中有什么用途?

11

C队列实现中的Datatype

32

系统verilog/verilog -事件

33

Verilog中的复杂端口连接

112

系统Verilog中的Coverpoint

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文