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

Материал из Модулярная арифметики
Перейти к: навигация, поиск
 
(не показано 110 промежуточных версии 5 участников)
Строка 1: Строка 1:
= Генераторы Verilog =
+
<table style="width: 100%;"><tr><td style="width: 50%; vertical-align: top; border-right: 1px solid gray; padding: 0px 5px;">
 +
== Генераторы Verilog (базовые операции) ==
  
== Базовые операции ==
+
=== Модулярные сумматоры ===
 +
# [http://vscripts.ru/2012/generator-sum-2n-1.php Генератор Verilog для сумматора по модулю 2<sup>n</sup>-1] - реализация на базе двух сумматоров и мультиплексора (Р-2012).
 +
# [http://vscripts.ru/dima/adder.php Генератор Verilog для сумматора по модулю 2<sup>n</sup>-1] - полностью комбинационная реализация без мультиплексора (Д-2012).
 +
# [http://vscripts.ru/dima/all_adders.php?n=31 Генератор Verilog для сумматора по произвольному модулю] - реализация предлагающая оптимальный вариант.
 +
# [http://vscripts.ru/2014/modular-multi-sum.php Генератор Verilog для многовходового сумматора по произвольному модулю] - несколько различных вариантов сумматора нескольких переменных по модулю.
 +
# [http://vscripts.ru/dima/Gorodecky_adder_web.php Генератор Verilog для многовходового сумматора по произвольному модулю] - реализация на базе метода сложения в позиционных кодах (Г-2015).
 +
 
 +
=== Модулярные умножители ===
 
# [http://vscripts.ru/2012/index-modulo-multiplication.php Генератор Verilog для умножения по модулю (метод 1)] - от 3 до 1000 по индексному методу (умножение заменено на сложение).
 
# [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/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/2015/index-modulo-multiplication-def.php Генератор Verilog для умножения по модулю (метод 3)] - позиционное умножение с последующим прямым преобразованием
# [http://vscripts.ru/dima/adder.php Генератор Verilog для сумматора по модулю 2<sup>n</sup>-1] - полностью комбинационная реализация без мультиплексора (вариант Димы).
+
# [http://vscripts.ru/2015/index-modulo-multiplication-table.php Генератор Verilog для умножения по модулю (метод 4)] - модулярный умножитель на базе большой таблицы (case)
# [http://vscripts.ru/dima/all_adders.php?n=31 Генератор Verilog для сумматора по произвольному модулю] - реализация предлагающая оптимальный вариант.
+
# [http://vscripts.ru/2015/index-modulo-multiplication-sum.php Генератор Verilog для умножения по модулю (метод 5)] - на базе частичных сумм
 +
# [http://vscripts.ru/2013/multiplication-mod-2-pow-n-plus-1.php Генератор Verilog для умножителя по модулю 2<sup>n</sup>+1] - для n от 3 до 43.
 +
# [http://vscripts.ru/2013/multiplication-mod-2-pow-n-minus-1.php Генератор Verilog для умножителя по модулю 2<sup>n</sup>-1] - для n от 3 до 43.
 +
# [http://vscripts.ru/2013/multiplication-mod-2-pow-n.php Генератор Verilog для умножителя по модулю 2<sup>n</sup>] - для n от 3 до 43.
 +
 
 +
=== Классические умножители (до 128 бит) ===
 +
# [http://vscripts.ru/2013/high-bit-int-multiplication.php Бинарный умножитель на базе модулярного базиса (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)]
 +
# [http://vscripts.ru/2013/high-bit-int-multiplication-recur.php Бинарных умножитель на базе рекурсивной модулярного базиса (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - используется два иерархических уровня модулей вида (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1).
 +
# [http://vscripts.ru/2013/high-bit-int-multiplication-4-mod-generator.php Бинарный умножитель на базе модулярного базиса (2<sup>n</sup>-1, 2<sup>n</sup>+1, 2<sup>n+1</sup>-1, 2<sup>n+1</sup>+1)] - используется перспективный набор из 4-х модулей.
 +
# [http://vscripts.ru/2013/high-bit-int-multiplication-hierarchical.php Бинарный умножитель на базе иерархического метода] - используется метод "разделяй и властвуй" без использования модулярной арифметики.
 +
 
 +
=== Прямые модулярные преобразователи ===
 +
