модульное возведение в степень в vhdl

Мне нужно реализовать модульное возведение в степень в vhdl для spartan 6, с помощью Google я нашел следующую статью, описывающую быструю реализацию для virtex 4 https://www.iacr.org/archive/ches2007/47270272/47270272.pdf

Мне интересно, можно ли его использовать на spartan 6, но я нигде не могу найти исходный код. Я также нашел это техническое описание технологии helion http://www.heliontech.com/downloads/modexp_xilinx_datasheet.pdf но это кажется намного медленнее, чем указано выше.


person user3216337    schedule 18.02.2014    source источник


Ответы (1)


Судя по документу, не похоже, что используются какие-либо специфические функции Virtex-4, поэтому возможность реализации в Spartan 6 зависит от необходимых ресурсов для SLICE, BRAM и DSP48.

Обзор ресурсов показан в «Таблице 3. Производительность нашего модульного экспонентиатора» статьи, говорит SLICE: 3937, BRAM: 7, DSP48: 17, в ресурсах Virtex-4.

BRAM в Virtex 4 и Spartan 6 оба имеют размер 18 Кб, а DSP48 оба являются «умножителем 18 x 18, сумматором и аккумулятором», поэтому эти ресурсы аналогичны и разумно сравнивать требования.

Структура SLICE отличается в Virtex 4 и Spartan 6, поэтому сравнение требований к логике может быть выполнено путем просмотра числа «Логических ячеек» для сравнения яблок с яблоками. 3937 SLICE в Virtex 4 могут составлять около 8900 логических ячеек (2,25 логических ячейки/SLICE в Virtex 4), которые затем преобразуются в 1384 SLICE в Spartan 6 (6,4 логических ячейки/SLICE).

Таким образом, чтобы соответствовать дизайну Spartan 6, вы можете искать устройство с SLICE: 1384, BRAM: 7, DSP48: 17.

Обратите внимание, что приведенный выше расчет является «обратной стороной конверта», и тонкие детали или конкретная подгонка устройства могут дать результат, который отличается, но подход полезен для определения того, что он выглядит как возможное решение.

person Morten Zilmer    schedule 18.02.2014