购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1.9 数组的选取可以用两个变量作为索引边界吗?

实际上,数组索引的问题,跟索引变量是否为动态变量没有关系。在对数组索引时,应该避免的问题是用两个变量进行索引,例如 bit[31:0]v1;int idx1 = 3,idx2 = 0 ;那么 v1[idx1:idx2] 在编译时,编译器不允许通过。但是可以选择一个变量作为某一个索引,而采取固定位宽的方式去选取某一个数组的片段(slice)。

关键词:

数组选取,array slice,index

避坑指南:

遗憾的是,目前没有好的办法可以直接利用两个变量去选择某个数组的片段,但是可以通过“-=”“+=”的片段选择符号,或“<<”“>>”的位移操作符号,间接达到选取数组片段的目的。

参考代码: sv_array_variable_slice.sv

仿真结果:

阅读手记: sCqsuxJWSiM3T8rDC+LKEelLbc/OZYS3guZ3PFGee3u73JExP0AbKqYNEiOkTyBu

点击中间区域
呼出菜单
上一章
目录
下一章
×