先看定义的变量是大端还是小端模式
reg [31:0] big_vect; //大端
reg [0:31] little_vect; //小端
看升序(+:)还是降序(-:)
看位宽并进行转换
举例说明:
reg [31:0] big_vect;
reg [0:31] little_vect;
问题:
big_vect[0 +:8]
little_vect[0 +:8]
首先查看变量big_vect的大小端,记住一点,转化后的与原来的大小端是一样的定义方式
reg [31:0] big_vect;为大端,那么转化后的也一定是大端,形式不变
big_vect[0 +:8]转化后一定是 big_vect[较大的数值 : 较小的数值]
little_vect[0 +:8] 转化后一定是 little_vect[较小的数值 : 较大的数值]
其次,看升序(+:)还是降序(-:)
最后, 看位宽,进行转换
big_vect [0 +: 8] 从0 开始,升序,位宽为8 ======》》》》》big_vect [7 :0]
little_vect [0 +: 8] 从0 开始,升序,位宽为8 ======》》》》》little_vect [0 :7]
big_vect [15 -: 8] 从15开始,降序,位宽为8 ======》》》》》big_vect [15 :8]
little_vect [15 -: 8] 从15开始,降序,位宽为8 ======》》》》》little_vect [8:15]