реклама на сайте
подробности

 
 
> Регистровый сумматор в acex1k, Глючит квартус или acex не может?
LordVader
сообщение Mar 2 2007, 20:55
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 127
Регистрация: 18-10-06
Пользователь №: 21 418



Вот пишу простейший код:
Код
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

Сообщение отредактировал LordVader - Mar 2 2007, 21:00
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dj_Atmex
сообщение Mar 3 2007, 10:14
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 7-08-05
Пользователь №: 7 421



У вас оптимизация включена? Попробуйте оптимизировать по площади.
Go to the top of the page
 
+Quote Post
LordVader
сообщение Mar 3 2007, 14:18
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 127
Регистрация: 18-10-06
Пользователь №: 21 418



Цитата(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
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 18:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016