# [http://vscripts.ru/2012/forward-converter-2supn-generator.php Модулярный базис (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (Р-2012).  
 +
# [http://vscripts.ru/dima/fwd_generator.php Модулярный базис (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (Д-2012).
 +
# [http://vscripts.ru/2013/forward-converter-4-mod-generator.php Модулярный базис (2<sup>n</sup>-1, 2<sup>n</sup>+1, 2<sup>n+1</sup>-1, 2<sup>n+1</sup>+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов.
 +
# [http://vscripts.ru/2015/forward-converter-universal.php Универсальный прямой преобразователь] - прямой преобразователь из позиционной системы счисления в СОК для произвольной системы модулей (Две версии: комбинационный и конвейерный).
 +
 
 +
=== Обратные модулярные преобразователи ===
 +
# [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/2013/reverse-converter-4-mod-generator.php Генератор Verilog для обратного преобразователя из 4-х элементного базиса (2<sup>n</sup>-1, 2<sup>n</sup>+1, 2<sup>n+1</sup>-1, 2<sup>n+1</sup>+1)] - обратный преобразователь в позиционную систему.
 +
# [http://vscripts.ru/2013/reverse-converter-crt2-based.php Генератор Verilog обратного преобразователя для произвольных взаимнопростых модулей] - универсальный обратный преобразователь в позиционную систему для произвольного числа модулей (комбинационная и конвейерная версии).
 +
# [http://vscripts.ru/2014/reverse-converter-pipeline-mixed-radix.php Генератор Verilog конвеерного обратного преобразователя на базе полиадического кода] - универсальный обратный преобразователь в позиционную систему для произвольного числа модулей.
 +
# [http://vscripts.ru/2014/reverse-converter-pipeline-mixed-radix-with-error-correction.php Генератор Verilog конвеерного обратного преобразователя на базе полиадического кода с коррекцией ошибок] - универсальный обратный преобразователь в позиционную систему для произвольного числа модулей с коррекцией одиночной ошибки в одном из каналов. Два старших модуля являются избыточными. Используется перспективная схема с уменьшенной площадью.
 +
# [http://vscripts.ru/2014/straightforward_error_correction_reverse_converter.php Генератор Verilog конвеерного обратного преобразователя на базе полиадического кода с коррекцией ошибок] - универсальный обратный преобразователь в позиционную систему для произвольного числа модулей с коррекцией одиночной ошибки в одном из каналов. Два старших модуля являются избыточными. Используется стандартный метод проекций.
 +
=== КИХ-фильтры ===
 +
# [http://vscripts.ru/2013/simple-fir-filter-generator.php Генератор Verilog для КИХ-фильтров (простейший метод)] - конвейерная структура сделанная по формуле свертки O(N<sup>2</sup>).
 +
# [http://vscripts.ru/2013/simple-modular-fir-filter-generator.php Генератор Verilog для конвейерных КИХ-фильтров на базе модулярного базиса (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)]
 +
# [http://vscripts.ru/dima/verilog_generator_modular_fir_filter.php Генератор Verilog для конвейерных КИХ-фильтров на базе модулярной арифметики и БПФ] - перспективный метод с использование БПФ в конечном поле и сложностью O(N*logN)
 +
 
 +
=== Скалярное произведение ===
 +
# [http://vscripts.ru/2013/simple-mac-unit.php Генератор Verilog для MAC-Unit (простейший метод)] - синхронный вариант с дефолтной реализацией.
 +
# [http://vscripts.ru/2013/fast-simple-scalar-multiplication.php Генератор Verilog для быстрого вычисления скалярного произведения с конвейризацией] - синхронный вариант на обычной позиционной арифметике.
 +
# [http://vscripts.ru/2014/modular_scalar_multiplication.php Генератор Verilog для вычисления скалярного произведения на базе модулярной арифметики] - синхронный вариант на модулярной арифметике.
 +
 
 +
=== Другое ===
 
# [http://vscripts.ru/2012/generator-sum-kwain.php Генератор Verilog для модулярных операций по методу Квайна] - генератор операций сложения и умножения, для малых модулей (от 3 до 15).
 
