返回介绍

4.15.3 数组缩减方法

发布于 2020-09-09 22:55:46 字数 906 浏览 1317 评论 0 收藏 0

数组缩减方法适用于任何非压缩数组以便将数组缩减成一个单独的值。可选的with子句中的表达式被用来指定缩减操作中使用的元素。

这些方法的原型如下:

function expression_or_array_type reduction_method (array_type iterator = item)

方法返回一个与数组元素相同类型的单一的值,或者,如果指定的话,它返回一个与with子句中表达式相同类型的单一的值。如果数组元素类型定义了相应的算术或布尔缩减操作的话,那么with子句可以被忽略。如果指定了with子句,那么表达式类型对应的算术或布尔缩减操作必须被定义。

SystemVerilog支持下列的缩减方法:

  • sum()返回所有数组元素的和,或者,如果指定了with子句,它返回通过为每一个数组元素计算所产生的值的和。
  • product()返回所有数组元素的积,或者,如果指定了with子句,它返回通过为每一个数组元素计算所产生的值的积。
  • and()返回所有数组元素的位与(&),或者,如果指定了with子句,它返回通过为每一个数组元素计算所产生的值的位与。
  • or()返回所有数组元素的位或(|),或者,如果指定了with子句,它返回通过为每一个数组元素计算所产生的值的位或。
  • xor()返回所有数组元素的位异或(^),或者,如果指定了with子句,它返回通过为每一个数组元素计算所产生的值的位异或。

例子:

byte b[] = { 1, 2, 3, 4 };
int y;
y = b.sum ; // y变为10 => 1 + 2 + 3 + 4
y = b.product ; // y变为24 => 1 * 2 * 3 * 4
y = b.xor with ( item + 4 ); // y变为12 => 5 ^ 6 ^ 7 ^ 8

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文