Здравствуйте всем. Реализовала шифр на vhdl, но проект не синтезируется из-за циклов while. Помогите, пожалуйста, переписать операции умножения полиномов и деления полиномов по модулю неприводимого многочлена над полем Галуа (GF(2)[x]∕p(x), где p(x) = x^8 + x^7 + x^6 + x + 1 ∈ GF(2)[x] - неприводимый многочлен). Вот что написала я:
f15 := ress(127 downto 120);
b15 := "00000000" & f15;
e15 := std_logic_vector (to_unsigned(148,8));
if (b15 /= "0000000000000000") then
i := 0;
while (i /= 8) loop
if ((e15 AND one) = one) then
mu15 := b15 xor mu15;
end if;
b15 := b15(14 downto 0) & '0';
e15 := '0' & e15(7 downto 1);
i := i+1;
end loop;
di15 := mu15;
j := 15;
one3 := one2;
while ((di15 AND one3) = "0000000000000000") loop
j := j-1;
one3 := '0' & one3(15 downto 1);
end loop;
while (j >= 8) loop
k:=0;
poly2 := "0000000" & poly;
while (k /= (j-8)) loop
poly2:= poly2(14 downto 0) & '0';
k := k+1;
end loop;
di15 := di15 xor poly2;
while ((di15 AND one3) = "0000000000000000") loop
j := j-1;
one3 := '0' & one3(15 downto 1);
end loop;
end loop;
else
mu15 := "0000000000000000";
di15 := "0000000000000000";
end if;
Заранее спасибо)