首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流媒体运营商是如何解压缩的?

流媒体运营商是如何解压缩的?
EN

Stack Overflow用户
提问于 2022-04-15 17:15:52
回答 1查看 675关注 0票数 0

考虑以下代码:

代码语言:javascript
复制
  wire unpacked_wire[3:0];
  wire [3:0] packed_wire;

  assign     unpacked_wire   = packed_wire; // Error: Cannot assign packed type to unpacked type
  assign {>>{unpacked_wire}} = packed_wire; // No errors

我的第一个作业语句出错了。然而,第二种情况并非如此。然而,根据IEEE Std 1800-2017,sec 11.4.14的说法:

当在左侧使用

时,流运算符执行反向操作,即将一个比特流解压到一个或多个变量中。

那么LHS上的流媒体运营商难道不是多余的,因为它转换了一个未打包的类型.一种未包装的类型?所以这第二次任务不应该仍然是非法的吗?对我来说,这段代码读起来像是流操作符实际上正在打包数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-15 17:44:52

它是解压的意思是,它接受一个单一的积分填充值,并将其分解为一个未打包数组的各个元素。当涉及到流运算符时,无论是打包还是解压,都没有那么重要--它正在重新组织比特的布局。你也可以把它写成

代码语言:javascript
复制
assign unpacked_wire   = {>>{packed_wire}};

当赋值的任何一方只有一个对象时,无论您将流运算符放在哪一方都不重要。

LRM将未打包类型视为强类型。您只能从/到等效类型进行赋值。另一方面,包装型比较弱。您可以在不同大小的打包类型之间进行分配,并且它会悄悄地截断或填充数据。流运算符更像是一个显式的强制转换,它便于在未打包的类型和其他打包或解压缩类型之间分配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71886973

复制
相关文章

相似问题

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