hdlcoder.OptimizationConfig class

Пакет: hdlcoder
Суперклассы:

hdlcoder.optimizeDesign объект настройки

Описание

Используйте hdlcoder.OptimizationConfig возразите, чтобы установить опции для hdlcoder.optimizeDesign функция.

Максимальная настройка тактовой частоты

Сконфигурировать hdlcoder.optimizeDesign максимизировать тактовую частоту вашего проекта:

  • Установите ExplorationMode к hdlcoder.OptimizationConfig.ExplorationMode.BestFrequency.

  • Установите ResumptionPoint к значению по умолчанию, ''.

Можно опционально установить IterationLimit и TestbenchGeneration к значениям не по умолчанию. HDL Coder™ игнорирует TargetFrequency установка.

Целевая настройка тактовой частоты

Сконфигурировать hdlcoder.optimizeDesign соответствовать целевой тактовой частоте:

  • Установите ExplorationMode к hdlcoder.OptimizationConfig.ExplorationMode.TargetFrequency.

  • Установите TargetFrequency к вашей целевой тактовой частоте.

  • Установите ResumptionPoint к значению по умолчанию, ''

Можно опционально установить IterationLimit и TestbenchGeneration к значениям не по умолчанию.

Возобновитесь от настройки прерывания

Сконфигурировать hdlcoder.optimizeDesign чтобы возобновиться после прерывания, задайте ResumptionPoint.

Когда вы устанавливаете ResumptionPoint к значению не по умолчанию проигнорированы другие свойства.

Конструкция

optimcfg = hdlcoder.OptimizationConfig создает hdlcoder.OptimizationConfig объект для автоматического итеративного HDL проектирует оптимизацию.

Свойства

развернуть все

Целевой режим оптимизации в виде одного из этих значений:

hdlcoder.OptimizationConfig.ExplorationMode.BestFrequencyОптимизирует проект, чтобы попытаться достигнуть максимальной тактовой частоты
hdlcoder.OptimizationConfig.ExplorationMode.BestFrequency значение по умолчанию.
hdlcoder.OptimizationConfig.ExplorationMode.TargetFrequencyОптимизирует проект, чтобы попытаться достигнуть заданной целевой тактовой частоты

Максимальное количество итераций оптимизации прежде, чем выйти в виде положительного целого числа.

Если ExplorationMode hdlcoder.OptimizationConfig.ExplorationMode.BestFrequency, HDL Coder запускает это количество итераций.

Если ExplorationMode hdlcoder.OptimizationConfig.ExplorationMode.TargetFrequency, HDL Coder запускается, количество итераций должно было встретить целевой частоте. В противном случае кодер запускает максимальное количество итераций.

Имя папки, которая содержит ранее сгенерированные данные об итерации оптимизации в виде вектора символов. Папка является подпапкой hdlexpl, и имя папки начинается с вектора символов, Iter.

Когда вы устанавливаете ResumptionPoint к значению не по умолчанию, hdlcoder.optimizeDesign игнорирует другие свойства объектов настройки.

Пример: 'Iter1-26-Sep-2013-10-19-13'

Целевая тактовая частота в виде двойного в МГц. Задайте когда ExplorationMode hdlcoder.OptimizationConfig.ExplorationMode.TargetFrequency.

Примеры

свернуть все

Откройте модель и задайте подсистему DUT.

model = 'sfir_fixed';
dutSubsys = 'symmetric_fir';
open_system(model);
hdlset_param(model,'HDLSubsystem',[model,'/',dutSubsys]);

Установите свои опции инструмента и целевого устройства синтеза.

hdlset_param(model,'SynthesisTool','Xilinx ISE', ...
                   'SynthesisToolChipFamily','Zynq', ...
                   'SynthesisToolDeviceName','xc7z030', ...
                   'SynthesisToolPackageName','fbg484', ...
                   'SynthesisToolSpeedValue','-3')

Включите генерацию испытательного стенда HDL.

hdlset_param(model,'GenerateHDLTestBench','on');

Сохраните свою модель.

Необходимо сохранить модель, если вы хотите регенерировать код позже, не повторно выполняя итеративную оптимизацию или возобновить ваш запуск, если это прервано. Когда вы используете hdlcoder.optimizeDesign чтобы регенерировать код или возобновить прерванный запуск, HDL Coder проверяет контрольную сумму модели и генерирует ошибку, если модель изменилась.

Создайте объект настройки оптимизации, oc.

