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

Память внутри Cyclone III

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

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


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

В приложении фото двух экранов.

а где приложение? :)

интересуют именно warnings, главным образом синтезатора (вряд ли это фокусы фиттера)

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


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

В приложении фото двух экранов от двух проектов.

 

casex воспринимается не так как Вам надо. Он конечно синтезируется, но примеров на верилоге для синтеза я не видел.

А квартус сплошные предупреждения выдает.

Зачем он тут. Приоритетное мультиплексирование по нужным разрядам даст однозначную картинку. А по ресурсам будет меньше.

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


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

casex воспринимается не так как Вам надо. Он конечно синтезируется, но примеров на верилоге для синтеза я не видел.

А квартус сплошные предупреждения выдает.

Зачем он тут. Приоритетное мультиплексирование по нужным разрядам даст однозначную картинку. А по ресурсам будет меньше.

Оператор casex используется для работы с ядром pci_mt32 в моменты обращения к PCI-шине. Я оставил casex с предыдущего проекта, где он нормально работает после компиляции в MAX+plusII. Не задумывался пока его менять, но возможно придется: как, пока еще не определился...

Предупреждений от QII много, надо еще чистить проект, это понятно...

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


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

Это синхронное защелкивание адреса, а само чтение асинхронное. При синхронном чтении любые изменения содержимого ram не попадут на выход q до ближайшего клока (clk), у вас же они проявляются немедленно.

:a14: Это да. Но именно так описывается синтезируемый "write-first" режим у Xilinx.

 

PS. Но это не важно, т.к. (по информации от Shtirlits) асинхронное чтение RAM в Cyclone есть

У Altera вроде так-же, как и у Xilinx.

 

 

 

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


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

Обратите внимание на это:

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, приоритетная схема тут больше подходит по смыслу

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


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

casex воспринимается не так как Вам надо. Он конечно синтезируется, но примеров на верилоге для синтеза я не видел.

Ну, вот здесь, например. Кстати, в соответствии с выше приведенной цитатой :)

http://electronix.ru/forum/index.php?showt...st&p=851601

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


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

Кстати, в соответствии с выше приведенной цитатой

 

По мне так в соответствии с 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

 

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


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

По мне так в соответствии с 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

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


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

Причину не включений в проект RAM обнаружил и устранил.

Еще раз подтвердилась аксиома: «…мысли про глюки в quartus не допускаем».

 

Суть моей ошибки в том, что в проекте не были еще проложены отдельные цепи к FSM, от которой зависела работа RAM, по этой причине оптимизатор эту RAM и не создавал. Когда подладил FSM и цепи между модулями, то начала компилироваться и RAM.

Вывод на будущее – надо продумывать наперед работу оптимизатора QII и учитывать его возможные действия.

В части casex все замечания принял и тоже устранил.

 

Еще раз всем спасибо за дельные советы!

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


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

Постойте!

 

Я не согласен с выводом об ошибке.

Считаю, что причина в том, что нет моделирования проекта целиком. Как будто вам нужно, чтобы рядовой подметая ломом плац *устал*, а не чистоту навести. Я не шучу, когда говорю про цель проекта нагревать микросхему. Какой бы ни был размер схемы, системы на кристалле, мультичипового решения, всегда дешевле купить адекватный компьютер для моделирования и обустроить среду для верификации, чем тратить время на отладку. Кроме того, если хорошенько подумать, то можно устроить верификацию и уже имеющимися средствами.

 

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


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

Какой бы ни был размер схемы, системы на кристалле, мультичипового решения, всегда дешевле купить адекватный компьютер для моделирования и обустроить среду для верификации, чем тратить время на отладку. Кроме того, если хорошенько подумать, то можно устроить верификацию и уже имеющимися средствами.

Этими словами можно было бы начать неплохую диссертацию.

К сожалению, мои навыки в верификации подобных вещей очень скромны, возразить нечем...

Советовал бы только создать отдельную ветку по проблематике верификации ПЛИС, а также больших проектов на них, и, далее, все аспекты верификации обсуждать в ней...

 

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


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

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

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

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

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

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

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

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

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

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