前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【日更计划088】数字IC基础题【SV部分】

【日更计划088】数字IC基础题【SV部分】

作者头像
空白的贝塔
发布2021-04-07 10:34:22
5240
发布2021-04-07 10:34:22
举报
文章被收录于专栏:摸鱼范式

上期答案

[180] 有一个动态数组通过下列代码进行初始化,写一段代码找出数组中所有大于3的元素
代码语言:javascript
复制
int  myvalues [] = '{9,1,8,3,2,4,6},
int match_q[$];
match_q = myvalues.find with (item > 3);
[181] systemverilog中的union和struct有什么区别?

struct表示不同数据类型的集合。例如:在下面的示例中,我们定义了一个名为instruction_s的struct,该struct由24位地址和8位操作码构成。

代码语言:javascript
复制
typedef struct {
    bit [7:0] opcode;
    bit [23:0] addr;
} instruction_s;
instruction_s current_instruction;
current_instruction.addr='h100;

可以直接引用instruction_s,也可以单独引用成员。存储struct所需的内存空间为成员之和,例如instruction_s需要32bit的空间。

union是一种数据类型,可以使用有且只有一种命名成员数据类型来访问它。与struct不同,不能访问所有成员数据类型。分配给union的内存将是成员数据类型所需的最大内存。如果要对诸如寄存器之类的硬件资源建模,该寄存器可以存储不同类型的值,则union很有用。例如:如果寄存器可以存储整数和实数值,则可以按以下方式定义union:

代码语言:javascript
复制
typedef  union {
    int  data;
    real  f_data;
}state_u;
state_u  reg_state;
reg_state.f_data = 'hFFFF_FFFF_FFFF_FFFF;
$display(" int_data =%h", reg_state.data);

在此示例中,state_u可以保存32位整数数据,也可以保存64位实数数据。因此,为reg_state分配的内存将为64bit(两种数据类型中的较大者)。由于所有成员数据类型都有共享内存,因此在上面的示例中,如果我们将64位值分配给reg_state.f_data,则我们也可以使用其他数据类型引用相同的32位。

你答对了吗

本期题目

[183] systemverilog的function和task中“ref”和“const ref”是什么意思?
[184] 压缩数组和非压缩数组的区别是?

欢迎在留言区给出你的答案,正确答案将在下一期公布,或者到下面的文章获取答案

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 摸鱼范式 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本期题目
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档