Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Регистровый сумматор в acex1k
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
LordVader
Вот пишу простейший код:
Код
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
Dj_Atmex
У вас оптимизация включена? Попробуйте оптимизировать по площади.
AlexanderX
По умолчанию Квартус раскладывает асинхронную логику в одни ячейки, а регистры в другие. Для того чтобы этого не происходило ему нужно помочь. А именно: Assigments\Settings\Fitter Settings\More Settings\Auto Packed Registers -> On. wink.gif
LordVader
Цитата(Dj_Atmex @ Mar 3 2007, 10:14) *
У вас оптимизация включена? Попробуйте оптимизировать по площади.

Ну это первое, куда я ткнулся. Было включено 'Area'.

Цитата(AlexanderX @ Mar 3 2007, 11:25) *
По умолчанию Квартус раскладывает асинхронную логику в одни ячейки, а регистры в другие. Для того чтобы этого не происходило ему нужно помочь. А именно: Assigments\Settings\Fitter Settings\More Settings\Auto Packed Registers -> On. wink.gif


Не помогло.

Один очень шарящий чел не пожалел своего времени и разобрался. Говорит, что данную опцию фиттер в квартусе молча игнорирует. А чтобы всё-таки не 16 LE было, он поправил библиотечный файлик lpm_add_sub.tdf в недрах квартуса, заменив USE_CS_BUFFERS = 1 на 0.
Стало не 8, а 9, всё-таки, младший разряд отдельным LE генерится, а перенос с него - другим.

Интересно, чем альтеровцы думали, когда такое ваяли? maniac.gif
sazh
А зачем Квартусу семейство ACEX. Если это семейство нормально полддерживает MAX+
И в MAX+ получается 9LC при output [7:0] out; reg [7:0] out;
Может в 10 Квартусе и дойдут руки до семейства ACEX. В качестве бонуса для Вас.

Ошибочка вышла. Так правильно будет.
При output [8:0] out; reg [8:0] out;
EvgenyNik
Цитата
Интересно, чем альтеровцы думали, когда такое ваяли?

Как вероятность только - желанием пересадить Вас с ACEX на Stratix, Cyclone и MAXII :-)
Хотя, по моим наблюдениям, для семейства MAX7000S, Квартус оптимизирует лучше, чем МАХ+. В смысле - расход LE меньше при равных настройках.
vitan
Цитата(Евгений Николаев @ Mar 5 2007, 17:19) *
[Хотя, по моим наблюдениям, для семейства MAX7000S, Квартус оптимизирует лучше, чем МАХ+.

Зато для MAX7000S по моим наблюдениям он хуже синтезирует. Были ошибки в автоматах, битики не так как надо генерились, в отличие от Synplify и LeonardoSpectrum... Я лично не очень доволен работой квартуса с семйством 7000S... Плюс в хелпе есть глюки, связанные с этим семейством. Видимо, совсем они их не хотят поддерживать. sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.