oc = hdlcoder.OptimizationConfig;

Установите предел итерации к 10.

oc.IterationLimit = 10;

Оптимизируйте модель.

hdlcoder.optimizeDesign(model,oc)
hdlset_param('sfir_fixed', 'HDLSubsystem', 'sfir_fixed/symmetric_fir');
hdlset_param('sfir_fixed', 'SynthesisTool', 'Xilinx ISE');
hdlset_param('sfir_fixed', 'SynthesisToolChipFamily', 'Zynq');
hdlset_param('sfir_fixed', 'SynthesisToolDeviceName', 'xc7z030');
hdlset_param('sfir_fixed', 'SynthesisToolPackageName', 'fbg484');
hdlset_param('sfir_fixed', 'SynthesisToolSpeedValue', '-3');

Iteration 0
Generate and synthesize HDL code ...
(CP ns) 16.26	(Constraint ns) 5.85	(Elapsed s) 143.66 Iteration 1
Generate and synthesize HDL code ...
(CP ns) 16.26	(Constraint ns) 5.85	(Elapsed s) 278.72 Iteration 2
Generate and synthesize HDL code ...
(CP ns) 10.25	(Constraint ns) 12.73	(Elapsed s) 427.22 Iteration 3
Generate and synthesize HDL code ...
(CP ns) 9.55	(Constraint ns) 9.73	(Elapsed s) 584.37 Iteration 4
Generate and synthesize HDL code ...
(CP ns) 9.55	(Constraint ns) 9.38	(Elapsed s) 741.04 Iteration 5
Generate and synthesize HDL code ...
Exiting because critical path cannot be further improved.
Summary report: summary.html
Achieved Critical Path (CP) Latency : 9.55 ns		Elapsed : 741.04 s
Iteration 0: (CP ns) 16.26	(Constraint ns) 5.85	(Elapsed s) 143.66
Iteration 1: (CP ns) 16.26	(Constraint ns) 5.85	(Elapsed s) 278.72
Iteration 2: (CP ns) 10.25	(Constraint ns) 12.73	(Elapsed s) 427.22
Iteration 3: (CP ns) 9.55	(Constraint ns) 9.73	(Elapsed s) 584.37
Iteration 4: (CP ns) 9.55	(Constraint ns) 9.38	(Elapsed s) 741.04
Final results are saved in
    /tmp/hdlsrc/sfir_fixed/hdlexpl/Final-07-Jan-2014-17-04-41
Validation model: gm_sfir_fixed_vnl

Затем остановки HDL Coder после пяти итераций, потому что четвертые и пятые итерации имели тот же критический путь, который указывает, что кодер нашел минимальный критический путь. Максимальная тактовая частота проекта после оптимизации равняется 1 / 9,55 нс или 104,71 МГц.

Откройте модель и задайте подсистему DUT.

model = 'sfir_fixed';
dutSubsys = 'symmetric_fir';
open_system(model);
hdlset_param(model,'HDLSubsystem',[model,'/',dutSubsys]);

Установите свои опции инструмента и целевого устройства синтеза.

hdlset_param(model,'SynthesisTool','Xilinx ISE', ...
                   'SynthesisToolChipFamily','Zynq', ...
                   'SynthesisToolDeviceName','xc7z030', ...
                   'SynthesisToolPackageName','fbg484', ...
                   'SynthesisToolSpeedValue','-3')

Отключите генерацию испытательного стенда HDL.

hdlset_param(model,'GenerateHDLTestBench','off');

Сохраните свою модель.

Необходимо сохранить модель, если вы хотите регенерировать код позже, не повторно выполняя итеративную оптимизацию или возобновить ваш запуск, если это прервано. Когда вы используете hdlcoder.optimizeDesign чтобы регенерировать код или возобновить прерванный запуск, HDL Coder проверяет контрольную сумму модели и генерирует ошибку, если модель изменилась.

Создайте объект настройки оптимизации, oc.

oc = hdlcoder.OptimizationConfig;

Сконфигурируйте автоматическую итеративную оптимизацию, чтобы остановиться после того, как она достигает тактовой частоты 50 МГц или 10 итераций, какой бы ни на первом месте.

oc.ExplorationMode = ...
    hdlcoder.OptimizationConfig.ExplorationMode.TargetFrequency;
oc.TargetFrequency = 50;
oc.IterationLimit = 10; =  

Оптимизируйте модель.

