|
Память внутри Cyclone III, Не понятно сообщение от Flow Summary |
|
|
|
Jan 10 2011, 06:33
|
Знающий
   
Группа: Свой
Сообщений: 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, что памяти нет. Какие могут быть соображения?
|
|
|
|
2 страниц
< 1 2
|
 |
Ответов
(15 - 26)
|
Jan 13 2011, 06:33
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(vadimuzzz @ Jan 13 2011, 10:55)  2 Serhiy_UA вы можете выложить 2 отчета компилятора - когда модуль есть и когда нет? желательно с примерными пояснениями, что изменяете в проекте В приложении фото двух экранов от двух проектов. На одном экране, когда оба блока RAM есть, а на втором, когда один из RAM не создается. При этом в проектах изменяются только места падключения шин DD4 и DD6 по двум соседним присваиваниям в операторе casex, что в модуле control_pci.v . В приложение Doc3.zip есть краткое описание проблемы. В Doc3_warning.zip тоже самое, что и в Doc3.zip, плюс еще warning после неуспешной компиляции.
|
|
|
|
|
Jan 13 2011, 12:30
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(sazh @ Jan 13 2011, 14:12)  casex воспринимается не так как Вам надо. Он конечно синтезируется, но примеров на верилоге для синтеза я не видел. А квартус сплошные предупреждения выдает. Зачем он тут. Приоритетное мультиплексирование по нужным разрядам даст однозначную картинку. А по ресурсам будет меньше. Оператор casex используется для работы с ядром pci_mt32 в моменты обращения к PCI-шине. Я оставил casex с предыдущего проекта, где он нормально работает после компиляции в MAX+plusII. Не задумывался пока его менять, но возможно придется: как, пока еще не определился... Предупреждений от QII много, надо еще чистить проект, это понятно...
|
|
|
|
|
Jan 13 2011, 15:55
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
Цитата(XVR @ Jan 13 2011, 12:50)  Это синхронное защелкивание адреса, а само чтение асинхронное. При синхронном чтении любые изменения содержимого ram не попадут на выход q до ближайшего клока (clk), у вас же они проявляются немедленно.  Это да. Но именно так описывается синтезируемый "write-first" режим у Xilinx. Цитата PS. Но это не важно, т.к. (по информации от Shtirlits) асинхронное чтение RAM в Cyclone есть У Altera вроде так-же, как и у Xilinx.
|
|
|
|
|
Jan 13 2011, 15:57
|

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

|
Обратите внимание на это: Цитата Verilog HDL warning at control_pci.v(64): overlapping case item expressions are non-constant or contain don't care bits - unable to check case statement for completeness Из хелпа: Verilog HDL warning at <location>: case statement has overlapping case item expressions with non-constant or don't care bits - unable to check case statement for completeness CAUSE: In a case statement at the specified location in a Verilog Design File (.v), you used case item expressions that overlap or potentially overlap. The expressions may potentially overlap if they contain references to variables or nets. Otherwise, they overlap because of don't care bits. In either case, Quartus II cannot analyze your case statement for completeness and will assume it to be incomplete, unless otherwise instructed by a full_case pragma or a SystemVerilog unique/priority keyword. ACTION: If you require a complete case statement, add an explicit default case item. You can force completeness without a default case item by adding a full_case pragma or a SystemVerilog unique/priority keyword. и, соглашусь с sazh, приоритетная схема тут больше подходит по смыслу
|
|
|
|
|
Jan 14 2011, 12:54
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(ViKo @ Jan 14 2011, 18:01)  Кстати, в соответствии с выше приведенной цитатой По мне так в соответствии с 21 сообщением. Не все так просто с casex Код module case_full ( input [3:0] data_a, data_b, data_c, data_d, input [3:0] data_e, input [3:0] sel, output reg[3:0] rezult );
always @(*) begin casex (sel) // synthesis full_case 4'b1xxx : rezult = data_e; 4'bx1xx : rezult = data_d; 4'bxx1x : rezult = data_c; 4'bxxx1 : rezult = data_b; 4'b0000 : rezult = data_a; endcase end
endmodule
|
|
|
|
|
Jan 14 2011, 12:57
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(sazh @ Jan 14 2011, 17:54)  По мне так в соответствии с 21 сообщением. его и имел в виду Так, как у вас написано, и человек не сможет определиться с выбором. Можно сделать так, например Код casex (sel) 4'b1xxx : rezult = data_e; 4'b01xx : rezult = data_d; 4'b001x : rezult = data_c; 4'b0001 : rezult = data_b; 4'b0000 : rezult = data_a; endcase
|
|
|
|
|
Jan 17 2011, 13:17
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Постойте!
Я не согласен с выводом об ошибке. Считаю, что причина в том, что нет моделирования проекта целиком. Как будто вам нужно, чтобы рядовой подметая ломом плац *устал*, а не чистоту навести. Я не шучу, когда говорю про цель проекта нагревать микросхему. Какой бы ни был размер схемы, системы на кристалле, мультичипового решения, всегда дешевле купить адекватный компьютер для моделирования и обустроить среду для верификации, чем тратить время на отладку. Кроме того, если хорошенько подумать, то можно устроить верификацию и уже имеющимися средствами.
|
|
|
|
|
Jan 17 2011, 14:00
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(Shtirlits @ Jan 17 2011, 17:17)  Какой бы ни был размер схемы, системы на кристалле, мультичипового решения, всегда дешевле купить адекватный компьютер для моделирования и обустроить среду для верификации, чем тратить время на отладку. Кроме того, если хорошенько подумать, то можно устроить верификацию и уже имеющимися средствами. Этими словами можно было бы начать неплохую диссертацию. К сожалению, мои навыки в верификации подобных вещей очень скромны, возразить нечем... Советовал бы только создать отдельную ветку по проблематике верификации ПЛИС, а также больших проектов на них, и, далее, все аспекты верификации обсуждать в ней...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|