Pull to refresh
11
0
Роман @rvvernin

FPGA/ASIC разработчик

Send message

upd. Сделал в статье уточнение для случая, если последний кусочек сообщения равен 512 битам. Также поправил исходники.

В моем случае это кусочек ip блока для ASIC. Сценарии применения еще прорабатываются.

X преобразование входит в LPSX функцию (рис. 3). У меня это обозначено как XOR(a,b). А кольцевое суммирование идёт на верхнем уровне (рис. 1) . В статье на которую ссылаетесь это ... "

5.Вычислить N = (N + |M|) mod 2 512

6.Вычислить Σ = (Σ + m) mod 2 512 "

Согласен. Здесь речь идет не о верификации, а лишь о первичной проверки работоспособности. Для верификации необходима, так называемая, gold model (например на C или на несинтезируемых конструкция system verilog), с которой можно сранивать результаты. Причем правильно если написанием rtl и верификацией занимаются разные люди.

В данном случае это операция сложения в кольце, если брать формулировку из ГОСТ. Но в целом вы правы суммирование по модулю 2 это XOR. Я поправил статью, теперь более корректное название функции. Спасибо за замечание.

Синтезизировал данный модуль в вивадо для ПЛИС xcvu19p-fsva3824-2-e, по ресурсам получилась следующая картинка.

По частоте синтез проходит на 400 МГц. Но в принципе можно и выше поднять у меня пока кольцевое суммирование идет за 1 такт, но там есть запас в 29 тактов на выполнение g - функции, и соответвенно суммирование можно конвейеризировать. В целом на вычисление хеша для одного 512 битного слова нужно 29 тактов в варианте с предвычислениями. По поводу производительности - это сильно зависит в целом от архитектуры системы - откуда, куда и как передаем данных.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity

Specialization

FPGA/ASIC