Перейти к содержанию
    

можно ли заставить квартус синтезировать память с мультиплексором адреса?

вроде это обсуждалось, но не нашел

 

квартус для быстроты ставит память так, чтобы покрыть адреса одним блоком, то есть много узких памятей.

причем - пусть бы ставил пару 256х16, так нет же ставит 32 4Кх1

то есть расход памяти впустую большой

 

по времянке запас есть (собственно и по памяти есть еще запас, может быть при недостатке памятей начнет и сам правильно мапировать?)

 

можно это как-то объяснить квартусу?

 

предполагается, что код используется как для циклона 2 (4К) блоки, так и для циклона 3 или ксайлинса (8К) блоки

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоже поднимал тему с такой же проблемой полгода назад. Тогда решения не нашлось, тоже охота узнать, как такое сделать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А атрибут ram_style не подойдет? С его помощью можно же говорить на какой памяти имплементить: http://quartushelp.altera.com/9.1/mergedPr...ile_dir_ram.htm Например, сказать ему что, мол, делай на М4К, а потом с помощью LogicLock'а выдать ему заведомо мало блоков М4К, чтобы он в них все запихнул...

Изменено пользователем spectr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

код/проект выложите пожалуйста, ни разу такого не видел, хочется взглянуть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

квартус для быстроты ставит память так, чтобы покрыть адреса одним блоком, то есть много узких памятей.

причем - пусть бы ставил пару 256х16, так нет же ставит 32 4Кх1

то есть расход памяти впустую большой

M4K - это 4K битов. Которые можно представить в разных форматах, от 4Kx1 до 256x16 (и даже 128x32). Если вам нужна память 8Kx16, он сделает две группы: 16x(4Kx1)+16(4Kx1). в этом случае будет всего один переход между группами, влияющий на быстродействие. Если же делать 256x16+256x16+... (всего 16 слагаемых), то таких переходов будет 15 штук. Быстродействие упадет.

А впустую блоки не расходуются никогда.

А если нужно сделать память 512x16, должно быть задействовано два блока 2x(512x8).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

.....

предполагается, что код используется как для циклона 2 (4К) блоки, так и для циклона 3 или ксайлинса (8К) блоки

очень страно

ква 10.1сп1, циклон 2, код

module test_mem(
    input    clk,
    input[7:0]    adr,
    input[31:0]    data,
    output reg[31:0]q
    );
    
reg [31:0] mem [255:0];
    

    always@(posedge clk)
        q <= mem[adr];
        
    always@(posedge clk)
        mem[adr]<=data;

endmodule

в отчётах фиттер-а именно 2 M4K, %)

покажите что у вас за код

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

покажите что у вас за код

 

да по-моему тоже самое

но квартус 9

 

always @(posedge proc_clk)
begin:memory
if(wr_req)
    mem[addr]<=data;
    
out<=mem[addr];
end

 

проверил предложенный код,

 

Fitter Status

Successful - Thu Mar 17 13:45:47 2011

9.0 Build 235 06/17/2009 SP 2 SJ Full Version

 

Total memory bits

8,192 / 1,152,000 ( < 1 % )

 

но если открыть технолоджи нетлист или чип-едитор - видно, что потрачено 32 блока памяти

 

---------------------------------

 

upd : да, что-то я глюкнул

квартус как надо все делает, только в нетлист вьювере иногда рисует памятей больше

при этом разные "атомы" из вьювера привязаны к одному физическому элементу

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...