如何使用流式处理运算符从数组中获取位切片



>我有以下代码

logic [99:0] a[10]; // in this only the LSB 10 bits are relevant 
logic [49:0] b;

我想获取a的有用部分并将其分配给b

我尝试了流媒体运营商,但无法让它工作

b = { << 10 {a[0:5]}}; // EDIT: Correcting typo

可以这样做吗?我浏览了SV LRM和流媒体运营商,但无法完全掌握它。

谢谢

不能使用流式处理运算符或位流强制转换对一组不连续的位进行操作。您可以使用foreach循环。

foreach (a[ii]) b[ii*5+:5] = a[ii][5:0];

您将不得不摆弄它,因为您的文本描述与您尝试编写的伪代码不匹配。

最新更新