|
Инкрементальная компиляция в Quartus |
|
|
|
Oct 29 2017, 14:13
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Салют! Наконец-то дошли руки до инкрементальной компиляции. Создал два одинаковых параметризованных модуля. Код module inc( (*chip_pin = "73"*) output Y1, (*chip_pin = "74"*) output Y0, (*chip_pin = "75"*) input D1, (*chip_pin = "76"*) input D0, (*chip_pin = "77"*) input C); M #(63) M0(.Y(Y0), .D(D0), .C(C)); M #(128) M1(.Y(Y1), .D(D1), .C(C)); endmodule
module M #(parameter N = 4) (output Y, input D, input C); reg [N-1:0]REGQ; always @(posedge C) REGQ <= {REGQ[N-2:0], D}; assign Y = ^REGQ; endmodule Включил опцию в настройках:
Разложил эти модули по ЛогикЛок регионам, назначил партишины:
Откомпилировал:
Меняем разрядность модуля М1, ожидаем что модуль М0 останется незатронутым, однако, как видим, М0 тоже переразмещён:
Quartus 9.1, микросхема Циклон 4. Где я неправ?
Сообщение отредактировал Jackov - Oct 29 2017, 14:19
|
|
|
|
|
 |
Ответов
|
Dec 13 2017, 13:24
|

Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437

|
Цитата(Jackov @ Oct 30 2017, 18:17)  Вопчем переключил сюда - заработало. Однако прирост скорости компиляции отсутствует и даже немного медленнее стало, что странно. Я так понимаю, если в проекте изменения не делать, то и компиляция должна проходить мгновенно? Инкрементная компиляция дает реальный прирост только на больших проектах, где одна партиция занимает под тысячу и более лутов, а проект может компилиться по пол-дня и больше. Вот тогда она выстреливает. На маленьких же проектах смысла в ней нет. И еще надо очень внимательно разбивать на партиции (читайте хендбук, там все хорошо расписано). Например, на границах партиций желательно ставить триггера, чтобы фиттер "по ним" умел их разрезать, не затрагивая внутреннюю логику партиции. То есть, для того чтобы эта фича работала, надо не просто включить волшебный чекбокс, но еще и придерживаться ряда определенных правил построения проекта.
|
|
|
|
|
Dec 13 2017, 14:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(spectr @ Dec 13 2017, 16:24)  Инкрементная компиляция дает реальный прирост только на больших проектах, где одна партиция занимает под тысячу и более лутов, а проект может компилиться по пол-дня и больше. Вот тогда она выстреливает. На маленьких же проектах смысла в ней нет. И еще надо очень внимательно разбивать на партиции (читайте хендбук, там все хорошо расписано). Например, на границах партиций желательно ставить триггера, чтобы фиттер "по ним" умел их разрезать, не затрагивая внутреннюю логику партиции. То есть, для того чтобы эта фича работала, надо не просто включить волшебный чекбокс, но еще и придерживаться ряда определенных правил построения проекта. Поддерживаю полностью. Замечания ТС - у Вас партиция стоит post-synhteis при этом основное время компиляции тратится на fitter, т.е. выигрыш по времени будет минимальным, если вообще будет - добавляются дополнительные требования на размещение, в отличие от ситуации при отсутствии лоджик рута, Вы приводите скриншот после разводки, но процесс фиттера будет произведен заново и, естественно, картинки будут различаться. На партиции обычно разбивают не для экономии времени, а для впихивания невпихуемого и вытягивания таймингов. Для ускорения времени компиляции обычно оптимизируют сам проект и задают грамотно ограничения. Если хочется просто увидеть уменьшение времени компиляции, наплевав для начала на тайминги, можно ослабить настройки того же фиттера - fast fit
|
|
|
|
|
Dec 13 2017, 18:59
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(bogaev_roman @ Dec 13 2017, 17:16)  На партиции обычно разбивают не для экономии времени, а для впихивания невпихуемого и вытягивания таймингов. Я то, в принципе, понимаю что инкрементальная компиляция нужна для того чтобы не рушилась удачная разводка на модулях которые не меняются. Я не понимаю почему он вообще компилирует повторно проект в котором не было никаких изменений? Цитата(bogaev_roman @ Dec 13 2017, 17:16)  у Вас партиция стоит post-synhteis при этом основное время компиляции тратится на fitter А что нужно ставить?
|
|
|
|
Сообщений в этой теме
Jackov Инкрементальная компиляция в Quartus Oct 29 2017, 14:13 blackfin Цитата(Jackov @ Oct 29 2017, 17:13) Разло... Oct 29 2017, 14:22 Jackov Цитата(blackfin @ Oct 29 2017, 17:22) Заб... Oct 29 2017, 15:26  blackfin Цитата(Jackov @ Oct 29 2017, 18:26) Смотр... Oct 29 2017, 16:01    bogaev_roman Цитата(Jackov @ Dec 13 2017, 21:59) Я то,... Dec 14 2017, 09:42 Jackov Цитата(Jackov @ Oct 30 2017, 18:17) Вопче... Feb 19 2018, 14:33 deus Я сталкивался с тем, что опция Rapid recompile в Q... Dec 13 2017, 13:10
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|