Автоматическая итеративная оптимизация конструкции ЛПВП
hdlcoder.optimizeDesign( автоматически оптимизирует созданный код HDL на основе указанной конфигурации оптимизации.model, optimizationCfg)
hdlcoder.optimizeDesign( восстанавливает оптимизированный код HDL без повторного выполнения итеративной оптимизации, используя данные из предыдущего прогона model, cpGuidanceFile)hdlcoder.optimizeDesign.
Максимизируйте тактовую частоту для модели, sfir_fixed, выполнив до 10 итераций оптимизации.
Откройте модель и укажите подсистему 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 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 останавливается после пяти итераций, поскольку четвертая и пятая итерации имели одинаковый критический путь, что указывает на то, что кодер нашел минимальный критический путь. Максимальная тактовая частота проекта после оптимизации составляет 1/9,55 нс или 104,71 МГц.
Оптимизация модели, sfir_fixedдо определенной тактовой частоты 50 МГц путем выполнения до 10 итераций оптимизации и не создавать тестовый стенд ЛПВП.
Откройте модель и укажите подсистему 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 ГГц.
Выполнение дополнительных итераций оптимизации для модели, sfir_fixed, используя сохраненные данные итерации, поскольку вы завершили работу в середине предыдущего прогона.
Откройте модель и укажите подсистему 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 МГц.
Регенерация кода HDL с использованием исходной модели. sfir_fixedи сохраненные данные из окончательной итерации предыдущего прогона оптимизации.
Откройте модель и укажите подсистему 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 с использованием сохраненных данных оптимизации из cpGuidance.mat.
hdlcoder.optimizeDesign(model,
'hdlsrc/sfir_fixed/hdlexpl/Final-19-Dec-2013-23-05-04/cpGuidance.mat')Final results are saved in /tmp/hdlsrc/sfir_fixed/hdlexpl/Final-07-Jan-2014-17-16-52 Validation model: gm_sfir_fixed_vnl
model - Наименование моделиИмя модели, указанное как символьный вектор.
Пример: 'sfir_fixed'
optimizationCfg - Конфигурация оптимизацииhdlcoder.OptimizationConfigКонфигурация оптимизации, указанная как hdlcoder.OptimizationConfig объект.
cpGuidanceFile - Файл, содержащий сохраненные данные оптимизации'' (по умолчанию) | символьный векторФайл, содержащий сохраненные данные из конечной итерации оптимизации, включая относительный путь, указанный как символьный вектор. Этот файл используется для регенерации оптимизированного кода без повторного выполнения итеративной оптимизации.
Имя файла: cpGuidance.mat. Файл можно найти в имени папки итерации, которая начинается с Final, которая является подпапкой hdlexpl.
Пример: 'hdlexpl/Final-11-Dec-2013-23-17-10/cpGuidance.mat'
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.