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

Материал из Модулярная арифметики
Перейти к: навигация, поиск
(Типовые Verilog-модули)
Строка 6: Строка 6:
 
# [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)] - сверхбыстрый обратный преобразователь в позиционную систему.
 +
 +
== Библиотека стандартных ячеек ==
 +
<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>

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

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

Генераторы 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