SV结构体

本文介绍了结构体(struct)在硬件描述语言中的使用,它用于组合不同类型的信号,如在总线协议中组织数据。示例展示了如何定义、操作和赋值非填充与填充结构体,并解释了填充结构体在并行改串行转换中的作用。内容涵盖了变量选择、赋值操作以及结构体成员的访问方式。
摘要由CSDN通过智能技术生成
  • struct是有一组变量或常数组成的集合,可以作为一个整体进行操作,也可以操作其中一部分
  • 将逻辑上相关的信号放在一起,比如总线协议
struct{
	int          a,b;
	logic [7:0]  opcode;
	logic [23:0] address;
	bit          error;
}Instruction_Word
  • 使用结构体的名字操作整个变量
<structure_name>.<variable_name>
Instruction_Word.address = 24'hF00000;
  • 结构体默认是非填充的,使用关键字packed可以将结构体声明成填充的结构体,填充结构体将所有的数据元素存储在连续的单元内,结构体的第一个元素是矢量的最左侧域
//并行改串行,非填充改为填充
struct packed{
	logic valid;
	logic [7:0] tag;
	logic [31:0] data; 
}data_word

在这里插入图片描述

  • 填充结构体可以通过变量名或部分矢量选择来使用结构体中的变量
data_word.tag = 8'hf0;
data_word [39:32] = 8'hf0;
data_word = '{1,8'hff,1024};//赋值操作
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值