[an error occurred while processing this directive]
|
как правильно на verilog написать вот такой код :
always @(B_in or shift_B)
begin : I1combo
reg[5:0] stemp;
reg[28:0] dtemp;
reg[28:0] temp;
temp = {29{1'bx}};
stemp = shift_B;
temp = B_in;
begin : xhdl_5
integer i;
for(i = 5; i >= 0; i = i - 1)
begin
if (i < 5)
begin
if ((stemp[i]) == 1'b1 | (stemp[i]) == 1'b1)
begin
dtemp = {29{1'b0}};
dtemp[28 - 2 ** i:0] = temp[28:2 ** i];вот здесь ошибка при компиляции в Active-Hdl
end
else if ((stemp[i]) == 1'b0 | (stemp[i]) == 1'b0)
begin
dtemp = temp;
end
else
begin
dtemp = {29{1'bx}};
end
end
else
begin
if ((stemp[i]) == 1'b1 | (stemp[i]) == 1'b1)
begin
dtemp = {29{1'b0}};
end
else if ((stemp[i]) == 1'b0 | (stemp[i]) == 1'b0)
begin
dtemp = temp;
end
else
begin
dtemp = {29{1'bx}};
end
end
temp = dtemp;
end
end
B_shift <= dtemp ;
end
E-mail: info@telesys.ru