# [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/generator-sub-sqr.php Генератор Verilog для квадрата разности по модулю p] - состоит из вычитателя и таблицы квадратов (LUT).  
# [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/2013/modular-multiplication-for-fir-filter.php Генератор умножителя для конвейерной реализации модулярного FIR-фильтра]
# [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/fast_fourier_transform_web.php?p=257&len=128 Генератор Verilog для прямых и инверсных Теоретико Числовых БПФ] - используется конвейерная структура Radix2SPDF.
# [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/2014/coder_decoder_galua_generator.php Генератор Verilog для кодера и декодера Галуа] - только отдельные кодер и декодер.
 +
# [https://vscripts.ru/dima/systolic_matrix_mult.php Генератор Verilog для умножения матриц (систолический массив)]
  
 
== SAD процессоры (поиск различия между двумя картинками) ==
 
== SAD процессоры (поиск различия между двумя картинками) ==
Строка 18: Строка 61:
  
 
== Формулы и математика ==
 
== Формулы и математика ==
# [http://vscripts.ru/2012/prime-set-generator.php Генератор простых чисел Прота для реализации операции свёртки] - по методу БПФ в конечном поле.
+
# [http://vscripts.ru/2012/prime-set-generator.php Генератор простых чисел Прота для реализации операции свёртки] ([http://vscripts.ru/2012/prime-set-generator_new.php Версия 2]) - по методу БПФ в конечном поле.
 
# [http://vscripts.ru/2012/basis-15x16x17-simple.php Формула для обратного преобразователя для базиса вида (2n-1, 2n, 2n+1)] - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.
 
# [http://vscripts.ru/2012/basis-15x16x17-simple.php Формула для обратного преобразователя для базиса вида (2n-1, 2n, 2n+1)] - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.
 
# [http://vscripts.ru/2012/basis-15x16x17.php Проверка формул обратного преобразователя для базиса вида (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.  
 
# [http://vscripts.ru/2012/basis-15x16x17.php Проверка формул обратного преобразователя для базиса вида (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.  
 
# [http://vscripts.ru/2012/sad-modular-basis-calculator.php Генератор базисов для SAD процессоров разной размерности] - базисы специального вида и обычного.  
 
# [http://vscripts.ru/2012/sad-modular-basis-calculator.php Генератор базисов для SAD процессоров разной размерности] - базисы специального вида и обычного.  
 +
# [http://vscripts.ru/2013/draw_complex_mod.php Рисовалка области значений комплексного вычета] - вычет комплексного числа по комлексному переменному
 +
# [http://vscripts.ru/2015/check_basis.php Проверка базиса и расчет его динамического диапазона]
 +
# [http://vscripts.ru/2013/find-inverse-by-mod.php Нахождение обратного элемента по модулю]
 +
# [http://vscripts.ru/2013/radix_converter.php Преобразование позиционной системы счисления для заданного числа]
 +
# [http://vscripts.ru/2014/backward_rns_converter_online.php Преобразование из системы остаточных классов в позиционный вид]
 +
# [http://vscripts.ru/2014/recursieve_rns_basis_generator.php Генератор базисов для рекурсивной модулярной арифметики]
  
== Временные и тестовые скрипты ==
+
</td><td style="width: 50%; vertical-align: top; padding: 0px 5px;">
# [http://vscripts.ru/2012/prime.php Список случайных простых чисел] - для теста от 900 до 20000
+
# [http://vscripts.ru/2012/multable.php Таблица умножения по модулю] - от 3 до 100
+
  
 
== Справочные материалы ==
 
== Справочные материалы ==
* [[Система остаточных классов]] - определение
+
=== Определения ===
* [[Алгоритм Espresso]] - эффективный алгоритм для мнимизации булевых функций
+
* [[Система остаточных классов|Система остаточных классов (Модулярная арифметика)]] - определение
 +
* [[Функция Эйлера]]
 +
* [[Описание КТО II|Описание Китайской теоремы об остатках II (CRT II)]]
 +
* [[Описание КТО III|Описание Китайской теоремы об остатках III (CRT III)]]
 +
* [[Вычет по комплексному переменному‎]]
 +
* [[Свёртка (цифровая обработка сигналов)|Свёртка (ЦОС)]]
 +
* [[Полиадический код|Полиадический код (система счисления со смешанным основанием)]]
 +
* [[Модулярная логарифметика‎]]
 +
* [[Рекурсивная модулярная арифметика‎‎]]
 +
* [[Бимодульная модулярная арифметика‎‎]]
 +
