Serhiy_UA 1 13 января, 2011 Опубликовано 13 января, 2011 · Жалоба 2 Serhiy_UA вы можете выложить 2 отчета компилятора - когда модуль есть и когда нет? желательно с примерными пояснениями, что изменяете в проекте В приложении фото двух экранов от двух проектов. На одном экране, когда оба блока RAM есть, а на втором, когда один из RAM не создается. При этом в проектах изменяются только места падключения шин DD4 и DD6 по двум соседним присваиваниям в операторе casex, что в модуле control_pci.v . В приложение Doc3.zip есть краткое описание проблемы. В Doc3_warning.zip тоже самое, что и в Doc3.zip, плюс еще warning после неуспешной компиляции. Doc3.zip Doc3_warning.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 13 января, 2011 Опубликовано 13 января, 2011 · Жалоба В приложении фото двух экранов. а где приложение? :) интересуют именно warnings, главным образом синтезатора (вряд ли это фокусы фиттера) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 13 января, 2011 Опубликовано 13 января, 2011 · Жалоба В приложении фото двух экранов от двух проектов. casex воспринимается не так как Вам надо. Он конечно синтезируется, но примеров на верилоге для синтеза я не видел. А квартус сплошные предупреждения выдает. Зачем он тут. Приоритетное мультиплексирование по нужным разрядам даст однозначную картинку. А по ресурсам будет меньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 13 января, 2011 Опубликовано 13 января, 2011 · Жалоба casex воспринимается не так как Вам надо. Он конечно синтезируется, но примеров на верилоге для синтеза я не видел. А квартус сплошные предупреждения выдает. Зачем он тут. Приоритетное мультиплексирование по нужным разрядам даст однозначную картинку. А по ресурсам будет меньше. Оператор casex используется для работы с ядром pci_mt32 в моменты обращения к PCI-шине. Я оставил casex с предыдущего проекта, где он нормально работает после компиляции в MAX+plusII. Не задумывался пока его менять, но возможно придется: как, пока еще не определился... Предупреждений от QII много, надо еще чистить проект, это понятно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 13 января, 2011 Опубликовано 13 января, 2011 · Жалоба Это синхронное защелкивание адреса, а само чтение асинхронное. При синхронном чтении любые изменения содержимого ram не попадут на выход q до ближайшего клока (clk), у вас же они проявляются немедленно. :a14: Это да. Но именно так описывается синтезируемый "write-first" режим у Xilinx. PS. Но это не важно, т.к. (по информации от Shtirlits) асинхронное чтение RAM в Cyclone есть У Altera вроде так-же, как и у Xilinx. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 13 января, 2011 Опубликовано 13 января, 2011 · Жалоба Обратите внимание на это: 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, приоритетная схема тут больше подходит по смыслу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 14 января, 2011 Опубликовано 14 января, 2011 · Жалоба casex воспринимается не так как Вам надо. Он конечно синтезируется, но примеров на верилоге для синтеза я не видел. Ну, вот здесь, например. Кстати, в соответствии с выше приведенной цитатой :) http://electronix.ru/forum/index.php?showt...st&p=851601 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 14 января, 2011 Опубликовано 14 января, 2011 · Жалоба Кстати, в соответствии с выше приведенной цитатой По мне так в соответствии с 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 14 января, 2011 Опубликовано 14 января, 2011 · Жалоба По мне так в соответствии с 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 17 января, 2011 Опубликовано 17 января, 2011 · Жалоба Причину не включений в проект RAM обнаружил и устранил. Еще раз подтвердилась аксиома: «…мысли про глюки в quartus не допускаем». Суть моей ошибки в том, что в проекте не были еще проложены отдельные цепи к FSM, от которой зависела работа RAM, по этой причине оптимизатор эту RAM и не создавал. Когда подладил FSM и цепи между модулями, то начала компилироваться и RAM. Вывод на будущее – надо продумывать наперед работу оптимизатора QII и учитывать его возможные действия. В части casex все замечания принял и тоже устранил. Еще раз всем спасибо за дельные советы! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 17 января, 2011 Опубликовано 17 января, 2011 · Жалоба Постойте! Я не согласен с выводом об ошибке. Считаю, что причина в том, что нет моделирования проекта целиком. Как будто вам нужно, чтобы рядовой подметая ломом плац *устал*, а не чистоту навести. Я не шучу, когда говорю про цель проекта нагревать микросхему. Какой бы ни был размер схемы, системы на кристалле, мультичипового решения, всегда дешевле купить адекватный компьютер для моделирования и обустроить среду для верификации, чем тратить время на отладку. Кроме того, если хорошенько подумать, то можно устроить верификацию и уже имеющимися средствами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 17 января, 2011 Опубликовано 17 января, 2011 · Жалоба Какой бы ни был размер схемы, системы на кристалле, мультичипового решения, всегда дешевле купить адекватный компьютер для моделирования и обустроить среду для верификации, чем тратить время на отладку. Кроме того, если хорошенько подумать, то можно устроить верификацию и уже имеющимися средствами. Этими словами можно было бы начать неплохую диссертацию. К сожалению, мои навыки в верификации подобных вещей очень скромны, возразить нечем... Советовал бы только создать отдельную ветку по проблематике верификации ПЛИС, а также больших проектов на них, и, далее, все аспекты верификации обсуждать в ней... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться