© CОПЫРИГХТ: пересказал и положил на свою
страницу http://www.dsioffe.narod.ru/ Дмитрий Иоффе, инженер. |
Инкрементальная компиляция позволяет разработчику разбивать проект на физические и логические части для синтеза и монтажа (fitting) - place-and-route и компилировать только часть блоков. Это даёт возможность сохранить все свойства заданных блоков, в то время как другие блоки подвергаются оптимизации. Разработчик, используя инкрементальную компиляцию, может добиться сокращения времени итерации до 70%.
НаверхПри инкрементальной компиляции проект разбивается на логические и физические области, которые в рамках проекта рассматриваются независимо. Это позволяет Quartus II перекомпилировать только те части проекта, в которые внесены изменения, что значительно уменьшает время компиляции. Технология LogicLock допускает инкрементальный метод разработки проекта, когда блоки могут компилироваться по отдельности и назначаться на физические области. Однако, после импорта блоков LogicLock в проект верхнего уровня должны перекомпилироваться все блоки, а не только те, в которые внесены изменения. Следовательно, разработчик не увидит большой экономии времени по сравнению с инкрементальной компиляцией. Области LogicLock могут использоваться совместно с инкрементальной компиляцией для назначения разделам проекта заданных ресурсов устройства.
НаверхИнкрементальный синтез работает только на стадии синтеза проекта. После инкрементального синтеза весь проект заново монтируется, следовательно, при оптимизации границы разделов могут перемещаться. Инкрементальная компиляция работает на стадиях и синтеза, и монтажа (fitter), что обеспечивает большую экономию времени и лучшее сохранение незатронутых разделов.
НаверхУказывает компилятору выполнить разумную компиляцию, после чего следующие компиляции могут выполняться быстрее.
Во время перекомпиляции после разумной компиляции компилятор определяет, какие модули требуются для текущей обработки проекта. При этом он основывается на том, какие изменения были внесены в проект после разумной компиляции, и пропускает любые не требующиеся модули. Если Вы внесёте любые изменения в логику проекта, компилятор использует все модули. Эта опция подобна команде Smart Recompile из MAX+PLUS II.
Когда компилятор во время перекомпиляции пропускает модули, сообщения от этих модулей в окне сообщений и в секции сообщений отчёта о компиляции не перерисовываются.
По умолчанию эта опция выключена.
НаверхПри включении этой опции экономится дисковое пространство и уменьшается время компиляции за счёт того, что компилятор не сохраняет в базе данных синонимы имён сигналов. Тем не менее, он всё равно сохраняет все имена сигналов, определённые пользователем.
По умолчанию эта опция включена.
НаверхВыключает все формы инкрементального синтеза и инкрементальной компиляции. Выключение любого из этих свойств не отменяет разбиения на разделы.
Включает инкрементальный синтез, при котором заново синтезируются
только заданные разделы проекта. При этом уменьшаются время синтеза и
использование памяти. Вы можете включить эту опцию следующим образом:
- открыть Project Navigator;
- щёлкнуть правой кнопкой мыши по имени блока;
- выбрать Set as Design Partition
- в появившемся диалоге выбрать Incremental synthesis only.
Диалог Incremental Compilation появляется только при первом назначении раздела проекта. Вы можете также включить полную инкрементальную компиляцию на закладке Compilation Process Settings диалога Settings (меню Assignments).
Полная инкрементальная компиляция и инкрементальный синтез взаимно исключают друг друга. Вы можете включить что-то одно или выключить всё. По умолчанию они выключены.
Чтобы запустить инкрементальный синтез, Вы должны определить части проекта как разделы (partitions), внести изменения в проект и выполнить анализ и синтез или провести полную компиляцию проекта. Если Вы запускаете только анализ и синтез, Вы должны объединить все разделы проекта командой Start / Start Partition Merge из меню Processing.
При включении полной инкрементальной компиляции уменьшается время
компиляции за счёт разделения проекта на разделы и перекомпиляции только
тех частей проекта, в которые внесены изменения. Для включения этой опции
Вы можете:
- открыть Project Navigator;
- щёлкнуть правой кнопкой мыши по имени блока;
- выбрать Set as Design Partition;
- в появившемся диалоге выбрать Full incremental compilation.