hdlcoder.optimizeDesign(model,oc)
hdlset_param('sfir_fixed','GenerateHDLTestBench','off');
hdlset_param('sfir_fixed','HDLSubsystem','sfir_fixed/symmetric_fir');
hdlset_param('sfir_fixed','SynthesisTool','Xilinx ISE');
hdlset_param('sfir_fixed','SynthesisToolChipFamily','Zynq');
hdlset_param('sfir_fixed','SynthesisToolDeviceName','xc7z030');
hdlset_param('sfir_fixed','SynthesisToolPackageName','fbg484');
hdlset_param('sfir_fixed','SynthesisToolSpeedValue','-3');

Iteration 0
Generate and synthesize HDL code ...
(CP ns) 16.26	(Constraint ns) 20.00	(Elapsed s) 134.02 Iteration 1
Generate and synthesize HDL code ...
Exiting because constraint (20.00 ns) has been met (16.26 ns).
Summary report: summary.html
Achieved Critical Path (CP) Latency : 16.26 ns		Elapsed : 134.02 s
Iteration 0: (CP ns) 16.26	(Constraint ns) 20.00	(Elapsed s) 134.02
Final results are saved in
    /tmp/hdlsrc/sfir_fixed/hdlexpl/Final-07-Jan-2014-17-07-14
Validation model: gm_sfir_fixed_vnl

Затем остановки HDL Coder после одной итерации, потому что это достигло целевой тактовой частоты. Критический путь составляет 16,26 нс, тактовая частота 61,50 ГГц.

Откройте модель и задайте подсистему DUT.

model = 'sfir_fixed';
dutSubsys = 'symmetric_fir';
open_system(model);
hdlset_param(model,'HDLSubsystem',[model,'/',dutSubsys]);

Установите свои опции инструмента и целевого устройства синтеза на те же значения как в прерванном запуске.

hdlset_param(model,'SynthesisTool','Xilinx ISE', ...
                   'SynthesisToolChipFamily','Zynq', ...
                   'SynthesisToolDeviceName','xc7z030', ...
                   'SynthesisToolPackageName','fbg484', ...
                   'SynthesisToolSpeedValue','-3')

Включите генерацию испытательного стенда HDL.

hdlset_param(model,'GenerateHDLTestBench','on');

Создайте объект настройки оптимизации, oc.

oc = hdlcoder.OptimizationConfig;

Сконфигурируйте автоматическую итеративную оптимизацию, чтобы запустить данные об использовании из первой итерации предыдущего запуска.

oc.ResumptionPoint = 'Iter5-07-Jan-2014-17-04-29';

Оптимизируйте модель.

hdlcoder.optimizeDesign(model,oc)
hdlset_param('sfir_fixed','HDLSubsystem','sfir_fixed/symmetric_fir');
hdlset_param('sfir_fixed','SynthesisTool','Xilinx ISE');
hdlset_param('sfir_fixed','SynthesisToolChipFamily','Zynq');
hdlset_param('sfir_fixed','SynthesisToolDeviceName','xc7z030');
hdlset_param('sfir_fixed','SynthesisToolPackageName','fbg484');
hdlset_param('sfir_fixed','SynthesisToolSpeedValue','-3');

Try to resume from resumption point: Iter5-07-Jan-2014-17-04-29
Iteration 5
Generate and synthesize HDL code ...
Exiting because critical path cannot be further improved.
Summary report: summary.html
Achieved Critical Path (CP) Latency : 9.55 ns		Elapsed : 741.04 s
Iteration 0: (CP ns) 16.26	(Constraint ns) 5.85	(Elapsed s) 143.66
Iteration 1: (CP ns) 16.26	(Constraint ns) 5.85	(Elapsed s) 278.72
Iteration 2: (CP ns) 10.25	(Constraint ns) 12.73	(Elapsed s) 427.22
Iteration 3: (CP ns) 9.55	(Constraint ns) 9.73	(Elapsed s) 584.37
Iteration 4: (CP ns) 9.55	(Constraint ns) 9.38	(Elapsed s) 741.04
Final results are saved in
    /tmp/hdlsrc/sfir_fixed/hdlexpl/Final-07-Jan-2014-17-07-30
Validation model: gm_sfir_fixed_vnl

Затем остановки кодера после одной дополнительной итерации, потому что это достигло целевой тактовой частоты. Критический путь составляет 9,55 нс, или тактовая частота 104,71 МГц.

Смотрите также