关于位拼接的问题。
时间:10-02
整理:3721RD
点击:
位拼接需要拼接的位数是确定的,我写的程序里用到了拼接不知道位数确定还是不确定啊,编译有错误用状态机写的,在state1里有两行
if(ix[62:52]>iy[62:52]) nx<=ix[62:52]-iy[62:52];
else if(ix[62:52]<iy[62:52]) ny<=iy[62:52]-ix[62:52];
在state2里有
ye2<=ye1+nx;
ym2[53:0]<={nx'b0,ym1[53:nx]};
在state2里第二行编译的时候报错如下:** Error: C:/Users/wpf/Desktop/df_adder/df_adder3/df_adder3.v(89): near "'b": syntax error, unexpected BASE, expecting ',' or '}'
我疑惑的是,在state1中nx或ny不是已经计算出结果了么,是个确定的值,那么为什么state2的第二行会出错呢。大神帮忙分析一下,先谢谢了
if(ix[62:52]>iy[62:52]) nx<=ix[62:52]-iy[62:52];
else if(ix[62:52]<iy[62:52]) ny<=iy[62:52]-ix[62:52];
在state2里有
ye2<=ye1+nx;
ym2[53:0]<={nx'b0,ym1[53:nx]};
在state2里第二行编译的时候报错如下:** Error: C:/Users/wpf/Desktop/df_adder/df_adder3/df_adder3.v(89): near "'b": syntax error, unexpected BASE, expecting ',' or '}'
我疑惑的是,在state1中nx或ny不是已经计算出结果了么,是个确定的值,那么为什么state2的第二行会出错呢。大神帮忙分析一下,先谢谢了
这个问题我没有试过,我只是简单的提出继续试验的方向,前面nx计算出来的是二进制,在state2那个位置用二进制不合适吧!转为十进制试试看
{nx'b0,ym1[53:nx]}改为ym1>>nx
在印象中,nx'b0这种写法的前提是,nx由parameter或者define类定义
lz这种可变的nx值,对于电路上的实现,难度比较大
供参考!
那是不是nx'b0,用parameter定义,nx就是不能变了,也就是说nx不能由其他的式子推出来?
{nx'b0,ym1[53:nx]}改为ym1>>nx
我试了,这种写法可以通过。这是为什么呢,我感觉这两种写法应该是一样的吧?
