Пакет: 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.OptimizationConfighdlcoder.OptimizationConfig объект для автоматической итеративной оптимизации конструкции ЛПВП.
ExplorationMode - Целевой режим оптимизацииhdlcoder.OptimizationConfig.ExplorationMode.BestFrequency (по умолчанию) | hdlcoder.OptimizationConfig.ExplorationMode.TargetFrequencyЦелевой режим оптимизации, указанный как одно из следующих значений:
hdlcoder.OptimizationConfig.ExplorationMode.BestFrequency | Оптимизирует конструкцию для достижения максимальной тактовой частоты |
hdlcoder.OptimizationConfig.ExplorationMode.BestFrequency является значением по умолчанию. | |
hdlcoder.OptimizationConfig.ExplorationMode.TargetFrequency | Оптимизирует конструкцию для достижения заданной тактовой частоты |
IterationLimit - Максимальное число итерацийМаксимальное число итераций оптимизации перед выходом, указанное как положительное целое число.
Если ExplorationMode является hdlcoder.OptimizationConfig.ExplorationMode.BestFrequency, кодер HDL выполняет это количество итераций.
Если ExplorationMode является hdlcoder.OptimizationConfig.ExplorationMode.TargetFrequency, кодер HDL запускает число итераций, необходимое для соответствия целевой частоте. В противном случае кодер выполняет максимальное количество итераций.
ResumptionPoint - Папка, содержащая данные оптимизации из предыдущей итерации'' (по умолчанию) | символьный векторИмя папки, содержащей ранее созданные данные итерации оптимизации, указанные как символьный вектор. Папка является подпапкой hdlexplи имя папки начинается с символьного вектора, Iter.
При установке ResumptionPoint для значения, не используемого по умолчанию, hdlcoder.optimizeDesign игнорирует другие свойства объекта конфигурации.
Пример: 'Iter1-26-Sep-2013-10-19-13'
TargetFrequency - Целевая тактовая частотаInf (по умолчанию) | doubleЦелевая тактовая частота, заданная как двойная в МГц. Укажите, когда 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 МГц.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.