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

 
 
> Память внутри Cyclone III, Не понятно сообщение от Flow Summary
Serhiy_UA
сообщение Jan 10 2011, 06:33
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



После успешной компиляции в QII, появляется окно Compilation Report – Flow Summary, которое сообщает о том, что память внутри Cyclone III не используется: Total memory bits = 0%.
Хотя эта память описана в корневом модуле. В частности, после компиляции, эту память можно просмотреть через RTL Viewer, где она и отображается как блок памяти (синий прямоугольник).
Почему так может происходить, когда в одном месте сообщается, что памяти нет, а в другом она видна?

Пробовал для QII 7.2 и QII 9.1 – результат одинаков. Использоват память из шаблона Single port RAM with single read/write address.
Когда же создал короткий тест, то видел блок памяти и в RTL Viewer, и сообщение в Compilation Report – Flow Summary, т.е. память задействована. А для большого проекта – разночтение, с сообщением в Flow Summary, что памяти нет.
Какие могут быть соображения?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vadimuzzz
сообщение Jan 10 2011, 06:55
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



посмотрите отчет компиляции, какие ресурсы этим модулем используется. м.б. синтезатор решил ее на регистрах сделать (небольшой размер), либо вообще выкинул - если ничего от нее не зависит. слева, где дерево проекта, можно посмотреть статистику модулей по занимаемым ресурсам.
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jan 11 2011, 10:41
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



vadimuzzz, спасибо за советы.

В проекте память на 8192 адреса (М9К) в двух модулях RAM с шириной слова по 32 бита. Один модуль не хотел создаваться, хотя модули полностью идентичные. Почему-то RTL Viewer показывал оба модуля, а в отчете и дереве проекта (окошко Project Navigator) один из модулей не создавался, ни на регистрах, не в М9К. До этого я считал показания RTL Viewer истинными, теперь буду сомневаться, не пойму только почему это так в QII, вроде, должны показываться одно и то же. Вопрос остается….

В конце концов, опять же не без помощи дерева проекта, оба модуля созданы. Однако в проекте много 32-разрядныз мультиплексоров 2 в 1, управляемых одним сигналом, похоже, что нагрузочных входов у этого сигнала будет более 200. Манипуляции с эти сигналом почему-то влияют на создание одного из этих модулей RAM. Ситуация такая, что ставит под угрозу весь проект. Надо, видимо, этот сигнал управления мультиплексорами как-то разгрузить. Как в таких случаях поступают, когда у сигнала большой коэффициент разветвления?
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Jan 11 2011, 12:10
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Количество потребителей не может влиять на создание памяти, мысли про глюки в quartus не допускаем.
Чтобы память попала в проект, её содержимое должно меняться и использоваться.
Достаточно, чтобы сигнал write enable был всегда неактивным и память уже не нужна.

Покажите исходники, если есть возможность.

Если цель проекта не в нагреве микросхемы, то моделирование до и после place&route должны показать правильное функционирование, которому эта память необходима.

QUOTE (Serhiy_UA @ Jan 11 2011, 16:41) *
Как в таких случаях поступают, когда у сигнала большой коэффициент разветвления?

- используют специальные выделенные ресурсы разводки (глобальные сети), если есть
- если есть возможность определить значение сигнала на один или более тактов раньше, перед потребителями добавляется последовательно один или более регистров, что позволит P&R наделать дублей и построить дерево
- осмысливается схема, ищутся новые варианты реализации
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jan 11 2011, 15:49
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Shtirlits и vadimuzzz, спасибо за советы.

Буду разбираться. QII пока под презумпцией невиновности... А вот его оптимизатор, возможно, умничает...
Схема разветвления через регистры кажется проще, я сигнал разгружу пока этим способом...
Проект громоздкий, моделировать его сложно, только что отдельными модулям. Показывать тексты пока смысла нет...
Ниже модуль памяти, хотя мега-функции RAM вели себя подобно, т.е. на них как бы тоже влиял перегруженный сигнал:

module single_port_ram
(input [31:0] data, input [12:0] addr, input we, clk, output [31:0] q);
reg [31:0] ram[8191:0];
reg [12:0] addr_reg;
always @ (posedge clk)
begin if (we) ram[addr] = data; addr_reg <= addr; end
endmodule

и вызов модуля:

single_port_ram DD(.data(DDi), .addr(AD), .we(WE), .clk(CLK), .q(DDo));
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 12 2011, 12:08
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Serhiy_UA @ Jan 11 2011, 21:49) *
Ниже модуль памяти, хотя мега-функции RAM вели себя подобно, т.е. на них как бы тоже влиял перегруженный сигнал:

module single_port_ram
(input [31:0] data, input [12:0] addr, input we, clk, output [31:0] q);
reg [31:0] ram[8191:0];
reg [12:0] addr_reg;
always @ (posedge clk)
begin if (we) ram[addr] = data; addr_reg <= addr; end
endmodule
Ой! Регистр addr_reg не используется, выход q вообще не подключен. Не удивительно, что Q это выкинул rolleyes.gif

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Serhiy_UA   Память внутри Cyclone III   Jan 10 2011, 06:33
|- - Serhiy_UA   Цитата(XVR @ Jan 12 2011, 19:08) Ой! ...   Jan 13 2011, 03:33
- - vadimuzzz   ЦитатаДо этого я считал показания RTL Viewer истин...   Jan 11 2011, 11:43
- - Евгений Николаев   Цитата(Serhiy_UA @ Jan 10 2011, 12:33) Пр...   Jan 12 2011, 08:04
|- - Serhiy_UA   Цитата(Евгений Николаев @ Jan 12 2011, 15...   Jan 12 2011, 11:18
- - XVR   ЦитатаНа самом деле модуль RAM у меня такой:Я не в...   Jan 13 2011, 04:11
|- - Leka   Цитата(XVR @ Jan 13 2011, 11:11) ... это ...   Jan 13 2011, 04:59
|- - XVR   Цитата(Leka @ Jan 13 2011, 10:59) Описанн...   Jan 13 2011, 05:50
|- - Leka   Цитата(XVR @ Jan 13 2011, 12:50) Это синх...   Jan 13 2011, 15:55
- - Shtirlits   В cyclone есть асинхронный выход чтения, тут не по...   Jan 13 2011, 04:28
- - vadimuzzz   2 Serhiy_UA вы можете выложить 2 отчета компилятор...   Jan 13 2011, 04:55
|- - Serhiy_UA   Цитата(vadimuzzz @ Jan 13 2011, 10:55) 2 ...   Jan 13 2011, 06:33
|- - vadimuzzz   Цитата(Serhiy_UA @ Jan 13 2011, 15:33) В ...   Jan 13 2011, 06:43
|- - sazh   Цитата(Serhiy_UA @ Jan 13 2011, 12:33) В ...   Jan 13 2011, 08:12
|- - Serhiy_UA   Цитата(sazh @ Jan 13 2011, 14:12) casex в...   Jan 13 2011, 12:30
|- - ViKo   Цитата(sazh @ Jan 13 2011, 13:12) casex в...   Jan 14 2011, 12:01
|- - sazh   Цитата(ViKo @ Jan 14 2011, 18:01) Кстати,...   Jan 14 2011, 12:54
|- - ViKo   Цитата(sazh @ Jan 14 2011, 17:54) По мне ...   Jan 14 2011, 12:57
|- - Serhiy_UA   Причину не включений в проект RAM обнаружил и устр...   Jan 17 2011, 13:00
- - vadimuzzz   Обратите внимание на это: ЦитатаVerilog HDL warnin...   Jan 13 2011, 15:57
- - Shtirlits   Постойте! Я не согласен с выводом об ошибке. ...   Jan 17 2011, 13:17
- - Serhiy_UA   Цитата(Shtirlits @ Jan 17 2011, 17:17) Ка...   Jan 17 2011, 14:00


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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 20:38
Рейтинг@Mail.ru


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