问题描述:
看了一些网友提供的方法:将其赋值为-1就可以了,a=-1,补数表示就是全1。
可以做到,但编译会提示警告Warning (10230): truncated value with size 32 to match size of target。原因分析: 长度不定时,系统会自动分配32位位宽,虽然做到赋值全1,但这样比较浪费资源
写成:assign xxx = 1[0+:width];则会报语法错误:Syntax error near "["
解决方法,按照长度赋值0,然后按位取反即可:assign xxx[0+:width] = ~(1'b0<<(width-1));
编译通过。