如下定义:
reg Data [7:0];
reg Temp [15:0];
always@...
Data [7:0] <= Temp[8:15];
...
本意是将Temp高8位逆向赋给Data,但编译出错.
Error (10198): Verilog HDL error at TxFCS.v(159): part-select direction is opposite from prefix index direction
那么请问如何进行部分逆向赋值?



最新回复
alenww (2008-7-29 18:08:42)
slowlykiss (2008-7-29 18:27:04)
QUOTE:
如果这样的话就达不到要逆向赋值的要求了.即:temp的第15位赋给Data的第0位,temp的第8位赋给Data的第7位,店小二 (2008-7-29 18:37:32)
Data [7] <= Temp[8];
Data [6] <= Temp[9];
。。。。。
slowlykiss (2008-7-29 18:42:50)
QUOTE:
不过还是谢谢.
不知道为什么verilog不让这样赋值.
店小二 (2008-7-29 18:53:37)
reg Data [7:0];
reg Temp [15:0];
是不是你想写
reg [7:0] Data ;
reg [15:0] Temp ;
?
slowlykiss (2008-7-29 18:56:05)
reg [7:0] Data ;
reg [15:0] Temp ;
就是这样编译不通过的.
谢谢
但是改成一位一位赋值是可以编译通过的.
[ 本帖最后由 slowlykiss 于 2008-7-29 18:57 编辑 ]
店小二 (2008-7-29 18:58:04)
你把这个改为reg [0:15] Temp 试试
这样的话0为最高位15为最低位
slowlykiss (2008-7-29 19:03:04)
QUOTE:
如果这样 Data [7:0] <= Temp[8:15];就不是逆向赋值了.如果再改成 Data [7:0] <= Temp[15:8];显然编译时又会报相同的错误.
店小二 (2008-7-29 21:06:36)
vfdff (2008-7-30 00:28:38)
ericwang622 (2008-7-30 17:54:01)
integer i;
...
always @(...)
...
for(i=0; i<=7; i=i+1)
Data[ i] <= Temp[15-i];
[ 本帖最后由 ericwang622 于 2008-7-30 18:06 编辑 ]
ykai007 (2008-7-30 17:57:57)
clwyl (2008-7-30 18:42:05)
jisphel (2008-7-31 13:15:04)
QUOTE:
俺也是这么干的。wdjlhwzy (2008-7-31 13:37:25)
Data [7:0] <= {Temp[8],......,Temp[15]};
windzjy (2008-7-31 13:43:21)
QUOTE:
这样应该还是比较简便的lostedworld (2008-7-31 15:16:34)
vfdff (2008-7-31 19:12:45)
moonmcm (2008-7-31 22:58:02)