Пакет: 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 Coder запускает такое количество итераций.
Если ExplorationMode
является hdlcoder.OptimizationConfig.ExplorationMode.TargetFrequency
HDL Coder запускает количество итераций, необходимых для достижения целевой частоты. В противном случае кодер запускает максимальное количество итераций.
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')
Включите генерацию испытательного стенда 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;
Сконфигурируйте автоматическую итеративную оптимизацию, чтобы она остановилась после достижения тактовой частоты 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 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.