verilog 中的reg类型变量不能根据其他变量控制位数吗?

reg [1023:0]SaveA_1;
reg [3:0] counter=0;

在always语句中调用
SaveA_1[(counter+1)*64-1:counter*64]<=B[63:0];

显示错误[Synth 8-1002] counter is not a constant

https://www.cnblogs.com/surpassal/archive/2012/10/31/2747789.html

https://www.cnblogs.com/xiyi/archive/2010/11/03/1868357.html