Результаты синтеза прямых/обратных преобразователей на спец модулях вида 2^n-1, 2^n, 2^n+1 для Д.Д. до 64 бит. — различия между версиями

Материал из Модулярная арифметики
Перейти к: навигация, поиск
(Результаты эксперимента)
Строка 34: Строка 34:
  
 
== Результаты эксперимента ==
 
== Результаты эксперимента ==
[[Изображение:Espresso1.JPG]]
+
[[Изображение:Spec convs.JPG]]
[[Изображение:Espresso2.JPG]]
+
  
* [http://vscripts.ru/res/files/espresso_test.xlsx Скачать Excel-файл с численными данными]
+
 
 +
* [http://vscripts.ru/res/files/special_converters.xlsx Скачать Excel-файл с численными данными]

Версия 08:32, 12 апреля 2013

Для того чтобы проанализировать конкурентоспособность модулярной арифметики, были проведены тесты прямых/обратных преобразователей для спец модулей вида (2^n-1, 2^n, 2^n+1). Сравнение производилось для широкого динамического диапазона до 128 бит. Соответственно, параметр n варьировался от 3 до 43. Методы построения преобразователей были заимствованы из книги Residue number systems: Theory and implementation (Amos Omondi, Benjamin Premkumar). Синтез проводился с помощью САПР Synopsys Design Compiler.

Генераторы Verilog-модулей

Исследовались следующие преобразователи:

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

Библиотека стандартных ячеек

NangateOpenCellLibrary.lib

Скрипт для запуска

lappend search_path "../libs" "../src" 
set target_library "NangateOpenCellLibrary.db"
set link_library [list "*" $target_library]

analyze -f <имя модуля>.v
elaborate <имя модуля>
uniquify
current_design <имя модуля>
check_design
set_load [load_of [get_lib_pins NangateOpenCellLibrary/INV_X4/A]] [all_outputs]
set_driving_cell -lib_cell DFFRS_X2 -library NangateOpenCellLibrary -pin Q  [all_inputs]
set_max_delay -to [all_outputs] 0
set_max_area 0
compile
report_timing > result/timing_<имя модуля>.rpt
report_area > result/area_<имя модуля>.rpt
remove_design -all 

Результаты эксперимента

Spec convs.JPG