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