lena709 0 23 декабря, 2016 Опубликовано 23 декабря, 2016 · Жалоба Здравствуйте всем. Реализовала шифр на 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; Заранее спасибо) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gin 0 23 декабря, 2016 Опубликовано 23 декабря, 2016 · Жалоба Добрый день! К сожалению (или к счастью) VHDL, это язык описания цифровых схем, а не язык программирования. И соответсвенно, циклы в том виде, в котором они используются в классических языках программирования, здесь не синтезируются. Прежде чем что то описывать на VHDL, нужно представлять схему, которую вы хотите реализовать. И если вам нужен какой то конкретный алгоритм, то попробуйте поискать здесь - http://opencores.org/projects Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 23 декабря, 2016 Опубликовано 23 декабря, 2016 · Жалоба попробуйте использовать FSM, в простейшем случае помогает заменить циклы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 24 декабря, 2016 Опубликовано 24 декабря, 2016 · Жалоба 2 lena709 для начала: http://opencores.org/project,galois_lfsr + Galois Field GF(2m) Multiplier / xapp371.pdf => Figure 2: Algorithm for GF (2m) Multiplication / / xapp371.zip лежит на pudn / Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 24 декабря, 2016 Опубликовано 24 декабря, 2016 · Жалоба 2 lena709 для начала: http://opencores.org/project,galois_lfsr + Galois Field GF(2m) Multiplier / xapp371.pdf => Figure 2: Algorithm for GF (2m) Multiplication / / xapp371.zip лежит на pudn / архив xapp371.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
starley 0 27 декабря, 2016 Опубликовано 27 декабря, 2016 · Жалоба Аппаратно умножение над полем Галуа намного красивее реализуется. См. приложенный файл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться