Комплексное исследование обратных преобразователей
Материал из Модулярная арифметики
Версия от 12:20, 19 августа 2013; Turbo (обсуждение | вклад)
Содержание
Описание эксперимента
Было проведено исследование универсальных обратных преобразователей (для произвольных систем модулей). Для тестирования использовались следующие подходы:
- Комбинационный обратный преобразователь на базе CRT II с пирамидальной структурой: Пример (Модули: 3 5 7)
- Конвеерный обратный преобразователь на базе CRT II с пирамидальной структурой: Пример (Модули: 3 5 7)
- Конвеерный на базе полиадического кода, построенный на базе таблиц (LUT): Пример (Модули: 3 5 7)
- Конвеерный на базе полиадического кода, без таблиц: Пример (Модули: 3 5 7)
Исследовались задержка и площадь. Также для спец. систем модулей сравнивались параметры со специализированными конвертерами.
Библиотека стандартных ячеек
NangateOpenCellLibrary.lib
Скрипт для запуска
set seq_run {"poilad-lut-511-512-513" "poilad-511-512-513" "seq-511-512-513"} set comb_run {"comb-511-512-513"} foreach design $comb_run { lappend search_path "../libs" "../src" "./verilog" "./" set target_library "NangateOpenCellLibrary.db" set link_library [list "*" $target_library] analyze -format verilog $design.v elaborate reverse_conv uniquify current_design reverse_conv 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 -significant_digits 6 -max_paths 10 > "timing.$design.rpt" report_area > "area.$design.rpt" report_power -analysis_effort high > "power.$design.rpt" remove_design -all } #with_clock foreach design $seq_run { lappend search_path "../libs" "../src" "./verilog" "./" set target_library "NangateOpenCellLibrary.db" set link_library [list "*" $target_library] analyze -format verilog $design.v elaborate reverse_conv uniquify current_design reverse_conv 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 create_clock clk -period 0.1 set_clock_uncertainty 0.0 [all_clocks] set_dont_touch_network [all_clocks] compile report_timing -significant_digits 6 -max_paths 10 > "timing.$design.rpt" report_area > "area.$design.rpt" report_power -analysis_effort high > "power.$design.rpt" remove_design -all }