* [[Система из 4 модулей (2^n-1, 2^n+1, 2^(n+1)-1, 2^(n+1)+1)|Теория по системе из 4-х модулей (2<sup>n</sup>-1, 2<sup>n</sup>+1, 2<sup>n+1</sup>-1, 2<sup>n+1</sup>+1)]]
 +
* [[Фильтр с конечной импульсной характеристикой]]
 +
* [[Теоретические основы применения модулярной арифметики для обнаружения и коррекции ошибок]]
 +
* [[Описание работы универсального прямого преобразователя]]
 +
 
 +
=== Алгоритмы ===
 +
* [[Метод инжектирования ошибок для оценки надежностных характеристик комбинационных схем]]
 +
* [[Нахождение обратного элемента по модулю]]
 +
* [[Схема коррекции ошибок Rajendra S. Katti]]
 +
* [[Метод умножения Шёнхаге — Штрассена]]
 +
* [[Расчет следующего значения функции на базе квадратичной интерполяции]]
 +
 
 +
== Программы ==
 +
* [[(Prog) Генератор Verilog из таблиц истинности для сумматоров по модулю|Генератор Verilog из таблиц истинности для сумматоров по модулю]]
 +
* [[(Prog) Расчет FIR-фильтра по стандартной формуле (Си)‎|Расчет FIR-фильтра по стандартной формуле]]
 +
* [[(Prog) Расчет FIR-фильтра через ДПФ метод Overlap-Add (Си)‎|Расчет FIR-фильтра через ДПФ метод Overlap-Add]]
 +
* [[(Prog) Расчет FIR-фильтра через ДПФ метод Overlap-Save‎|Расчет FIR-фильтра через ДПФ метод Overlap-Save‎]]
 +
* [[(Prog) Расчет FIR-фильтра через ДПФ над конечным полем‎‎|Расчет FIR-фильтра через ДПФ над конечным полем‎‎]]
 +
* [[Программа для проверки представимости булевой функции линейным арифметическим полиномом (PHP)]]
 +
 
 +
=== Разное ===
 +
* [[Система остаточных классов - введение|Учебник по СОК]] - подробное описание системы остаточных классов
 +
* [[Алгоритм Espresso]] - эффективный алгоритм для минимизации булевых функций
 +
* [[MIS: A multiple-level logic optimization system]] - система логического синтеза
 +
* [[Запустить ModelSim из командной строки]] - руководство по запуску ModelSim без использования графического интерфейса
 +
* [[Введение в АЦП]] - описание видов аналого-цифровых преобразователей (двоичных)
 +
* [[Модулярное АЦП]] - описание различных архитектур АЦП и их сравнение
 +
* [[Специальные системы модулей]] - разные типы систем
 +
* [[Пример коррекции ошибки на базе системы остаточных классов]]
 +
