verilog编程实现二进制“于”后位“异或”运算,编译时报错……求大神帮忙看看……

程序如下,要实现的是0‘0000’0000到1‘1111’1111的512个数和1 0001 1101以及1 1010 1111分别进行,先对对应位相与之后逐位异或的运算~~~

module acs (clk,y0,y1);

input clk;
output y0,y1;

reg [511:0] y0,y1;
reg [8:0] x,a,b,i;

i = 9'b 1 1111 1111;
x = 9'b 0 0000 0000;
a = 9'b 1 0001 1101;
b = 9'b 1 1010 1111;

always @(posedge clk)
if(i>=0)
begin
y0[i] = ^ x&a;
y1[i] = ^ x&b;
x=x+1;
i=i-1;
end

else
begin
y0[i] = 0;
y1[i] = 0;
end

endmodule

i是无符号数,所以(i>=0) 永远是TRUE
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