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

Материал из Модулярная арифметики
Перейти к: навигация, поиск
(Полностью удалено содержимое страницы)
 
(не показана одна промежуточная версия этого же участника)
Строка 1: Строка 1:
Для того чтобы проанализировать конкурентоспособность модулярной арифметики, были проведены тесты прямых/обратных преобразователей для спец модулей вида <math>(2^n-1, 2^n, 2^n+1)</math>. Сравнение производилось для широкого динамического диапазона до 128 бит. Соответственно, параметр <math>n</math> варьировался от 3 до 43. Методы построения преобразователей были заимствованы из книги ''Residue number systems: Theory and implementation (Amos Omondi, Benjamin Premkumar)''. Синтез проводился с помощью САПР Synopsys Design Compiler.
 
  
== Генераторы Verilog-модулей ==
 
Исследовались следующие преобразователи:
 
# [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/2012/reverse-converter-2supn-generator.php Генератор Verilog для обратного преобразователя из базиса вида (2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1)] - сверхбыстрый обратный преобразователь в позиционную систему.
 
 
== Библиотека стандартных ячеек ==
 
<pre>
 
NangateOpenCellLibrary.lib
 
</pre>
 
 
== Скрипт для запуска ==
 
<pre>
 
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
 
</pre>
 
 
== Результаты эксперимента ==
 
[[Изображение:Espresso1.JPG]]
 
[[Изображение:Espresso2.JPG]]
 
 
* [http://vscripts.ru/res/files/espresso_test.xlsx Скачать Excel-файл с численными данными]
 

Текущая версия на 08:41, 12 апреля 2013