* [http://vscripts.ru/2015/temperature.php Клеточный автомат для моделирования температуры]
 +
* [[Схемы ISCAS85]]
 
* [[Полезная литература]]
 
* [[Полезная литература]]
  
 
== Результаты исследований ==
 
== Результаты исследований ==
 +
# 2015.11 - [[Простой прототип модулярного процессора с коррекцией сбоев]]
 +
# 2014.07 - [[Исследование надежностных характеристик различных методов резервирования комбинационных схем с помощью метода инжектирования ошибок]]
 +
# 2013.11 - [[Результаты синтеза прямых преобразователей для простых модулей в пределах 8 бит]]
 +
# 2013.10 - [[Моделирование работы модулярного КИХ фильтра, исследование эффективности экстраполяционных методов для коррекции ошибок]]
 +
# 2013.10 - [[Разработка модулярного КИХ фильтра на базе теоретико-числового БПФ]]
 +
# 2013.08 - [[Комплексное исследование обратных преобразователей|Комплексное исследование обратных преобразователей (4 метода)]]
 +
# 2013.05 - [[Комплексное исследование умножителей в диапазоне 3 - 64 бит]]
 +
# 2013.04 - [[Результаты синтеза двоичных умножителей (3 - 64 бит)]]
 +
# 2013.04 - [[Результаты синтеза прямых/обратных преобразователей на спец модулях вида 2^n-1, 2^n, 2^n+1 для Д.Д. до 128 бит.]]
 +
# 2013.02 - [[Сравнение разных методов умножения по модулю - 2^n-1,индексный,по методу разности квадратов и позиционный.]]
 +
# 2013.02 - [[Результат сравнения различных методов построения модулярных умножителей (индексный метод, разность квадратов, метод Espresso)]]
 +
# 2013.02 - [[Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Espresso]]
 
# 2013.01 - [[Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Квайна]]
 
# 2013.01 - [[Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Квайна]]
 
# 2012.12 - [[Результат сравнения SAD-процессоров модулярный vs позиционный (промежуточный отчет 12.2012)]]
 
# 2012.12 - [[Результат сравнения SAD-процессоров модулярный vs позиционный (промежуточный отчет 12.2012)]]
Строка 38: Строка 137:
 
# 2012.12 - [[Сравнение разных методов умножения по модулю]] - сравнение позиционного, [http://vscripts.ru/2012/index-modulo-multiplication.php индексного умножителя] и [http://vscripts.ru/2012/index-modulo-multiplication-sqr.php умножителя по методу разности квадратов]
 
# 2012.12 - [[Сравнение разных методов умножения по модулю]] - сравнение позиционного, [http://vscripts.ru/2012/index-modulo-multiplication.php индексного умножителя] и [http://vscripts.ru/2012/index-modulo-multiplication-sqr.php умножителя по методу разности квадратов]
 
# 2012.12 - [[Сравнение разных методов сложения по модулю 2^n-1]] (модуль вида 2<sup>n</sup>-1) - сравнение позиционного сумматора и двух вариантов реализации сумматора по модулю 2<sup>n</sup>-1 ([http://vscripts.ru/2012/generator-sum-2n-1.php Генератор 1], [http://vscripts.ru/dima/adder.php Генератор 2]).
 
# 2012.12 - [[Сравнение разных методов сложения по модулю 2^n-1]] (модуль вида 2<sup>n</sup>-1) - сравнение позиционного сумматора и двух вариантов реализации сумматора по модулю 2<sup>n</sup>-1 ([http://vscripts.ru/2012/generator-sum-2n-1.php Генератор 1], [http://vscripts.ru/dima/adder.php Генератор 2]).
 +
 +
== Временные и тестовые скрипты ==
 +
# [http://vscripts.ru/2012/prime.php Список случайных простых чисел] - для теста от 900 до 20000
 +
# [http://vscripts.ru/2012/multable.php Таблица умножения по модулю] - от 3 до 100
 +
 +
</td></tr></table>
 +
__NOTOC__

Текущая версия на 21:03, 4 февраля 2022

Генераторы Verilog (базовые операции)

Модулярные сумматоры

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

Модулярные умножители

  1. Генератор Verilog для умножения по модулю (метод 1) - от 3 до 1000 по индексному методу (умножение заменено на сложение).
  2. Генератор Verilog для умножения по модулю (метод 2) - от 3 до 1000 по методу разности квадратов (X*Y = (1/4)*(X+Y)2 - (1/4)*(X-Y)2)
  3. Генератор Verilog для умножения по модулю (метод 3) - позиционное умножение с последующим прямым преобразованием
  4. Генератор Verilog для умножения по модулю (метод 4) - модулярный умножитель на базе большой таблицы (case)
  5. Генератор Verilog для умножения по модулю (метод 5) - на базе частичных сумм
  6. Генератор Verilog для умножителя по модулю 2n+1 - для n от 3 до 43.
  7. Генератор Verilog для умножителя по модулю 2n-1 - для n от 3 до 43.
  8. Генератор Verilog для умножителя по модулю 2n - для n от 3 до 43.

Классические умножители (до 128 бит)

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

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

  1. Модулярный базис (2n-1, 2n, 2n+1) - прямой преобразователь из позиционной системы счисления в систему остаточных классов (Р-2012).
  2. Модулярный базис (2n-1, 2n, 2n+1) - прямой преобразователь из позиционной системы счисления в систему остаточных классов (Д-2012).
  3. Модулярный базис (2n-1, 2n+1, 2n+1-1, 2n+1+1) - прямой преобразователь из позиционной системы счисления в систему остаточных классов.
  4. Универсальный прямой преобразователь - прямой преобразователь из позиционной системы счисления в СОК для произвольной системы модулей (Две версии: комбинационный и конвейерный).

Обратные модулярные преобразователи

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

КИХ-фильтры

  1. Генератор Verilog для КИХ-фильтров (простейший метод) - конвейерная структура сделанная по формуле свертки O(N2).
  2. Генератор Verilog для конвейерных КИХ-фильтров на базе модулярного базиса (2n-1, 2n, 2n+1)
  3. Генератор Verilog для конвейерных КИХ-фильтров на базе модулярной арифметики и БПФ - перспективный метод с использование БПФ в конечном поле и сложностью O(N*logN)

Скалярное произведение

  1. Генератор Verilog для MAC-Unit (простейший метод) - синхронный вариант с дефолтной реализацией.
  2. Генератор Verilog для быстрого вычисления скалярного произведения с конвейризацией - синхронный вариант на обычной позиционной арифметике.
  3. Генератор Verilog для вычисления скалярного произведения на базе модулярной арифметики - синхронный вариант на модулярной арифметике.

Другое

  1. Генератор Verilog для модулярных операций по методу Квайна - генератор операций сложения и умножения, для малых модулей (от 3 до 15).
  2. Генератор Verilog для квадрата разности по модулю p - состоит из вычитателя и таблицы квадратов (LUT).
  3. Генератор умножителя для конвейерной реализации модулярного FIR-фильтра
  4. Генератор Verilog для прямых и инверсных Теоретико Числовых БПФ - используется конвейерная структура Radix2SPDF.
  5. Генератор Verilog для кодера и декодера Галуа - только отдельные кодер и декодер.
  6. Генератор Verilog для умножения матриц (систолический массив)

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

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

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

  1. Генератор простых чисел Прота для реализации операции свёртки (Версия 2) - по методу БПФ в конечном поле.
  2. Формула для обратного преобразователя для базиса вида (2n-1, 2n, 2n+1) - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.
  3. Проверка формул обратного преобразователя для базиса вида (2n-1, 2n, 2n+1) - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.
  4. Генератор базисов для SAD процессоров разной размерности - базисы специального вида и обычного.
  5. Рисовалка области значений комплексного вычета - вычет комплексного числа по комлексному переменному
  6. Проверка базиса и расчет его динамического диапазона
  7. Нахождение обратного элемента по модулю
  8. Преобразование позиционной системы счисления для заданного числа
  9. Преобразование из системы остаточных классов в позиционный вид
  10. Генератор базисов для рекурсивной модулярной арифметики

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

Определения

Алгоритмы

Программы

Разное

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

  1. 2015.11 - Простой прототип модулярного процессора с коррекцией сбоев
  2. 2014.07 - Исследование надежностных характеристик различных методов резервирования комбинационных схем с помощью метода инжектирования ошибок
  3. 2013.11 - Результаты синтеза прямых преобразователей для простых модулей в пределах 8 бит
  4. 2013.10 - Моделирование работы модулярного КИХ фильтра, исследование эффективности экстраполяционных методов для коррекции ошибок
  5. 2013.10 - Разработка модулярного КИХ фильтра на базе теоретико-числового БПФ
  6. 2013.08 - Комплексное исследование обратных преобразователей (4 метода)
  7. 2013.05 - Комплексное исследование умножителей в диапазоне 3 - 64 бит
  8. 2013.04 - Результаты синтеза двоичных умножителей (3 - 64 бит)
  9. 2013.04 - Результаты синтеза прямых/обратных преобразователей на спец модулях вида 2^n-1, 2^n, 2^n+1 для Д.Д. до 128 бит.
  10. 2013.02 - Сравнение разных методов умножения по модулю - 2^n-1,индексный,по методу разности квадратов и позиционный.
  11. 2013.02 - Результат сравнения различных методов построения модулярных умножителей (индексный метод, разность квадратов, метод Espresso)
  12. 2013.02 - Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Espresso
  13. 2013.01 - Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Квайна
  14. 2012.12 - Результат сравнения SAD-процессоров модулярный vs позиционный (промежуточный отчет 12.2012)
  15. 2012.12 - Исследование позиционного умножения на нашей библиотеке
  16. 2012.12 - Сравнение разных методов умножения по модулю - сравнение позиционного, индексного умножителя и умножителя по методу разности квадратов
  17. 2012.12 - Сравнение разных методов сложения по модулю 2^n-1 (модуль вида 2n-1) - сравнение позиционного сумматора и двух вариантов реализации сумматора по модулю 2n-1 (Генератор 1, Генератор 2).

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

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