当前位置:  开发笔记 > 编程语言 > 正文

为什么我应该在System Verilog中使用解压缩的向量?

如何解决《为什么我应该在SystemVerilog中使用解压缩的向量?》经验,为你挑选了2个好方法。

跟进此有关SV紧缩和非紧缩向量之间的差异问题,为什么我会永远想用解压载体?
打包向量具有以下优点:解压缩的向量不具有:

您可以对它们执行按位操作

您可以对它们执行算术运算

你可以把它们切成片

您可以将它们复制为整个矢量

你可以用un packed矢量做任何事情(据我所知)

解包载体有多大优势?



1> 小智..:

还有另一个原因,我喜欢使用unpacked.解压缩后,没有将整个数组名称视为变量的诱惑(并且意外可能),并进行错误的赋值.当你可能认为你正在访问元素N的B位时,也不存在从一个元素到另一个元素的位流失的可能性,但实际上你可能正在访问元素N + -1的元素N和BK位的K位. .

我的理念是只将属于一起的东西保存在包装维度中的"信息单元"中.解压缩维度中的其他所有内容.默认思维应该解压缩,并且只打包你需要的东西.

例如,如果我有9个端口,每个端口有21位信息,我想将其声明为:

input logic [20:0] p1 [9];

20:0部分构成一个信息单元,一起分配和采样(名义上).拆分这些位会破坏协议或端口的特性.另一方面,将端口数从9更改为16,不会影响每个端口中信息的性质,因此9个端口确实属于解压缩的维度.

希望这可能会给你一个思考的范例......在这个范例中,你会惊讶地发现有多少东西开始出现,你总是认为它们已被包装!



2> Steve K..:

出于多种原因存在解压缩的阵列.

1)打包的数组作为连续的位序列存储在存储器中.解包数组可以使每个元素独立存储,从而产生更高的仿真性能.

2)解包的数组可以是不是位向量的类型.内联,字节,事件,结构,类等的数组只能解压缩.

3)大多数数组操作方法仅适用于解包数组.

4)也许,只能将解压缩的数组分配给使用数组文字.我不确定.

可能还有其他原因.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有