exponenta event banner

класс hdlcoder.ExpectionConfig

Пакет: 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 объект для автоматической итеративной оптимизации конструкции ЛПВП.

Свойства

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

Целевой режим оптимизации, указанный как одно из следующих значений:

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

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

Если ExplorationMode является hdlcoder.OptimizationConfig.ExplorationMode.BestFrequency, кодер HDL выполняет это количество итераций.

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

Имя папки, содержащей ранее созданные данные итерации оптимизации, указанные как символьный вектор. Папка является подпапкой 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')

Включить генерацию тестового стенда ЛПВП.

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

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

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

Создайте объект конфигурации оптимизации, 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 останавливается после пяти итераций, поскольку четвертая и пятая итерации имели одинаковый критический путь, что указывает на то, что кодер нашел минимальный критический путь. Максимальная тактовая частота проекта после оптимизации составляет 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')

Отключить формирование тестового стенда ЛПВП.

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

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

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

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

oc = hdlcoder.OptimizationConfig;

Настройте автоматическую итеративную оптимизацию для остановки после достижения тактовой частоты 50MHz или 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 останавливается после одной итерации, так как он достиг целевой тактовой частоты. Критический тракт - 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')

Включить генерацию тестового стенда ЛПВП.

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 МГц.

См. также