Main — различия между версиями

Материал из Модулярная арифметики
Перейти к: навигация, поиск
Строка 2: Строка 2:
  
 
== Базовые операции ==
 
== Базовые операции ==
# [http://vscripts.ru/2012/index-modulo-multiplication.php Генератор Verilog для умножения по модулю (метод 1)] - от 3 до 1000 по индексному методу (умножение заменено на сложение).
+
 
# [http://vscripts.ru/2012/index-modulo-multiplication-sqr.php Генератор Verilog для умножения по модулю (метод 2)] - от 3 до 1000 по методу разности квадратов (X*Y = (1/4)*(X+Y)<sup>2</sup> - (1/4)*(X-Y)<sup>2</sup>)
+
=== Сумматоры ===
 
# [http://vscripts.ru/2012/generator-sum-2n-1.php Генератор Verilog для сумматора по модулю 2<sup>n</sup>-1] - реализация на базе двух сумматоров и мультиплексора (вариант Романа).
 
# [http://vscripts.ru/2012/generator-sum-2n-1.php Генератор Verilog для сумматора по модулю 2<sup>n</sup>-1] - реализация на базе двух сумматоров и мультиплексора (вариант Романа).
 
# [http://vscripts.ru/dima/adder.php Генератор Verilog для сумматора по модулю 2<sup>n</sup>-1] - полностью комбинационная реализация без мультиплексора (вариант Димы).
 
# [http://vscripts.ru/dima/adder.php Генератор Verilog для сумматора по модулю 2<sup>n</sup>-1] - полностью комбинационная реализация без мультиплексора (вариант Димы).
 
# [http://vscripts.ru/dima/all_adders.php?n=31 Генератор Verilog для сумматора по произвольному модулю] - реализация предлагающая оптимальный вариант.
 
# [http://vscripts.ru/dima/all_adders.php?n=31 Генератор Verilog для сумматора по произвольному модулю] - реализация предлагающая оптимальный вариант.
# [http://vscripts.ru/2012/generator-sum-kwain.php Генератор Verilog для модулярных операций по методу Квайна] - генератор операций сложения и умножения, для малых модулей (от 3 до 15).
+
 
# [http://vscripts.ru/2012/generator-sub-sqr.php Генератор Verilog для квадрата разности по модулю p] - состоит из вычитателя и таблицы квадратов (LUT).
+
=== Умножители ===
 +
# [http://vscripts.ru/2012/index-modulo-multiplication.php Генератор Verilog для умножения по модулю (метод 1)] - от 3 до 1000 по индексному методу (умножение заменено на сложение).
 +
# [http://vscripts.ru/2012/index-modulo-multiplication-sqr.php Генератор Verilog для умножения по модулю (метод 2)] - от 3 до 1000 по методу разности квадратов (X*Y = (1/4)*(X+Y)<sup>2</sup> - (1/4)*(X-Y)<sup>2</sup>)
 +
 
 +
=== Прямые и обратные преобразователи ===
 
# [http://vscripts.ru/2012/forward-converter-2supn-generator.php Генератор Verilog для прямого преобразователя в базиса вида (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Романа).  
 
# [http://vscripts.ru/2012/forward-converter-2supn-generator.php Генератор Verilog для прямого преобразователя в базиса вида (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Романа).  
 
# [http://vscripts.ru/dima/fwd_generator.php Генератор Verilog для прямого преобразователя в базиса вида (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Димы).  
 
# [http://vscripts.ru/dima/fwd_generator.php Генератор Verilog для прямого преобразователя в базиса вида (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Димы).  
 
# [http://vscripts.ru/2012/reverse-converter-2supn-generator.php Генератор Verilog для обратного преобразователя из базиса вида (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - сверхбыстрый обратный преобразователь в позиционную систему.
 
# [http://vscripts.ru/2012/reverse-converter-2supn-generator.php Генератор Verilog для обратного преобразователя из базиса вида (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - сверхбыстрый обратный преобразователь в позиционную систему.
 +
 +
=== Другое ===
 +
# [http://vscripts.ru/2012/generator-sum-kwain.php Генератор Verilog для модулярных операций по методу Квайна] - генератор операций сложения и умножения, для малых модулей (от 3 до 15).
 +
# [http://vscripts.ru/2012/generator-sub-sqr.php Генератор Verilog для квадрата разности по модулю p] - состоит из вычитателя и таблицы квадратов (LUT).
  
 
== SAD процессоры (поиск различия между двумя картинками) ==
 
== SAD процессоры (поиск различия между двумя картинками) ==

Версия 08:35, 20 февраля 2013

Генераторы Verilog

Базовые операции

Сумматоры

  1. Генератор Verilog для сумматора по модулю 2n-1 - реализация на базе двух сумматоров и мультиплексора (вариант Романа).
  2. Генератор Verilog для сумматора по модулю 2n-1 - полностью комбинационная реализация без мультиплексора (вариант Димы).
  3. Генератор Verilog для сумматора по произвольному модулю - реализация предлагающая оптимальный вариант.

Умножители

  1. Генератор Verilog для умножения по модулю (метод 1) - от 3 до 1000 по индексному методу (умножение заменено на сложение).
  2. Генератор Verilog для умножения по модулю (метод 2) - от 3 до 1000 по методу разности квадратов (X*Y = (1/4)*(X+Y)2 - (1/4)*(X-Y)2)

Прямые и обратные преобразователи

  1. Генератор Verilog для прямого преобразователя в базиса вида (2n-1, 2n, 2n+1) - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Романа).
  2. Генератор Verilog для прямого преобразователя в базиса вида (2n-1, 2n, 2n+1) - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Димы).
  3. Генератор Verilog для обратного преобразователя из базиса вида (2n-1, 2n, 2n+1) - сверхбыстрый обратный преобразователь в позиционную систему.

Другое

  1. Генератор Verilog для модулярных операций по методу Квайна - генератор операций сложения и умножения, для малых модулей (от 3 до 15).
  2. Генератор Verilog для квадрата разности по модулю p - состоит из вычитателя и таблицы квадратов (LUT).

SAD процессоры (поиск различия между двумя картинками)

  1. Генератор Verilog для реализации позиционного SAD процессора - поиск векторов компенсации движения в стандартном виде.
  2. Генератор Verilog для реализации модулярного SAD процессора - поиск векторов компенсации движения в модулярном базисе вида (2n-1, 2n, 2n+1).

Формулы и математика

  1. Генератор простых чисел Прота для реализации операции свёртки - по методу БПФ в конечном поле.
  2. Формула для обратного преобразователя для базиса вида (2n-1, 2n, 2n+1) - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.
  3. Проверка формул обратного преобразователя для базиса вида (2n-1, 2n, 2n+1) - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.
  4. Генератор базисов для SAD процессоров разной размерности - базисы специального вида и обычного.

Временные и тестовые скрипты

  1. Список случайных простых чисел - для теста от 900 до 20000
  2. Таблица умножения по модулю - от 3 до 100

Справочные материалы

Результаты исследований

  1. 2013.01 - Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Квайна
  2. 2012.12 - Результат сравнения SAD-процессоров модулярный vs позиционный (промежуточный отчет 12.2012)
  3. 2012.12 - Исследование позиционного умножения на нашей библиотеке
  4. 2012.12 - Сравнение разных методов умножения по модулю - сравнение позиционного, индексного умножителя и умножителя по методу разности квадратов
  5. 2012.12 - Сравнение разных методов сложения по модулю 2^n-1 (модуль вида 2n-1) - сравнение позиционного сумматора и двух вариантов реализации сумматора по модулю 2n-1 (Генератор 1, Генератор 2).