LordVader 0 2 марта, 2007 Опубликовано 2 марта, 2007 (изменено) · Жалоба Вот пишу простейший код: module adder( clock, in1, in2, out ); input clock; input [7:0] in1; input [7:0] in2; output [7:0] out; reg [7:0] out; always @(posedge clock) begin out <= in1 + in2; end endmodule синтезю, и что же? 16 LE! При этом 8 LE - сам сумматор, а ещё 8 - регистры на его выходах. Странно, вроде бы, судя по даташиту, в одной LE должны сочетаться arithmetic mode и триггер на выходе... Попробовал играться семействами (чисто из интереса, нужно-то для acex'а всё равно): для некоторых так и остаётся 16 LE, для других (например, stratix и cyclone) - получается 8. В чём тут "собака порылась"? PS: квартус - 6.0 web edition Изменено 2 марта, 2007 пользователем LordVader Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dj_Atmex 0 3 марта, 2007 Опубликовано 3 марта, 2007 · Жалоба У вас оптимизация включена? Попробуйте оптимизировать по площади. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexanderX 0 3 марта, 2007 Опубликовано 3 марта, 2007 · Жалоба По умолчанию Квартус раскладывает асинхронную логику в одни ячейки, а регистры в другие. Для того чтобы этого не происходило ему нужно помочь. А именно: Assigments\Settings\Fitter Settings\More Settings\Auto Packed Registers -> On. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LordVader 0 3 марта, 2007 Опубликовано 3 марта, 2007 · Жалоба У вас оптимизация включена? Попробуйте оптимизировать по площади. Ну это первое, куда я ткнулся. Было включено 'Area'. По умолчанию Квартус раскладывает асинхронную логику в одни ячейки, а регистры в другие. Для того чтобы этого не происходило ему нужно помочь. А именно: Assigments\Settings\Fitter Settings\More Settings\Auto Packed Registers -> On. ;) Не помогло. Один очень шарящий чел не пожалел своего времени и разобрался. Говорит, что данную опцию фиттер в квартусе молча игнорирует. А чтобы всё-таки не 16 LE было, он поправил библиотечный файлик lpm_add_sub.tdf в недрах квартуса, заменив USE_CS_BUFFERS = 1 на 0. Стало не 8, а 9, всё-таки, младший разряд отдельным LE генерится, а перенос с него - другим. Интересно, чем альтеровцы думали, когда такое ваяли? :maniac: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 3 марта, 2007 Опубликовано 3 марта, 2007 · Жалоба А зачем Квартусу семейство ACEX. Если это семейство нормально полддерживает MAX+ И в MAX+ получается 9LC при output [7:0] out; reg [7:0] out; Может в 10 Квартусе и дойдут руки до семейства ACEX. В качестве бонуса для Вас. Ошибочка вышла. Так правильно будет. При output [8:0] out; reg [8:0] out; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvgenyNik 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба Интересно, чем альтеровцы думали, когда такое ваяли? Как вероятность только - желанием пересадить Вас с ACEX на Stratix, Cyclone и MAXII :-) Хотя, по моим наблюдениям, для семейства MAX7000S, Квартус оптимизирует лучше, чем МАХ+. В смысле - расход LE меньше при равных настройках. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitan 2 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба [Хотя, по моим наблюдениям, для семейства MAX7000S, Квартус оптимизирует лучше, чем МАХ+. Зато для MAX7000S по моим наблюдениям он хуже синтезирует. Были ошибки в автоматах, битики не так как надо генерились, в отличие от Synplify и LeonardoSpectrum... Я лично не очень доволен работой квартуса с семйством 7000S... Плюс в хелпе есть глюки, связанные с этим семейством. Видимо, совсем они их не хотят поддерживать. :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться