yes 7 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба вроде это обсуждалось, но не нашел квартус для быстроты ставит память так, чтобы покрыть адреса одним блоком, то есть много узких памятей. причем - пусть бы ставил пару 256х16, так нет же ставит 32 4Кх1 то есть расход памяти впустую большой по времянке запас есть (собственно и по памяти есть еще запас, может быть при недостатке памятей начнет и сам правильно мапировать?) можно это как-то объяснить квартусу? предполагается, что код используется как для циклона 2 (4К) блоки, так и для циклона 3 или ксайлинса (8К) блоки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба у меня он так никогда не делает %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 3 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба Тоже поднимал тему с такой же проблемой полгода назад. Тогда решения не нашлось, тоже охота узнать, как такое сделать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spectr 0 15 марта, 2011 Опубликовано 15 марта, 2011 (изменено) · Жалоба А атрибут ram_style не подойдет? С его помощью можно же говорить на какой памяти имплементить: http://quartushelp.altera.com/9.1/mergedPr...ile_dir_ram.htm Например, сказать ему что, мол, делай на М4К, а потом с помощью LogicLock'а выдать ему заведомо мало блоков М4К, чтобы он в них все запихнул... Изменено 15 марта, 2011 пользователем spectr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 16 марта, 2011 Опубликовано 16 марта, 2011 · Жалоба код/проект выложите пожалуйста, ни разу такого не видел, хочется взглянуть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 16 марта, 2011 Опубликовано 16 марта, 2011 · Жалоба квартус для быстроты ставит память так, чтобы покрыть адреса одним блоком, то есть много узких памятей. причем - пусть бы ставил пару 256х16, так нет же ставит 32 4Кх1 то есть расход памяти впустую большой M4K - это 4K битов. Которые можно представить в разных форматах, от 4Kx1 до 256x16 (и даже 128x32). Если вам нужна память 8Kx16, он сделает две группы: 16x(4Kx1)+16(4Kx1). в этом случае будет всего один переход между группами, влияющий на быстродействие. Если же делать 256x16+256x16+... (всего 16 слагаемых), то таких переходов будет 15 штук. Быстродействие упадет. А впустую блоки не расходуются никогда. А если нужно сделать память 512x16, должно быть задействовано два блока 2x(512x8). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Postoroniy_V 0 17 марта, 2011 Опубликовано 17 марта, 2011 · Жалоба ..... предполагается, что код используется как для циклона 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, %) покажите что у вас за код Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 17 марта, 2011 Опубликовано 17 марта, 2011 · Жалоба покажите что у вас за код да по-моему тоже самое но квартус 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 : да, что-то я глюкнул квартус как надо все делает, только в нетлист вьювере иногда рисует памятей больше при этом разные "атомы" из вьювера привязаны к одному физическому элементу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться